15年7月6号,也就是考完GRE的第二天,我收到通知拿到了Github的Student Pack,里面最诱人的莫过于Digital Ocean的100刀vps coupon。所以果断开工从零开始架构个人博客。架构的想法早已有之,但苦于没有固定的服务器可以用,只做前端又实在缺乏成就感,故一拖再拖;现在既然有了一个vps并打算一直保留下去,就着手开始弄了一个博客系统。
我是那种并不爱用重框架的人...框架轻尚可作为工具方便开发,重了对我而言更像桎梏写法的手铐,实在麻烦。用各种流行的博客搭建系统(WordPress,Blogger)又不够有趣,最后决定自己开发一个,让每一个细节都能自己定制。
总体来说,这一套博客系统有这么几个特点:
当然,由于我开发经历实在不多,对于很多实现方式仅限于意淫,可能出现的诸多naive的地方也请各位原谅...能指出当然更好。
既然不喜欢重框架,很多Web后台框架自然已经出局。加上我又是Node粉,Express的轻重量级也还算拿捏的不错,最后选择了这一套东西作为自己的开发工具。
至于为何是MongoDB,这个纯粹是开发紫荆之声后的后遗症,再加上博客系统不需要对数据一致性和原子性有过于复杂的要求,故加一些简单的数据锁即可实现。由于这一套工具本身已经足够流行,此处也就不再赘述。
适逢三字班学习前端,突然觉得一年前(到开发该博客前也是)没手写过一个完整的响应式布局实在不爽。再加上前段时间对Bootstrap出现了审美疲劳,进而心血来潮弃用前端框架,全程自己搭了一个响应式布局。但是BUG实在是挺多,并且架构方式也很不优雅:几乎都利用resize时间进行布局。之后再继续学习改进...
另外考虑到电脑和手机端的操作有别,对于一些操作(回到顶部、一次跳多页等)的实现是有所区别的。大家自行探索 :)
说实话,评论系统的确有点费力不讨好。思前想后觉得还是找一个成熟的评论插件使用比较好。最后看了半天(其实是看脸)选择了HyperComments,整体风格比较符合该博客,且简洁好使,用一段时间再看看稳定性如何吧。
总体来说,这一次开发还是挺爽的... 整个博客代码也公开托管在Github上,不过我相信不会有人看的o(╯□╰)o。
开发的过程中衍生了两个很独立的项目: Fonttailor和mdEditor,当然都很naive,不说也罢,由于发布匆忙,之后在完善后在git单开仓库也有可能。
目前该博客处于测试期,出现一切bug都是有可能的,如果碰到了大可以联系我个人邮箱levy@levy.at。感激不尽。