1、学习和使用一门语言必须掌握的三件事?对于程序设计语言,对应着什么?
第一,这门语言的结构如何(语法)?---面向算法的,还是面向函数的,还是面向对象的?
第二,如何命名你想谈论的事物(词汇)?---标准类库提供了哪些数据结构、操作和功能(Facility)?
第三,如何以惯用和高效的方式表达日常的事物(用法)?---如何用习惯和高效的方式来构建代码?
2、如何把程序设计语言以最佳的方式运用到实践中?
仅仅编写出能够有效的工作并且能够被别人理解的代码往往是不够的,我们还必须把代码组织成易于修改的形式。
习惯和高效的用法应该具备的特点:工作的更好,能容易被理解,容易在将来进行修改和改善。
3、大多数书中规则来源于少数几条基本的原则,学习编程艺术首先要学会基本的规则,然后才能知道什么时候可以打破这些规则。
第一,清晰性和简洁性最为重要:模块的用户永远也不应该被模块的行为所迷惑。
第二,模块要尽可能小,但又不能太小。模块,指可重用的软件组件,从单个方法,到包含多个包的复杂系统,都是一个模块。
第三,代码应该被重用,而不是被拷贝。
第四,模块之间的依赖性应该尽可能降低到最小。
第五,错误应该尽早被检测出来,最好是在编译时刻。
4、本书大部分内容都不是讨论性能的,而是关心如何编写出清晰、正确、可用、健壮、灵活和可维护的程序来。如果做到了这一点,那么要想获得所需要的性能往往就相对比较简单了。
5、类、接口、构造器、成员以及序列化形式被统称为API元素。导出的API由所有可在定义该API的包之外访问的API元素组成。任何客户端都可使用这些API元素,而API的创建者则负责支持这些API元素。一个包导出的API是由该包中的每个公有的(public)类或者接口中所有的公有的或者受保护的成员和构造器组成。