关于标题
恩,先吐槽下,这个标题是在一本计算机著作中引用而来的。当然,引用的原因还就是他最为恰当。
开发GarvinEngine或任何软件,一个好的开发环境以及配套的工具是必不可少的。正如标题所言,有了好的工具,才能事半功倍。
器
那么,我先说说,我对于器的选择标准,然后再详细叙说选择的一些“器”。
我是个比较倔的人,如果摆在前面的两条路,一条是坦途,一条是荆棘,我会毫不犹豫的选择荆棘。这也是我选择工具的出发点。
- 集成开发环境
先说结论,我没有选择集成开发环境。那么,我为什么不选择集成开发环境呢?其实,集成开发环境确实很赞,如win平台下的宇宙第一IDE:visual studio,以及Mac平台下的xcode等等。
不过,我不开发GUI相关的,也不想让自己每次切换OS都要熟悉新的IDE,以及对应的插件,快捷键等等(相信我,这个很蛋疼)。所以,只能对集成开发环境说NO。
那么,我选择了哪些“器”来构建我的开发环境呢?
编辑器
我选择了Emacs作为我的编辑器,当然,Emacs并不是单纯的一个编辑器,通过各种配置可以成为一个很棒的IDE(网上各种牛人已经实现,此处不再赘述)。配置Emacs以及熟悉Emacs的过程确实比较花时间,当然,只需要经历这么一次,然后可以把相关配置上传到github或其他地方托管,以后切换os,切换硬件,都只需要下载这个小小的配置,然后快速进入开发状态(妈妈再也不用担心我重装电脑了!)编译器
恩,我选择Cpp作为GarvinEngine的主要开发语言,既然是Cpp当然少不了编译这个环节。最初我编写makefile进行编译。不过这个局限性比较大,只能在linux,unix环境下使用,windows的话,还得写一个差异比较大的nmake相关的makefile,几乎不能共用一个文件。
所以我选择了cmake,当然,cmake只是一个构建工具,生成平台对应的编译方案而已。cmake的好处自然不用多言,不过也确实有点缺陷,在日后的开发中,逐步完善吧。
同时也在考察 gyp, 以及腾讯的blade。gyp还是比较赞的,不过带给我的感觉和cmake差不多,所以就暂时不花精力去研究了。blade是我比较期待的一个构建工具,遗憾的是,目前只能在linux平台下。等待他的完善!
补充一个新的工具babel
,babel是由google推出的一款跨语言跨平台的构建工具(传送门)。目前babel除了生成工程方面还不如cmake之外,其他的特性从我的体验上来说,都要优于cmake。因此,接下来的工程构建中,我会使用babel。测试工具
所有不写单元测试的工程代码,都是在刷流氓!
上面的话或许不太准确,恩,我只是想表达,测试非常重要。相当的重要!单元测试的测试工具有很多,此处就选择了google出品的gtest,使用简单,容易上手。文档编写
我个人比较倾向于轻量级的文档,而不是动不动就来一堆的word。所以此处我选择markdown作为文档编写的语言,恩,windows下面可以使用markdownpad,mac下面可以使用Mou。这些用来写markdown的文档体验都是非常不错的。恩,当然,我使用emacs(再次赞一个emacs)。
当然,文档的编写原则是,能不写就不写,尽量在代码中体现。包括注释也是。我坚信,代码写的规范和优秀的,是可以不用写非常多的注释与文档的。
(因为现在不涉及客户端网络层的优化等等,暂时没有把客户端相关的一些工具列入进来,诸如模拟器之类的,等待后续补充。。。)