当前位置: 首页 > 科技观察

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

时间:2023-03-21 00:04:23 科技观察

我觉得编程的框架应该分为:直接使用->扔掉->拿起框架(framework)是一个基本的概念结构,用来解决或处理复杂的问题。这个宽泛的定义被广泛使用,尤其是在软件概念中。框架也可用于机械结构。其实说白了,框架就是用别人造的轮子。在软件开发中,就是command+C/command+V。让我先自我介绍一下。我是一名信息管理专业的大学生。从我的专业看,我就是以后大家说的程序员。自己写了一些代码,用了一些主流的框架,现在有一些经验分享给大家。作为程序员学习一门新技术固然令人兴奋,但随之而来的问题是如何快速掌握这门语言?体验过很多技术的人都异口同声地说:用别人造的轮子。你看,它省力。我很早以前也是其中之一,我也喜欢用很多框架(js有jQuery、Express、socket.io.js等;PHP有phpword、Yii、laravel;html有Bootstrap、bootcss、普通的)。曾几何时,我感到很兴奋,很高兴能在这么短的时间内达到这样的高度。开发的内容也完全满足了学校应用的需求。我成了别人眼中的“高手”。但事情并没有像预期的那样发展。框架用久了,发现一个问题:我真的研究过吗?我学到的内容真的有用吗?这些框架里面的东西对我以后有帮助吗?当然,这个想法不是一天形成的,还有一段小故事。在使用PHP开发web应用的时候,作为大名鼎鼎的Yii框架,有很多代码需要我去复制粘贴。我用的很好,可以在短时间内开发项目。Bootstrap也可以帮我拼接一个像样的网站,他也成为了学校某机构软件开发部的负责人。但是有一天我在教开发经验的时候,真的静下心来写了一个需要展示在大家面前的类,之前用了那么多框架,结果发现自己在这么多人面前。编写一个正确的类几乎是不可能的!!运行的时候,不是这里有问题,就是那里有错误。原来之前只想着怎么用,怎么集成别人的代码,却忘记了一件最真实的事情:创造!我几乎失去了编程能力,成了电脑前的代码复制者。结果令人沮丧,我花了一天时间思考这个问题:我以后要做什么?是继续做一个代码复制者,还是打起精神去看看这些框架背后有什么!于是我跳进了看源码的行列:打开bootstrap,打开Yii框架的vender文件夹,打开jquery,尝试打开封装的黑盒,了解这些框架背后的智慧。结局可想而知,bootstrapascss无可厚非,但其他大型框架的代码几乎就是一座无法逾越的高山,非人所能企及。我是否应该放弃并继续使用它而不去碰那个永远神秘的盒子?答案显然不是这个。电影里有句话说得好《火星救援》:要么认命认命,要么继续努力解决所有问题。然后我睡着了!哈哈开玩笑的,不!我起床,喝了一口水,跑了会儿步,立马上班看书!然后发现还是看不懂!我该怎么办,哎!不懂,我可以根据自己对框架的理解写一个框架!于是立马投入工作,Google了一番,发现不行,怎么办!聪明的我立刻想到,如果不写整个框架,那我可以写一些功能,所以我有了我的第一个框架的扩展:DbFactory.php文件。我很兴奋,因为我终于开始创造一些东西了。虽然很基础,就是连接数据库,封装了几个方法,但是我觉得离高手太近了。每天一点点,然后我就明白了哈哈!当你真正开始让自己的代码变得更好的时候,你就会掌握和学到更多的知识,时间久了,有一天你会恍然大悟。这就是发展的量变导致质变。当我写这篇文档时,我非常激动,并立即分享。结果是什么都没有发生,世界还是老样子,我并没有变帅,说明我只是在成为高手的路上进步了一点点,或者说一点进步都没有,只是多了一点点知识。于是我开始了新一轮的学习,看了很多书。有一天我重新打开Yii框架,发现当我看着当时难以理解的代码时:我竟然理解了它的工作原理和整体结构。向上!发现这一点让我非常兴奋,于是我想到了一个主意:为什么我不开始编写自己的框架呢!就这么干吧,花了一天时间完成了基础类和代码的编写,包括路由,模型类,控制类,一些基础的方法都封装在里面了,感觉自己简直太优秀了,其实在我看来来跑以你最快的速度!觉得还行,就推了上去(ps:没有加自动require,只是加在每个文件的最前面),经过不断的测试,发现这里有bug,有的也有!require不使用绝对路径,不好用,整个框架看起来很乱,不好用,扩展性几乎没有,又陷入了沉思。怎么了!真正顿悟是在上次打开Yii框架源码的时候。看到autoload后,我明白了:其实可以根据需求自动加载文件,很多问题都会迎刃而解。当然,本文也会列出这个问题。其实我遇到的问题不止这些,很多之前被误解的地方随着这个框架的写法都变得正确了?。下图是我目前框架的架构图。代码太多,就不一一展示了。接下来的工作是让框架更加丰满。不敢说比得上一些主流框架。老实说,我根本无法与他们相比。无论从结构上、思路上还是思路上,编出主流框架的才是真材实料。棋圣。但通过这样,至少我有了自己的思考,找到了自己的创意,让自己离真正的大师更近了一点。不得不说,这样的进步令人振奋。下图是我早上刚入手的js框架。***说说我认为的好处:1.思考整体结构2.提高自己的创造力3.提高独立思考的能力4.提高阅读别人代码的能力5.多多使用和理解编程语言的内置函数是我的一点小建议:如果你在公司,肯定有很多业务需要实现,那就直接用吧。如果你是学生,那么你很幸运,你有大把的时间来学习,那就动动你的键盘,从现在开始写吧!不管多难,时间长了你会发现你的整体思路会越来越清晰!