松本行弘的程序世界

 

2020-01-01

  • 比起“使用计算机干什么”这一问题,我总是一门心思想着“如何将自己的意图传达给计算机”。
  • 已经有越来越多的开发人员,在实践中果敢地施行着 Ruby语言及其社区所追求的“对高生产力的追求”、“富有柔性的软件开发”、“对程序员人性的尊重”、“鼓起勇气挑战新技术”等原则
  • 所谓Lisp流,其语言核心部分仅仅提供极为有限的特性和构造,其余的控制结构都是在编译时通过用宏来组装其核心特性来实现的
  • 对程序员来说,程序的开发效率固然很重要,但是写出的程序是否具有很高的可读性也非常重要。从整体来看,程序员读程序的时间可能比写程序的时间还长。读程序包括为理解程序的功能去读,或者是为维护程序去读,或者是为调试程序去读。
  • 所谓编程,就是把工作的方法告诉计算机。但是,计算机是没有思想的,它只会简单地按照我们说的去做。计算机看起来功能很强大,其实它也仅仅只会做高速计算而已。如果告诉它效率很低的方法,它也只是简单机械地去执行。所以,到底是最大程度地发挥计算机的能力,还是扼杀它的能力,都取决于我们编写的程序了。
  • 每种编程语言都有自己的特征、属性,都各有长处和短处、适合的领域和不适合的领域。写程序的难易程度(生产力)也有很大的不同
  • 有很多算法,如果单靠自己去想是很难想出来的。比方说数组的排序就有很多的算法,如果我们对这些算法根本就不了解,那么要想做出高速排序程序会很困难。算法和特定的数据结构关系很大。所以有一位计算机先驱曾经说过:“程序就是算法加数据结构。”
  • 面向对象的设计方法是 20世纪 60年代后期,在诞生于瑞典的 Simula编程语言中最早开始使用的。Simula作为一种模拟语言,对于模拟的物体,引入了对象这种概念。比如说对于交通系统的模拟,车和信号就变成了对象。一辆辆车和一个个信号就是一个个对象,而用来定义这些车和信号的,就是类
  • 面向对象编程语言中最重要的技术是“多态性
  • 在编程中,“打开箱子”的命令,我们称之为消息;而打开不同箱子的具体操作,我们称之为方法。
  • 根据对象不同类型而进行适当地处理”就是多态性的基本内容。
  • 根据数据类型来进行合适的处理(调用合适的方法),本来就应该是编程语言这种工具应该完成的事。只有实现了这一点,才能称为真正的多态
  • 前面说明了多态性,那么它到底有什么好处呢? 首先,各种数据可以统一地处理。多态性可以让程序只关注要处理什么(What),而不是怎么去处理(How)。 其次,是根据对象的不同自动选择最合适的方法,而程序内部则不发生冲突。不管调用有锁的箱子,还是系着彩带的箱子,它们都能自动处理,不用担心调用中会发生错误,这样就会减轻程序员的负担。 再次,如果有新数据需要对应处理的话,通过简单的追加就可以实现了,而不需要改动以前的程序,这就让程序具备了扩展性。 综上所述,多态性提高了开发效率,所以说,面向对象技术最重要的一个概念应该是多态性