rming
46.45D
V2EX  ›  PHP

团队中成员编程风格差异好大

  •  
  •   rming · Jul 19, 2015 · 7080 views
    This topic created in 4131 days ago, the information mentioned may be changed or developed.

    个人不敢说哪个好,哪个坏,但是这种编程风格的差异,直接导致一些代码不能够被有效的复用,来张图大家吐槽

    35 replies  •  2015-07-20 17:16:50 +08:00
    teriyaki
    teriyaki
    Jul 19, 2015❤️1
    1
    1.模块解耦好 这个问题不大
    2.不要总想着复用写类 有时copypaste更好
    Septembers
    Septembers
    Jul 19, 2015 via Android
    2
    “软件,就像所有技术一样,具有天然的政治性。代码必然会反映作者的选择、偏见和期望。”
    see http://kb.cnblogs.com/page/79308/
    Matrixbirds
    Matrixbirds
    Jul 19, 2015
    3
    所以要统一一下coding style
    MrEggNoodle
    MrEggNoodle
    Jul 19, 2015
    4
    大家坐下来讨论吧,选择一种规范。
    haiyang416
    haiyang416
    Jul 19, 2015 via Android
    5
    这东西不是规范要求怎么这就怎么写么?如果没有规范,那就没有槽点。
    Septembers
    Septembers
    Jul 19, 2015 via Android
    6
    @haiyang416 像golang那样强行格式化统一代码风格不是每个团队/人都能接受的
    Decadent
    Decadent
    Jul 19, 2015
    7
    为什么谷歌要执行严格的代码编写规范 | 外刊IT评论
    http://www.vaikan.com/google-coding-standards/
    alphonsez
    alphonsez
    Jul 19, 2015
    8
    没必要统一也统一不了。就像最终的代码质量也是参差不齐。
    有用的代码一定会被一遍一遍重写到足够好为止。没用的代码who cares.
    crystaldust
    crystaldust
    Jul 19, 2015
    9
    没怎么写过PHP,没看出来啥问题啊?
    run2
    run2
    Jul 19, 2015
    10
    php-cs-fixer
    在git push 前hook
    rming
    rming
    OP
    Jul 19, 2015
    11
    rming
    rming
    OP
    Jul 19, 2015
    12
    @Septembers
    “软件,就像所有技术一样,具有天然的政治性。代码必然会反映作者的选择、偏见和期望。”
    学习了。
    如果是我,我觉得可能会这样写

    ![]( )
    Septembers
    Septembers
    Jul 19, 2015
    13
    @rming $conditon 这里应该用复数形式吧?
    picasso250
    picasso250
    Jul 19, 2015
    14
    纠结大括号的程序员将来都不是成功的CTO
    raincious
    raincious
    Jul 19, 2015❤️1
    15
    想知道能写这样代码的程序员值多少钱。

    一个叫tableCondition的方法硬依赖了$_GET(直接$_GET然后intval就不多说了)。

    正确的API应该是:
    public function tableCondition($pid)

    (其实不应该是buildTableCond么?)

    只有控制器能够接受用户输入,其他模块接收来自内部的传递的参数(比如来自控制器处理后的)。然而看截图的样子应该是Model吧?
    rming
    rming
    OP
    Jul 19, 2015
    16
    @Septembers 😅
    @raincious 看看就好,不要激动
    hellokittyer
    hellokittyer
    Jul 19, 2015 via Android
    17
    就看leader了
    Keita1314
    Keita1314
    Jul 19, 2015
    18
    @raincious 不太清楚硬依赖$_GET是什么意思,想请教一下
    rming
    rming
    OP
    Jul 19, 2015
    19
    @Keita1314 quick and dirty 仅供吐槽
    sogood
    sogood
    Jul 19, 2015 via iPhone
    20
    用 phpfmt
    matthewz
    matthewz
    Jul 19, 2015
    21
    代码风格肯定统一啊 怎么会有不统一的公司? review 直接打回去重写
    Rube
    Rube
    Jul 19, 2015
    22
    @Keita1314 模块无法独立出来
    raincious
    raincious
    Jul 19, 2015❤️1
    23
    @Keita1314

    $_GET是超级全局变量,储存的是URL Query的内容(属于用户输入)

    硬依赖我指的是直接在不应该使用这个变量的地方直接使用了这个变量。也就是我上面说的Controller来拿用户输入,Model只负责处理从Controller得到的数据(Controller给的)。

    直接使用$_GET导致这个方法与$_GET['pid']耦合了,如果以后想要重用,也就只能CopyPaste,这会导致在未来项目因为代码量变大而变得很难维护。

    因此这里不应该直接用$_GET的数据(楼主的代码里还用了下isset),而应该用其他方法来传递给这个方法,比如作为参数。

    其实原本的代码也就是12楼这么简单,但是用Request去拿$_GET也是换汤不换药……

    就这个问题来说,想解决这个耦合很简单,写个Parameter的类作为容器,将$_GET里所有需要用到的数据导入进去就可以了,然后就可以比如:

    'parnet_id' => $this->parameter->pid,

    这样这个Model就仅仅依赖这个Parameter类,而不依赖$_GET了。

    Parameter类比如:
    https://gist.github.com/raincious/0a1657312a54fc15a41c
    (手打的,未测试过)
    zhicheng
    zhicheng
    Jul 19, 2015
    24
    对于编码风格,必须给掰直喽!
    zhicheng
    zhicheng
    Jul 19, 2015
    25
    还有统一约定的模块名,对象名,字段名,约定俗成的名称变量等,建立成文档。最烦有些程序员梦想自己是个艺术家。遇到这样的拖出动枪毙。
    itbdw
    itbdw
    Jul 19, 2015 via iPhone
    26
    团队核心成员需制定规范的。而且代码质量确实堪忧
    salmon5
    salmon5
    Jul 20, 2015
    27
    leader不关心规范,同事们不鸟规范怎么办?
    fx
    fx
    Jul 20, 2015
    28
    Rails大法好
    tushiner
    tushiner
    Jul 20, 2015
    29
    如若不是天才,偏理性的风格更适合团队协作开发。
    wd0g
    wd0g
    Jul 20, 2015
    30
    @rming 直接将参数代入到sql中导致sql注入
    rainysia
    rainysia
    Jul 20, 2015
    31
    要吐槽的话..

    上一种, 符号两边应该空格..而且$_GET...

    下一种, 也一样. 都不咋滴

    可以看看PHP的PSR规范. 再来吐槽 然后差不多可以结贴了
    liuzelei
    liuzelei
    Jul 20, 2015
    32
    有PEP-8这种殿堂级的代码规范做参考还不够么?
    liuzelei
    liuzelei
    Jul 20, 2015
    33
    sorry, 我错了
    cz208209
    cz208209
    Jul 20, 2015
    34
    LZ知足吧 要是给你个没有风格的 你直接跪了 我就不贴了
    mozartgho
    mozartgho
    Jul 20, 2015
    35
    同一个项目中最好使用一致的代码风格,这样不同的人看代码就不会感到别扭
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   955 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 19:53 · PVG 03:53 · LAX 11:53 · JFK 14:53
    ♥ Do have faith in what you're doing.