后端技术面试38讲
李智慧
同程艺龙交通首席架构师,前Intel&阿里架构师,《大型网站技术架构》作者
立即订阅
3682 人已学习
课程目录
已更新 16 讲 / 共 38 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 掌握软件开发技术的第一性原理
免费
软件的基础原理 (8讲)
01丨程序运行原理:程序是如何运行又是如何崩溃的?
02丨数据结构原理:Hash表的时间复杂度为什么是O(1)?
03丨Java虚拟机原理:JVM为什么被称为机器(machine)?
04丨网络编程原理:一个字符的互联网之旅
05丨文件系统原理:如何用1分钟遍历一个100TB的文件?
06丨数据库原理:为什么PrepareStatement性能更好更安全?
07丨编程语言原理:面向对象编程是编程的终极形态吗?
答疑丨Java Web程序的运行时环境到底是怎样的?
软件的设计原理 (6讲)
08丨软件设计的方法论:软件为什么要建模?
09丨软件设计实践:如何使用UML完成一个设计文档?
10 | 软件设计的目的:糟糕的程序员比优秀的程序员差在哪里?
11丨软件设计的开闭原则:如何不修改代码却能实现需求变更?
12 | 软件设计的依赖倒置原则:如何不依赖代码却可以复用它的功能?
13丨软件设计的里氏替换原则:正方形可以继承长方形吗?
不定期加餐 (1讲)
加餐 | 软件设计文档示例模板
后端技术面试38讲
登录|注册

07丨编程语言原理:面向对象编程是编程的终极形态吗?

李智慧 2019-12-02
软件架构师必须站在一个很高的高度去审视自己软件的架构,去理解自己的工作在更宏大的背景中的位置和作用,才能构建出一个经得起时间考验的软件系统。这个高度既包括技术的高度和深度,也包括对软件编程这件事认知的程度,比如对软件编程的历史和未来的理解,以及对自己工作的价值和使命感的理解。
计算机软件编程是个非常新兴的行业,程序员这一职业的出现不过半个多世纪,但是人类从事软件编程的探索却要久远得多,在计算机出现之前,甚至蒸汽机出现之前,人类就开始探索软件编程了。
最早开始编程探索的人是德国人莱布尼兹,早在 1700 年代,莱布尼兹就期望将各种事物都通过一种逻辑语言进行描述,然后用一种可执行演算规则的机器进行计算,就可以计算出事物的各种结果。这种思想其实和我们现代的软件编程与计算机已经差不多了,莱布尼兹为了实现这个想法,进行了大量的工作,获得了丰硕的成果,其中就包括了微积分和二进制
但是人不能超越自己的时代,莱布尼兹制造可编程计算机的梦想并没有成功。又过了 100 年,法国人雅卡尔发明了一台可编程的织布机,这种织布机通过读取纸带上的打孔,进而控制织布机织出不同的图案。于是人们开始尝将打孔纸带用于计算机编程,19 世纪中叶,当英国人 Ada 利用打孔纸带写出人类第一个软件程序的时候,距能够运行这个程序的计算机的发明还有 100 年的时间,而这个程序已经包含了循环和子程序。Ada 因此被认为是人类第一个程序员,准确的说,是程序媛。科技发明受时代的限制,天才们的想象力和聪明才智却可以超越时代。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《后端技术面试38讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(13)

  • 观弈道人
    行云流水
    2019-12-02
    3
  • Geek_e06c0f
    做到完全面相对象编程是说领域驱动设计DDD吗?
    2019-12-02
    3
    3
  • 许童童
    老师的文章写得好啊,通过历史看现在,真的是妙。
    2019-12-02
    2
  • uuwill
    这篇读完收获很大🦆
    2019-12-02
    2
  • 灰灰
    打卡
    2019-12-17
  • Geek_d048e4
    第一个普及计算机编程历史的老大,感谢
    2019-12-10
  • 赤城
    老师讲编程语言的发展历程与马克思理论联系起来,还真是让人眼前一亮啊
    2019-12-09
  • 台风骆骆
    觉得有必要去看看马克思的书了,哈哈
    2019-12-06
  • 小东
    什么是反应式编程,有比较好的事例吗?

    作者回复: 模块2会专门讲反应式编程

    2019-12-05
  • 2102
    现在出现了面向方法编程
    2019-12-04
  • Paul Shan
    计算机语言和人是协同进化,早期的机器语言,汇编语言实在太难用,C语言以及那个时代的语言都是主要解决这个问题,我想以后流行的语言也必然是用户友好的。
    后来程序越写越大,复杂度很难控制,后来出现了面向对象的编程语言。这里,我想当年Unix操作系统,大神用C语言也没问题,面向对象的编程主要还是让普通人控制软件的复杂度。我想将来流行的语言应当是容易控制复杂度,容易切分代码。
    编程语言是一个工程问题,要权衡利弊,很难有一种语言在所有维度上都得高分,所以将来大概率是一个百花齐放的时代。
     
    2019-12-03
  • 老男孩
    C语言的发明者为了验证C语言的特性,写了一个小demo,这就是Unix。牛人的境界真是无法企及。醉了
    2019-12-03
  • 郭刚
    如SQL这种面向集合的语言,处理大量数据很合适。面对对象的语言,如java处理大量数据,只能一条条处理,性能会急剧下降。
    2019-12-02
    2
收起评论
13
返回
顶部