tanteng
V2EX  ›  PHP

代码风格、写法可以怎么改进?让代码看起来高大上

  •  
  •   tanteng · Jun 5, 2015 · 6307 views
    This topic created in 4173 days ago, the information mentioned may be changed or developed.

    贴几张代码截图,代码写的很稀烂,我不是来show的,自己写的代码往往自己看觉得还可以,别人看就会觉得很烂,正是抱着一种学习的心态,想请大家提出很多意见,比如方法的命名,代码的格式,风格,以及写法可以怎么改进,让代码看上去更加高大上!

    这只是随手找个代码截图,就以这作为“批判”对象,至于具体实现什么功能就不讨论了,毕竟只是贴出部分代码,大家也不了解需求。献丑了~!

    code1
    http://ww2.sinaimg.cn/mw1024/62669ad9jw1esthlabgjfj20uk0kbn7l.jpg

    code2
    http://ww3.sinaimg.cn/mw1024/62669ad9jw1esthl9hzacj20sf0ksnes.jpg

    code3
    http://ww1.sinaimg.cn/mw1024/62669ad9jw1esthlaspaqj20ts0kjn9w.jpg

    26 replies  •  2015-09-20 09:52:57 +08:00
    tanteng
    tanteng
    OP
    Jun 5, 2015
    1
    有个地方重复使用了,应该独立出来写个方法。
    Septembers
    Septembers
    Jun 5, 2015 via Android❤️1
    2
    《重构》《修改代码的艺术》
    虽然这两本书都是面向Java开发者的
    但是可以学习思路
    wy315700
    wy315700
    Jun 5, 2015
    3
    等号没对齐,,对于强迫症患者来说 看着难受
    arbipher
    arbipher
    Jun 5, 2015
    4
    贴份gist以示诚意吧
    cvmax
    cvmax
    Jun 5, 2015 via Android❤️1
    5
    看php最佳实践。题主你好喜欢水。。。
    shanxuefeng
    shanxuefeng
    Jun 5, 2015
    6
    说真的我看你写的代码已经感觉很高大上了。咱写的那才叫挫呢
    tanteng
    tanteng
    OP
    Jun 5, 2015
    7
    @cvmax 最近已经很少水了,谢谢
    sunmonster
    sunmonster
    Jun 5, 2015
    8
    if 后面居然没有空格,你这个异教徒!
    http://cs.sensiolabs.org/
    tanteng
    tanteng
    OP
    Jun 5, 2015
    9
    @sunmonster 笑cry
    tanteng
    tanteng
    OP
    Jun 5, 2015
    10
    那个where($where)->field()链式方法太长了,应该换行。。
    raincious
    raincious
    Jun 5, 2015
    11
    1、长句断行,超过80个字符的句子考虑断行写,超过120的绝对要断行。
    2、想要代码写的漂亮,你得先有强迫症,比如&&和=>周围的空格,什么的。
    3、复用变量?都到这地步了,继续封装吧。代码逻辑复杂通常背后都有封装不良的因素。

    这是俺的代码,写的不敢说好看,也拿出来献丑:
    magicdawn
    magicdawn
    Jun 5, 2015
    12
    写golang吧,真的,装个go sublime插件,从此不再纠结

    - 分号,保存自动移除多余分号
    - brace 大括号换行,golang 强制不换行
    - 命名,golang 一个go文件,小写的是私有的,首字母大写的表示可以export的

    嗯,其实我是来黑golang的。。。。
    raincious
    raincious
    Jun 5, 2015
    13
    另外,isset($start_time) && empty($start_time) 和$end_time那段有点傻,是为了得到第一个元素的值么?

    为什么不用!empty检查下$data['data']然后array_pop($data['data']);?我没看懂?
    lincanbin
    lincanbin
    Jun 5, 2015❤️1
    14




    http://www.94cb.com/Pythonic-PHP-Code-Formatter/
    每次说到代码风格,我都要祭出这两张图
    Gonster
    Gonster
    Jun 5, 2015
    15
    ![ ](doge)
    删掉美元符>_<
    mahone3297
    mahone3297
    Jun 5, 2015
    16
    代码单行太长,注意换行
    等号对齐
    $good_type_id == 1 这种,不是应该用常量吗?拒绝magic number
    多余的变量(比如函数todayOnlineShop里的$data变量。data单词也拼错,应该是date)
    删除无用代码( //echo $uid;exit;)
    array 建议用 [](如果使用php5.4+的话)
    看不懂的地方(//不要问我为什么要这样写。。。。)

    lz做的是电商系统?有单元测试吗?
    loveuqian
    loveuqian
    Jun 5, 2015
    17
    @raincious
    @tanteng
    为什么你们有些{在行首有些{在行尾啊
    tanteng
    tanteng
    OP
    Jun 5, 2015
    18
    @loveuqian 方法括号另起一行,方法内if,foreach等都是一行,这是PHP代码风格标准吧
    weyou
    weyou
    Jun 5, 2015
    20
    1. 几乎没有逻辑空行
    2. 长句太多没有换行
    yushenga
    yushenga
    Jun 5, 2015 via Android
    21
    c有个混乱代码大赛,那风格才叫个性
    yushenga
    yushenga
    Jun 5, 2015 via Android
    22
    http://m.guokr.com/post/364973/
    这里好几个神风格
    webjin
    webjin
    Jun 5, 2015
    23
    @lincanbin 好风格
    WhatIf
    WhatIf
    Jun 6, 2015 via iPad
    25
    listrows是什么鬼
    fengxuejianshi
    fengxuejianshi
    Sep 20, 2015
    26
    if (xxx ){
    ...
    }

    用:
    if (xxx ):
    ...

    endif
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1796 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 13:44 · PVG 21:44 · LAX 05:44 · JFK 08:44
    ♥ Do have faith in what you're doing.