这么好的书,觉得写点东西,记录一下比较好。
4.1选择编程语言。
程序员使用熟悉的编程语言生产率高于使用不熟悉的编程语言,并且高级语言比低级语言的效率要高得多,作者列出了几种高级语言的每一行代码与等效的c语言代码行数之比。比如java是2.5,而perl和python就是6.而且编程语言影响程序员的思维随处可见,作者举了个他遇到的项目,那就是一群fortran程序员去写c++,最后写出来的代码就是伪装成c++的fortran代码。
这个很有感触,自己第一个项目当时有用到c,而当时项目组里面只有一个人对c比较熟悉,可是没办法,人不够,只好上我们几个做java的,最后开发效率非常低下,而且代码写的及其丑陋,问题一大堆,就一个c里面的字符串,把我们几个java程序员就给郁闷了好久。
说道表达能力,象python,perl,ruby之类的脚本语言是c或者java之类的不能比的,就像上面作者给出的统计,一行脚本语言比一行c或者java代码要完成的工作多得多,所以很多游戏都会采用脚本作为一个辅助。
上次看到一篇文章就是讲java的标准库里面的一段c风格的java代码:
引用
Occasionally in Java, you come across an API that makes you sit up and go “What were they thinking?” Take, for example, the code to list all the threads in the current ThreadGroup. Rather than having the obvious method: i.e. one that returns a list (or array) of threads, the signature looks like this:
int enumerate(Thread[] list)
You pass an empty array to the method, which will be filled with Thread objects. The method then returns the number of threads it placed in the array. If the array is not long enough to accept all the threads, the overflow will be silently discarded.
To initialise the array, you must rely on ThreadGroup#activeCount, which only returns an approximation of the number of threads that enumerate might return.
If you’re looking to avoid memory leaks in a non-garbage-collected environment, then it makes perfect sense for an API to push responsibility for memory management back up its caller, and to gracefully handle whichever buffer-size it’s given to fill. When you’ve got pervasive GC, it just looks (and is) clumsy.
So the obvious answer to “What were they thinking?”, of course, is “They were thinking like C programmers”.
Which in turn leads one to suspect that this particular API has been around since before Java was called Java.
我觉得特别是这种有gc的语言的程序员和无gc的语言的程序员,如果让他们互换的话,写出来的程序是最会不伦不类的。
4.2 编程约定
其实很简单,那就是变量名称,类的名称,方法名称,代码的格式,注释的规定等等等等,这些很细节的东西。程序因此也需要底层的完整性。成功编程的一个关键就是避免随意的变化。
这些我觉得在项目中很重要,比如方法的名称,在我的一个项目中,那些c代码中的名称,有的是c的命名规则,有的是java的命名规则,所以这些代码给人感觉极度混乱和邋遢。
4.3深入一种语言去编程。
作者给出了建议,那就是如果你使用的语言缺乏你所希望用的构件,或者倾向于出现其他种类的问题,那就应该去试着弥补他,发明你自己的编码约定,标准,类库以及其他的改进措施。
作者这里给出了一个vb的例子,其实像apache 的commons那几个包,或者说像spring,hibernate这些框架也都是深入java去编程的很好的例子。
分享到:
相关推荐
代码大全读书笔记 xmind 图表形式展现出该书的一些核心价值及观点
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...
1、学生读书笔记共享系统的技术栈、环境、工具、软件: ① 系统环境:Windows/Mac ② 开发语言:Java ③ 框架:SpringBoot ④ 架构:B/S、MVC ⑤ 开发环境:IDEA、JDK、Maven、Mysql ⑥ JDK版本:JDK1.8 ⑦ Maven包:...
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...
综上所述,这份Java读书笔记可能涵盖了JVM的工作原理,特别是类的加载和执行过程,以及this关键字在代码中的应用。通过阅读Execution.htm和初始化总结this关键字.ppt,读者可以深化对Java程序执行流程和对象初始化的...
个人读书笔记,学习共享,希望每个苦恼于代码一坨坨混乱不堪的程序员都能学习. * 整洁代码的意义? 可读性,可维护性。 * 如何写出整洁代码? 1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守...
下面将详细解读这个领域的核心知识点,并基于"代码质量-读书笔记"的内容展开讨论。 首先,我们要理解什么是代码质量。代码质量不仅仅关乎代码的正确性,更包括其可读性、可维护性、可扩展性等多个方面。良好的代码...
1、资源说明:学生读书笔记共享平台源码,本资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 2、适用人群:计算机相关专业(如计算计、信息安全、大数据、人工智能、通信、物联网、自动化、电子信息等)...
21天学通c语言.pdf+代码+读书笔记21天学通c语言.pdf+代码+读书笔记21天学通c语言.pdf+代码+读书笔记21天学通c语言.pdf+代码+读书笔记21天学通c语言.pdf+代码+读书笔记21天学通c语言.pdf+代码+读书笔记
1、资源说明:学生读书笔记共享平台源码,本资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 2、适用人群:计算机相关专业(如计算计、信息安全、大数据、人工智能、通信、物联网、自动化、电子信息等)...
1、资源说明:学生读书笔记共享平台源码,本资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 2、适用人群:计算机相关专业(如计算计、信息安全、大数据、人工智能、通信、物联网、自动化、电子信息等)...
读书笔记:代码整洁之道读书笔记
从给定的文件信息来看,虽然标题和描述指向了“读书笔记”,但内容部分似乎包含了一些乱码,无法直接解析出具体的知识点。不过,基于标题和描述的提示,我们可以探讨一下如何撰写高质量的读书笔记,以及在IT行业背景...
读书笔记:SPA代码整洁之道读书笔记