V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tanteng
V2EX  ›  PHP

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

  •  
  •   tanteng · 2015-06-05 20:31:45 +08:00 · 5358 次点击
    这是一个创建于 3490 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    这是俺的代码,写的不敢说好看,也拿出来献丑:
    magicdawn
        12
    magicdawn  
       2015-06-05 21:31:04 +08:00
    写golang吧,真的,装个go sublime插件,从此不再纠结

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

    嗯,其实我是来黑golang的。。。。
    raincious
        13
    raincious  
       2015-06-05 21:33:14 +08:00
    另外,isset($start_time) && empty($start_time) 和$end_time那段有点傻,是为了得到第一个元素的值么?

    为什么不用!empty检查下$data['data']然后array_pop($data['data']);?我没看懂?
    lincanbin
        14
    lincanbin  
       2015-06-05 21:35:22 +08:00   ❤️ 1




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

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

    用:
    if (xxx ):
    ...

    endif
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1038 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:40 · PVG 04:40 · LAX 12:40 · JFK 15:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.