tonitech
V2EX  ›  PHP

大家写 php 代码都用哪一套编码规范?你们都了解自己的编码规范的好处吗?

  •  1
     
  •   tonitech · May 28, 2014 · 7533 views
    This topic created in 4552 days ago, the information mentioned may be changed or developed.
    昨天在公司跟同事们定编码规范,我一直采用的是PSR-2的规范,我推荐使用它。而有些同事无法接受class和function后面的花括号另起一行,我们陷入了争论之中,我也想不出为什么class和function后面的花括号要另起一行,有什么好处?

    我的想法是既然是团队协作开发,那我们必须要有一套自己的规范标准,不能因为不喜欢而不使用。规范就像宗教信仰,你要有自己的信仰,就得找到一个信奉的神灵。
    40 replies  •  2014-08-16 17:56:32 +08:00
    lm902
    lm902
    May 28, 2014
    1
    我表示格式都是Visual Studio给我自动改的,无论我是怎么写的都会自动改过来
    tonitech
    tonitech
    OP
    May 28, 2014
    2
    @lm902 你用vs不是写php的啊
    lm902
    lm902
    May 28, 2014
    3
    @tonitech PHP也有啊
    tonitech
    tonitech
    OP
    May 28, 2014
    4
    @lm902 对啊,用Zend Studio有format功能,里面可以选择format的code style,就有PSR-2选项的,但是有人不喜欢这个规范。。。
    yangqi
    yangqi
    May 28, 2014
    5
    感觉花括号最不重要,重要的是命名规范
    lm902
    lm902
    May 28, 2014
    6
    @yangqi 命名规范+1
    lm902
    lm902
    May 28, 2014
    7
    要不然写出 com.Company.name_space.classname().methodName()就233了
    xuwenmang
    xuwenmang
    May 28, 2014
    8
    没好处!
    1、显示器越来越扁,起始花括号另起一行?不觉得占行数啊。
    2、起始花括号起的是承上启下的作用,在同一行,非常明确是属于哪个逻辑。而另起一行,感觉生生被剥离了这种关系。
    3、其实我是看了2天drupal的代码,习惯了!但是上面两条是非常明确地。
    holystrike
    holystrike
    May 28, 2014 via iPhone❤️1
    9
    Class function namespace 另起一行是为了区分逻辑代码,因为这哥仨是语言结构,不是逻辑,
    if else switch while 才是逻辑,一眼看到起头花括号起头了,表示接下来是一个代码段,看到在屁股后边,那么接下的代码就表示程序要进行逻辑上的处理了
    lm902
    lm902
    May 28, 2014
    10
    <?
    class Example
    {
    /// <summary>
    /// Fxck the $target
    /// </summary>
    function Fxck ($target)
    {
    echo "$target is fxcked."
    }
    }
    ?>
    表示我差不多就是这样写PHP
    kslr
    kslr
    May 28, 2014
    11
    PSR-2 函数重启一行,其他均为屁股后面。
    tonitech
    tonitech
    OP
    May 28, 2014
    12
    @holystrike 谢谢!
    hellov22ex
    hellov22ex
    May 28, 2014
    13
    8楼的哥们是逗人么,第一条就在瞎掰
    mahone3297
    mahone3297
    May 28, 2014
    14
    又是一个争论贴?
    我觉得psr-2规范挺好。。。。我也比较喜欢class, function 花括号换行。。。
    icanfork
    icanfork
    May 28, 2014❤️1
    15
    @hellov22ex 哈哈,会引发决斗的

    我写PHP这样
    function func()
    {

    }

    写前端这样:
    function func(){

    }
    ichou
    ichou
    May 28, 2014
    16
    @belin520 握爪
    zjdboy
    zjdboy
    May 28, 2014
    17
    你为什么不自已改变规范,改变信仰
    tonitech
    tonitech
    OP
    May 28, 2014
    18
    @zjdboy 因为不满意的是少数人。
    micate
    micate
    May 28, 2014
    19
    不接受就开掉换个能接受的好了。
    kakaryan
    kakaryan
    May 28, 2014
    20
    总有人的意见不一致的.关键是要确定一个代码规范,不通过代码规范检查不能提交代码,就算绕过代码规范检查,合并代码上线的时候也需要做检查,不符合规范不允许提交.形成规范代码的习惯才是目的.
    muziyue
    muziyue
    May 28, 2014
    21
    花括号换行党和不换行党又要开始战争了吗
    qq286735628
    qq286735628
    May 28, 2014
    22
    看到PHPStorm里面的被打了颜色,就会想办法把颜色给搞掉,不管是warn还是notice,看着想牛皮藓一样,很不爽
    csx163
    csx163
    May 28, 2014
    23
    都看得懂,为何分换行不换行呢,程序员何苦为难程序员
    teavoid
    teavoid
    May 28, 2014
    25
    花括号真心不应该是争论的重点...
    akira
    akira
    May 28, 2014
    26
    同意25楼。
    换行什么的,不都是代码格式化工具做的事情么。
    luoyou1014
    luoyou1014
    May 28, 2014
    27
    换不换行没规范不要紧, 最多是眼睛看着略微不舒服.

    重要的应该是命名啊, 下划线和驼峰式也不用太纠结, 主要是严禁各种缩写命名, 拼音命名.

    被缩写命名坑的悲伤, 其他的压根不算事……
    t2doo
    t2doo
    May 28, 2014
    28
    已经习惯成这样了function(){
    }

    改不掉了
    Comdex
    Comdex
    May 28, 2014 via Android
    29
    用golang就不用争了,哈哈
    cevincheung
    cevincheung
    May 28, 2014
    30
    纯小写+下划线


    class my_class {
    ....
    }
    function my_func() {
    ....
    }
    markmx
    markmx
    May 28, 2014❤️1
    31
    自动排版 不纠结。。
    hellov22ex
    hellov22ex
    May 28, 2014
    32
    @belin520 同样,但是我觉得我还是去Delphi好,好歹是在和样子的
    procedure button1.Click.......
    const

    var

    begin
    end.
    wdkwdkwdk
    wdkwdkwdk
    May 28, 2014
    33
    你的头像是锤子么
    tonitech
    tonitech
    OP
    May 28, 2014
    34
    @wdkwdkwdk 是我自己设计的,里面是T。。。
    justfindu
    justfindu
    May 28, 2014
    35
    表示不另起一行. 因为 (){} 这两都需要shift. 在一行的时候正好顺手就打出来了, 然后 ←,Enter. 不然需要 ←←,Enter.

    嗯 其他命名规范还是需要的.
    tang3w
    tang3w
    May 28, 2014
    36
    @wdkwdkwdk 是我想多了吗...
    zxb888
    zxb888
    May 28, 2014
    37
    我一般是这样的
    function func()
    { $ar36='0123456789abcdefghijklmnopqrstuvwxyz';
    ....
    }
    spoonwep
    spoonwep
    May 28, 2014
    38
    phpstorm自动格式化……
    yakczh
    yakczh
    May 29, 2014
    39
    转java或者python吧,golang 就不用纠结这么无聊的问题了
    aWangami
    aWangami
    Aug 16, 2014
    40
    有办法改吗。真受不了!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2094 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 109ms · UTC 11:34 · PVG 19:34 · LAX 03:34 · JFK 06:34
    ♥ Do have faith in what you're doing.