阅读更多

35顶
4踩

研发管理

转载新闻 写更少的代码

2012-07-02 17:03 by 副主编 MnouW 评论(26) 有13337人浏览
软件开发的一个基本事实是:你需要写代码。但是一个最大的概念误区是“写代码就是我的工作”。当我开始我的软件开发者生涯时,我就陷入了这个误区。

代码是强大的,它能让你做许多事情,你觉得自己是有效率的,觉得自己完成了工作。然后,这些年来我学到了事情的真实的本质:一个程序员的工作的本质是写尽可能少的代码。

不要误解我的意思。我不是说我们应该压缩代码,以尽量少敲键盘为目的,从而让写出来的代码根本无法理解。当你想到,作为一个程序员,你的绝大部分时间将用来维护你写的可怕的代码这一事实的时候,你就会觉得“写更少的代码,不要让自己写的代码给自己更来更大的工作量”这一原则是一个非常不错的主意。

为什么?

想想你的工作。想想你使用的工具,看看你喜欢用来开发的框架。你做的每件事,你使用的每件工具,都是为了让你写更少的代码。你的工具能让你犯更少的错误,并且把那些可能会给你带来麻烦的底层细节都抽象出来。

那么,为什么你需要写更少的代码?前文中我说:你的工作就是写更少的代码。其实我没有说出真相。你的真正的工作是思考。你的工作是思考要解决的问题,设计一个优雅的解决方案,然后把这个方案变成软件。而开发软件的一个副产品是,你需要通过写代码来解决问题。

代码是副产品

代码并没有那样重要。之所以我们喜欢让自己那样认为,是因为当我们开始干活、把解决方案变成代码时,写代码看来就好像既是手段,又是目的。我们谈论自己使用的编辑器,谈论我们使用的编程语言和我们的编程环境。我这样做过,你这样做过,我们都这样做过。诚然,享受你的工作带给你的快乐是无可厚非的,但是你要意识到,代码是很棒的,但它同样是你的敌人:写代码花掉你大量的时间,它可能有各种bug,它可能很难理解,或者不够优雅。

这就是我为什么坚持“写更少的代码”的原因。当我觉得一些东西变得超出需要的烦琐、或者比它原本的样子更复杂时,我告诉自己“写更少的代码”。当我写了太多的代码以至于很难在上下文中理解它们时,我就重构、清理、坚持想着“写更少的代码”。

虽然让我很痛苦,但不得不说:有时写大量的代码是无法避免的。但是,当你不能保持简洁(concise)时,则保持清晰(clear)。“写更少的代码”是就写干净(clean)的代码,写清晰(clear)的代码。当你写的代码足够简练时,你的程序的目的就变得更加清楚。

那么,这一课的经验是什么呢?我认为最重要的是“代码只是一个副产品”,它是你在你工作的过程中不可避免要创造出来的东西。因此,多思考,多重构,去掉一些老旧的代码,写更少的新的代码,给自己一个机会,从今天开始。

英文原文:Write Less Code
来自: 译言网
35
4
评论 共 26 条 请登录后发表评论
26 楼 wjch_111 2012-07-09 10:32
timshaw9791 写道
是结晶,也是责任与负担。
就像生孩子,以前是人多力量大,要多生。
但现在生多了孩子你养不起,所以鼓励优生优育。

有道理!!!很恰当的比喻。
25 楼 timshaw9791 2012-07-05 02:53
巴巴米 写道
代码明明是思考的结晶,为什么就变成了副产品了?那你的产品是什么?

是结晶,也是责任与负担。
就像生孩子,以前是人多力量大,要多生。
但现在生多了孩子你养不起,所以鼓励优生优育。
24 楼 pengmj 2012-07-04 17:58
LZ应该是想说重构吧?
23 楼 450029462 2012-07-04 11:02
简单了 我们吃什么  , 吃风?
22 楼 骨之灵魂 2012-07-04 09:34
geminiyellow 写道
巴巴米 写道
代码明明是思考的结晶,为什么就变成了副产品了?那你的产品是什么?

换而言之,泥水工用的车子铲子也是劳动结晶,这样说也算是这楼的产品?
不能一厢情愿的,副产品就是副产品。别清高了。

