软件开发项目老是不段的延期,延期,再延期……固然,有项目经理的问题,也许还有客户的问题……做为最直接的开发人员,仍是应该先检查下本身的问题,想一想咋个提升下效率呢?
1. 程序员的工做重点是编码么?不,是思考。
Programmer常常也被称做Coder,编码是程序员花时间最多的工做之一,但要说要工做重点,彷佛应该是——
思考。 每一个程序员都不是编码机器,除了编码以外,还须要要思考:这段代码是要干什么,须要哪些输入,须要进行什么样的验证,要通过什么样的计算流程,最终须要输 出什么,以及,哪些地方可能出现错误,而这些错误又该如何去处理……甚至,有时候还须要考虑用什么样的技术手段更为合适。
是的,这不是一个Coder的工做,可是,Programmer的确不是Coder,中国没有纯粹的Coder。有人说程序员就是一个翻译工做 者,这不假。程序员所作的事情就是把一个思惟中的、抽象的东西,翻译成代码,而后通过编译器/解释器的再次翻译和操做系统的组织,让CPU搞明白,照样执 行。
因此,不要由于任何缘由放弃慎密的思考。多数状况下,程序员会为了赶时间一边写代码一边思考,但这种思考每每没有通过慎密的逻辑推敲,最终形成 代码一而再,再而三的被修改、打补丁……当补丁多到必定程度的时候,代码堆不免会坍塌,即便没有,也经常是风雨飘摇了。不知道每当这个时候,看到连本身都 不想再改动的代码是种什么样的心情,会不会后悔没有在开始编码以前好好的思考呢?
2. 拆除补丁,学会重构。
见过尽是补丁、补丁挨补丁、补丁重补丁的衣服么?很舒服很温暖么?那是文学家说的。若是谁穿过,那他必定知道,这不舒服。若是想舒服,当补丁多到必定程度的时候,就应该把这些补丁拆下来,换一块完整的大补丁。
一样,要想程序跑得愉快,少出现错误,也毫不是持续地修改错误就能实现的。修正错误的过程,须要
不断的重构。 相信多数程序员都有这种感受——补丁加补丁的程序遇到新的错误时老是让人以为难如下手,而对于新接手的程序员来讲,改这样的代码,还不如从新写一个更容易 些。表面上看起来,重构的时间会比直接修改错误的时间花得更多一些,可是重构会为下一次修改作好准备,它会使下一次修改仍然处于一个清晰明了的状态。
除了让程序结构保持清晰,重构还有一个好处是会促使程序员去思考。修正错误时的思考仍然处于一个很是重要的地位。若是在修正错误的时候只看到了眼前的错误,那很危险,由于你不知道你所作的事情,
究竟是改正错误,仍是隐藏错误。因此改错以前,必须思考,必须对错误反复慎密地逻辑推敲,必要的时候甚至要从总体框架去探寻错误的缘由。
3. 程序须要练习打字么?固然!
你见过像小学生同样一笔一划写字的做家么?也许有,但至少我没见过。写做的时候,文字应该紧随思想的步伐,如行云流水般地涌现出来,只有这样,思惟才不会被文字阻碍,一时闪现的灵感才不会被白白的放走。一样,
若是写代码的速度跟不上思惟,那思惟就会常常断线。
程序员不是打字员,不须要专业的打字速度,可是打字的确是一项基本技能,它是保证思惟流畅的基本条件之一。是的,只是之一,由于打字的速度永远 跟不上思惟的速度,咱们还须要别的东西——工具,这是后面要说的内容。那么,若是打字速度不够快,写程序之余不妨玩玩打字游戏……或者聊聊QQ。
4. 每一个人都会用工具,可是真的用好了吗?
对于程序员来讲,最经常使用的工具就是IDE。不过IDE能够用来作什么呢?编写代码和编译调试,这些只是它的基本功能而已。对于编码来讲,一个好 的Editor能够大大的提升编写代码的效率。固然,一个好的IDE里面必定少不了一个好的Editor,但除了IDE以外,好的Editor也为数不 少。
什么样的Editor最好,没有定论,只能说,没有最好的,只有最合适的。对于编码来讲,一个好的Editor应该有些什么样的功能呢?若是你想代码清晰可读,那么这个Editor最好能有
语法高亮功能,若是有
代码折叠功能就更好啦;若是Editor有
高亮当前行的功能,就不用随时去满世界找插入点在哪里;若是有
智能缩进和
格式化代码的功能,那[Space Key]会很是感谢它的;若是有
矩形选区功能,在某些须要批量修改代码的时候就不须要不断的上下左右了——这里有一个很是重要的功能,那就是
自动完成。打字速度还跟不上思惟么?那自动完成能够很好的帮助你提升录入速度——固然前提是熟练掌握对Editor自动完成功能的使用,这一般利益于设置一个方便的快捷键。
说到
快捷键,它是一个几乎每一个Editor都有的功能,却经常会被会忽略。拷贝粘贴要用鼠标点菜单么?自动 完成要等待200ms时间弹出么?选择单词是用鼠标拖选、双击仍是Shift+方向键呢?移动到某个位置是否是要按方向键按到手痛……?为何不试试快捷 键?!几乎每一个Editor都定义了一套方便快捷的快捷键,用于快速处理编辑指令,有些Editor甚至考虑到用户习惯为用户提供了自定义快捷键的功能。 Ctrl+X、Ctrl+C、Ctrl+V这套剪贴板快捷键在Windows下几乎每一个软件都是一样的定义;移动光标除了上下左右及Home、End外, 不妨尝试一下Ctrl+这些键;多数状况下,若是在移动光标的时候按住Shift,那光标通过的文字就会被选中……固然,快捷键远不止这些,当你以为某项 操做不方便或者太花时间的时候,你就应该去软件的Help里面找找关于这个功能的快捷键定义了。多用用,熟悉了,效率就上去了。
IDE、Editor都是开发所必须的工具,但它们不是开发工具的所有。Word、Excel除了用于办公,也能够用于一些代码和数据的临时整 理,由于它们是专业的文字处理工具和数据处理工具。固然,好用的工具远不止这些,当你发现了,留个意,说不定哪天就能顿悟——这东西能帮助我处理代码。除 了工具以外,还有技术,使用工具固然是技术活,再好的工具不会用也是白搭。顺便提一下,
正则表达式这个东西,在查找替换的时候真不错,虽然学习起来须要花点成本,但它值得。
5. 写程序的时候能够用中文么?为何不!
若是你的公司规定了程序必须用英文来写,那这一部分你能够跳过。其实不论英文仍是中文,都是用于表达意思的符号。系统早就Unicode了,数据库几乎都支持各类字符集,多数语言都支持中文变量名……在程序中使用中文,早已不存在环境的限制。
程序员们都知道变量名、方法名要有意义。写英文么?英文毕竟不是本土语言。你知道正确的单词该如何写么?就算知道,想这个英文名字每每也会想破 头。一段10行的代码就花了10分钟去纠结变量名,哪里还能有效率?写注释就更不用说了,有时间去想一段英文注释怎么写,中文注释都写了好几段了。因此,
若是想用中文,就用吧。哦——前提是,肯定你的程序中使用中文不会有问题,而且,你打汉字的速度真的比较快。
6. 今天你熬夜了么?熬夜不是好习惯,但我确实熬夜了。
熬夜的程序员必定不是少数,加班的程序员更不可能少。那么熬夜和加班能有效提升效率么?短时间内,也许会。可是久而久之,
失去的的不只有效率,还有健康。
做为脑力劳动者,大脑是最须要保护的部分。保护大脑的最好方式,除了合适的温度和湿度以外,还有很重要的一点,就是休息。并且,大脑“不是一我的在战斗”,它须要身体其它各部分提供各类各样的服务,因此足量的休息和充分按时的睡眠是必不可少的。
看过《人体使用手册》吗?这是一本很火的关于健康的书。这本书就提到了为何人们须要在10点左右进入睡眠状态。若是长期熬夜,就不能让血液得 到充足的补充,就不能让身体获得充分的修复。人生不像WOW,不是一瓶红药水就能解决问题的,人须要养分和休息来保证大脑及身体其它部分的健康。健康的大 脑才会思惟敏捷,响应迅速。思惟敏捷的大脑才能提升工做效率,而迟钝的大脑只会让程序出现更多的错误。
不过,不熬夜不行啊,要否则我为何会在这个时候仍然在写博客呢?缘由不少的,好比夜深人静才能静心思考;又好比,白天太忙,晚上才有时间跟朋友们同行们交流;再好比,一到白天就想睡觉,只要晚上才会神采飞扬……
若是须要安静的环境,其实22点睡觉5点起床和1点睡觉8点起床有一样多睡眠时间和环境安静的时间,不过22点睡觉你能够获得很好的休息和修 复,但1点睡觉你就错过了造血的黄金时间。也许你的朋友们会在22点到1点这段时间找你讨论一些问题,那你为何不劝劝你们都22点睡觉,早晨5点再起床 精力充沛的讨论呢?至于黑白颠倒的朋友们,建议大家花些时间好好调整,由于这已是健康在报警了。
至于我为何如今还不睡觉……我不是在写这篇博客但愿你们都早一点睡觉么?人多力量大,你们一块儿来倒倒时差吧!
本文出自 “边城客栈 学海无涯” 博客,请务必保留此出处http://jamesfancy.blog.51cto.com/2516291/670812正则表达式