代码风格、写法可以怎么改进?让代码看起来高大上 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tanteng
V2EX    PHP

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

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

    贴几张代码截图,代码写的很稀烂,我不是来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     Solana     2737 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 11:44 PVG 19:44 LAX 04:44 JFK 07:44
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86