大势所趋,Python 已然成风
C语言诞生于1972年,确随着 Unix 的诞生才深深植根于各大操作系统;
C++诞生于1983年,确因微软的可视化桌面操作系统才得以广泛传播;
Java 诞生于1995年,确因互联网的迅速崛起才变得家喻户晓;
Python 诞生于1991年,而下一场技术革命已然开始,AI 时代已然成风。在 AI 领域中已经被广泛使用的 Python 必将成为下一个时代的第一开发语言!
最热门的 AI 开源框架 PyTorch 和 TensorFlow 都已经采用了 Python 作为接口和开发语言。
除此之外,还有一堆的 AI 相关的框架库,也都纷纷采用,如 AIMA、pyDatalog、SimpleAI、PyBrain、PyML 等。
语言的热门程度一直是程序员持续关注的话题,也是众多初学者的纠结之处;毕竟,如果学习了一门冷门的技术,不但英雄无用武之地,而且在求职市场上也没有什么优势。
2018 年的 TIOBE 编程语言排行榜中,Python在众多的计算机语言中已经稳稳排名第四了,而且还有大幅上升的趋势( 2017 年排名第 5 )。
作为这么一门有前途也有钱途的语言,还有什么理由不去学习和掌握呢?
学了 Python 为什么还要学设计模式
要成为一名优秀的程序员,只掌握一门编程语言是不够的;还需要学习完成一个大型实际项目所需的更多技能:
如何组织代码
面向对象设计
数据结构和算法
数据库基础知识
构建和部署
优良的代码组织结构需要依赖团队制定的编程规约、长期养成的编程习惯、及不断积累的技术经验。
面向对象设计是一种设计复杂程序的方法,它将代码分成了单独的类和对象(类的实例),这些类和对象封装了一些特定的功能。
要更深入地理解面向对象的设计思想,则需要学习设计模式,设计模式是面向对象思想的高度提炼和模板化。
因此掌握设计模式,是写出高质量代码的必备要素!掌握设计模式,理解面向对象的编程思想,将会使您的代码更具可读性,更易拓展和更可维护。
什么是设计模式?
设计模式最初是被 GoF 于1995年提出的。GoF 全称是 Gang of Four(四人帮),即 Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides。
他们四人于1995年出版了一本书《Design Patterns: Elements of Reusable Object-Oriented Software》(翻译成中文是《设计模式 可复用面向对象软件的基础》),第一次将设计模式提升到理论高度,并将之规范化。该书提出了23种经典的设计模式。
设计模式(Design pattern)是一套被反复使用、多数人知晓的、无数工程师实践的代码设计经验的总结,它是面向对象思想的高度提炼和模板化。
使用设计模式是为了让代码具有更高的可重用性,更好的灵活性和可拓展性,更易被人阅读和理解。
为什么要学设计模式?
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。所以不管你是新手还是老手,学习设计模式对你都有莫大的帮助。
学习设计模式的理由有很多,我这里只列出几个最实现的:
摆脱面试的窘境,不管你是前端工程师还是后端工程师,亦或是全端工程师,设计模式都是不少面试官必问一道题。
让你的程序设计能力有一个质的提升,不再是写一堆结构复杂,难以维护的烂代码。
让你的程序更健壮、更灵活、可复用。
使你对面向对象的思想有一个更高层次的理解。
Python 中最简最好的设计模式
设计模式于1995被 GoF 提出,被广泛应用于热门的面对象语言。目前用Java、C++ 描述的设计模式的书籍和资料已经非常多了,但用 Python 来描述的真是太少了;
我在当当上搜索了一下“Python 设计模式”,只有那零星的几本书,而且大部分是国外的书,翻译过来后都变味了。
Python 中讲设计模式的书籍和资料非常少,当然有一些其自身的原因:
相较于Java和C++而言,Python是一门解释 类型的语言,本身对数据类型的支持非常灵活多变。
Python本身具有非常好的灵活性和良好的封装性,使得其自带了很多的功能,已经把一些模式融入到自己的语言特性了。
但这不代表学习Python的你就不需要了解设计模式了,原因有如下:
Python具有良好的设计,但总会有一些复杂的需求,语言特性本身难以支撑,这个时候就需要考虑一些设计模式了。
设计模式是一种编程思想,他和语言没有强关联,能适用于所有面向对象的语言,学习设计模式能让你对面向对象的思维有更深入的了解。能更容易理解一些框架的设计,能读懂更多开源代码(很多优秀的开源项目,本身应用了大量的设计模式)。