IT培训网 - IT职场人学IT技术上IT培训网
开发新手需要知道的5条规则
时间:2016-09-06 14:11:36 来源:Java培训网 作者:IT培训网 已有:名学员访问该课程
每个行业都有自己的规则和趋势,这是约定俗成的。那么,IT培训网小编总结了一些IT行业的规则,开发新手们要仔细学习了。
数据大爆炸
遥想当年,程序员们需要将8个不同的布尔值转化为1个字节。他们对每个存储位都极为珍视,因为当初的容量资源真的非常有限。
现代数据结构则充斥着浪费与随意。XML中的各类标签名称极长,且每个名称都会以额外的斜杠作为结束标记。JSON相对更为进步,因为其无需关闭标签——而只需要大括号,这就让其身材更苗条一点。然而,JSON的标签与字符串内也存在着众多不必要的引号。
好消息是,现代压缩算法能够显著降低数据结构所占用的空间。但压缩并不能彻底解决问题,而前辈程序员们却知道如何从起步阶段避免这种浪费。也正因为如此,MS-DOS 3.0操作系统仍有32MB,这意味着其最大空间占用量也不会超过3200万个字节。
事实上,MS-DOS 3.0诞生于上世纪八十年代初,七十年代的代码在精简程度上更胜一筹。而六十年代的代码——简直就是艺术品。
汇编
不到50岁的从业者们可能根本搞不清mov ah, 09h或者cmp eax, ebx这样的语句。如今的程序员们以为计算机天然需要使用大括号来实现代码块分隔,但实际上最初分隔效果是依靠以上表达实现的。即使是了解Java或者C应当被翻译为二进制形式的朋友,也往往很少或者完全没有实际操作经验。
老程序员们曾拿出大量时间编写汇编代码,这也是原始填制机器码与人类可读版本之间的第一道桥梁。当然,这并不是说汇编仍是一项必须掌握的技术。由于极为冗长且存在大量重复内容,我们很可能在处理汇编语言时犯下错误。如今的编译器已经足以识别各类复杂且仍有优化空间的模式;一部分编译器开发者甚至坚信自己的工具能够编写出水平高于手动构建的代码成果。
也许确实如此,但学习汇编语言的益处在于,我们能够借此了解计算机的工作方式。高级语言带来大量便捷的标准操作设定,例如连接字符串,但这同时也带来了新的陷阱——程序员们开始误以为“加号”在连接两个整数以及对两个整数进行相加时,占用的时长是相同的。实际情况并非如此。操作的耗时要远高于普通连接,而理解汇编代码以及JMP(jump)操作原理的程序员能够顺利做出正确的选择。
另外,理解对象如何在内存中打包并载入至CPU能够帮助我们降低迟缓代码的出现机率。虽然接触过汇编语言的从业者们如今可能不再记得x86代码的编写方式,但他们仍然具备良好的本能,足以发现一切可能导致代码效率低下的状况。
声与光
很久以前,一位程序员告诉我,他对Unix极为厌恶?为什么?因为他在刚刚入行时,使用的是Altair或者Sol 20这样的单用户微机,其一次只能处理一个代码块。
“Unix计算机总是在同时处理多项任务,”他告诉我。“你会听到磁盘突然就转动起来,但却不知道是怎么回事。”
真正困扰他的是,他失去了对计算机当前运作目的的判断能力。在现代计算机当中,没人知道这台设备究竟在干什么——因为其中包含着数不清的软件层,并运行在四核甚至是八核CPU当中。病毒与蠕虫亦可潜伏于其中,而用户完全感觉不到由此带来的性能影响。
前辈程序员们仍然习惯于通过视觉与听觉判断问题,帮助他们理解并调试代码。他们观看数据经过时RJ-45以太网插孔的闪烁,聆听磁道改变时硬盘的响声。他们甚至能够借此意识到不同分页间的差别,甚至借此了解设备在对索引的哪部分进行读写。
这些线索的价值正在逐渐消失,SSD以及无线路由器的大量普及让它们不复存在。但只要智能手机上还有小小的指示标记提醒数据流通,这种敏锐的嗅觉就仍有用武之地。
二进制数学
对bit位的测试与调整并非出于好奇,而是一种必要。某些操作的执行速度太慢,迫使程序员们寻求更理想的方式加以解决。最典型的例子就是除以二相当于在二进制中将小数点向右移一位,而除以十则为十进制中将小数点向右移一位。
相较于正常除法,CPU在处理数位移动时速度明显更快。出色的程序员会利用这种优势加快代码运行速度,而非笨笨地坐等乘法与除法处理。
但如今这种良好的思维方式正在逐渐消失,强大的处理性能足以承载我们的挥霍。不过必须强调的是,这种敏锐的本能在现代开发工作中仍然有着重要价值。
细节累加即为结果
在多数早期处理器中,某些操作的时耗要远高于其它操作。在初代8086处理器中,数学除法要耗费80到190个时钟周期,而将两个数字相加则只需要耗费3个时钟周期。即使当时的CPU主频已经达到5 MHz,大量操作叠加起来也会造成巨大的处理时长差距。
前辈程序员们很清楚每行代码或者每项指令的执行时间差别,他们也明白计算资源是如此宝贵,需要认真规划与管理。错误的操作类型将大大延长处理时间,而错误的数据类型也会带来同样的后果。一旦使用错误的数据结构,我们辛苦打造的程序将瞬间成为垃圾。
很多年轻一代认为CPU能够在瞬间完成几乎无限量的计算,但前辈们则很清楚CPU是如何一步步向用户交付结果的。多年以来,经验丰富的程序员对自己的代码细节进行研究、调试与重新研究,也正是这些积累让他们成为行业中的翘楚。因此,请抱着敬畏的心对待自己指尖流出的代码——它们正一步步塑造着我们的职业生涯。
如果你还是一个刚入行的新手开发人员,需要掌握的知识还有很多,勤勉向上,早日成为自己心目中的开发高手。
每期开班座位有限.0元试听抢座开始!
温馨提示 : 请保持手机畅通,咨询老师为您
提供专属一对一报名服务。
- 上一篇:优秀程序员是怎样炼成的
- 下一篇:降低软件开发人员编程效率9宗罪