前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何写出卓越代码?

如何写出卓越代码?

作者头像
博文视点Broadview
发布2023-05-19 15:16:04
3650
发布2023-05-19 15:16:04
举报
文章被收录于专栏:博文视点Broadview

👆点击“博文视点Broadview”,获取更多书讯0

本文为《解构领域驱动设计》作者张逸为《编程卓越之道》(卷1)所作序言。

什么是卓越代码(Great Code)?

场景不同,角色不同,对卓越的定义自然有所不同。

既然没有统一的标准,似乎可以放过不提。

然而,对于名为《编程卓越之道》的系列图书,又如何可以轻易放过对卓越的认识?

我们来细品一下作者Randall Hyde采纳的定义:

卓越代码是按照一套一致的优秀软件特征编写出来的,首要考虑的是优秀软件特征。特别是,卓越代码要遵循一套规则,这套规则能够指导程序员在用源码实现算法时的决策。

单就定义而言,依旧语焉不详。

关于什么是优秀软件特征,或许大家可以从书中寻觅到答案。而我却透过书名,隐隐捕捉到Randall Hyde的一个观点——没有深谙计算机底层原理,不可能写出卓越的代码。——这也正是《编程卓越之道》(卷1)的核心思想:深入理解计算机。

听听作者自己的解释:

了解了计算机如何表示数据,就了解了高级语言的数据类型是被如何转换到机器层次的;了解了CPU如何执行机器指令,就了解了高级语言应用程序中各种操作的代价;了解了内存性能,就了解了如何组织高级语言中的变量和其他数据,让缓存和内存的访问最优。

此言非虚。

正如要学好Java,就有必要了解JVM的工作原理,而要彻底了解JVM,怎能不知道计算机的底层原理?

以指令集为例,这是汇编程序员天天使用的基本编程要素,而Java程序员就鲜少涉猎。殊不知,这些Java程序员编写的每行代码都会被编译为运行在JVM中的指令。对照来看,恰好本书介绍了短指令和长指令在空间、性能与复杂度的取舍,而JVM则采用了折中的变长指令,允许操作码后跟零字节或多字节的操作数(operand)。同一条知识,打通了从计算机底层到高级语言开发的通路。

作为一名汇编语言高手,Randall Hyde极为推崇汇编语言对程序员的助力。他在本书后记中建议:“有一种强迫自己在机器层次编写代码的方法就是使用汇编语言。”

许多新生代的程序员对此建议或许不以为然,毕竟,如今使用汇编语言的机会可谓少之又少,它的重要性已经淡化。

遥想当年,在我的大学时代,汇编语言还是计算机专业最重要的一门编程语言课,当然,也是公认最难啃的硬骨头。当时还能熟练编写汇编程序的我,早已不记得这门语言的大部分语法了。我不知道,学习和使用汇编语言是否真的有助于写出卓越代码?我也不知道,我之所以没能写出卓越代码是否与我汇编水平不高有关?但我深信,倘若具有高超的汇编开发能力,必然理解计算机底层运行的细节;倘若能很好地掌握汇编语言,学习任何一门高级语言,也就不在话下。

当软件系统规模如滚雪球一般变得越来越大时,我们已不可能像当初求伯君那样用汇编语言去写十几万行的WPS。

虽然使用的语言不同,编程态度却应该一以贯之。

然而,当我们写出动辄数百万行代码的应用系统时,是否真的思考过每条语句背后的代价?——问程序员,有多少人以写出卓越代码为己任?问代码,又有多少是深谙计算机底层原理的程序员写出来的?

我们这个行业,因为竞争加剧的原因,程序员变得更加地浮躁,没有办法让自己静下来,沉心打磨基础。

当开发技能成为一种快餐时,还有谁会力求编码的精益求精?

又有多少人舍得花费宝贵的时间来深入理解计算机?

然则,“九尺之台起于垒土”,没有扎实的基础,开发的能力究竟能提升多高,编程的生涯究竟能走多远,我深表怀疑。

真的非常钦佩Randall Hyde多年如一日孜孜于《编程卓越之道》系列的写作,使之成为计算机图书中不朽的经典。

而作者并不满足已经取得的成就,推陈出新,出版了本书的第2版。第2版加入了新鲜的元素,却又不损经典质量的一分一毫。

如果你刚刚踏上编程之旅,我强烈推荐你阅读本书。正所谓“磨刀不误砍柴工”,这些底层原理和底层细节,看似对你的开发没有直接帮助,但它真的可能会决定你未来的高度!

快快扫码抢购吧!

代码语言:javascript
复制
发布:刘恩惠
审核:陈歆懿 

如果喜欢本文欢迎 在看丨留言丨分享至朋友圈 三连<  PAST · 往期回顾  >本周最火AutoGPT!GitHub3.6万+标星,解决复杂任务全程无须人类插手
朝九晚五在这里什么也完成不了

点击阅读原文,查看本书详情!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博文视点Broadview 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档