软件开发的一个最基本的事实是:我们必须要写代码,但对于这样的一个事实的最大一个误解是:我们的工作就是写代码。作为软件程序员的最初几年,我一直被这样的思想所迷惑,写代码是一种很强的事,是一种超能力,我们喜欢这种创造东西、成就东西的感觉。然而,多年之后,我终于明白,事情不是这样的。事情的真相是:程序员要干的活是尽量让软件的代码最少。

不要误解,我指的不是像code golf那样压缩代码、节省字符——这样只会导致我们写出的代码无法阅读和维护。如果你能认识到这样的事实:我们大部分的时间都消耗在维护自己写的可怕的代码上,你就会发现,让代码最少、少给自己找麻烦,这无疑就会变成一个相当有创意的好思想。

为什么?

你可以查看一下,看看你用的工具,看看你用的框架。所有你做的,所有这些你使用的工具,都是用来减少代码量的。这些工具能减少犯错误的机会,把开发过程中能导致犯错的因素隔离开。

所以,为什么我们应该让代码尽量少?我承认,我之前说我们的工作是写最少的代码,这是撒了个小谎。我们真正的工作是思考,我们的工作是思考手头的问题,设计一个精彩的解决方案,最后把这个方案转变成软件。创造软件过程中的一个副产物就是我们需要写出这些代码。

代码是副产物

代码并不是你想象的那么重要。我们喜欢用各种理由说明代码很重要:因为开始写代码就意味着我们开始工作,把方案转化成软件,看起来就像是写代码是过程同时也是目的。我们谈论开发工具,我们谈论语言选择,我们谈论开发环境。我是这样,你也是,大家都这样。享受这种敲击键盘的手艺似乎无可厚非。可问题在于,我们需要多方面看问题。代码是精彩的,但它也是敌人,它需要你花时间去写,它很脆弱,它可能晦涩难懂,不是那么健壮。

这就是为什么我一直坚守“写最少的代码”的原因。不论何时当我感到有什么东西比它应该有的体积要大或应该有的情况更复杂,我就会说“写最少的代码”。每次当我写了太多的代码,使得很难维护时,我就重构,整理,所有的时候我都铭记着“写最少的代码”。

我不得不提到一点,有时候我们没有办法避免写出一大堆的代码,如果做不到精简,请保持清晰。写最少的代码就是写整洁的代码(《代码整洁之道》)。写最少的代码是为了写出整洁的代码。当你对要写的代码精打细算时,你的代码就自然变的很清晰。

那么,我们的启示是什么?我想这最重要的启示是,代码只是副产物,我们在开发过程中不可避免的东西。所以,多思考,多重构,删除老旧的代码,用更新更少的代码替换,为你自己的好,今天就开始吧。

  • 来自:外刊IT评论

  • 链接:www.vaikan.com/write-less-code/

  • 原文:http://mikegrouchy.com/blog/2012/06/write-less-code.html

