个人不敢说哪个好,哪个坏,但是这种编程风格的差异,直接导致一些代码不能够被有效的复用,来张图大家吐槽
1 teriyaki 2015-07-19 05:20:11 +08:00 ![]() 1.模块解耦好 这个问题不大 2.不要总想着复用写类 有时copypaste更好 |
![]() | 2 Septembers 2015-07-19 05:22:47 +08:00 via Android “软件,就像所有技术一样,具有天然的政治性。代码必然会反映作者的选择、偏见和期望。” see http://kb.cnblogs.com/page/79308/ |
![]() | 3 Matrixbirds 2015-07-19 05:53:53 +08:00 所以要统一一下coding style |
![]() | 4 MrEggNoodle 2015-07-19 08:05:22 +08:00 大家坐下来讨论吧,选择一种规范。 |
![]() | 5 haiyang416 2015-07-19 08:17:13 +08:00 via Android 这东西不是规范要求怎么这就怎么写么?如果没有规范,那就没有槽点。 |
![]() | 6 Septembers 2015-07-19 08:56:50 +08:00 via Android @haiyang416 像golang那样强行格式化统一代码风格不是每个团队/人都能接受的 |
![]() | 7 Decadent 2015-07-19 11:43:19 +08:00 为什么谷歌要执行严格的代码编写规范 | 外刊IT评论 http://www.vaikan.com/google-coding-standards/ |
8 alphonsez 2015-07-19 15:05:39 +08:00 没必要统一也统一不了。就像最终的代码质量也是参差不齐。 有用的代码一定会被一遍一遍重写到足够好为止。没用的代码who cares. |
9 crystaldust 2015-07-19 15:41:59 +08:00 没怎么写过PHP,没看出来啥问题啊? |
![]() | 10 run2 2015-07-19 15:49:50 +08:00 php-cs-fixer 在git push 前hook |
11 rming OP |
12 rming OP |
![]() | 13 Septembers 2015-07-19 18:06:28 +08:00 @rming $conditon 这里应该用复数形式吧? |
![]() | 14 picasso250 2015-07-19 18:20:10 +08:00 纠结大括号的程序员将来都不是成功的CTO |
15 raincious 2015-07-19 18:35:45 +08:00 ![]() 想知道能写这样代码的程序员值多少钱。 一个叫tableCondition的方法硬依赖了$_GET(直接$_GET然后intval就不多说了)。 正确的API应该是: public function tableCondition($pid) (其实不应该是buildTableCond么?) 只有控制器能够接受用户输入,其他模块接收来自内部的传递的参数(比如来自控制器处理后的)。然而看截图的样子应该是Model吧? |
16 rming OP |
17 hellokittyer 2015-07-19 19:35:05 +08:00 via Android 就看leader了 |
![]() | 20 sogood 2015-07-19 20:39:17 +08:00 via iPhone 用 phpfmt |
![]() | 21 matthewz 2015-07-19 20:57:05 +08:00 代码风格肯定统一啊 怎么会有不统一的公司? review 直接打回去重写 |
23 raincious 2015-07-19 21:36:20 +08:00 ![]() @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 (手打的,未测试过) |
![]() | 24 zhicheng 2015-07-19 21:41:35 +08:00 对于编码风格,必须给掰直喽! |
![]() | 25 zhicheng 2015-07-19 21:43:47 +08:00 还有统一约定的模块名,对象名,字段名,约定俗成的名称变量等,建立成文档。最烦有些程序员梦想自己是个艺术家。遇到这样的拖出动枪毙。 |
26 itbdw 2015-07-19 23:34:11 +08:00 via iPhone 团队核心成员需制定规范的。而且代码质量确实堪忧 |
27 salmon5 2015-07-20 00:28:12 +08:00 leader不关心规范,同事们不鸟规范怎么办? |
![]() | 28 fx 2015-07-20 00:29:35 +08:00 Rails大法好 |
![]() | 29 tushiner 2015-07-20 00:40:15 +08:00 如若不是天才,偏理性的风格更适合团队协作开发。 |
![]() | 31 rainysia 2015-07-20 00:49:46 +08:00 要吐槽的话.. 上一种, 符号两边应该空格..而且$_GET... 下一种, 也一样. 都不咋滴 可以看看PHP的PSR规范. 再来吐槽 然后差不多可以结贴了 |
![]() | 32 liuzelei 2015-07-20 01:31:35 +08:00 有PEP-8这种殿堂级的代码规范做参考还不够么? |
![]() | 33 liuzelei 2015-07-20 01:31:58 +08:00 sorry, 我错了 |
34 cz208209 2015-07-20 08:41:15 +08:00 LZ知足吧 要是给你个没有风格的 你直接跪了 我就不贴了 |
![]() | 35 mozartgho 2015-07-20 17:16:50 +08:00 同一个项目中最好使用一致的代码风格,这样不同的人看代码就不会感到别扭 |