什么样的代码一看就知道是新手?

2018-09-16 00:44:18 +08:00
 yidinghe

有的代码一看就是新手写的,写这样的代码的程序员,基本上只能留在初级程序员的岗位上。这样的代码有哪些特点呢?

1、没有格式,混乱不堪。比如缩进对不齐、语句从不换行、空格和制表符混搭等等。

这表明作者缺乏阅读代码,包括自己代码的经验。只有长期经常阅读代码的人才会有意识的对自己的代码做格式化。

而缺乏阅读代码经验的人必然也缺乏维护代码的经验。这种人可能经常跳槽,连自己的代码都从来不看第二遍,留下一堆的坑让别人来填。

而缺乏维护代码经验的人也必然缺乏解决故障的经验和重构代码的经验,而这两个对程序员的工作效率来说是至关重要的。很多时候老油条看一眼就知道问题出在哪里,而新手要调试一整天。别让薪水花冤枉了。

你可能说我太吹毛求疵,不就是排版乱一点,哪那么多道道?但实际情况真的就是这样子。

2、不会命名,或老写错字。简单的单词都能拼错就不说了,我另外举个例子,纸张的正面不是 front 嘛,他一查字典,结果选了 positive,“积极正面”的正面,那好吧,反面你就用 negative 吧,我不,他又查字典,结果起个名字叫 reverse,这搞得完全看不懂了。

让这种人加到项目里面来,你就恨不得手把手的帮他把代码写了(也恨不得薪水都帮他领了),一不留神就各种奇葩名字。其实 Java 早就支持 Unicode,实在不行用中文名字算了。

3、语法高亮。这个从代码本身看不出,但可以瞄一眼作者的 IDE 是啥样。IDE 现在都可以自定义语法高亮,但是默认的情况下都只有三个颜色:关键字一个颜色,字符串一个颜色,剩下的一个颜色。

而实际上经验丰富的开发者都会尽可能多的用颜色,来区分类、成员、方法和参数等等,这样可以提高阅读效率。比如 color-themes.com 就有很多现成的风格。

看得舒服是次要的,最终目的是要提高阅读效率。当然除了颜色外,好的字体也很重要,这里就不多说了。总之,只有老油条才会关注这些东西,不当回事的多半是初学者。

说了这么多,其实一句话:当新手开发效率到了一个极限想要继续提升,就必须在代码的格式、命名、视觉效果上下功夫。这是新手必须要迈过的坎。

18504 次点击
所在节点    程序员
123 条回复
lolcat
2018-09-16 00:53:58 +08:00
反面不应该用 back 吗?
Leammin
2018-09-16 01:01:04 +08:00
命名是一生之敌 orz
megachweng
2018-09-16 01:08:17 +08:00
https://i.loli.net/2018/09/16/5b9d3bc60322d.png

https://i.loli.net/2018/09/16/5b9d3bd314f4b.png

https://i.loli.net/2018/09/16/5b9d3bd9d2444.png

感受一下?就让帮忙写几个单元测试,IDE 都给你波浪浪了一行了,也不知道改一下,头皮发麻
coffeSlider
2018-09-16 01:09:57 +08:00
你这鄙视链属于初学水平。
kaedea
2018-09-16 01:15:29 +08:00
该加空格没加,不该加空格随便加,对代码排版没有美观要求的人。
Kahnn
2018-09-16 01:19:52 +08:00
不喜欢颜色太多,IDEA 默认的配色就挺好的啊
reus
2018-09-16 01:23:16 +08:00
有些人例如 Rob Pike 是不用高亮的,虽然我也不理解,但是我知道他不是新手,他是老一辈的人。
ETiV
2018-09-16 01:31:18 +08:00
1、用 IDE 格式化代码功能能解决,一个快捷键的事儿
2、英语水平问题也是一个考量因素…我见过把“已购买”写成 buyed 的(同时“已售出”写成了 selled )
3、也可能因人而异,万一有新手喜欢用配色更丰富的主题呢~

我见过的新手代码:

- 能用循环写的代码,复制 N 多行然后一行一行的改
- 能用 K-V 处理的逻辑,把值 push_back 进数组,然后循环数组去找到对应的 value
yanaraika
2018-09-16 01:32:28 +08:00
新手喜欢把问题搞复杂,老手会把问题化简单
Hardrain
2018-09-16 01:34:42 +08:00
箭头形代码
从不用 elif 那种
kslr
2018-09-16 01:38:09 +08:00
唉,有时候一个单词要琢磨半天才能精准描述含义
3dwelcome
2018-09-16 01:43:54 +08:00
懒代码和经验没什么必然关系,和态度有关。我发现有些人很聪明,但就是没想把代码写好,就只想快点交差干自己的事情去。
congeec
2018-09-16 01:44:12 +08:00
@reus 他是特例。我写代码经常写错字,这时候关键字如果不是彩色就能发现错误
inhzus
2018-09-16 01:44:57 +08:00
前几天一起写项目,看了同组的代码简直崩溃。
正常情况下这么写:
func(){
a();
b();
c();
}
a b c 功能没有包含关系。
他们写的:
func(){
a();
}
a(){
...
b();
}
b(){
...
c();
}
帮他们 debug 了一次,idea 显示的波浪线看得我想死
innoink
2018-09-16 01:47:00 +08:00
这样的文我一天能写 10 个
hengo
2018-09-16 01:52:16 +08:00
@megachweng cancel authority watch 不会写,可以查啊,看的强迫症难受
wuhhhh
2018-09-16 01:57:33 +08:00
在开始写的时候,就已经把《阿里开发手册》看了一遍,基本上语法类的问题不大,自己也是新手,最快能看出新手的代码,看结构,看项目名,小写大写字母规定格式
hengo
2018-09-16 01:57:46 +08:00
@megachweng authenticate
broadliyn
2018-09-16 02:51:29 +08:00
lz 写了这么一大段没什么卵用的话肯定是工作上有谁惹你不快了于是上来发泄一通。
1010011010
2018-09-16 02:58:07 +08:00
宝宝宝宝宝宝树

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

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

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

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

© 2021 V2EX