写最少的代码,避免给自己找麻烦相关推荐

  1. Java开发之上班摸鱼!写最少的代码!

    I 前言 本次分享一下我所知道的如何写最少的代码的小技巧,如果你有更好的方案,欢迎在评论区留言,方案很棒的话,加我交流圈,为你送上冬天的一杯奶茶~ Java:我想返回多个返回值 秀一下Go的多返回值: ...

  2. 「奇淫技巧」如何写最少的代码

    前言 由于性格原因,笔者很难沉下心来进行严肃的系统学习,总是喜欢折腾一些奇淫技巧,非常喜欢代码设计,扣代码的细节,所以本次分享一下我所知道的如何写最少的代码的小技巧,如果你有更好的方案,欢迎在评论区留 ...

  3. java 如果文件目录不存在就创建再写文件的代码实例--针对“系统找不到指定的路径”问题。

    在把数据写出去到文件的时候,可能会遇到所给的目录不存在,那么就会抛异常.""系统找不到指定的路径"".因为所目录不在,所以就异常 , 那么怎么让他判断下,要是文 ...

  4. 写好CSS代码的70个专业建议

    写好CSS代码的70个专业建议-前端开发博客 CSS 并不总是容易处理. 在你的能力和经验不够的时候,CSS编程会成为一个噩梦,特别是你不确定为页面元素中选择哪种选择器的时候.使用一个不常见的CSS属 ...

  5. 写好CSS代码的70个专业建议-前端开发博客

    写好CSS代码的70个专业建议-前端开发博客 CSS 并不总是容易处理. 在你的能力和经验不够的时候,CSS编程会成为一个噩梦,特别是你不确定为页面元素中选择哪种选择器的时候.使用一个不常见的CSS属 ...

  6. 如何写出“简单“代码?

    如何写出"简单"代码? 当你做实际开发中,你一定会发现有人跟你说,或者你在网上看:要写简单代码要写简单代码.    这句话其实就跟大家熟悉的设计模式中的简单(kiss)原则是挂钩的 ...

  7. 哈哈哈,这个教人写出烂代码的项目在 GitHub 上火了...

    如果说到什么是好代码,我们肯定都能说出一堆规则,例如使用一致的格式和缩进.使用清晰的变量名和方法名.在必要时提供文档与注释.不要过度精简代码等等. 但是对于什么是烂代码,你有比较清晰的认识吗? 在 G ...

  8. [转]为什么程序员总是写糟糕的代码?这3个原因

    原文请看:为什么程序员总是写糟糕的代码?这3个原因 我最近一直在想我们作为一个行业为什么总是产出糟糕代码的原因. 1.明显原因-- 我一下子想到的最明显的原因是,有好的程序员,也有不那么好的程序员,有 ...

  9. 代码的印象派:写点好代码吧

    最近有一位猎头顾问打电话询问是否有换工作的意向,对推荐的公司和职位的描述为:"我们这里有一家非常关注软件质量的公司,在寻找一位不仅能完成有挑战的软件开发任务,并且还对代码质量有非常高追求的软 ...

最新文章

  1. Word2010开发——操作文档
  2. 这两天老是有兄弟问到Vue的登陆和注册,登陆成功留在首页,没有登录回到登录页面,现在我用最简单实用的方法实现(两分钟技就看懂)...
  3. Curator: ZooKeeper的使用配方
  4. TypeError:“模块”对象不可调用
  5. sphinx配置文件继承
  6. 【DeepLearning工具】Fedora下安装theano
  7. 用内存流 文件流 资源生成客户端(Delphi开源)
  8. 中南大学夏令营集训营
  9. 数组中只出现一次的数字+第一个只出现一次的字符
  10. 专家观点:即使在云中 硬件同样至关重要
  11. high-speed A/D performance metrics and Amplifie...
  12. 错误Cannot resolve org.springframework.data:spring-data-redis:2.2.6 RELEASE
  13. 拿着6位数工资,没写一行代码!为何还能成为最佳员工?
  14. 地图标识符号大全_资源小结:旅游类地图汇总(8.17版)
  15. php中lpush(),lPush 命令/方法/函数
  16. WordPress清理和优化数据库,推荐几个优秀插件
  17. 老师的好帮手——课堂考勤记录整合
  18. 爱了爱了!丰巢智能政务柜真的太实用了
  19. 写给大家看的设计模式 1
  20. 让代码审查扮演更好的角色

热门文章

  1. mkcramfs 命令学习
  2. U-boot中TFTP 解释
  3. 【pyqt5学习】——下拉框comboBox
  4. mpls工作原理通俗解释_用这两种方法向最终用户解释NLP模型的工作原理还是不错的...
  5. 计算机 数据库知识点,数据库知识点总结
  6. vscode 预览图片 插件_真的动手写的VSCode的插件(图片浏览)之1
  7. 文件上传案例——客户端和服务端套接字
  8. FL-EM7688 Smart评估板openwrt开发环境搭建(linux固件部分)
  9. 浅谈session,cookie,sessionStorage,localStorage的区别及应用场景
  10. apk文件编译到系统文件中的方法(及包含so库的)