仓酷云

标题: PHP网页编程之11步进步代码质量和全体事情效力 [打印本页]

作者: 透明    时间: 2015-1-16 22:17
标题: PHP网页编程之11步进步代码质量和全体事情效力
我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何工具其实都不简单。
这篇文章要先容的,是我作为专业程序员这些年来学到的能真正进步我的代码质量和全体事情效力的11件事变。
1.永久不要复制代码

不吝任何价值制止反复的代码。假如一个经常使用的代码片断呈现在了程序中的几个分歧中央,重构它,把它放到一个本人的函数里。反复的代码会招致你的同事在读你的代码时发生狐疑。而反复的代码假如在一个中央修正,在别的一个中央健忘修正,就会发生各处是bug,它还会使你的代码体积变得痴肥。古代的编程语言供应了很好的办法来办理这些成绩,比方,上面这个成绩在之前很难明决,而现在利用lambdas却很好完成:
  1. [/code][code]///<summary>///一些函数含有部分反复代码///</summary>voidOriginalA(){DoThingsA();//uniquecodeDoThingsB();}///<summary>///别的一个含有部分反复代码的函数///</summary>voidOriginalB(){DoThingsA();//没有反复的代码DoThingsB();}
复制代码
如今我们重构含有部分不异代码的函数,用delegate形式重写它们:
  1. [/code][code]///<summary>///Encapsulatesharedfunctionality///</summary>///<paramname="action">Userdefinedaction</param>voidUniqueWrapper(Actionaction){DoThingsA();action();DoThingsB();}///<summary>///NewimplmentationofA///</summary>voidNewA(){UniqueWrapper(()=>{//uniquecode});}///<summary>///NewimplementationofB///</summary>voidNewB(){UniqueWrapper(()=>{//uniquecode});}
复制代码
2.寄望你入手下手专心的时分

当你发明本人在扫瞄facebook或微博、而不是在办理成绩,这一般是一种你必要长久歇息的旌旗灯号。分开办公桌,往喝一杯咖啡,或往跟同事聊5分钟。只管如许做看起来有点反直觉,但久长往看,它会进步你的事情效力。
3.不要匆仓促赶义务而保持准绳

当带着压力往办理一个成绩或修正一个bug,你很简单得到便宜,发明本人仓促忙忙,乃至完整忘了一向保持的主要的测试历程。这一般会招致更多的成绩,会让你在老板或同事眼里显得很不专业。
PHP网页编程之11步进步代码质量和全体事情效力
登录/注册后可看大图

4.测试你完成的代码

你晓得你的代码能做甚么,并且试了一下,它的确好用,但你实践上必要充实的考证它。剖析一切大概的界限情形,测试在一切大概的前提下它都能准期的事情。假如有参数,传送一些预期局限外的值。传送一个null值。假如大概,让同事看看你的代码,问他们可否弄坏它。单位测试是抵达这类目标的惯例办法。
5.代码检察

提交你的代码之前,找个同事一同坐上去,向他注释你做了哪些修正。一般,如许做的过程当中你就可以发明代码中的毛病,而不必要同事说一句话。这比本人检察本人的代码要无效的多很多。
6.让代码更少

假如你发明写了大批的代码来办理一个复杂的成绩,你极可能做错了。上面的boolean用法是一个很好的例子:
  1. if(numMines>0){enabled=true;}else{enabled=false;}
复制代码
这时候你应当写成如许:
  1. enabled=numMines>0;
复制代码
代码越少越好。这会使bug更少,重构大概性更小,堕落的概率更小。要过度。可读性一律主要,你可不克不及如许做而使代码损失可读性。
7.为文雅的代码而勉力

文雅的代码十分的易读,只用手边很少的代码、让呆板做很少的运算就可以办理成绩。在各类情况中都做到代码文雅是很难的,但经由一段工夫的编程,你会对文雅的代码是个甚么模样有个开端的感到。文雅的代码不会经由过程重构来取得。当你看到文雅的代码是会很乐意。你会为它自大。比方,上面就是一个我以为是文雅的体例来盘算多边形面积的办法:
  1. [/code][code]staticpublicdoubleGetConvexPolygonArea(Vector2[]vertices){doublearea=0;for(inti=0;i<vertices.Length;i++){Vector2P0=vertices[i];Vector2P1=vertices[(i+1)%vertices.Length];area+=P0.Wedge(P1);}returnarea/2;}
复制代码
8.编写不言自明的代码

勿庸置疑,正文是编程中很主要的一部分,但可以不言自明的代码跟胜一筹,由于它能让你在看代码时就可以了解它。函数名变量名要稳重选择,好的变量/办法名字放到言语语义情况中时,不懂编程的人都能看懂。比方:
  1. [/code][code]voidDamagePlayer(Playerplayer,intdamageAmount){if(!player.m_IsInvincible&&!player.m_IsDead){player.InflictDamage(damageAmount);}}
复制代码
能自我申明的代码不克不及取代正文。正文是用来注释“为何”的,而自我申明的代码是来形貌“是甚么”的。
9.不要利用纯数字

间接把数字嵌进代码中是一种恶习,由于没法申明它们是代表甚么的。当有反复时更糟——不异的数字在代码的多个中央呈现。假如只修正了一个,而健忘了别的的。这就招致bug。必定要用一个定名常量来代表你要表达的数字,即便它在代码里只呈现一次。
10.不要做手工休息

当作一系列举措时,人类老是喜好出错误。假如你在做部署事情,而且不是一步能完成的,那你就是在做错事。只管的让事情能主动化的完成,削减工资毛病。当作事情量很年夜的义务时,这特别主要。
11.制止过早优化

当你要往优化一个已好用的功效代码时,你很有大概会改坏它。优化只能产生在有功能剖析呈报唆使必要优化的时分,一般是在一个项目开辟的最初阶段。功能剖析之前的优化举动纯属华侈工夫,而且会招致bug呈现。
聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。
作者: 灵魂腐蚀    时间: 2015-1-19 06:41
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\-\\\\\\\ 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\-\\\\\\\ 的,应该用的是下划线  \\\\\\\_\\\\\\\ ;
作者: 乐观    时间: 2015-1-27 06:44
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 若相依    时间: 2015-2-5 03:56
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
作者: 精灵巫婆    时间: 2015-2-11 04:16
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: admin    时间: 2015-3-1 21:24
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者: 老尸    时间: 2015-3-11 00:28
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
作者: 分手快乐    时间: 2015-3-17 17:08
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
作者: 因胸联盟    时间: 2015-3-24 14:29
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2