送给当代软件开发者的咒语:"Write Less Code"

简介:

在2012年的时候,笔者写过这样一篇文章:Write Less Code,在当时还不错,但是在那之后,我在PageCloud工作,两年之后,再回过头来看这篇文章,现在,带着两年的思考和经验(希望如此),对这篇文章重新修改。

软件开发的基本真理就是写代码。不过最大谬论之一就是为工作而写代码。当我第一次开始写代码的时候就落入了这个陷阱。编写代码是一件很棒的事情。敲打键盘让自己有成就 感,就想正在完成自己的梦想。但是这些年,我学到的东西则更重要——作为软件开发者尽可能写更少的代码。

别误会,我的理解,我们不应该将自己置身于编写代码,或者敲打让人难以理解的代码情境中。事实上,花一点时间思考,我们会发现,我们大多数的时间,都用来维护代码。编写更少的代码,而不是为自己创造更多的工作看起来像是一个相当好的主意。

为什么?

多看看,我的使用工具,使用的框架。我做的所有的事情,用的所有的工具,都是为了写更少的代码。使用工具为了减少代码中的错误,让你走更少的弯路。

那么,为什么要写更少的代码呢?之前,我说你的工作是写更少的代码,而今看来,那时候,我是错的。实际上,你的工作是思考,是思考遇到的问题,找到一个可靠的方法并把它用到软件开发中去。开发软件的一个副产物就是我们不得不写代码来解决问题。

代码意味着结束

代码没那么重要。我们喜欢说服自己,我们正在开始执行、并把我们的解决方案放入软件中。这样看来,代码既是一种方式也意味着结束。我们谈论自己所用 的编辑器,谈论我们最喜欢的编程语言,谈论使用环境。每个人都在谈论,享受自己的工作,没什么不好意思的。重点是你是否专注。代码很棒,但他也可能是敌 人。及时我们花很多时间去写,他也可能很脆弱,不够清楚,甚至不够稳定。

这就是为什么我要说的"Write less code"。无论何时,我觉得这个项目或者代码块变得比想象中大、复杂,我就会想到"写更少的代码"。无论何时,我写了多少代码,甚至写了一页又一页,我重构他,我重写他,同时思考"写更少的代码"。

有时候,如果不能写出简洁、干净的代码,对自己来说,写一堆代码就是很痛苦的事情。写更少的代码就是写干净清晰的代码。当你"节约代码"的时候,就意味着,你在写更少的代码,意味着你写代码的目的就是让他变得简洁。

那么,我从中学到了什么?我认为写完代码就意味着结束,在软件开发中解决各式各样的问题就不可避免。所以多思考,重构、删除以前的老代码,并且使用更少代码编写新代码。

不要犹豫,从今天开始,就这样做。

文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
4月前
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
51 8
|
7月前
|
小程序 机器人 程序员
Scratch3.0——助力新进程序员理解程序(案例一十四、闯迷宫)
Scratch3.0——助力新进程序员理解程序(案例一十四、闯迷宫)
68 0
|
7月前
|
JavaScript 前端开发 Java
用超级厉害的VS Code工具来嗨皮编程吧!
用超级厉害的VS Code工具来嗨皮编程吧!
72 0
|
人工智能 C语言
大一新生必会的c语言五子棋!PVP,PVE,EVE模式都有,还有智能的AI部分,复盘等内容!一看就会的五子棋教程,确定不来看看吗?
大一新生必会的c语言五子棋!PVP,PVE,EVE模式都有,还有智能的AI部分,复盘等内容!一看就会的五子棋教程,确定不来看看吗?
165 0
|
开发框架 IDE 开发工具
MAD 最新技能图谱送给大家,收藏再学~
MAD 最新技能图谱送给大家,收藏再学~
MAD 最新技能图谱送给大家,收藏再学~
|
Java C语言
每日一题---蓝桥练习“数据交换”问题
每日一题---蓝桥练习“数据交换”问题
|
编解码 前端开发 JavaScript
前端Base64编码知识,一文打尽,探索起源,追求真相。
Base64编码,你一定知道的,先来看看她在前端的一些常见应用: 当然绝部分场景都是基于Data URLs
464 0
前端Base64编码知识,一文打尽,探索起源,追求真相。
|
运维 Cloud Native 前端开发
春天的第一个flag,12天打卡踏入云开发!
蜕去厚厚的冬装,远离冬日的困乏与疲倦,是时候在春暖花开之际,跟随春天的步伐,为云开发能力增长设立新的Flag。为了助力开发者增长开发能力,实践开发项目,在3月末尾之际,云开发平台推出“12天云开发打卡挑战赛”,跟随阿里云开发专家,你将从9大课程了解如何搭建云原生应用!
春天的第一个flag,12天打卡踏入云开发!
下一篇
DataWorks