极客视点
极客时间编辑部
极客时间编辑部
113241 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/04:12
登录|注册

观点:什么时候不应该编码?

讲述:丁婵大小:1.92M时长:04:12
大多数程序员都容易犯下的错是,因为对编程的兴奋,不知道什么时候应该对编码说“不”。程序员需要知道什么时候不需要编码,并从项目中删除所有不必要的代码,这将让工作变得更容易,并使软件寿命更持久。近日,开发者胡塞因·波拉特·尤鲁克(Huseyin Polat Yuruk)发文分享了怎么知道什么时候不应该编码,以下是他的观点。
编程是解决问题的一门艺术。因此,自然而然地,程序员成为了问题解决者。作为程序员,当我们面前有一个新问题有待解决,或因为任何其他原因需要我们写出代码行时,我们会因为使命感而感到兴奋。
有这种兴奋也是再正常不过的,然而,对编写代码过于兴奋就会让我们变得盲目。这种情绪会让我们忽视了一些重要的事实,而这些事实可能在未来会导致更大的问题。
在编码时,我们可能会忽视你写的每一行代码都必须被其他程序员阅读和理解,必须被测试和调试,会增加软件缺陷,可能会在将来引入新 Bug 等等。此外,代码越多,Bug 藏身的地方也就越多。而忽视这些事实,可能会让你在未来重构这些代码。
那些易于维护、持续寿命长、不断帮助用户实现功能的软件,应该不包含任何不必要的代码行。最好的代码其实是没有代码,而最有效率的程序员知道什么时候不应该编码。
了解软件的用途及其核心定义,这是知道什么时候不应该编写代码的第一步。
举个例子,假设你的软件只有一个目的:管理电子邮件。基于这个目的,发送和接收电子邮件是该软件项目的两个基本功能,你就不应该期待这个软件同时也能管理你的待办事项清单。
因此,你应该拒绝与此核心定义无关的任何可能的特性请求,永远不要随意扩展软件的用途。
一旦知道了什么内容对你的项目是必不可少的,那么在下一次评估所有可能出现的代码请求时,你会意识到这一点。你将清晰地知道编写代码的需求是什么,这会使你的代码库更小。
再来举个反例说明适时拒绝编码的重要性。
当你启动一个新项目时,刚开始系统里只有两三个源文件,一切看起来都那么简单明了,编译和运行代码仅仅需要几秒钟。这时,你完全清楚在哪里可以找到你想要的东西。
然后,随着项目的增长,将会有越来越多的源文件填满你的目录,其中每个代码文件动辄就包含数百行代码。为了更好地组织这些代码,你很快就需要设立多个目录。管理这个项目变得越来越困难,而且追踪 Bug 需要也付出更多的工作量。于是,你需要更多的程序员来帮忙。然后,沟通开销随着程序员数量的增加而急剧增加。你的项目会变得越来越慢。
最后,这个项目变得非常庞大,添加新特性变为一种痛苦,因为即使是很小的改变也需要花上几个小时,修复当前的 Bug 总是会引入新的 Bug,你的项目开始赶不上最后期限……
这都是盲目编写那些不必要的新代码带来的后果。你需要知道什么时候不应该编码,并从项目中删除所有不必要的代码。这将让你的工作变得更容易,并使你软件的寿命更持久。
我明白,有的程序员或许刚刚开始你的编程生涯,想在编码领域大展身手。你对此感到兴奋不已,这点无可厚非。作为软件从业者,希望你永远不要失去这种兴奋感,但也请不要忽视重要的事实,我们需要从自己的错误中吸取教训,从别人的错误中借鉴经验。
请继续编码吧,但要知道什么时候需要对编码说“不”。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 旭东(Frank)
    的确如此,不过需要程序员懂得自己系统,掌控自己得代码结构。再高级说完懂得自己系统的领域问题和架构
收起评论
显示
设置
留言
1
收藏
19
沉浸
阅读
分享
手机端
快捷键
回顶部