高效程序员的狂暴之路

不觉间已经工作六年,回想第一天实习的场景历历在目、恍若昨日。六年已足以令许多人转管理、转产品、转测试、转行,也一定有人还在坚守着编码,只因热爱。遇到过形形色色的经理、架构师、运维、性能工程师等等,还是觉得写代码的才是最厉害的!在这里分享一些这些年来修习到的个人心得。也许并不适用于其他人,但对于我却都是最珍贵的“宝藏”。也谨以此文纪念在代码堆里度过的青春~ 看到这些点点滴滴的收获,就会感到所有逝去的光阴和挥洒的汗水都是值得的。


1.启动:得心应手的工具

1.1 全能IDE

关于IDE,目前我使用Intellj IDEA和Sublime Text来应对各种语言的开发。

在大学期间初学Java时曾使用过MyEclipse,后来职业生涯的前期很自然的过渡到了更加灵活的Eclipse。但两年前经过不断的试用丢弃再试用,最终我成功从Eclipse转投到了Intellij IDEA阵营。在那之后就一发不可收拾,不仅重度使用Intellij,而且还短暂试用过JetBrains旗下的各种产品,Phpstorm,Pycharm,RubyMine包括最新的Clion。Google也选择Intellij作为其Android Studio的基础。作为Java开发者,当然最钟爱的还是Intellij,其智能程度实在是太震撼了!强烈建议还在观望的同学们去官网上看一下介绍它的各种操作的小动图。

好像很容易地,Intellj IDEA就成了我Java开发的不二选择。然而对于其他语言,尤其是C/C++却一直没找到合适的IDE。从Vim+各种插件打造IDE到Emacs到Visual Studio和CodeBlocks,一直没有令我满意的,直到碰见了Sublime Text。现在它不仅是我除了Java外所有语言的IDE,还是我的博客编写工具和代码库,在后面的3.2 Codebase一节你将会看到。详见《Sublime Text 3下C/C++开发环境搭建》

1.2 UML和设计

UML领域中的好软件不少,如Rose、EA,大多是商业付费软件。在开源免费软件中,StarUML比较不错,2.0版相比1.0做了不少改进,尤其是整体外观漂亮多了。配合Visio和Power Designer等补充UML以外的设计图,如业务泳道图、流程图、拓扑图、ER关系图等,几乎可以满足大部分日常需求。

1.3 Shell

日常工作中免不了要使用Unix/Linux命令,或者直接连接到远程的服务器上做一些操作。在Windows上模拟Unix/Linux命令当然要用Cygwin,在Windows上使用那些实用的Unix命令可以大幅度提升效率,特别是你经常需要处理文本时。而SSH客户端一般就用SSH Secure Shell或XShell,前者比较简单,后者更强大但文件传输功能却要装另外的软件XFtp。

当然,如果直接使用Linux做个人桌面那最好不过了,在Linux上开发和在Windows上不仅是工具多了顺手了,简直就是思维方式上的剧变!详见《Linux Mint 17一周使用体验》

1.4 虚拟环境

VirtualBox是个不错的小巧快速的虚拟机软件,VMWare也许更加强大,但是有些太重型了。用VirtualBox装一些常用的操作系统和软件,以及测试环境和测试数据,然后做成快照留作以后反复使用,可以免去很多做环境的麻烦。而且在虚拟机里怎么折腾都行,降低了使用实体机的风险。这方面,目前后起之秀应该是Docker吧,造福了广大的开发者。因为还没有研究过所以先不做评论了。


2.加速:简单有效的方法论

2.1 动手前先思考

作为一名程序员,拿到任务后就有要立即编码的冲动很正常,但为了减少走弯路,我们要克制这种冲动。大到大型产品和项目的开发,小到一个算法的实现,都少不了先行设计和思考。大项目要做高层次架构设计,提前识别出那些“坑”,可以有效地降低风险,避免返工。小算法要证明其正确性,避免一些逻辑思维上的漏洞。关于一段代码的正确性,详见《程序员修炼之路-(1)基础(下):正确性证明》

关于思考的程度也要掌握一个“度”,不然就可能出现“过度设计”的问题。这个“度”感觉很难掌握,只能靠时间和经验不断培养判断和直觉,一点点地就学会了评估哪些设计现在做很费时应该放后,哪些设计现在做不麻烦但要是不做以后改起来就很费时。

2.2 简洁的代码

说到简洁和干净,就不得不提一些经典书籍对我的巨大影响。在大学时入手了《Code Complete》(代码大全,听了这狗血的中译名真以为是各种代码的百科全书),很幸运地能在正式入行前就看到这本书,它让我少走了很多弯路,甚至养成了一些代码“洁癖”,有时甚至起个类名都要想半天,但时间证明一切都是值得的。

后来又看到了《Clean Code》,不仅讲述了简洁代码方方面面的技巧,还将写出简洁的代码上升到了职业宣言的高度。详情见《代码整洁之道》读书笔记

《Clean Code》中结尾的一段话令人印象深刻,至今难忘:
“2005年,Elisabeth递给我一条绿色腕带,上面写着Test Obsessed沉迷测试的字样,我高兴地带上。我发现自己无法取下腕带,不仅是因为腕带很紧,而且那也是精神上的紧箍咒。那腕带就是我职业道德的宣告,也是我承诺尽己所能写出最好代码的提示。写代码时,我

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值