你的类比根本就不恰当,车子铲子应该相当于IDE,而代码应该是立起的柱子,码的砖。你能说这些不是产品么?
21 楼 javaEEdevelop 2012-07-04 09:25
学个毛。。
20 楼 geminiyellow 2012-07-04 07:36
巴巴米 写道
代码明明是思考的结晶,为什么就变成了副产品了?那你的产品是什么?

换而言之,泥水工用的车子铲子也是劳动结晶,这样说也算是这楼的产品?
不能一厢情愿的,副产品就是副产品。别清高了。
19 楼 巴巴米 2012-07-03 22:20
代码明明是思考的结晶,为什么就变成了副产品了?那你的产品是什么?
18 楼 xyang81 2012-07-03 21:14
同时代码量越少,日后维护和扩展也更方便!
17 楼 ty2635605 2012-07-03 17:13
代码想减少 还需要水平 没那水平怎么减少代码量
16 楼 yintingbird 2012-07-03 16:46
对对对,代码只是你思想的表现形式而已,多了不代表质量就高
15 楼 chairmanMao 2012-07-03 16:34
geminiyellow 写道
hatedance 写道
"要让自己写的代码给自己更来更大的工作量。"
为了不失业,这个主意很好。

当然,开始的时候因为傻逼公司要靠代码量来决定年终成绩。
哥看到了十层for循环也不改,然后拷贝了一个9层for循环。
看到5个一模一样的类我也不说。

……,汗,不科学的考评害死人啊
14 楼 transist 2012-07-03 15:22
代码只是通向目标的一个工具而已
13 楼 geminiyellow 2012-07-03 14:54
hatedance 写道
"要让自己写的代码给自己更来更大的工作量。"
为了不失业,这个主意很好。

