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

2015-06-05 20:31:45 +08:00
 tanteng

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

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


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


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


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

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

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

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

嗯,其实我是来黑golang的。。。。
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
2015-06-05 21:35:22 +08:00




http://www.94cb.com/Pythonic-PHP-Code-Formatter/
每次说到代码风格,我都要祭出这两张图
Gonster
2015-06-05 21:50:39 +08:00
![ ](doge)
删掉美元符>_<
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
2015-06-05 22:00:28 +08:00
@raincious
@tanteng
为什么你们有些{在行首有些{在行尾啊
tanteng
2015-06-05 22:06:59 +08:00
@loveuqian 方法括号另起一行,方法内if,foreach等都是一行,这是PHP代码风格标准吧
raincious
2015-06-05 22:07:03 +08:00
weyou
2015-06-05 22:45:02 +08:00
1. 几乎没有逻辑空行
2. 长句太多没有换行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/196410

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX