我对框架的一点见解
26

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

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

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

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

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

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

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

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

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

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

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

本帖由 Summer 于 11个月前 加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 10

最后一句话,是出自金克丝吗?

11个月前

@skyjerry :smile: 哈哈哈哈不是,想到了,觉得很合适,所以就用了。

11个月前

很不错,对框架有了新的认识。

11个月前

@skyjerry 这个厉害了

11个月前

厉害了,我的哥。。不,我的姐。。不不,,哥?姐?

10个月前

框架其实就是一个惯例,不同的功能由不同的组件实现,把组件放在一起按照惯例配置组合出来一套方案就是框架;
现在很多应用都在反框架,比如 grav, flarum不能说是返璞归真,如果非要想个理由,应该是追求自由不想要框架的条条框框

10个月前

@Tao flarum是个论坛系统吧,还称不上框架

10个月前
Patrick95

最后一句金克斯。

10个月前

@googleFans 所以我说的是反框架, 框架与业务代码集成在一起的

10个月前

@Crizer 厉害了!!!

10个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!