Home

Golang实践日志

最近做了什么

在已经了解goroutine, context, channel, database/sql, ants库这些东西的基础上,我决定自己写一个小东西锻炼一下Golang开发能力

What’s Hugofeeds?

一个rss订阅追踪网站,定时把rss feed更新内容推送到网站

目前核心部分基本完成,网站部分还未开始

核心主要是使用了一个定时的调度器,过一段时间就检测数据库里面的rss feed抓取时间有没有过期

如果过期就把该feed装填到workChannel,由work invoker取用

work invoker从channel里面得到一个feedwork之后,从ants pool里面取出一个goroutine用来完成这个feedwork

feedwork处理完成后,err从该任务的Done通道导出交给调度器处理

踩到的坑

  1. channel一端导出的数据,如果另一端没有相应地导出,那么这个goroutine就会一直保持阻塞状态

  2. database/sql有自己的格式化查询语句语法,不应该使用fmt的字符串格式化操作了

  3. 错误处理是Golang的一大核心,应该好好对待

学习到什么

  1. 基本的文档查询能力,看go package介绍

  2. 减少了项目开发对AI的依赖

  3. Golang作为一门比较新的语言,对某些东西的处理方式比较新

  4. 借鉴Github上相似的项目,可以学到很多

  5. 项目结构设计是一个要学习的重要思想

  6. 找到了一个出色的学习项目:flowerss

ChatGPT told me