我对框架的一点见解

前面曾经分析过一些关于 Laravel 框架的小知识点,今天来说一说我对框架的一点见解。

我习惯把框架理解为规则。

什么是规则,抽象一点来说,规则就是是运行、运作规律所遵循的法则。

它会让你知道,怎么做,是 good。怎么做,是 bad。它让你知道什么事情可以做,什么事情,不能做。

我们所生活的世界里处处都有规则,有的规则是显式的,例如刑法,宪法。有的规则是隐式的,例如排队,电梯里不能抽烟等。不管是显式,还是隐式,它都明确的给你划出了一条线,如果你越过了这条线,那么轻则为人所不齿,重则锒铛入狱。

我们也可以把这个思想运用到代码中。不管是语法,还是框架,它明确的都给你指出了一个规则。他们之间的区别只是粗细而已。语法规定的规则比较松散,只规定了基本的规则,确保你遵守这个规则时代码运行不会出错。但是我们的代码并不只是需要运行不出错而已,这只是最基本的需求。我们还需要更加详细的规则,让代码更加清晰可读,开发迅速,方便维护,所以框架应运而生。

不管是 Laravel 还是其他一些使用比较广泛的框架。其实它们做了并且只做了一件事,那就是制定出更加完善的一套规则,以完善代码语言本身的规则。我们所需要做的就是遵守它们所指定出的规则,这样就可以很轻易的写出很优雅的代码。不用考虑什么文件该放在什么位置,什么模块该怎么写。这些东西框架的作者都已经制定好了,我们只需要写我们的逻辑就可以了。

举个例子,语言本身是一堆木条,开发完成的应用是一个箱子,如果你使用原生的语言开发,那么你就需要使用这一堆木条从最基本的骨架开始搭建,直到搭建成一个完整的箱子。而框架则相当于一个已经搭好骨架的箱子,你只需要往各个空位填入木条就可以了。当然,有时候这个骨架可能和你希望做成的箱子不太一样,那么你就需要把不符合你希望的那一部分骨架拆掉,或者改造。

总结一下,框架就是一套更加完善的骨架(规则),我们可以很迅速的使用它开发成一个成型的应用。

但是,在开发过程中,权重排第一位的永远是你自己的逻辑,排第二的才是框架给你制定的规则。我们所需要的只是尽量在遵守框架制定的规则时,写好自己的逻辑。如果自己的逻辑和框架发生了冲突,能改造,则改造,如果不能,就拆掉它。你可以遵守它的规则,但是不能迷信。适合的,才是最好的。

毕竟规则这个玩意,就是拿来打破的。