百科问答小站 logo
百科问答小站 font logo



程序员们有什么好的编程习惯? 第1页

  

user avatar   ze.ran 网友的相关建议: 
      

注释里尽量写为什么,而不是做了什么。

做了什么,看代码就好,代码不会骗人。但为什么要写成这样,有时候就非常让人困惑。有可能是处理某个 corner case,有可能是绕过某个系统限制,也可能是什么奇葩需求,这种代码,没有当时的 context,过几个月看,像甲骨文一样,不知道是想干什么。再有年轻力壮的,看不顺眼来优化一下,以后就不知道哪个地方会崩了。

其实,大部分的代码应当是不言自明的,不需要注释。


user avatar   huangzhe 网友的相关建议: 
      

1.代码重构得趁早

在开发过程中,为了赶进度,我们很容易「欠下技术债务」,也就是为了赶时间,用了一些不规范的写法。技术债务积累多了,人称「屎山」,日后应用出现问题,查起bug来非常的费劲,改起来也可能修一个bug出两个bug,甚至严重的,一改就崩溃。

所以每次发完一个版本,要及时review,并抽时间优化,有必要的话,重构下。关于如何重构我很久之前写过一篇文章,可能观点有点简单,就随便看看吧。


2. 不要注释掉无用代码,直接删掉

有的人觉得这个代码日后会用到,所以经常把一大段代码注释掉,然后一年过去了,接手的同事也不敢删,于是留了一段祖传的无用注释。我认为,放心删掉吧,把代码变更追踪的功能交给svn或者git等版本管理工具。删了之后在log里写清楚你删了什么内容就好,日后如果用得到,你直接就去log里找当初的更改,然后复制回来就行了。这样做的好处是:

  • 提高代码可读性
  • 不给接手的同事造成困惑
  • 防止堆积成「屎山」


3. 切勿用拼音来命名变量

这是老生常谈了,拼音命名变量的坏处是,你很可能很快忘记一个变量的意义,而且可读性也不好。例如下面这段代码,你能看出变量名什么意思吗?

       var renwu = new Renwu() renwu.create() renwu.run()      

renwu是人物还是任务啊?renwu.run()是人物跑动还是任务执行啊?你可能写完代码三天后都忘了。


4. 代码写好同时也要规范注释

有的公司喜欢代码具有「自解释性」,认为代码如果需要注释,那就是代码没写好。其实我认为,写好代码后依然需要规范的注释,这可以方便输出文档,尤其是庞大的项目。例如你是做后端的,你做的REST API客户端要调用,你不能让他们直接读你的代码吧?这时候规范的注释就能帮你很大的忙了。

例如Javadoc,可以把你规范的Java代码注释转成格式好看的文档。


5. 函数里的代码保持同样的抽象层级。

有的人写代码喜欢把所有东西都写在一个函数里,其实大可不必,这样的后果是大量抽象层级不一样的内容连接在一起,导致这个函数可读性不好。这里举个例子

       public void loadgame(username+password){     initResource();     Socket s=new Socket("localhost",6666);       DataOutputStream dout=new DataOutputStream(s.getOutputStream());       dout.writeUTF(username+password);       dout.flush();       dout.close();       loadScene(); }     

这是不是读起来磕磕碰碰的。因为他们不是一个抽象层级的代码,你读起来思维需要多次转换。但如果改成

       public void loadgame(username, password){     initResource();     login(username, password)     loadScene(); }  private void login(username,password)) {     Socket s=new Socket("localhost",6666);       DataOutputStream dout=new DataOutputStream(s.getOutputStream());       dout.writeUTF(username+':'+password);       dout.flush();       dout.close();   }     

是不是就好读多了,把几个抽象级一样的函数放一起,把底层操作分开函数放。这样不仅利用阅读,也在debug时迅速查找。


最后再说一句,结对编程也是个不错的实践,我和我的猫咪都挺喜欢




  

相关话题

  为什么中国出了这么多厉害的互联网公司,但没有自己设计过编程语言? 
  为什么有些人心里默认女生做不了程序员? 
  你见过最烂的代码长什么样子? 
  自学编程后,找工作简历该怎样写? 
  如何获得高并发的经验? 
  使用命令行形式的程序的时候,能不能把需要输入的命令们提前编制好,再自动执行呢? 
  大公司笔试面试有哪些经典算法题目? 
  如何看待618钉钉程序员女装带货? 
  如果两个相似的软件产品都不好上手,那你们更喜欢产品免费有偿售后,还是产品收钱无偿售后? 
  最难调试修复的 bug 是怎样的? 

前一个讨论
知识壁垒容易造成对立,如今紧张的医患关系,怎么能打破医生对疾病知识的壁垒呢?
下一个讨论
学了三年的 Linux 了,我现在不能立马写出一个简单的 shell 脚本,怎么回事啊?





© 2024-05-19 - tinynew.org. All Rights Reserved.
© 2024-05-19 - tinynew.org. 保留所有权利