编程中,有哪些好的习惯从一开始就值得坚持?

点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!

保持一个良好的编程习惯会让你在学习和工作中事半功倍,受益终身。

给变量、函数取个好名字

ITWorld 曾经发起了一个”程序员最头疼的事情“投票,结果非常有趣,近半数的程序员认为命名是最头疼的事情。

规范的命名对于阅读程序是如此重要,本文开篇就不得不提到它。在阅读代码时,理解一个变量和函数都是从名字开始的。它是什么?它的职责是什么?这些问题从名字就应该看出来,如果名称需要注释来补充,那就不算是好名字。

例如:将变量名

// 记录提交结果
valmessage;

修改为:

valcommitResult;

将函数名

/**
* 获取办公室电话号码
*/
fungetTelephoneNumber(){
}

修改为:

fungetOfficeTelephoneNumber(){
}

宁可名字取长一点,也不要起个模糊的名字。一个清楚的变量名还会带来可搜索的好处。即使在写二分算法时,也尽量别用"l"和"r"来指代左右边界,换成"left"和"right"会更好。

不过,变量名也并非越长越好,去除变量名中的冗余也是一个好习惯。Variable 一词永远不应当出现在变量名中,Table 一词永远不应当出现在表名中。 nameString 与 name 没区别,moneyAmount 与 money 没区别, customerInfo 与 customer 没区别, theMessage 也与 message 没区别。

命名风格应该保持统一,每个概念对应一个词。如果一堆代码中既有 Controller,又有 Manager,还有 Driver,Presenter,就会令人困惑:他们之间有什么区别?为什么不全用 Controller?如果同一概念可被多个词语描述,请确定其中一个名字,并在你的代码中一以贯之。

总之,取一个精准的名字是一名优秀程序员的基本功。从一开始学习编程时,每次取名都应仔细思考,切不可草草了事。

保持代码美观

感受一下两种格式的代码:

classSolution{
    funfib(N:int): int{
       if(N==0) return0
       valf=IntArray(N+1)
       f[0]=0
       f[1]=1
       for (iin2..N) {
        f[i]=f[i-2]+f[i-1]}
           returnf[N]
        }}
classSolution{
    funfib(N: int): int{
           if(N==0) return0
           valf=IntArray(N+1)
           f[0] =0
           f[1] =1
           for (iin2..N) {
        f[i] =f[i-2] +f[i-1]
              }
               returnf[N]
          }
        }

先想通逻辑,再写代码

斐波那契程序员:每天都在修复昨天和前天的 bug

你是否有过这样的经历:代码删了又写,写了又删。在敲代码之前,先问自己一个问题:我写下的这行代码是真的能用上的吗?会不会有逻辑漏洞?思考清楚业务流程之后再写代码,往往事半功倍。

以笔者亲身经历过的一个项目为例,项目已经做了一年, 除了三方库,代码量共有两万行,平均算下来,开发者一年来每天只需要写 55 行代码。这样看来,开发者的每一天都差不多是”很闲的“,然而开发者每天都忙得不得了,从早到晚都在码代码。这些代码量如果纯粹敲出来,最多十个小时就可以完成。我们应该用大部分的时间思考代码逻辑,不要花大量时间将代码删了又写,写了又删。磨刀不误砍柴工,事先做好全面的考虑,争取让写下的每一行代码都有价值。

程序员的时间分配

梳理代码逻辑是有一定方法的,例如:

  • 通过画图工具先将逻辑画出来,流程图、UML 图、时序图、思维导图都能对你有所帮助。
  • 写接口之前先模拟出假数据,测试逻辑层没有问题之后再写接口,可以避免写出的接口不合适。
  • 善于写伪代码,将程序需要实现的每个步骤先用抽象的伪代码写出来。具体实现时再将伪代码细化。
  • 写代码之前先编写测试用例,将你期望的输入输出写在测试用例中

大胆重构

开发者应该保持爱折腾的习惯,不安于现状,才能做到与时俱进。软件之所以叫软件,正是因为它是”软”的,需求随时在更新,上星期的代码放在今天也许就不再合适。也正因为软件是软的,我们可以很方便的通过重构改进它。只要有良好的测试用例,就大胆的重构吧!这里列出一些应该重构的时机:

  • 当你需要添加一个新功能,突然发现程序耦合严重,导致新功能不是那么好添加,那就先将程序重构到可以方便的添加新功能
  • 当你阅读代码时,发现程序可读性低,导致理解上的困难,显然代码还不够清晰,先将其重构到一眼能够看出结构。
  • 你找到一种更好的实现方式,千万不要因为现有的代码仍然可用就置之不理。尝试将你的想法实现出来。即使失败了,你也会更能理解为什么代码是现在这个样子。

PS:关于重构的更多知识可以阅读 Martin Fowler 所著的《重构改善既有代码的设计》,软件开发不朽的经典。

定时备份

年轻时,我曾在网上问一个命令行怎么写,有人教我 rm -rf / ...

如果程序中用到数据库操作,一定要记得定时备份。数据库备份有诸多好处:可以防止数据丢失,可以在程序出错时方便数据回滚。而且它并不需要太多的成本,只需要写个脚本完成定时自动备份,并删除过老的备份数据即可。如果数据库没有做备份,而数据库又被误操作删除了的话,那就等同于

同样,代码也需要及时备份,使用版本管理系统可以解决这个问题。用上 Git,随时 commit,丢失代码的情况几乎不可能发生。

写一份完善的 README

github 上有非常多的好项目,无一例外,他们都有一份完善的 README。 README 是程序的门面,有助于别人及时发现你写的好项目(不要奢望每个人都有闲情逸致来阅读你的源码)。况且 README 文档的好处不止于此,它还可以帮助自己梳理逻辑,理清思路。

写好 README 之后,随着项目的演进及时更新它,不会花太多时间,但能让你随时都对项目有个整体的把握。绝对值得一试。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容