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

2019-09-04 10:47:33 +08:00
 zjsxwc
Web 开发真的还需要框架吗?我觉得现在已经没有必要了


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

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


关于业务
全部都用语言写与框架无关的 Service 对象来处理业务,无非就是纯粹的面向对象模拟现实业务而已。还有业务中涉及数据库操作的,不管是用 builder 模式拼 sql、还是用 sql 模板引擎拼 sql、亦或者用 ORM 把数据实体化操作 sql、甚至直接徒手写 raw sql 等都无所谓了。
17206 次点击
所在节点    程序员
154 条回复
guolaopi
2019-09-04 21:41:42 +08:00
不无脑喷楼主,仔细思考了一下。技术上的话用不用框架都能实现效果。

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

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

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

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

所有的框架均离不开框架本身的约定,这套约定合理时,即可以成就 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
2019-09-04 22:04:32 +08:00
那为什么要数据库?为什么要写代码? excel 可视化不行么?
GM
2019-09-04 22:44:54 +08:00
用什么 servlet、go-http 啊,直接用 java 写 socket 自己解析 http 报文多好,零依赖。
default7
2019-09-04 22:47:57 +08:00
初级程序员才会这样思考
pengfei
2019-09-04 22:51:10 +08:00
交接啊
edk24
2019-09-04 22:56:41 +08:00
我觉得没有框架就差不多没有规范了, 楼主见过几个程序员接手的 ecshop 项目吗? 就用原生写接口. 各写各的. 数据库连接, 数据库操作都好几个.

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

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

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

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

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

框架最大的问题就是帮你解决了你没想到的问题 以及减少你所写的代码量
如果你自己做一整套鉴权 路由 xxxutils 集成进去 那不就是自己造了个"框架"吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597773

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX