为什么程序员要尽量少写代码

软件开发的一个最基本的事实是写代码,但是最大的误区之一就是把写代码当做工作。当我作为一个程序员第一次参加工作的时候,就犯了这样的错误。老实说,写代码真的是一件特有意思的事,它的强大功能,它的多种作用等等都让我有一种挥斥方遒的豪情壮志,倍有满足感。但是经过这么多年在这个行业沉浸,我才终于发现了这个真理:软件开发人员应该尽可能地少写代码。

不过,可别误解我的意思,我可不是说我们应该死命地压缩代码,像“代码高尔夫”竞赛那样,步步为营,搞得最后自己写出来的代码自己都不理解了。我的意思是,我们现在大多数的时间都用在了写大段大段的可怕代码上,少写代码其实就意味着给自己减轻工作负担。怎么样,听上去是不是像夏娃的蛇果一样诱人?

原因

环顾四周,看看你的工具,看看你的框架,正是依靠这些我们才能搞定我们手头的工作。所有你使用的工具,所有你做的尝试,这所有的一切归根究底都是朝着“少写代码”的目标而前进的。工具可以让我们少犯错,扫掉会导致麻烦的垃圾。

那么,为什么要少写代码呢?首先我得承认,我前面所说的软件开发人员的任务就是少写代码这一点有点言过其实了。事实是,软件开发的任务应该是思考,思考手头的问题,设计出一个完美的解决方案,然后再把这个方案转变成可供用户使用的软件。而写代码仅仅是在这一系列步骤最后一步——写成软件——这一过程中产生的副产品。

代码就是一个副产品

其实代码没有我们想象的那么重要。为什么呢?因为当我们将方案转化成软件时,写代码仅仅是一个手段而已。在日常生活中,我们会说说编辑器,谈谈编程语言,聊聊工作环境。我会这样做,他会这样做,大家都会这样做。享受我们从事的工作所带来的成果并不可耻。不过关键要保持专注。代码的确是个超级棒的工具,但是它从有的角度来看也是个麻烦:我们得花大量的时间去写,一不留神就容易出现bug,光看代码还不甚明了,并且不甚耐用,需要维护等等。

这就是文章题目我提出“少写代码”的原因。当有时候我感觉事情越来越繁琐,远远超过原先的预计,或者最后的成果过于复杂,我会提醒自己“我需要少写代码”。不论何时,要是我的代码在上下文中放不下了,我会毫不犹豫地删掉重构。与此同时,心中一直默念着这个原则:我要少写代码。

如果代码乱糟糟的一坨堆在那里,而这时候如果我不得不浏览这些玩意儿的时候,我会异常痛苦。少写代码也意味着写好的代码清清楚楚,明明白白。如果我们大家都可以简练地写代码,那我写这篇文章的目的就达到了。

最后,本文想说明什么呢?我觉得,最最重要的是,我们的代码只是一个副产品,是在软件开发过程中产生的,而对此,我们难以避免,唯有选择接受。不过,我们可以做的是,多多思考,好好重构,及时删掉过时的代码,代之精简的新代码。好吧,各位,改变从今天开始,加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elasticsearch-head 安装

elasticsearch 安装( 阿里云ECS )、远程访问、启动报错处理 kibana 安装 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 首先安装好 git、node.js、npm、cnpm yum -y install g…

C语言探秘:C代码在内存中的分布

估计会有很多初学者跟我有一样的疑惑,这些编写好的代码是放在磁盘中,但是运行将会被copy至内存中去运行。但他们在内存中是怎么分布呢。在 “linux下c编程圣经”(apue)UNIX环境高级编程一书中阐述了这一点。在这里结合网上资料以及…

集合:按元素的中文属性排序

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 要排序的元素类&#xff1a; public static class NameCount implements Comparable<NameCount> {Collator collator Collato…

kibana 安装

附另 2 文章&#xff1a; elasticsearch-head 安装 elasticsearch 安装( 阿里云ECS )、远程访问、启动报错处理 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 我的 elasticsearch 是…

linux jps 命令

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 jps -- Java Virtual Machine Process Status Tool 可以列出本机所有java进程的pid jps [ options ] [ hostid ] 选项 -q 仅输出…

“4K”时代将来临!标准/技术一网打尽

第1页&#xff1a;4K 分辨率与 DCI 数字电影院在今年的 CES&#xff08;电子消费大展&#xff09;上&#xff0c;除了让人眼花缭乱新手机等移动设备外&#xff0c;还有一个领域让人感到相当瞩目&#xff0c;这就是所谓的 4K 电视产品。 4K 电视的卖点当然是高分辨率&#xff0c…

解决:Error while compiling statement: FAILED: SemanticException [Error 10007]: Ambiguous column refere

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.报错&#xff1a; Error while compiling statement: FAILED: SemanticException [Error 10007]: Ambiguous column reference creat…

解决:which: no java in (/root/chengxu/maven/apache-maven-3.5.2/bin:/usr/local/sbin:/usr/local/bin:/usr

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错&#xff1a; which: no java in (/root/chengxu/maven/apache-maven-3.5.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/…

Image Processing Wavefronts for HEVC Parallelism

Unlike H.264/AVC, where parallelism was an afterthought, the current HEVC draft contains several proposals aiming at making the codec better “parallelizable”. H.264/AVC supports slices, which were introduced mainly to prevent loss of quality in the case …

Hive 删除整个数据库,包括其中的所有表

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 drop DATABASE IF EXISTS 数据库名 CASCADE; 使用CASCADE &#xff0c;表示强制删除。

Windows 9信息曝光:统一开发接口、整合Cortana到任务栏

摘要&#xff1a;2014年微软全球合作伙伴大会在美国华盛顿正式拉开序幕&#xff0c;会上&#xff0c;微软首席运营商Kevin Turner透露了微软下一代操作系统Windows 9的一些信息&#xff1a;统一开发接口、语音助手Cortana将被整合到任务栏、桌面小工具回归等。 北京时间7月15日…

解决: Error while compiling statement: FAILED: ParseException line 23:13 extraneous input ‘(‘ expectin

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. hive 执行sql&#xff0c;报错&#xff1a; Error while compiling statement: FAILED: ParseException line 23:13 extraneous inp…

程序员可以只关心技术么?

摘要&#xff1a;不少程序员爱维护喜欢的技术&#xff0c;虽然他们说的有道理&#xff0c;但程序员价值的实现并不取决于技术。模式不一样&#xff0c;程序员价值也不一样&#xff0c;而这也暗含了程序员生涯的两个进阶模式&#xff0c;读完此文&#xff0c;相信你会重新思考个…

Intellij IDEA中分屏显示方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 今天才发现IDEA中还有split view的功能&#xff0c;上网查的时候查到了很多莫名其妙的东西。 实际上对想分屏显示的文件 右键->Spli…

IDR、CRA、BLA、RASL、RADL、closed-gop、open-gop

相对于H.264编码的每个GOP是相互独立的&#xff0c;GOP切换用I帧&#xff0c;帧间搜索不再参考前一个GOP。而HEVC切换则可以“软切换”。 BLA、CRA、IDR是文献中提到过的三种随机接入点(RAP)&#xff0c;在文献中的解释的确不是很容易理解。 &#xff08;1&#xff09;关于GOP…

ROW_NUMBER() OVER() 函数用法详解 (分组排序,多例子)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 语法格式&#xff1a;row_number() over(partition by 分组列 order by 排序列 desc) row_number() over()分组排序功能&#xff1a; …

解决:您需要来自xxx的权限才能对此文件夹进行更改(电脑系统取得管理员权限)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.莫名的一个项目工程代码就打不开了。提示信息为&#xff1a; 2. 删除也不行&#xff0c;更新也不行&#xff0c;火大&#xff0c;我惹…

程序员父亲的遗产——编程十诫

我的父亲在和我彻谈编程两个星期之后就去世了。 那个时候我22岁&#xff0c;一个刚刚完成美学学士毕业设计的大四学生。而我的父亲62岁&#xff0c;比大多数我同龄人的父亲都要老。早在60年代&#xff0c;他就已经在田纳西理工大学开始编程了&#xff0c;那个时候他在穿孔卡片…

解决:Can not deserialize instance of com.xxx.xx.XXModel out of START_ARRAY toke

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. json数据解析报错&#xff1a; Can not deserialize instance of com.xxx.xxx.model.XXXModel out of START_ARRAY token 2. 需要一…

HEVC标准概览

HEVC标准概览HEVC&#xff08;高效视频编码标准&#xff09;是ITU-T VCEG&#xff08;国际电联电信标准化部视频编码组&#xff09;与ISO/IEC MPEG&#xff08;国际标准化组织国际电工委员会视频标准化组&#xff09;的合作组织JCT-VC最新项目。ITU-T和ISO/IEC计划在2013年1月共…