zoukankan      html  css  js  c++  java
  • 编码如风,华丽如诗

    做一个有仪式感的程序猿,编码如风,华丽如诗。

    • 优雅的命名
    • 清晰的结构
    • 不十分差劲的算法
    • 简单易懂的注释

    优雅的命名

    名不正,则言不顺,言不顺,则事不成  -论语

    命名很重要,命名应该本着不怕长就怕不清楚的原则,尽量把一个类、方法、变量的含义交代清楚,比如:

    $citycode
    $newpostrule
    $post_addtime

    命名长,但是很清楚。(建议学好英语,不然像我一样编码的同时要打开一个翻译软件。)

    接口的命名

    接口的命名一般都是前缀动词形容词,比如:

    • addcart.php(动词)
    • newuser.php(形容词)

    接口往往用来分装一个或一组行为,实现接口的类意味着它具有了一个或一组行为的能力,所有常用形容词。当实在找不到一个恰当的形容词时,名词也可以。

    类的命名

    php中类命名遵循以下规则:
    a. 以大写字母开头;
    b. 多个单词组成的变量名,单词之间不用间隔,各个单词首字母大写。
    例子:class MyClass 或class DbOracle等。

    尽量使用名词,不排除个别情况下把一个行为封装为类时使用动词。

    方法的命名

    使用动词或动词性短语。

    包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如有复数含义,类名可以使用复数形式。
    杜绝完全不规范的缩写,避免望文不知义。

    如果使用到了设计模式,建议在类名中体现出具体模式。

    其它的字段啊、属性啊、事件啊出现命名问题的比较少,不再讨论。比如有的人喜欢字段用下划线开头,有的人喜欢用英文加_(add_)开头,都无关紧要,求同存异,只要使用的词语恰当,并不会带来太多麻烦。

    此外需强调一点就是少用拼音多用英文,少用缩写多用全称,尽量不用拼音缩写,甚至是方言拼音缩写,还有英语加拼音,甚至是英语加拼音缩写......。本人就遇到过一个变量名叫 yytj ,最后一顿分析 发现是营业统计的开头字母拼音

    在这里还要提醒,毕竟我们在国内编码,代码还没有那么高端,尽力不要用一些高级词汇,例如我写的一些变了 Increase 最后我还要找翻译软件。

    清晰的结构


    书写规则是指在编写php程序时,代码书写的规则,包括缩进、结构控制等方面规范:

    1 代码缩进
    在书写代码的时候,必须注意代码的缩进规则,我们规定代码缩进规则如下:
    a. 使用4个空格作为缩进,而不使用tab缩进(对于ultraedit,可以进行预先设置)
    例子:
    for ( $i=0;$i<$count;$i++ )
    {
    echo “test”;
    }

    2 大括号{ }书写规则
    在程序中进行结构控制代码编写,如if、for、while、switch等结构,大括号传统的有两种书写习惯,分别如下:
    a.{直接跟在控制语句之后,不换行,如
    for ($i=0;$i<$count;$i++) {
    echo “test”;
    }
    b.{在控制语句下一行,如
    for($i=0;$i<$count;$i++)
    {
    echo “test”;
    }
    其中,a是PEAR建议的方式,但是从实际书写中来讲,这并不影响程序的规范和影响用phpdoc实现文档,所以可以根据个人习惯来采用上面的两种方式,但是要求在同一个程序中,只使用其中一种,以免造成阅读的不方便。

    3 小括号( )和函数、关键词等
    小括号、关键词和函数遵循以下规则:
    a. 不要把小括号和关键词紧贴在一起,要用一个空格间隔;如if ( $a<$b );
    b. 小括号和函数名间没有空格;如$test = date(“ymdhis”);
    c. 除非必要,不要在Return返回语句中使用小括号。 如Return $a;

    4 =符号书写
    在程序中=符号的书写遵循以下规则:
    a. 在=符号的两侧,均需留出一个空格;如$a = $b 、if ($a = = $b)等;
    b. 在一个申明块,或者实现同样功能的一个块中,要求=号尽量上下对其,左边可以为了保持对齐使用多个空格,而右边要求空一个空格;如下例:
    $testa     = $aaa;
    $testaa   = $bbb;
    $testaaa = $ccc;

    5 if else swith for while等书写
    对于控制结构的书写遵循以下规则:
    a. 在if条件判断中,如果用到常量判断条件,将常量放在等号或不等号的左边,例如:
    if ( 6 == $errorNum ),因为如果你在等式中漏了一个等号,语法检查器会为你报错,可以很快找到错误位置,这样的写法要多注意;
    b. switch结构中必须要有default块;
    c. 在for和wiile的循环使用中,要警惕continue、break的使用,避免产生类似goto的问题;

    算法

    这里就涉及到了mysql的优化了,也不一一举例了。

    该分页的地方分页。前端涉及到懒加载,瀑布流等。

    简单易懂的注释

    程序注释
    每个程序均必须提供必要的注释,书写注释要求规范,参照PEAR提供的注释要求,为今后利用phpdoc生成php文档做准备。程序注释的原则如下:
    a. 注释中除了文件头的注释块外,其他地方都不使用//注释,而使用/* */的注释;
    b. 注释内容必须写在被注释对象的前面,不写在一行或者后面;

     程序头注释块
    每个程序头部必须有统一的注释块,规则如下:
    a. 必须包含本程序的描述;
    b. 必须包含作者;
    c. 必须包含书写日期;
    d. 必须包含版本信息;
    e. 必须包含项目名称;
    f. 必须包含文件的名称;
    g. 重要的使用说明,如类的调用方法、注意事项等;

    代码之外

    代码规范编写只能算是锦上添花,更加高级的算法和逻辑思维才是一个合格程序猿的审核标准,就像咱哈尔滨大盒饭,雀黑,齁咸,希螚,胶黏,一天一个味没有一点变化规则。但离家多年想念的还是那12块钱三荤两素。

    作文以记之

    辛丑年辛丑月下,疫之猖獗,尤为甚之。亮隔之粤b。不可归乡,归乡则隔一十四日。一周之末,摸鱼无趣,遂重修代码规范,属予作文以记之。予今之胜状,驼峰命名,强制注释,迫之芸芸码士,俱迂腐巨细之论,此前人之述备矣。乃吾辈之悲。

  • 相关阅读:
    LeetCode "Super Ugly Number" !
    LeetCode "Count of Smaller Number After Self"
    LeetCode "Binary Tree Vertical Order"
    LeetCode "Sparse Matrix Multiplication"
    LeetCode "Minimum Height Tree" !!
    HackerRank "The Indian Job"
    HackerRank "Poisonous Plants"
    HackerRank "Kundu and Tree" !!
    LeetCode "Best Time to Buy and Sell Stock with Cooldown" !
    HackerRank "AND xor OR"
  • 原文地址:https://www.cnblogs.com/yumingzhao/p/14314540.html
Copyright © 2011-2022 走看看