当然,开始的时候因为傻逼公司要靠代码量来决定年终成绩。
哥看到了十层for循环也不改,然后拷贝了一个9层for循环。
看到5个一模一样的类我也不说。
12 楼 jnxp 2012-07-03 11:51
不知道 这句话吗? 写下的代码就是欠下的债。
11 楼 hatedance 2012-07-03 11:20
"要让自己写的代码给自己更来更大的工作量。"
为了不失业,这个主意很好。
10 楼 witcheryne 2012-07-03 10:49
让我想到一句话:
"代码越多,负债越多".
9 楼 sunangie 2012-07-03 10:17
同意这个观点。就像乔布斯信奉的理念一样“至繁则至简”
8 楼 xiaokang1582830 2012-07-03 09:36
程序员的责任是写高效的代码,精品代码...
7 楼 luchao789 2012-07-03 08:45
很不错,值得学习

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 如果你热爱编码,就应该少写代码

    对于程序员来说,如果你热爱编码,那么我也劝你:“能少写一行代码就尽量少写一行。” 可能有些同学觉得这话听起来有点玄乎:“代码写得少,不就意味着缺乏实战经验吗?那我何年何月才能进一线大厂,成为真正的大神...

  • 在java中写出html代码,在java里写html代码

    在java里写html代码[2021-02-09 07:31:38]简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。...

  • 写出漂亮代码的45个小技巧

    不知道大家有没有经历过维护一个已经离职的人的代码的痛苦,一个方法写老长,还有很多的if else ,根本无法阅读,更不知道代码背后的含义,最重要的是没有人可以问,此时只能心里默默地问候这个留坑的兄弟。...

  • 优雅写代码的45个小技巧

    比如在项目中不同的类型的业务可能需要上传各种各样的附件,此时就可以定义好不同的一个附件的枚举,来区分不同业务的附件。不要在代码中直接写死,不定义枚举,代码阅读起来非常困难,直接看到数字都是懵逼的。。

  • 毕业前写了20万行代码,让我从成为同学眼里的面霸

    20万行代码写完,毕业了找一份工作不是问题! 刚一毕业因为找不到工作,就得报名去参加Java培训的大有人在。并不是说参加培训就不好,只不过以你现在这个毕业的时间点参加,就会显得特别匆忙。因为你的压力既来自于...

  • 用什么软件写html语言,写html代码用什么软件

    写html代码的软件:1、Sublime Text;2、Dreamweaver;3、WebStorm;4、HBuilder;5、Notepad;6、VSCode;7、Vim;8、Aptana Studio;9、IntelliJ IDEA。本教程操作环境:windows7系统、HTML5版、Dell G3电脑。1、...

  • js方法写在html中,在js中写html代码怎么写

    在js中写html代码的方法:首先使用div标签创建一块区域,给div标签添加一个id属性;然后在js中将一段html代码保存在html变量中;最后使用innerHTML属性,将html代码动态写入div标签内即可。本文操作环境:Windows7...

  • 自动写代码?别闹了!

    大家好,我是良许。这几天,GitHub 上有个很火...也就是说,你只要把注释写好,它就会自动帮你生成对应的代码,吓人吧~除此之外,它还可以自动生成重复性代码、自动生成测试代码,同时也可以生成多套代码方案供你选择。

  • 如何提升自己写代码的能力

    评价一个人写代码的能力自然是以其写代码的速度为标准,但这里的写代码的速度指的是一个人在写全新代码时的速度,而不是指他写旧有代码的速度。 譬如写线段树这个数据结构,基本上所有 OIers 都能炼到炉火纯青的地步...

  • 优秀的程序员真的不写注释吗?

    我在很多地方看到这样一个观点,“请停止写注释,因为只有烂的代码才需要注释。...我必须得承认,每个程序员都应该有一颗追求“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我

  • ChatGPT写python代码实录

    字典测试 还有什么想测试的可以留言 文章质量改进 ChatGPT写python代码实录 ChatGPT写python代码实录 ChatGPT写python代码实录 ChatGPT写python代码实录 ChatGPT写python代码实录 ChatGPT写python代码实录 ChatGPT...

  • c语言伪代码怎么描述程序算法,伪代码是什么?如何写一个伪代码?

    本篇文章就来带大家简单认识一下伪代码,介绍简单的C语言伪代码怎么写,希望对大家有所帮助。伪代码是什么?通常,算法是在伪代码的帮助下表示的,因为无论学习什么编程语言或掌握多深的编程知识,程序员都可以解释...

  • 写代码心得

    和周围的同事聊了下代码的风格,听到同事说了一句,这个代码写的好,原来定睛一看,是自己去年写的,为什么自己写的代码,自己都会忘记呢,其实很简单,主要是光在写代码,而没有了解为什么要这么写 代码就像是我们...

  • 教你写好代码注释

    相信大家都会遇到这种情况:一周前自己写的代码,现在再拿出来看,发现读不懂了,“ 这代码是我写的???”。这时候,代码注释就可以发挥它的作用了——提高晦涩难懂的代码的可读性;注释可以起到隐藏代码复杂细节...

  • 如何写出优质简洁的代码,这6个技巧要记得

    编写干净的代码并不是一件容易的事情,这需要尝试不同的技巧和实践。 作为一名开发者,编写一手干净...代码越混乱,开发人员就越需要花更多的时间去充分理解它,这样才能使用这些代码。而且,如果代码太乱,开发人员可

  • 如何写好优质代码

    在现阶段我们写过不少代码,但是大部分代码质量都不高,一方面是缺乏编程方面的经验,在写代码时考虑的不够全面,另一方面也有可能是需求的更改导致代码的变动,这些都能影响代码的质量,而代码的质量会影响到产品的...

  • JavaScript进阶:如何写出优雅的JavaScript代码

    目录一、可维护性代码二、编码规范-可读性三、变量和函数命名四、松散耦合1、解耦HTML和JavaScript2、解耦CSS和JavaScript3、解耦应用程序逻辑和事件处理程序五、编码惯例六、作用域意识1、避免全局查找2、不适用...

  • java入职写不出代码_各位程序员是怎么度过看懂代码但写不出来的时期?

    说看得懂代码的,大概是很少看开源代码,想看懂不仅自己水平要过硬,还要花挺大的精力把前前后后的东西都做充分的研究。我自己总是会有自己写一个功能很有思路,但是搞懂别人同样功能代码却感觉很费力的体验。我猜测...

  • 写代码会用到哪些常用的软件

    说到代码,做程序员会比较了解,想平时经常写的软件有哪些呢,接下来一起看看。  1、Sublime Text  Sublime Text 是一个跨平台的代码编辑器,同时支持Windows、Linux、Mac OS X等操作系统,也是HTML和散文先进的...

  • Java代码写春联

    本文相对于其他的写春联的程序,有以下特点: 兼容任意对联的长度,而其他代码大部分只兼容7个字的长度; 兼容所有尺寸的背景图片; 示例的背景图片为自己原创设计; 横批与对联的大小比例更优,不是其他程序的1:2的...

Global site tag (gtag.js) - Google Analytics