今早看到一个github repo,hackathon starter。它是一个nodejs
的project starter,帮助你快速建立项目原型。
它提供了如下功能:
这些都是当你要做一个项目的时候都必不可少,却又和项目的business logic没有太多关系的功能。所以,使用它能帮你省下很多时间。
然而,本文的目的并不在于鼓吹nodejs
的开发者使用这个repo作为你的project starter,因为我自己也是刚刚接触它,尚未真正了解它的能力 —— 尽管它有5300多个star为其背书,但将一个自己未使用过项目就此撰文力推给大家使用,并不是我的作风。
我的建议是:每个开发者需要有自己的project starter。
如果你翻看我的github repo,从去年起,我的所有django project都似乎从一个模子里出来的:它们有相同的layout,相同的css template,甚至还有一致的makefile
和deploy configuration。没错,我使用的是我个人的project starter,这样,我的每一个新的django项目都能快速进入到核心的产品功能开发中。
Project starter可以来源于你自己的某个项目,也可以是github上某个repo的clone,就像本文中提到的hackathon starter。它出自何处并不重要,重要的是你对其代码融会贯通,烂熟于胸 —— 这就是为何我不太推荐拿来主义的原因,大部分即拿即用的项目,我们未必能,或者,会,去研究它的全部。即使要拿,也要努力将其搞懂,删减不需要的功能,使其成为你自己的独立发展的project starter。
Project starter需要与时俱进。如果说你的项目是流水线上的一个个产品,那么,project starter本身就是流水线。你需要定期清理污垢,注入润滑油,让它保持在最佳状态。其实我没有一个专门的project starter,但如果可能的话,每一个新项目都以最近完成的某个项目为project starter。最近完成的项目往往涵盖了最新的技巧与best practice。
用不用专门的project starter,就像OOP中class based OOP与prototype based OOP之争,各有优缺点,使用上因人而异,自己用着顺手就好。
最后,不要勉强使用project starter。屠龙宝刀不是万能的,必要时,你也需要唐门暗器。