对于程序员来说,怎样才算是在写有“技术含量”的代码?

阅读 6.5k
11 个回答

“技术含量”这个词,不好界定。

这里有一个故事:初级程序员运键如飞,一天写了 1000 行代码,效率非常高;高级程序员如老僧入定,盯着屏幕半天才搞几下键盘,两天只写了不足 100 行……

看到这里,老板们都想去招初级程序员了,毕竟效率高,还不贵。但是后来呢?

后来一个月内,初级程序员写那 1000 行代码经常反复修改,增增减减已达数千行的变更;而高级程序员那不足 100 行的代码只改了两个拼写错误……

再然后,那 1000 行代码始终存在不可解决的问题,只好让高级程序员来处理一下,于是高级程序员经过 3 天的重构和修改,把 1000 行代码改成了 100 行,再没出现过问题……

故事就是故事,但在一定程度也反应了事实。高级程序员和初级程序员的差距,就在于“技术含量”,而所谓的技术含量并不仅仅表现在代码上,而是表现在对目标的理解、完整的逻辑分析和精准的代码描述和高覆盖率的容错处理上 —— 说白了就是 —— 即时是一个小任务,也仍然需要经历分析、设计、编写、测试几个阶段,而不是简单的照着字面意思一阵狂写,把代码堆出来了事。

软件开发技术,涵盖了软件专业方方面面的知识。大学里学的各种原理、语言、数据结构、算法,甚至数学和英语都能起到增强软件开发技术的作用。


当然,如果只是想说写些看起来高大上的语句,倒是也不难,只需要做到两点:

  • 了解你的技术栈,尤其是语法,熟悉各种语法的用途并能在写代码时恰当选用
  • 了解技术栈的函数库(类库),知道在写功能的时候有什么东西可以用,而不是自己去堆代码实现一个不稳定的新轮子。

此外,借助工具的力量,可以非常有效的提交自己的编程技巧,比如

  • 用熟你的 IDE/Editor 和技术栈工具链
  • 使用 Lint 类工具,尤其是自带修复功能的
  • 重构类工具,会对可以重构的提供做出提示的(虽然不一定照提示实施)
  • 智能代码类工具,可以方便的看到别人是怎么考虑和处理的同类问题

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

个人的标准很简单,就是别让同事嫌弃骂娘就行,包括但不限于以下原则:

  • 多用常量定义,不要出现魔法值;
  • 尽量精简:能return 表达式,就别 return 表达式 ? true : false 以及 if 表达式 {return true} else {return false}
  • DRY,Don't Repeat Yourself,能拎出来单独成立的方法,就别到处复制粘贴;
  • 方法代码比较长的时候,可以拆分成多个方法,这些方法命名直观一点,都相当于注释了;
  • 多写注释:别说同事看不懂,很多时候过段时间自己都看不懂;
  • 尽量用英语命名,别用拼音:看到个YJS你能联想出来这个是『云计算』吗?还是CLOUD_COMPUTING更好理解些;

希望能帮助到你。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

开源共创是一种途径。

将代码开源以后有一定用户量的话,也是对自己、对代码技术含量的一种体现。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

三方面来谈
对于工作

在规定时间内做到能做的最好,用最少的代码维持业务的发展与增长,不是应付即可。

对于个人

这次比上次写的好了吗

对于他人

简单易上手,容易阅读

多看大神的开源代码,学习他们的写法,慢慢的你自己就会写好一些了

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

我觉得能被别人认可的代码才算吧,比如说将代码放到github看看能获得多少star

能很好的服务于业务,就是好代码

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

我觉得遇到一个需求,动手写代码之前,先从宏观上好好想想,先设计设计,等有思路了再动手,不然写的代码东一下西一下,逻辑混乱

细节上就是要有统一规范,避免一个函数太长,封装的时候不要逻辑块太长,多拆分,但也不要拆分的太细,在封装和解耦之间找架构上的平衡

  1. 首先是看你的代码觉得你基础知识是掌握的牢靠的,不会犯那些低级的错误。例如一些一些数组的操作函数,你却自己去实现了一遍;类和子类调用方法时,你不知道怎么去调用,到底调用的哪个,有些语言层面提供的功能,你却不知道,等等。
  2. 在符合业务的前提下,你的设计是不是合理、清晰,逻辑的考量是否完备,模块的设计,类的设计,相关算法的设计等等。
  3. 对于逻辑性十分强的部分,你是否有足够的注释,让别人能够清晰地了解你的思路,而不是写一堆晦涩难懂,高级语法堆砌成山的代码,能用简单的方式实现的逻辑,就不用复杂,晦涩的方式去实现。

个人觉得就像写书的作者一样,能够让读者一眼就明白书想表达的是什么,就是好书,同理,能够让别人一眼就看懂,而且觉得很简单高效的代码就是好的代码。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

真不太好界定。比如公司只有A程序员会C++,他写了一个性能库,全公司都在用,但其他人都看不懂。在C++同行里他的代码并不算优雅和高级,但是他的代码在公司里仍然是最有“技术含量”的。

我觉得当你的代码能为公司、大众或者你所服务的机构产生价值的时候,你的代码即使不太优雅和高级,也是有“技术含量”的。并不是要写那些高大上的语法、性能极致的代码才算是有技术含量的。支付宝的第一行健康码代码为什么会被国家博物馆收藏,是因为代码的技术含量高吗?当然不是,是因为它所产生的价值。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
极客观点
子站问答
访问
宣传栏