框架

来源:互联网 发布:网络推广月度工作计划 编辑:程序博客网 时间:2024/05/20 16:43
作者:Harry Zhu
链接:https://www.zhihu.com/question/25654738/answer/31445818
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

先回答题主的问题: 框架的初衷。简言之就是:
抽象出重复,专注于类似,以标准化高质量的代码品质降低广大码农的工作量,拯救IT行业的颈椎,杜绝青光眼,维系夫妻和睦,恋人如胶似漆,单身养肾,下载种子长留。

当我们做开发时,绝大部分流程都是相同或者至少类似的,迥异的只不过是我们各个项目的业务逻辑。那么每次我们都要把那些相同的类似的代码敲一遍,或者复制一遍,或者复制后小修一番,这就造成了大部分double work。

复制过来的代码又总是多少会有些别扭,质量也是高高低低,命名也是风格多样,子曾经曰过,懒~是人类进步的阶梯!于是乎那些牛到爆懒到家的码农便琢磨着将那些大家都会重复的过程搞出来,然后进行标准化,有个高大上的名词叫“抽象”,然后要对这个被抽象出来的东西起个名字吧?如何做到名称白富美还能接地气呢?

码农嘛,纯朴的民工!联想到跟自己建房子时候差不太多呀,这里承重墙,那里抠个OO,下面打个XX,各家房子框架都这样啊,不同的是这里你刷个白漆,那里你挂个陀思妥耶夫思密达sir,对吧?那好吧,我们也叫~~~框架

这里就实现了标准化和流水线分工对不对?
  • 写框架的专注于框架,越来越稳定性能越来越强悍;
  • 妹纸专注于给房子化妆,整了个洋名儿:UI(有爱)或者UEX(无前任),部门名取决于妹纸是否专注于失恋;
  • 大老爷们儿还是负责搬砖,这里抽油烟机,那里抽水马桶,美其名曰射机湿,
你会发现以前装马桶要长宽高,要糊水泥,有时候还要配个皮揣子,尼玛,有够闹心不?现在你只需要写马桶,然后马桶就通了,源代码里甚至还有TOTO字样,有木有,太方便了,妈妈再也不用担心我熬夜设计马桶了,速度,质量,舒适度,只需3分钟,通通ISO9001,通通通~~~

这里,你应该发现了框架的优势与弱势:
1)框架的初心是抽象出那些重复度高的代码,言外之意就是如果你的项目足够简单,简单到裸着写都没有什么重复代码,那么你就不需要框架。框架是用来建房子的,铺个草坪要毛框架啊???框架是“牛刀”,杀只鸡要毛牛刀啊?有木有? 【框架有其自身的适用场景,是瑞士军刀,非妇孺皆宜】

2)一旦你使用了框架,那么你这个项目里面有相当一部分的代码质量是稳定健壮的,比自己写的代码好太多了,我们也不好意思让那么烂的代码伴随框架,所以要多花点时间锤炼自己的代码,与框架同行。【框架可以让你在保证代码质量的基础上,拥有更多时间来关注自身的业务逻辑与代码】

3)自己建的房子松松垮垮,但手熟;别人建的房子坚固,但是不熟悉,你需要有个熟悉的过程,所谓学习曲线就是它了,使用框架,这是无数人,啊,应该是无数牛人智慧的凝聚,理解牛人的思维,怪癖都是一种修炼,需要时间,需要耐心。【框架有学习曲线,有时候,框架学习的难度比手写代码自己实现的难度要高不少】

------------------------

再来回答题主的另外一个问题: 框架各自的优势:

你应该去各个框架的官网仔细研究它的readme,而不是在这里发问,各个框架都有无数大V的blog有深浅皆宜的使用,请围观。
切记,玉和兄长不可兼得。
如果追求开发速度快,ROR
如果追求方便Full Stack, Django
如果追求学习简单上手, PHP框架任选
如果直接瞄准FB,TB,BAT,追求性能至上,大团队开发,企业铂金镶钻级开发,Java框架任选
------------------------
最后回答题主的另外一个问题:框架具体做哪些业务?

框架的业务,喔,就是做框架啊,还能有什么呢?至于区别嘛,你说说万科,招商地产,保利,绿地他们造的框架有什么区别?

这就涉及到题主最开始的一句话了,如何学习?
我的建议是:
初学者,不要学习任何框架,裸写,一定要裸写.


不裸写几万行代码,你怎么知道哪些代码是重复的?不把Ctrl + C/V摁到掉漆,你怎么能感同身受那些框架射机湿不是吃饱了撑着?裸写代码不被Bug折腾到头发掉了一地,你怎么能理解代码健壮性的可贵?裸写代码不被别人SQL注入拖库,你怎么会感谢Django的ORM?网页不慢到吃顿火锅才能打开你怎么忆起Tornado非阻塞的柔情似水?


不裸写代码到颈椎痛,腰椎间盘突出,800度近视,夫妻分床,恋人冷战,BT硬盘坏道,苍老师隐退,你怎么能直接用框架,你怎么好意思叫程序猿?
0 0
原创粉丝点击