V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zjsxwc
V2EX  ›  程序员

Web 开发真的还需要框架吗?

  •  1
     
  •   zjsxwc ·
    zjsxwc · 2019-09-04 10:47:33 +08:00 · 16038 次点击
    这是一个创建于 1074 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Web 开发真的还需要框架吗?我觉得现在已经没有必要了


    关于请求
    java 只用 servlet
    golang 只用 net.http
    php 只写原生脚本

    关于返回
    全部都返回 json,而不返回 html,因为前端 React、Angular、Vue 已经很成熟了,静态资源全走 CDN


    关于业务
    全部都用语言写与框架无关的 Service 对象来处理业务,无非就是纯粹的面向对象模拟现实业务而已。还有业务中涉及数据库操作的,不管是用 builder 模式拼 sql、还是用 sql 模板引擎拼 sql、亦或者用 ORM 把数据实体化操作 sql、甚至直接徒手写 raw sql 等都无所谓了。
    第 1 条附言  ·  2019-09-04 14:59:13 +08:00
    请先回答框架提供了什么?

    模板引擎?不需要了,我返回 json
    数据库操作?这个和框架无关,不用框架也能拿来用
    用户鉴权以及 session 相关?很简单就是个 key-value 读写
    Admin RBAC ?和业务有关,自己实现一个也简单
    第 2 条附言  ·  2019-09-04 15:06:40 +08:00
    还要我说的不用框架,并不是说不用三方组件
    第 3 条附言  ·  2019-09-04 15:22:28 +08:00
    还有关于楼下一群人开始偏离主题,变成了写 “与框架耦合的轮子 ”比 写“框架无关的轮子” 好的讨论
    第 4 条附言  ·  2019-09-04 15:49:30 +08:00
    框架的好处是
    方便招人
    有统一的规范比如命名格式等可以遵从
    可以用与框架相关的轮子节省时间
    第 5 条附言  ·  2019-09-05 10:22:28 +08:00
    在下讨论的是 web 后端,与前端没关系
    第 6 条附言  ·  2021-06-21 11:57:22 +08:00
    各位不要再冷嘲热讽我了,当初这个帖子是看到 B 站泄漏的 golang 代码,没有使用框架,有感而发。

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

    ps, 我说的意思也是指多使用专业的低耦合的领域组件,而尽量少用大而全的高耦合的框架,当然不用框架可以做到低耦合也可能做到高耦合,当然也存在完全是由低耦合组件组成的“框架”。
    154 条回复    2021-06-21 11:23:18 +08:00
    1  2  
    luckrill
        1
    luckrill  
       2019-09-04 10:59:01 +08:00
    好想法

    但不是我的选择

    摸索着看吧
    hyl24
        2
    hyl24  
       2019-09-04 11:48:01 +08:00   ❤️ 2
    用框架在于开发效率
    zjsxwc
        3
    zjsxwc  
    OP
       2019-09-04 12:24:49 +08:00
    @hyl24 #2 原文:“用框架在于开发效率”
    ======
    回复:然而并没有提高什么效率
    skiy
        4
    skiy  
       2019-09-04 12:50:54 +08:00
    难道不需要处理逻辑的吗? WEB 开发又不是一个 http server 就能成事的。大头在于数据处理,鉴权什么的。
    xxxiong
        5
    xxxiong  
       2019-09-04 12:59:20 +08:00 via iPhone
    各种库集成进来了就跟框架差不多了
    zjsxwc
        6
    zjsxwc  
    OP
       2019-09-04 13:00:12 +08:00
    @skiy #4 原文:“难道不需要处理逻辑的吗? WEB 开发又不是一个 http server 就能成事的。大头在于数据处理,鉴权什么的。”
    ======
    回复:

    都在业务里面啊,我说了在第三点里,
    还有你说的鉴权有什么难的,无非就是把某个 http 请求 header 值作为 session id 获取登录用户而已
    zhixuanziben
        7
    zhixuanziben  
       2019-09-04 13:10:27 +08:00
    有自行车,为啥非要步行?
    GzhiYi
        8
    GzhiYi  
       2019-09-04 13:19:19 +08:00
    没提高效率是认真的吗?除了效率,还能提升 web 整体质量。
    zjsxwc
        9
    zjsxwc  
    OP
       2019-09-04 13:25:40 +08:00
    @GzhiYi #8 原文:“没提高效率是认真的吗?除了效率,还能提升 web 整体质量。”
    ======
    回复:

    我都说了,只返回 json,不再和以前那样还要拼 html 返回,
    用框架写业务和不用框架写业务实际没有区别,代码一样质量也是一样的
    lifeintools
        10
    lifeintools  
       2019-09-04 13:31:41 +08:00   ❤️ 3
    你这样适合 单人开发模式。多人开发 要代码一致性 可读性 安全性 都有要求的,框架之所以存在 就是为了解决这些问题。
    mrobot
        11
    mrobot  
       2019-09-04 13:39:47 +08:00 via iPhone   ❤️ 1
    不涉及具体业务谈技术选型的都是耍流氓 个人项目怎么做都行 团队项目你想想你会先考量哪些方面再谈技术选型与开发模式
    nekoyaki
        12
    nekoyaki  
       2019-09-04 13:45:44 +08:00   ❤️ 1
    编程真的还需要高级语言吗? 只有汇编语言就够了。
    cruii
        13
    cruii  
       2019-09-04 14:04:09 +08:00   ❤️ 1
    没有提高效率的依据在哪儿
    AOIO7t
        14
    AOIO7t  
       2019-09-04 14:04:18 +08:00   ❤️ 4
    我一 spring 工程师哪里会用 servlet,这不是要我失业
    mazai
        15
    mazai  
       2019-09-04 14:09:56 +08:00   ❤️ 1
    你愿意用你上呗,没人拦着
    wunonglin
        16
    wunonglin  
       2019-09-04 14:14:26 +08:00
    直接把 json 显示出来就行了,要啥 html 啊
    lancerliu
        17
    lancerliu  
       2019-09-04 14:19:51 +08:00
    直接看数据库不是更爽?还要啥接口
    Caballarii
        18
    Caballarii  
       2019-09-04 14:22:44 +08:00
    lz 所谓的框架大概是那些模板引擎吧
    userdhf
        19
    userdhf  
       2019-09-04 14:24:50 +08:00
    前端菜鸡表示一把 jq 梭哈到社会主义
    Yourshell
        20
    Yourshell  
       2019-09-04 14:28:05 +08:00
    请你给出五个不用框架日 UV 过万的例子,你自己写的。
    pink123
        21
    pink123  
       2019-09-04 14:30:03 +08:00
    理论上可以不用,自己封装一套,但是可能吗?为了快速开发你不可能不用框架的
    eGlhb2Jhb2Jhbw
        22
    eGlhb2Jhb2Jhbw  
       2019-09-04 14:30:12 +08:00
    后端有啥框架么,不就是增删改查么🐒🐒🐒
    Carseason
        23
    Carseason  
       2019-09-04 14:31:15 +08:00
    当你的 web 程序逻辑到一定程序的时候就需要封装好方法和接口了,当你封装好后就是一个简单的框架了。。。。
    greatghoul
        24
    greatghoul  
       2019-09-04 14:33:01 +08:00
    楼主厉害。
    oneonesv
        25
    oneonesv  
       2019-09-04 14:33:29 +08:00
    这种问题怎么天天都有人讨论,在实际业务开发中用过框架开发和不用框架开发的人心里都懂
    ieiayaobb
        26
    ieiayaobb  
       2019-09-04 14:34:48 +08:00
    框架减少了共同维护者的阅读成本,你的项目就你一个人维护当我没说。我见过核心项目从 main 函数开始写的,所有的流程和概念都只有一个人懂,靠着无法替代、无法交接一路从普通开发晋升成专家。
    newtype0092
        27
    newtype0092  
       2019-09-04 14:36:41 +08:00
    微框架了解一下?
    Vegetable
        28
    Vegetable  
       2019-09-04 14:42:34 +08:00
    PostgREST 之类才是王道咯?
    shuizhengqi
        29
    shuizhengqi  
       2019-09-04 14:51:15 +08:00   ❤️ 1
    为什么不能直接页面给一个框,用户要什么,直接连到 mysql 查,后端都不用,直连 mysql
    lllllliu
        30
    lllllliu  
       2019-09-04 14:52:43 +08:00
    理论上是可以,但是你自己想出来的一个模块跟开源社区上万人维护的一个模块,我选择后者。
    当然如果非要闭门造车是需要时间沉淀的,是有成本的,特别是现在需求一个接一个。公司怎么允许你开发一个基础业务模块从 0 开始呢?风险谁承担呢。。。
    momocraft
        31
    momocraft  
       2019-09-04 14:53:02 +08:00
    不是不可行,自己设计好也不如何难维护

    代价是什么都要自己写,要自己保证质量,找人比有名框架麻烦
    SuperMild
        32
    SuperMild  
       2019-09-04 14:54:21 +08:00   ❤️ 15
    @zjsxwc 确实不需要框架。但,框架有它诞生的必然性。

    刚开始你做一个项目,用标准库做,路由、session、表单验证、数据库接口、修改 header 等等,为了方便自己以及代码逻辑清晰,必然要弄一堆函数。

    后来你做别的项目,你会发现,那一堆函数拿过来改一下就能用,根据这次项目的需求你加了一些功能,还修改了几个以前没有发现的 bug。

    后来你和别人合作一起搞项目,你说嘿哥们,我这里已经有一套函数很好用一起用呗……

    最后这堆函数很可能就在公司自建的仓库里,大家一起用一起改进,或者拿去开源让全世界的人都有机会一起用一起改进。

    这就是框架。

    结论是,当你工作经验足够长,你要么用自己参与制作的框架,要么去用别人制作的框架,不太可能还从零开始写项目。
    Raymon111111
        33
    Raymon111111  
       2019-09-04 14:56:05 +08:00
    ?

    一个负载均衡和服务注册你自己跑去实现就累的要死了
    thankuu
        34
    thankuu  
       2019-09-04 14:57:49 +08:00
    脱离业务谈架构都是无稽之谈
    mamahaha
        35
    mamahaha  
       2019-09-04 14:58:04 +08:00   ❤️ 2
    你的应用可以赚钱了或者有融资价值了,你可以用赚到的钱来或雇人重构或增加服务器配置来优化改进。
    在此之前,何苦和自己过不去呢?放着那么多现成的东西不用,自己从头做,结果做完了没人看,不觉得累吗?
    yvescheung
        36
    yvescheung  
       2019-09-04 15:02:37 +08:00   ❤️ 1
    我不需要 != 没用
    zsdroid
        37
    zsdroid  
       2019-09-04 15:05:27 +08:00
    还是大神厉害,分分钟用原生写出路由、session、表单验证、数据库。所以不需要框架。
    guokeke
        38
    guokeke  
       2019-09-04 15:06:30 +08:00   ❤️ 3
    这就是 "去楼下小卖铺买零食用不着开汽车, 所以觉得汽车没用" 一样的道理
    ignore
        39
    ignore  
       2019-09-04 15:10:31 +08:00
    [:微笑]
    SuperMild
        40
    SuperMild  
       2019-09-04 15:10:59 +08:00   ❤️ 1
    你说你能写、简单,但还是要花时间写啊,你第一次自己写,下次做项目你是拿自己写过的代码来改,还是又重新写一遍?

    即使再简单,你都不可能一次就写出覆盖一切可能性的函数,你下次需要改动加功能,就这样加着加着,你那个东西就变成一个框架了,并且你还会发现,自己多年经验积累做出来的,和某个流行框架类似,但人家那个更完善一些。
    maddot
        41
    maddot  
       2019-09-04 15:19:36 +08:00   ❤️ 3
    不用框架的结果就是自己写了一个蹩脚的框架,然后让下一个接手的人吃屎
    salamanderMH
        42
    salamanderMH  
       2019-09-04 15:20:52 +08:00
    东西大了就需要一个良好的设计
    lllllliu
        43
    lllllliu  
       2019-09-04 15:21:39 +08:00
    @maddot 哇,请说出你的故事
    jhdxr
        44
    jhdxr  
       2019-09-04 15:22:31 +08:00
    路由呢?
    skiy
        45
    skiy  
       2019-09-04 15:22:41 +08:00
    @zjsxwc

    我只是说比如鉴权什么的,又不只是只有鉴权。
    比如写入路由、中间件。用原生不是不行,是是麻烦。什么是框架?就是把积木搭起来。比如 golang。把一些功能具体化。考虑到代码的复用性。
    TangMonk
        46
    TangMonk  
       2019-09-04 15:22:44 +08:00
    写 api 可能不需要或者说一个简单的框架就行,写 web 应用非常需要框架
    chocotan
        47
    chocotan  
       2019-09-04 15:23:21 +08:00
    楼主你连框架这个概念都说不清楚
    zdnyp
        48
    zdnyp  
       2019-09-04 15:31:18 +08:00
    但凡写过业务的都不会说出这些话
    limuyan44
        49
    limuyan44  
       2019-09-04 15:35:05 +08:00 via Android
    在你回答框架没有提高 web 开发效率的时候楼下就不要浪费时间讨论了。
    reus
        50
    reus  
       2019-09-04 15:36:08 +08:00   ❤️ 1
    有些开发者离开框架,就什么都不会写了,他们是不可能认同你的
    jry
        51
    jry  
       2019-09-04 15:38:05 +08:00 via iPhone   ❤️ 1
    框架核心是路由
    qdzzyb
        52
    qdzzyb  
       2019-09-04 15:38:33 +08:00
    框架是个开发标准或者说规则吧,大家都在一个标准里玩。
    等你开发开发 抽象抽象 不就又有标准了。
    chickenJuicer
        53
    chickenJuicer  
       2019-09-04 15:45:54 +08:00
    当然可以不用, 框架有框架约定的东西, 众口难调是注定的;
    但是题主你不觉得你这么直接裸写一个简化版的框架出来以后, 不仅很难招到人并且招到人以后很难上手并且如果项目扩大有可能很难扩展并且扩展以后有可能有很多隐藏 bug, 后面还有一堆并且就不说了;
    框架就是带给开发者一种规范一种便利, 就像你明明可以扫码支付但是你非要一毛一毛的从银行取钱然后付钱, 当然最后结果是一样的但是, 没那个必要;
    哦对了, 建议题主多近一些大公司, 团队开发里的规范并不比框架规范少多少, 参考阿里的 java 开发规范
    zhengwenk
        54
    zhengwenk  
       2019-09-04 15:46:51 +08:00
    楼主的逻辑就是
    1、只能返回 json,不存在服务端渲染。
    2、xxx 操作?这个和框架无关,不用框架也能拿来用
    3、yyy ?和业务有关,自己实现一个也简单

    ----------
    1、摩托车? 不需要了,我只骑自行车
    2、用餐具? 这个和吃饭无关,不用筷子和碗。(用树叶和手抓就行)
    3、米饭? 这个和吃饭有关,自己煮也简单 (钻木取火)
    Hopetree
        55
    Hopetree  
       2019-09-04 15:48:34 +08:00
    举个最简单的例子,假设你用你上面说到的写了一个项目 A,然后现在你要开始写功能类似的项目 B,请问你现在要怎么写 B ?你会重头开始写 B 还是把 A 项目的大部分东西运用到 B 上面来?显然,你肯定选择后者,那么对 B 项目而已,A 项目就是最初的框架,框架不就是这样形成的吗????????
    nielinjie
        56
    nielinjie  
       2019-09-04 15:50:57 +08:00
    框架,是轮子的一种,为何不要轮子?
    hbolive
        57
    hbolive  
       2019-09-04 15:52:38 +08:00
    先不说框架,如果要做 SEO,还是服务器端渲染好一些。这样的网站很多,而且占了绝大多数。。
    otakustay
        58
    otakustay  
       2019-09-04 15:55:38 +08:00   ❤️ 3
    这是个挺简单的问题,可以先不用任何框架写一下这样的系统:

    1. 200 个以上的 HTTP API
    2. 接口符合 RESTFUL 规则,或者你想不用框架上 GraphQL 也可以
    3. QPS 保持在 5000+
    4. 避免一切 XSS 场景
    5. 可集群部署,可热扩展或者收缩集群,Session 单点高可靠性
    sadfQED2
        59
    sadfQED2  
       2019-09-04 16:16:53 +08:00 via Android
    直接上 es,前端直接连 es,cudr 仔都不需要了
    cemian
        60
    cemian  
       2019-09-04 16:20:52 +08:00
    你自己按照你说的写一些你就知道为啥了
    way2create
        61
    way2create  
       2019-09-04 16:21:14 +08:00
    一个人写随你怎么玩
    Seaony
        62
    Seaony  
       2019-09-04 16:22:06 +08:00
    talk is cheap,show me the code.
    sagaxu
        63
    sagaxu  
       2019-09-04 16:28:29 +08:00 via Android   ❤️ 1
    当年我还是学生的时候,坚持自己读写 socket,封装一个薄薄的 http 通信层,哪里看的上 servlet 这么笨重的东西,一个简单的接口还要带上 tomcat,不能忍。

    后来用上了 springboot 全家桶,真香。
    fedfrank
        64
    fedfrank  
       2019-09-04 16:57:03 +08:00
    @zhixuanziben 锻炼身体
    doublie
        65
    doublie  
       2019-09-04 17:02:20 +08:00 via iPhone
    应该是说现在前后端分离了需要新的框架,其实这种只写接口的框架有好多的
    janxin
        66
    janxin  
       2019-09-04 17:38:13 +08:00
    能给开发减轻负担的第三方库就有必要用...
    jianzhiyao020
        67
    jianzhiyao020  
       2019-09-04 17:46:12 +08:00
    写 web 为什么要用 java 和 PHP,直接用汇编就好了
    linjiayu
        68
    linjiayu  
       2019-09-04 17:48:59 +08:00   ❤️ 1
    graphql
    killerv
        69
    killerv  
       2019-09-04 17:49:43 +08:00
    使用框架的原因主要有两点:提升开发速度、统一开发规范。如果你们公司业务可以不用框架手撸,那应该是你们公司业务太小,稍微复杂一点,没有框架约束根本不行,这个框架可以是开源的也可以是自己开发,但是必须要有。
    yunye
        70
    yunye  
       2019-09-04 17:51:30 +08:00 via Android
    还当什么人,猴子不要车不要房还不是能活😒
    maplelin
        71
    maplelin  
       2019-09-04 18:10:08 +08:00
    碰到那种多个业务项目拼成一个项目的业务,没有合理的框架数据重复度太高,全局作用域冲突了解一下,架构本来就是为大型项目服务的,小项目我 react,vue 都不需要,性能也差不了多少
    DOLLOR
        72
    DOLLOR  
       2019-09-04 18:15:09 +08:00
    多人开发,如果没有框架约束,每个人都放飞自我,互相鄙视别人的写法,到时候维护起来,就知道什么叫酸爽。
    StarkWhite
        73
    StarkWhite  
       2019-09-04 18:25:34 +08:00
    HTTP RESTful 不够用了,FaceBook 出了 GraphQL,那么问题来了,你要自己写一个 GraphQL 框架?
    https://v2ex.com/t/589138
    spotfg
        74
    spotfg  
       2019-09-04 19:07:44 +08:00
    我觉得 web 框架更多的是约束,让多人协同开发,写出的代码都互相很容易理解。
    对开发和维护带来一定的效率
    rrfeng
        75
    rrfeng  
       2019-09-04 19:31:17 +08:00   ❤️ 1
    按你的逻辑加了 ORM、RBAC、Session 完了之后,就是一个『框架』。因为你要要求所有人用统一的 ORM、RBAC、Session,不然你甚至都没法协作开发。

    你说着不用,最后还是变成了自己讨厌的样子。
    wangxiaoaer
        76
    wangxiaoaer  
       2019-09-04 19:33:55 +08:00 via Android
    不知道你所谓的框架到底是什么。

    我不想做那些脏活累活,比如请求方法区分,参数抽取,bean 封装,返回对象 json 编码,所以我选择 spring MVC.

    更不想重复写那些初级的 crud SQL 语句,所以我选择 jpa。

    用户权限又不是 Web 框架提供的。

    至于你说的模板引擎,从来都不是挑框架的主要考量因素。
    components
        77
    components  
       2019-09-04 20:55:30 +08:00
    既然不要框架了,那么 spring 全家桶存在的意义是什么?
    iPhoneXI
        78
    iPhoneXI  
       2019-09-04 20:57:59 +08:00 via Android
    重复造轮子,个人玩具写写还行,企业里就是浪费时间
    panlatent
        79
    panlatent  
       2019-09-04 21:30:29 +08:00
    我选择生态
    zzzzzzzzzp
        80
    zzzzzzzzzp  
       2019-09-04 21:34:31 +08:00 via iPhone
    我们 go 就没用框架,直接 net.http,不过写了很多的代码生成工具,crud 自动生成,用着还凑活
    guolaopi
        81
    guolaopi  
       2019-09-04 21:41:42 +08:00   ❤️ 1
    不无脑喷楼主,仔细思考了一下。技术上的话用不用框架都能实现效果。

    但是我同意#55 @Hopetree 的说法。

    不能咱每建一个新项目都从头手撸 JsonConvert 这种东西吧?用楼主的话说是“并不是说不用三方组件”。
    那这么考虑一下,如果用顺手的三方组件有十几个甚至几十个,每新建一个项目都要一个一个的组件去安装吗?
    如果一键批量安装这么多的组件的话,我认为这在某种意义上也算“框架”。当然如果把他看成一个大的库也未尝不可。

    对于 PHP/JAVA 等我不是太熟,但是我这种菜鸡的.net 开发,如果离了 mvc 或者 webform 这种东西。我都不知道从哪去接 httpRequest 对象(不知道是否对应 java 的 MVC 和 serverlet )。难道从端口 TCP 拼包吗。。

    所以我觉得啥都别那么绝对,我也被复杂的框架搞得晕头转向一脸 sb。但是多数时候框架还是带给人方便的(存在即合理嘛)。
    KamenReborn
        82
    KamenReborn  
       2019-09-04 21:46:39 +08:00 via Android
    @wunonglin 要我说,啥都不用,给用户直接分配一个数据库账号,让他们自行 CRUD 不就行了 doge
    zhaoliguo
        83
    zhaoliguo  
       2019-09-04 21:49:37 +08:00
    我们的服务端就是直接用 servlet 写的,全部返回 json,到今年 13 年,正在切换到 spring。
    lawler
        84
    lawler  
       2019-09-04 21:58:54 +08:00   ❤️ 2
    说简单点是约定。

    所有的框架均离不开框架本身的约定,这套约定合理时,即可以成就 spring,laravel,beego 这样的框架巨擘。
    他们在诞生时,就定义了一套完整的开发约定,你只要遵循这个约定,就可以“快速构建应用”。

    而开发中的如果使用原生语法,一百个人可能有一百种写法。
    如 JS 中,获取今天星期几。一个人可能会写一个方法如:

    var mydate=new Date();
    var myddy=mydate.getDay();//获取存储当前日期
    var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
    console.log("今天是:" + weekday[myddy]);

    另一个人可能会写
    console.log("今天是:星期" + "日一二三四五六".charAt(new Date().getDay()));

    而熟悉框架只用写。
    getweek();

    是的,在框架中一定有这个方法或类似封装。


    而所有的约定一旦成规(设计模式),就会出现大量符合这个规则的生态。你可以利用这个规则,快速集成并构建任意的应用。
    luckylo
        85
    luckylo  
       2019-09-04 22:04:32 +08:00 via Android
    那为什么要数据库?为什么要写代码? excel 可视化不行么?
    GM
        86
    GM  
       2019-09-04 22:44:54 +08:00
    用什么 servlet、go-http 啊,直接用 java 写 socket 自己解析 http 报文多好,零依赖。
    default7
        87
    default7  
       2019-09-04 22:47:57 +08:00
    初级程序员才会这样思考
    pengfei
        88
    pengfei  
       2019-09-04 22:51:10 +08:00
    交接啊
    edk24
        89
    edk24  
       2019-09-04 22:56:41 +08:00
    我觉得没有框架就差不多没有规范了, 楼主见过几个程序员接手的 ecshop 项目吗? 就用原生写接口. 各写各的. 数据库连接, 数据库操作都好几个.

    另外即便是写接口, 你总得有个返回的规范吧? 直接返回数据吗? 如果返回格式是
    ```
    {
    code:200,
    msg:'ok',
    data:[],
    count:0
    }
    ```
    你每个都 echo json_encode() 吗? 那我可真佩服你
    YYYeung
        90
    YYYeung  
       2019-09-04 23:02:32 +08:00
    不用框架,最后可能就是造出了一个功能类似的框架,然后附带了很多 bug 儿
    runnerlee
        91
    runnerlee  
       2019-09-04 23:10:16 +08:00
    如果是一个人开发并且项目只会有这一个,那我可以一个项目有且只有 index.php ,在里面撸几千上万行。

    如果多个人开发,或者是不止一个项目。我肯定选一个框架,哪怕是自己拼出一个简易的框架。
    vipcc
        92
    vipcc  
       2019-09-05 00:06:49 +08:00 via Android
    脱离需求空谈没意义。
    市场的框架使用量数据可能不赞同你的说法
    自己有框架的公司可能不赞同你的说法
    尝试过这个方法的小伙伴可能不赞同你的说法
    monkeyk
        93
    monkeyk  
       2019-09-05 01:03:21 +08:00   ❤️ 3
    建议楼主按照无框架的做一个真实的产品或项目出来 ,这样讨论更有实际 价值 /
    puncsky
        94
    puncsky  
       2019-09-05 02:26:59 +08:00 via iPhone
    自己造了一个框架 onefx.js.org 目标是让全栈开发更快更有质量
    zgqq
        95
    zgqq  
       2019-09-05 02:38:36 +08:00
    如果你不用框架,对象要怎么管理?到处都是不必要 new XXService()? 还有如果要拦截某些方法做一些操作,每个方法都手动加代码吗?
    no1xsyzy
        96
    no1xsyzy  
       2019-09-05 02:39:17 +08:00
    想起格林斯潘第十定律:

    > 任何 C 或 Fortran 程序复杂到一定程度之后,都会包含一个临时开发的、不合规范的、充满程序错误的、运行速度很慢的、只有一半功能的 Common Lisp 实现。

    所以说你不用框架,最后还是自己搭了个 “临时开发的、不合规范的、充满程序错误的、运行速度很慢的、只有一半功能的” 框架
    chaleaochexist
        97
    chaleaochexist  
       2019-09-05 07:41:09 +08:00
    回到最原始的框架和库(lz 的视角是第三方组件)的区别.
    库提供额外的功能.
    框架出了库的功能之外,更多的是约束.在框架的约束内开发.
    zachlhb
        98
    zachlhb  
       2019-09-05 07:58:35 +08:00 via Android
    请问你自己用了第三方组件后和框架有什么区别?
    T3RRY
        99
    T3RRY  
       2019-09-05 08:07:38 +08:00
    路由呢?
    一致性怎么解决?
    约定呢?
    ...

    再说 net.http 是啥 你知道不?
    a11214214
        100
    a11214214  
       2019-09-05 08:18:52 +08:00
    @T3RRY 啊哈 撞头像了~

    框架最大的问题就是帮你解决了你没想到的问题 以及减少你所写的代码量
    如果你自己做一整套鉴权 路由 xxxutils 集成进去 那不就是自己造了个"框架"吗
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2256 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 02:42 · PVG 10:42 · LAX 19:42 · JFK 22:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.