编程王道,为「慢」不破

简介:

f93a8e2c5cf8c4c26580854d9451104f2d6149ad

最近一段时间,在团队中我发现好多程序员,尤其是初级或者新手程序员常常犯得的错误都很初级,经常犯一些编程中的大忌。不是没有能力做好,而是做事不细心,我一直在给他们灌输一个思想,其实编程的核心和王道就是:慢就是快。都说天下武功,唯快不破。但是在编程的道路中,天下代码,而是:唯「慢」不破。

今天,我们就来谈谈新手程序员或者经验少的程序员常常犯得大忌是哪些,表现形式有哪些,以及如何避免的问题。

1、兵马未动,粮草先行

所谓兵马未动,粮草先行,就是讲做一件事之前一定要做够充分的准备工作。而很多程序员犯得大忌和表现形式就是:原型需求和整个产品的业务逻辑都没有搞明白之前,就开始动手了。边做边开始捋需求,对于前端程序员来讲,这还好说一点,但是对于后端的程序员来说,真的是大忌了。因为架构的设计,数据库的设计都是要依据这个产品的业务逻辑来实现的。

这里讲的编程王道,唯「慢」不破,指的是前期一定要花大量的时间来搞明白产品的需求和业务逻辑,不要着急动手去做代码的实现。

我感觉作为一个程序员来讲,在正式敲代码实现之前,搞明白产品需求和业务逻辑到确定数据库的设计和架构的设计,至少得占这个项目所有时间的 1/3 左右才合适,甚至有的难度大的 ERP 式的系统,占到一半时间也有可能。只要这些确定都想通了,剩下的就是噼里啪啦的敲代码了。

之前,有个朋友开玩笑的说:

我看你们程序员敲代码都喜欢使用机械键盘,噼里啪啦的敲代码的声音很大,感觉你们是在做体力活似的。

我想说:我们其实喜欢的是噼里啪啦敲代码的那种感觉,键盘的敲击声能够给人带来一种爽感。但是我们程序员最动脑的工作其实就是前期的准备工作,是设计的思考,后期确实就跟体力活也差不多。

2、编程中慢在细节,快在编码

兵马未动,粮草都已经先行了,前期我们准备工作都做好了,剩下的就是敲代码了。虽然在编码的过程中确实很快,但是也要注意一些细节。

很多程序员编码习惯的问题,或者是为了追求速度的问题,导致在一些该注意细节的地方没有注意到。比如编程的大忌和表现形式就是:后台程序员逻辑判断考虑不周全,有的甚至不写,直到测试测试出来,才会写;而前端程序员不注意细节的体验问题,出现错误不弹窗处理,不告知用户,有些该提示的地方,不给用户提示,不是不知道,就是懒得写。

快在编码不假,但是要慢在细节。后端程序员一定要把逻辑判断想周全,前端程序员一定要注意用户体验。这都是经验。

3、编程大忌:不要抱有先实现,后完善的幻想

有很多程序员都有这样的借口,项目比较着急,我先实现这个功能,能用就行,后期我再回来完善就行。后台程序员可能会想,这个接口先写完,给前端用着,一些判断不先加,等 过后我统一回来完善。前端程序员想这个弹框不先写,等做完了,再一一加上。项目太急了,先做完再说。

这样能叫做完吗?编程的大忌,这是大忌。不要抱有先实现后完善的幻想。敲代码最重要的就是「一步到位」。

你告诉我:有多少程序员能有时间回来完善和重构的?你这样想了,后期不出 bug 或者测试不提,你可能都忘了,都可能记不起来这件事了。因为你可能在你心中永远都认为你在忙。

再者,一个程序员最讨厌的一件事是什么?修改代码,不管是修改你自己的,还是修改别人的。回来修改代码的时间是极大的浪费,以为你要在你写的忙忙代码中找到你当时写的不好的地方,完善它。你找代码的过程是非常浪费时间的。

有多少人能够回来完善?又有多少人会重构代码?反问一下自己。

总结

说完这些之后,我们再来算一下时间成本,为什么慢就是快呢?因为如果你前期花足了时间准备和设计,在编程的时候,又尽量完善的注意到了细节,你项目最终完成的时候,bug 就会少很多,就可以及时交付。如果你认为先实现,后完善,你项目交付测试的时候,bug 会很多,很多,你修改 bug 的时间绝对会大量的浪费时间,最后很容易导致项目不能按时完成和交付。

很多人算不过这个成本,慢就是快,看似你的快,其实并不是快,是伪快。所以,作为一个程序员切勿犯到上面提到的编程大忌。这是一个编程习惯和风格养成的问题。如果有一个好的变成习惯,你将会受益终生。

最后,编程王道,唯「慢」不破。


原文发布时间为:2018-11-25 本文作者:loonggg 本文来自云栖社区合作伙伴“非著名程序员”,了解相关信息可以关注“非著名程序员”。


相关文章
|
5月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
126 1
|
5月前
|
Java UED 开发者
揭开Java性能提升之谜:异步编程如何让你的应用响应速度飞升?
【8月更文挑战第30天】随着互联网技术的发展,系统性能和用户体验成为关注焦点,异步编程因其能提高应用响应速度和吞吐量而在Java领域广泛应用。本文将详细阐述Java异步编程的概念与优势,并通过实战示例展示其在实际项目中的应用,如使用`Future`、`Callable`及`CompletableFuture`等接口和类实现异步操作,帮助开发者更好地理解和运用这一技术,以提升程序性能和用户体验。
57 0
|
8月前
|
机器学习/深度学习 人工智能
技术人的四大「造神」学习法,为啥就没人好好用呢?
技术人的四大「造神」学习法,为啥就没人好好用呢?
68 2
|
搜索推荐
了解七大经典排序算法,看这一篇就足够了!!!(上)
了解七大经典排序算法,看这一篇就足够了!!!(上)
68 2
|
搜索推荐 算法
了解七大经典排序算法,看这一篇就足够了!!!(下)
了解七大经典排序算法,看这一篇就足够了!!!(下)
60 2
|
人工智能 JSON 缓存
身为程序员,你有哪些提高写代码效率的黑科技?
身为程序员,你有哪些提高写代码效率的黑科技?
|
NoSQL Java 程序员
要学的东西太多,自己能力不足,很焦虑怎么办
总有人问我,兔哥,现在java要学的知识点这么多,记不住,怕学不精很焦虑怎么办? 这是很多初学者都有的痛点。 其实吧,你可以试试贪多而不必嚼烂。
191 0
|
NoSQL 关系型数据库 MySQL
|
算法 程序员 持续交付
如果你有拖延症,程序员不如试试这个技巧提升效率?
  要吃掉一头大象,每次吃一口。   ——克雷顿·艾布拉姆斯(Creighton Abrams)   造成拖延的首要原因之一,同时也是造成生产力低下的祸根,就是总是在感慨一个问题:好忙啊,问题好大啊……实际上,你并没有真正试着去解决问题。当我们从任务的全貌来审视任务的时候,它们看起来比真实情况都要大,并且更吓人。   在本文中,我会谈及一个能够帮助你克服拖延的提高生产力的窍门:分解任务。通过将大任务分解为小任务,你会发现自己更有动力去完成它们,也更加稳妥地向着目标前进。
168 0
|
设计模式 算法 架构师
狂补计算机基础知识,让我上了瘾,想要尽快和同龄人拉开差距,必须这么干,才有戏!!!!
狂补计算机基础知识,让我上了瘾,想要尽快和同龄人拉开差距,必须这么干,才有戏!!!!
184 0