今天(2019-09-12)基本完成了博客系统—— IdealYard 的雏形,当然,这距离臻于完美还有很长的路要走。但正所谓不怕走不到头,就怕一直不敢出发。虽然是个不起眼的项目,但是从无到有也消耗了不少精力,所以有必要做个简单记录。
缘起
一切缘起,都要从丘处机路过牛家村的那个下午说起……
早就想动手搭建一个属于自己的博客项目,但是作为一名出色的国家一级退堂鼓表演家,总是找各种理由,一直未能计划成型落实。最后,终于在 G 小姐的鼓舞下开始着手编码了。
技术选型
因为主要开发语言是 Python,而目前 Python 社区已经发出公告将在 2020 年初停止 Python2 的维护。因此,选择使用 Python3 作为基本版本支持。在 框架选择 问题上,虽然之前主要使用 Web.py 开发,但鉴于 Web.py 目前的维护现状和社区活跃度,所以选择更受开发者青睐的 Flask 作为后端 web 开发框架;此外,使用到 Celery 做一些耗时请求异步处理,如注册验证邮件发送和博客数据库备份(由于时间关系暂时未做)。而前端则使用目前热门的框架 Vue 和 Element-UI 来构建。
心路历程
虽然 Python2 与 Python3 之间有语法区别,但是基本用法方面也没有到“学习一种新语言”的地步,所以还算顺利。而 Flask 作为“一次一滴”的轻型框架,在刚开始的时候学习每一个子模块的使用感觉有点繁琐,用过几个之后感觉也挺顺利并逐渐喜欢上了这种理念。
前端方面呢,由于之前一直使用 jQuery
操作 DOM,所以一开始并不习惯这种 MVVM
设计模式,尤其是对生命周期的理解不够到位。话说回来,目前来说也还是有很多地方理解不够透彻,但是基本能够实现功能并简单优化。当然,道路是崎岖的,比如在使用 axios
发送请求连接前后端的时候,就出现了一些问题,尤其是在认证环节耗费了不少时间。其实是一个很细微的点,但是因为周围的同事都没有这方面的开发经验,所以一个人琢磨还是花费了不少的时间。
回首看来,没有打败你的最终都会让你更加强大,不过在第一次面对这些问题的时候还真是有点找不到北。
展望
目前基本完成了一个博客的完整功能,但是其实还有很多的小 Bug 需要解决。而且在开发的过程中又产生了一些新想法,还需要自己抽时间落地。具体请阅读 我的博客 idealyard 待办事项记录。
参考
本博客在编写过程中主要参考链接和书目有:
天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。
吾资之昏,不逮人也,吾材之庸,不逮人也;旦旦而学之,久而不怠焉,迄乎成,而亦不知其昏与庸也。吾资之聪,倍人也,吾材之敏,倍人也;屏弃而不用,其与昏与庸无以异也。圣人之道,卒于鲁也传之。然则昏庸聪敏之用,岂有常哉?
蜀之鄙有二僧:其一贫,其一富。贫者语于富者曰:“吾欲之南海,何如?”富者曰:“子何恃而往?”曰:“吾一瓶一钵足矣。”富者曰:“吾数年来欲买舟而下,犹未能也。子何恃而往!”越明年,贫者自南海还,以告富者,富者有惭色。
西蜀之去南海,不知几千里也,僧富者不能至而贫者至焉。人之立志,顾不如蜀鄙之僧哉?是故聪与敏,可恃而不可恃也;自恃其聪与敏而不学者,自败者也。昏与庸,可限而不可限也;不自限其昏与庸,而力学不倦者,自力者也。