此前很多同学和我要过博客的源码,但由于当时代码实在写的太烂,没好意思给,也没好意思把代码放到 GitHub 上,怕人见笑。
最近一段时间终于下定决心来把博客的代码好好重构了一遍,由于前期代码实在写的太烂,重构过程也是异常艰辛,几乎等同于重写,当然也从中学习了很多新的知识,稍微列举一下重构的内容吧。
- 重构全部模板。之前为了省事,各种同内容的模板都是复制粘贴,导致大量重复的模板内容,模板也没有拆分,一个模板包含大量内容,难以进行模块化维护。重构后,灵活使用自定义模板标签和 include 标签,模板内容更加模块化,复用性大大增强。
- 重构模型。此前由于模型多次改动,以及重构过程中模型的改动,导致产生了大量 migrations 记录。这里我学会了在不破坏数据库数据的情况下,如何清理掉历史 migrations 记录,重新生成全新的 migrations 文件。
- 重构全文搜索。搜索用的 django-haystack + whoosh + jieba分词的方案,关键是要解决中文搜索的问题。之前从网上参考他人的博客文章,但实现其实很不优雅。这次直接参考 django-haystack 的源码,优雅地实现了中文全文搜索。
- 重写整个前端。重写了整个 UI,非常注重响应式设计,移动端访问也有非常好的效果。此前静态资源是一股脑地扔到 app 里,没有打包,导致博客访问时需要加载大量静态资源。重构后引入 Webpack 作为打包工具,前端开发变得异常轻松。
- 重构了整个评论系统,采用 Vue + django-restframework 前后端分离开发方案,评论体验前所未有地提升。
- 引入 Docker 部署方式,几条命令就可无痛上线运行。
- 其他各种细节上的优化...
倾注了大量精力重构后,自我感觉博客代码勉强可以达到与君一阅的水平,所以将代码放在了 GitHub 上,请君指点。
当然,现在博客仍然有很多不足的地方,所以暂且 release 为 0.1.0 版本吧。
不过,v0.1.0 只是开始,后续将持续加入各种新的特性,具体可以看 django-blog-project 版本规划与新功能开发路线图。
说了这么多,代码在哪呢?
走过路过还请不吝给个 star(o(* ̄3 ̄)o
-- EOF --
我就是不是很懂
测试