4 8

Fxh.Go的新计划

因为最近忙于工作和gogits的事情,Fxh.Go的进度落下了很多。而且,更多的想法出现了。 本来想要从原生Go语言开始,搭建框架,完善博客功能。但是希望用户从头研究代码,是非常不现实的。因此,索性从现在的库类里组合,重新开发博客功能。方便大家理解使用。这就是Fxh.Go的新计划。

Web 框架

Web框架还是选择自由度最高的martini框架。gogits基于martini开发,改造了很多中间件,基本可以抄来用用。当然有很多用不上哈哈。martini本身的API简单,核心很小,理解和学习起来还是比较容易的。不过,真的用好比较难。中间件的编写,各种注入对象的需求,需要自己仔细安排。

数据库 & ORM

原先使用JSON存储,管理和备份方便,但是查询复杂。尤其是排序和关联查询,很是费劲。虽然说博客数据都缓存在内存中,但是每次关联查询都要拆分成单条数据的操作,增加许多的代码。现在是知道SQL数据库的好处啦。

SQL数据库问题也很多。Fxh.Go一直是纯go程序,不需要安装任何依赖(除了Go语言运行的依赖比如libc)。但SQL数据库有名的MySQL,需要另行安装,SQLite又依赖cgo,非常郁闷。后来发现了ql——纯Go的SQL实现。感觉可以尝试一下。

既然用了数据库,ORM几乎是必须的,否则Rows.Scan这种API是要人命的。xorm的作者lunny也是gogits的开发者之一。他也打算让xorm支持ql。这个很值得期待。

旧程序

旧程序的数据肯定是要迁移过来的,我会写好一个导入程序的。


好那就这样咯。