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

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

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

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

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

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

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

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

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

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

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

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

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

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

18558 次点击
所在节点    程序员
123 条回复
Phariel
2018-09-16 03:46:54 +08:00
if (a == b) {
return true;
} else {
return false;
}

我想揍人
d18
2018-09-16 03:57:00 +08:00
新手比较喜欢炫技吧,简单的问题,恨不得把自己会的东西都用上去。
d18
2018-09-16 03:57:51 +08:00
所谓的“给你一把锤子,看什么都是钉子”。
FrankHB
2018-09-16 06:04:07 +08:00
反对 3。我撸了个语言,装了 Syntax Highlighting Pack 然后往里面加了自己的 tmLanguage 实现,但是 VS 就是不按我的意思识别 magic 来高亮(单独扩展名是正常的),我有啥办法。(看了下插件源码还是懵逼的,解释 tmLanguage/plist 不是插件而是 VS 自己搞定的,然而 cmake 这种直接整个 txt 名字都行,我用.txt+firstLineMatch 就不行……)
zxq2233
2018-09-16 06:53:46 +08:00
php 是世界上最好的语言
daigouspy
2018-09-16 07:11:02 +08:00
这不跟看字迹识人品一样吗?毫无意义的。
loading
2018-09-16 07:20:02 +08:00
color-themes. com
这个站是哪里的?
Android2MCU
2018-09-16 07:30:15 +08:00
原来我们用记事本写代码的在楼主眼里应该是新的不能再新的新手了
zek
2018-09-16 07:35:07 +08:00
专注于业务逻辑吧,别整没用的,idea 配色啥的浪费时间
loading
2018-09-16 07:42:50 +08:00
楼主你的 github 能不能贴一下,我想学编程,想学习一下。
lardud
2018-09-16 08:22:13 +08:00
一堆颜色一看就是新手
zjsxwc
2018-09-16 08:27:42 +08:00
变量名,here, there2, a, here3......





















但这些变量名是大佬雷军先生写的!你敢说他是新手? 233333333333
xillwill
2018-09-16 08:57:07 +08:00
谁不是新手过来的 你是在嘲讽自己的过去吗
经验通过积累而来 经验不同于技能 这种东西是学不来的
easylee
2018-09-16 08:57:36 +08:00
对配色没多大要求。
tvallday
2018-09-16 09:06:56 +08:00
@zjsxwc 二十几年前没有这么多软件工程上的要求,更讲究的是怎么合理利用硬盘和内存空间,现在时代不一样了。
shiguiyou
2018-09-16 09:14:22 +08:00
颜色太多太亮不觉得眼花缭乱吗?
greatghoul
2018-09-16 09:25:13 +08:00
配色是个人喜好,连这也要和新不新手关联,只能说有些吹毛求疵了。
alwayshere
2018-09-16 09:48:02 +08:00
if($a==true){}
lastpass
2018-09-16 09:59:17 +08:00
新手和老手的主要区别在于
老手:我的队友都是猪,我不这样写那群猪又看不懂,要瞎改,我解释都要解释半天,严重浪费我时间。
新手:队友是啥?维护又是啥?好吃吗?
lastpass
2018-09-16 10:01:11 +08:00
简单点说;
你将你的队友当猪来看,你就是老手。
你将你的队友当神仙来看,你就是新手。

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

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

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

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

© 2021 V2EX