为什么我要写本身的框架? 架构&设计

来源:互联网 / 作者:SKY / 2016-08-26 07:12 / 点击:
假如是在公司,必定有大量的营业和需求必要实现,那就直接拿来用,假如你是门生,那你很荣幸,你有大量的时刻进修,那就以后刻开始动起你的键盘开始编写吧!无论

我认为编程的框架应该分为:直接用->丢弃->重拾

框架(framework)是一个根基观念上的布局,用于去办理可能处理赏罚伟大的题目。这个普及的界说行使的异常风行,尤其在软件观念。框架也能用于机器布局。

着实说白了框架就是行使别人造好的轮子。在软件开拓内里就是command+C/command+V。

先自我先容一下,我是一名信管专业的大门生,从我的专业可以看出我就是往后各人嘴里的措施员。洋洋洒洒写了一些代码,用了一些主流的框架,此刻有一些领会分享给各人。

作为一个措施员进修一门新技能是让人感想欢快的,随之而来的题目就是怎样快速的把握说话呐?许多技能的过来人都不谋而合的说:用别人已经造好的轮子 呗,你看,多省力,在好久早年我也是他们的一员,也喜好行使大量的框架(js有jQuery、Express、socket.io.js等;PHP有 phpword、Yii、laravel;html内里有Bootstrap、bootcss、normal)。曾几许时,我认为很欢快,在云云短的时刻内就可以做到这样的高度,让我异常的开心。开拓出的内容也完全切合校内应用的需求。我酿成了一个体人眼中的“人人”。

但工作并没有往想象的处所成长。框架用的时刻久了之后就发明白一个题目:我真的有进修过吗?我学的内容真的有效嘛,这些框架内的对象能对我此后有辅佐吗,虽然,这种设法不是一天形成的,尚有一个小的故事。

在行使PHP开拓网页应用的时辰,作为闻名的Yii框架,网页有大量代码可以供我复制黏贴,我用的很爽,能在短时刻内开拓出项 目,bootstrap也可以辅佐我在短时刻内拼接出一个像样的网站,也当上了校内某组织软件开拓部的认真人。但当有一天在教学开拓履历的时辰,当我当着 各人的面真的静下心来写我必要展示的一个类的时辰,早年用了这么多的框架,我发此刻这么多人眼前的我已经险些写不出来一个正确的类了!!运行的时辰不是这 边有题目就是何处呈现了错误。原本在早年我只想着怎样行使它,时代站长网,怎样整合别人的代码,却忘了一个最最本真的对象:缔造!我险些失去了编程的手段,酿成了电脑 眼前的代码复制员。

功效是令人沮丧的,当天我都在思索这个题目:我此后到底醒目嘛?是继承做一个代码复制员,照旧打起精力,看看这些框架的背后有什么内容吧!

于是我就投入了看源码的队列:我打开了bootstrap,打开了Yii框架的vender文件夹,打开了jquery,试图去打开谁人封装起来的黑盒子,相识这些框架背后的伶俐。

下场可想而知,作为css的bootstrap还可以领略,可是其他大型框架的代码险些就是一座不行超越的大山,让人瞠乎其后。莫非就这样放弃,继承用下去,不触碰谁人永久隐秘的盒子了吗?

谜底显然不是这个,影戏《火星救助》的最后有一句话说的很好:
你要么认命放弃,要么继承投入事变,把它们都办理了。

然后我就睡了一觉!哈哈开个打趣啦,没有!我苏醒了,喝了口水,跑了个步,顿时投入了事变,开始阅读!然后发明我照旧看不懂它!怎么办呐,诶!我看 不懂,我可以凭证本身对框架的领略编写一个框架呀!于是我顿时投入了事变,大量的Google之后发明行不通,怎么办!智慧的我顿时想到我不编写整个框 架,那我写部门成果也是可以的呀,于是就有了我的第一个框架的扩展:DbFactory.php文件。

为什么我要写自己的框架?

为什么我要写自己的框架?

为什么我要写自己的框架?

我很欢快,由于我终于开始缔造点对象出来了,固然他很根基,毗连了数据库,封装了几个要领,可是我认为这间隔人人又近了那么一丢丢,天天都是一丢丢,那我还得了哈哈!

当你真正的开始想让你的代码变的更好,你会去把握和相识到越发多的常识,时刻久了往后会在有一天刹时茅塞顿开。
这就是开拓里的量变引起质变。

当写出这个文件的时辰,我是很欢快的,顿时分享了出去,功效就是啥都没有产生,天下照旧那样,我也没有变帅,声名我在成为人人的路上只前进了一点 点,可能爽性没有前进,只是知道的多了点。于是我又开始新的一轮进修,看大量的书本,有一天我从头打开Yii框架在我其时看起来很难领略的代码的时辰我发 现:我居然有点大白它的事变道理,知道整体的架构了!

这个发明白这个的我很欢快,一个设法油然而生:为何我不开始编写本身的框架呐!

说干就干,花了一天的时刻就完成了基本类和代码的编写,包罗路由、模子类、节制类、一些根基的要领都封装在内里,我认为本身的确太锋利了,居然在我 看来可以美满的运行!我认为已经可以了,于是就把它推了上去(ps:没有加上自动require,只是在每个文件的最上面加上了),在不绝的测试之后就发 现,这边有bug,何处也有!require不行使绝对路径的确难用,整个框架想一盘散沙,一点都欠好用,可扩展性险些没有,我又陷入了沉思。错在那边 了!

真正的顿悟是在最近一次打开Yii框架源码,看到了autoload之后顿悟:着实可以按照需求自动加载文件,许多题目也就办理了,虽然,这篇文章也就罗列这一个题目,着实我遇到的题目不止这些,许多早年领略错误的处所也跟着编写这个框架变的正确了✅。

下图是我此刻框架的架构。代码太多,就不做展示了。

为什么我要写自己的框架?

之后的事变就是让框架越发的饱满,不敢说比得上一些主流的框架,说真话基础不可以或许和他们对比,无论从布局、思索照旧思索上,编出主流框架的他们才是 真正的人人。但我通过这个至少有了本身的思索,探求回了本身的缔造力,让本身间隔真正的人人进了一点,不得不嗣魅这种前进是让人欢快的。下图是我早上方才启 动的js框架。

为什么我要写自己的框架?

最后说一下我以为的甜头:
1、对整体架构的思索
2、进步本身的缔造力
3、进步本身独立思索的手段
4、进步本身阅读别人代码的手段
5、用到和熟悉了大量的编程说话内置函数

阅读延展

1
3