版本控制|懒惰程序员的百宝箱:提升工作效率的七大神器


版本控制|懒惰程序员的百宝箱:提升工作效率的七大神器文章插图
Perl之父Larry Wall曾在 Programming Perl 一书中提到:程序员的三个美德是懒惰、不耐烦和傲慢 。
懒惰 , 是程序员美德的第一要素 。 Larry Wall所说的“懒惰” , 并不是安于现状和不思进取 , 而是付出最少的时间或者精力来达到同样甚至更好的目标 。 “懒惰”的程序员会尽量使自己的代码既实用又有很好的可读性 , 这样可以节省后面的很多维护成本;还会尽力完善代码中的注释及文档 , 以免别人问自己太多问题 , 更擅长使用各种工具 , 从方方面面提升自己的效率 。
本文选自《程序员的三门课:技术精进、架构修炼、管理探秘》一书 , 本文会向你介绍一些非常实用的工具 , 这些工具可以大大提升你的工作效率 , 全方位把你武装成一名“懒惰”的程序员 。
版本控制|懒惰程序员的百宝箱:提升工作效率的七大神器文章插图
对于开发者 , 尤其是Java开发者来说 , 使用开发工具编写代码真的可以大大提升工作效率 , 因为现在很多IDE都有很强大的工具 , 不仅提供了代码补全、错误提示、自动编译等功能 , 还提供了各种插件 , 方便和其他工具融合 , 能大大提升写代码的效率及代码质量 。
目前市面上主要有两款Java代码开发工具:Eclipse和IntelliJIDEA , 这两款开发工具之争由来已久 , 不过最近几年 , IntelliJIDEA逐渐撼动了Eclipse的霸主地位 , 成为开发者的首选开发工具 。 在2013年的Google I/O大会上 , Google推出了新的Android集成IDE“AndroidStudio” , 其最大的转变就是从Eclipse切换到了IntelliJ IDEA 。
笔者也经历过从Eclipes转向IntelliJ IDEA的过程 , 相比之下 , Intellij IDEA在某些方面确实比Eclipse更加出色一些 , 配合Mac OS操作系统上的快捷键 , 真的可以在开发效率上提升一大截 。
关于开发者使用的IDE , Jet Brains做过一项调查 , 结果显示:有59%的开发者使用IntelliJ , 有30%的开发者使用Eclipse , 只有不到5%的开发者使用Sublime和Vim等普通文本编辑器 。
版本控制|懒惰程序员的百宝箱:提升工作效率的七大神器文章插图
程序员在协作开发时不可避免地要使用版本控制工具对代码进行管理 , 版本控制工具主要用于存储和追踪被管理的文件的修改历史 , 是软件开发者的必备工具 。
目前市面上比较成熟的版本控制工具有CVS、Visual SourceSafe、PVCS、Subversion(SVN)和Git等 , SVN和Git的使用较为广泛 。
无论是SVN还是Git , 都提供了很好的版本控制功能 , 例如对代码的统一管理、冲突解决、代码权限控制、分支开发和合并等 。 开发者应该熟练掌握SVN和Git , 比如代码拉取、代码提交、代码合并和冲突解决等 , 尤其要掌握一些Shell命令 , 这可以节省大量的时间 。
虽然目前有很多开源代码及很多公司的内部代码都倾向于使用Git进行代码托管 , 但我们不能保证所遇到的所有代码都使用了Git 。 公司规模越大 , 使用SVN进行代码托管的可能性便越大 , 毕竟迁移也是需要一定成本的 。
版本控制|懒惰程序员的百宝箱:提升工作效率的七大神器文章插图
自动化构建指自动创建软件组建的一组进程 , 包括将计算机源代码编译成二进制码、将二进制码包装成软件包并对其进行自动化测试 。 很早以前的自动化构建都是通过创建Make来完成的 , 后来发展为GNU Make 。 随着时间的推移 , 如今的软件开发主要使用更优秀的自动化构建工具来完成 , 例如Java世界中的三大构建工具Ant、Maven和Gradle , 如今 , Ant几乎要退出历史的舞台了 。
Maven和Gradle之所以能够赢得众多程序员的青睐 , 主要是因为它们在依赖管理、冲突解决、项目构建、项目结构管理和插件机制等方面的出色表现 。
版本控制|懒惰程序员的百宝箱:提升工作效率的七大神器文章插图
所谓一图胜千言 , 无论是自己梳理思路 , 还是给别人讲解 , 图案都是很好的形式 。 而且 , 程序员还经常要做一些PPT等 , 有了这些画图工具 , 就能大显身手 。
1)思维导图——XMind
人类大脑的最自然思考方式是放射性思考 , 也就是我们常说的发散性思维 。 我们通常在思考一个问题的时候 , 都是以一个思维点为起点 , 然后不断进行发散式展开的 。 如果我们将这个思考过程通过图形化的方式表达出来 , 就是一张思维导图 。 思维导图可以有效地把思维模式表现出来 , 有利于人脑的扩散思维的展开 。 如图所示是一张关于“提升工作效率的软件”的思维导图 。