V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
vghdjgh
V2EX  ›  问与答

为什么软件公司和部分互联网公司会流行“企业级开发框架”?

  •  
  •   vghdjgh · 2017-03-06 00:40:02 +08:00 · 3624 次点击
    这是一个创建于 2622 天前的主题,其中的信息可能已经有所发展或是发生改变。
    “企业级开发框架”既可能是前端框架、各种语言的后端框架( java 的特别多)、前后端混合框架。
    好多公司会自己造,一部分会开源出来,例如阿里的 egg 。
    一般是少数技术厉害的做出来、后续维护,一般会有固定的项目结构,内置一些常用的功能,然后具体的业务代码让码农来填,一般是数据库的增删改查,或者画页面,这部分为框架填业务代码的码农甚至不知道 http 协议,只知道在后端怎么怎么写个方法,前端就能用了,或者在前端调用框架内部的方法,传个地址、参数就能收到数据了,连参数是在 URL 中,还是在 body 中都不清楚。
    这类框架可以复用代码,但是普遍都有各种限制,例如 URL 只能是某种格式,或者不支持 websocket ,一旦需求需要框架不支持的功能,就只能等框架更新,这样维护性显然很差。
    在以前的“框架”和“库”的争论中,一般认为,“库”可以复用代码,而且维护性要比“框架”要好很多,如果一个库不满足需求,可以等库更新,也可以根据需求实现一个,也可以考虑用高质量的开源库。

    所以,为什么软件公司和部分互联网公司会流行“企业级开发框架”?而不是以“库”的形式复用?

    从“人”的角度看,填业务代码填多了,技术是基本上得不到提升的;而如果项目是库的形式,码农反而有机会思考,造轮子,提升技术。例外,我感觉,高级开发们做“企业级开发框架”,有利于保持自己的稀缺性。
    13 条回复    2017-03-06 11:53:56 +08:00
    imcxy
        1
    imcxy  
       2017-03-06 00:52:33 +08:00   ❤️ 1
    http 协议不会这个锅别人背不了,提升不了就找能提升的,物竞天择,对企业来说,不行就换人。
    lecher
        2
    lecher  
       2017-03-06 00:57:13 +08:00 via Android   ❤️ 1
    随着业务发展,公司内部整理出一套最佳实践框架,即兼顾工程化又考虑到新人上手难度。加上公司需要在技术领域输出影响力,就顺便把框架开源出来,好处是很明显的,使用框架的团队越多,公司越容易招到契合的员工。最不济,也能输出一下技术影响力,向业界证明实力。

    至于为什么框架居多,因为公司内部就是用框架的多,把模块拆成库,固然好处不少,但奈何愿意做模块拆分成库这种重构工作的工程师太少,拿个内部框架改改注释整理整理开源出去就好了。
    jarlyyn
        3
    jarlyyn  
       2017-03-06 01:01:05 +08:00   ❤️ 2
    库是开发的工具。

    框架是协作的工具。框架一般是由一堆库和相应的规范 /约定组成的。

    两者又不冲突。

    连库和框架的区别都高不清楚,怎么扯出这么大一堆的。

    用库用的多,又“不用框架”的,本身就是在维护一套自己的框架。
    billlee
        4
    billlee  
       2017-03-06 01:02:05 +08:00   ❤️ 1
    这样换码农的成本比较低
    vghdjgh
        5
    vghdjgh  
    OP
       2017-03-06 07:41:38 +08:00
    @jarlyyn 框架和库确实不冲突,用库用的多,又“不用框架”的,不一定会维护一套自己的框架。
    例如, 2 个项目都使用了多个库,“协作”体现在项目和库之前的协作和项目内开发之间的协作,前者的规范或约定由各个库来决定,记录在各个库的文档上(主导是库);后者的规范或约定由项目文档或开发规范来决定(主导是项目), 2 个项目的规范或约定可能是不一样的。这种情况就没有“框架”的概念。
    Sharuru
        6
    Sharuru  
       2017-03-06 08:15:36 +08:00 via Android   ❤️ 1
    很简单啊,库是 lib ,你 import 了一堆该不会写的还是不会写、框架就是一个 project ,你 import 了以后都有 sample ,代码照着抄就行了。
    这样做无论技术如何都能做到快速产出。

    至于你说到的什么基本协议不懂之类的,还指望公司去教你?都是成年人了,这种东西自己学去。
    vghdjgh
        7
    vghdjgh  
    OP
       2017-03-06 08:23:06 +08:00
    @Sharuru lib 和 project 都可以有 CLI 工具来生成 sample 的啊,所以这方面没效率差异啊
    WhoMercy
        8
    WhoMercy  
       2017-03-06 08:56:55 +08:00 via Android   ❤️ 1
    時間就是金錢,我的朋友
    changwei
        9
    changwei  
       2017-03-06 09:03:25 +08:00 via Android   ❤️ 1
    php 里面明明是流行 thinkphp 这种轻量级框架,因为好招人,而且学习成本低。
    wintersun
        10
    wintersun  
       2017-03-06 10:05:34 +08:00   ❤️ 1
    站在企业角度,好处太多了:节约时间、降低风险!
    站在个人角度,当然是——懒人就废了,只知道在框架上干活;勤奋的人则不废,会理解框架、拆解框架,最后变成专家!
    zhangbohun
        11
    zhangbohun  
       2017-03-06 10:07:05 +08:00   ❤️ 1
    vghdjgh
        12
    vghdjgh  
    OP
       2017-03-06 11:29:18 +08:00
    @wintersun 我遇到的实际情况是,并不能节约时间,也不能降低风险。因为所以项目都依赖框架,每当框架不满足需求,就要等框架更新,框架一更新,就会影响所有的项目。还有的框架是其它部门维护的,还要跨部门沟通。
    vghdjgh
        13
    vghdjgh  
    OP
       2017-03-06 11:53:56 +08:00
    @zhangbohun 高层抽象的框架确实有用,不过一般是那种只抽象某一方面的框架,例如 MVC 模式、 restful 接口,“企业级开发框架”一般是那种大而全,内置各种组件,例如日志、 http 接口、数据库操作、权限等等,这类框架是什么的抽象?(疑问,不是反问)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1366 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:36 · PVG 07:36 · LAX 16:36 · JFK 19:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.