学习要点:
1.框架和库
2.个人用框架的优势
3.公司用框架的优势
4.框架和开源系统
本课程由 网 北风网 和 和 瓢城 b Web 部 俱乐部 提供
在正式学习 ThinkPHP 框架之前,我们首先要探讨一个问题——为什么要使用框架。它
的好处是什么?有哪些优势?对个人或公司运营有哪些帮助?
一. 框架和库
库:英文是(Library)可以理解为仓库、图书馆、存书室。在程序里面理解,就是各种
代码的封装集合包,提供原生内置并不存在的功能和方法。
框架:英文是(Framework)可以理解为骨架、架构、书架、书框。在程序里面理解,
就各种条条框框像个有规则的书架一样,让你按照它的代码规范、编码模式(比如很多框架
是基于 MVC 模式的)去开发应用程序。当然,框架内可能也包含了库的功能,也提供了各
种封装功能的集合包。
那么使用框架开发有哪些优势呢?
二. 个人用框架的优势
在个人项目开发中,使用框架比采用原生代码开发优势较为明显:
1.效率极高:因为框架已经帮你疏通了管道、构建了厂房、安好了水电、装全了设备、
排好了书架,你要做的就是按照书架的布局或规格,整齐的把书放上,就完了。如果你不用
框架建设,你还需要自己疏通管道、构建厂房、安水电、装设备、排书架,效率大大提高。
2.安全性高:框架的开发难度较高,一般都是身经百战的架构高手们经过多年、多版本
研发、更新迭代孕育而成。经过大量市场和用户的轮番测试和考验,保证了不同情况和状况
的稳定性。而如果你是低手或者新手,且自己架构,很有可能会遇到厂房崩塌、漏水漏电等
不安全的情况发生。
3.稳定性高:基本同上,因为各种部件进行有有条不紊的架构,导致在不同程度的运行
中保证流畅。而自行架构的,在某些极端情况下可能会遇到管道堵塞的问题发生。
PS:使用框架有这么多明显的优势,那对于个人开发者有必要学习那些原生的基础知
识吗?答案是:必须要学习。首先,最基础的没有学好,在学习和使用框架的时候会到处碰
壁。其次,基础知识越扎实,在使用框架的深度和灵活度上要远高于不扎实的人,这是个人
竞争力的体现。
PS:一般对于职业生涯规划,我总结出可能会出现三种情况:1.努力学习基础知识,然
后学习一种或多种框架在工作中高效的使用,最终积累的各种资源,成立自己的工作室或公
司承办业务;2.努力学习基础知识,然后学习一种或多种框架在工作中高效使用,然后又返
璞归真深入研究原生,开发多款工具或开源框架,实现大牛级别;3.改行。
三. 公司用框架的优势
在公司团队项目开发中,使用主流框架比原生或自行开发框架优势较为明显:
1.团队协作力强:开源框架提供了统一的规范和编码模式,且模块与模块之间相对独立。
对于程序员来说,只要根据这种规范来编码,团队之间的协调性会非常容易。而且主流的开
源框架在招募人才方面较为容易,上来就能使用,降低的培训成本。
2.降低培训成本:如果使用原生代码,当另一个团队人员接受或参与,几乎看不到懂之
前的技术员人代码,最终可能要重构,成本巨大。如果使用公司研发的框架,那么也需要一
定时间的培训才能上手,成本也是巨大的。而使用主流框架,大部分技术人员在来公司之前
就已经掌握。
3.去技术人员化:一个公司把核心代码掌握在某个技术人员手里,这是极其危险的事。
当这个项目的原生或者自行开发的框架是某一个技术人员设计的,当他离职后,代码将是一
堆垃圾,没人能看懂。如果使用主流框架,那么公司的核心是项目和业务本身,降低技术人
员的价值。任何一个技术人员离职,都不会影响项目的研发进度,只要懂主流框架的技术人
员,上手即可继续。
PS:这里要声明一下,不同级别的公司在原生和自行开发框架、主流开源框架的认识
上是有一定分歧的。技术型的大公司,不缺线,不缺技术人员,开发自己的框架主要解决自
己庞大的业务需求,其次是捍卫自己技术型公司的地位。而缺钱、缺人才的中小型公司,什
么都要自己研发,自己研发框架,自己研发前端库,然后用框架和库开发自己的论坛,内容
管理系统,商城系统。不用 discuz、dede、ecshop 之类的开源系统。最终导致烧完 100 万资
金,还欠发两个月工资,老板失踪,网站也没上线运营就倒闭了。
四. 框架和开源系统
所谓开源系统,就是开放源代码的系统。这些系统,包括比如 discuz 论坛系统、phpcms
内容管理系统、shopex 商城系统。这些系统,都是定制某种领域功能的、已经开发好的系
统。原则上,这些系统已经不需要技术人员来编码了,可以直接上线运营了。因为这些是定
制的系统,所以系统会专门根据此领域的情况进行特定的优化。那么也就是说,这些开源系
统在安全性、稳定性和效率上要高于用框架开发的同类产品。所以,很多公司大量招聘开源
系统的二次开发人才。
那么到底是学框架开发,还是学开源系统的二次开发呢?我的建议是,先学基础(比如
PHP1,2,3 季度),再学框架(PHP 第 4 季)。之后如果对开源系统的二次开发感兴趣,其实
有了这么多基础,直接看 API 就非常容易了,都不需要专门做视频指引。