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 等都无所谓了。
17225 次点击
所在节点    程序员
154 条回复
hafuhafu
2019-09-05 11:50:56 +08:00
不用框架不就意味着自己造轮子吗?造的轮子质量未必还有别人的好。
yuhr123
2019-09-05 12:16:31 +08:00
并不是所有 web 需求都要通过 react、vue、angular 去做,大多数项目直接用 Django、Rails、Laravel 可以非常快的实现需求,实效性项目基本离不开后端框架。
bridgeca0
2019-09-05 14:25:50 +08:00
又有人要从沙子做 cpu 开始了吗
drafter
2019-09-05 14:27:39 +08:00
@bridgeca0 沙子怎么做...
bridgeca0
2019-09-05 14:56:11 +08:00
@drafter 提炼硅
nikandaoleshenme
2019-09-05 17:57:16 +08:00
@bridgeca0 能提炼出高纯度硅的技术, 还写个球子代码,卖专利去 [滑稽]
echisan
2019-09-05 20:11:58 +08:00
我建议前端直接操作数据库
MotherShip
2019-09-06 00:37:59 +08:00
赶紧水深火热嗷
——————————————————————————————————
java 只用 servlet

完全没问题,最简单的,你先写一套工具把请求里的 JSON 自动装配成 Java 对象解决了,要求对业务代码无侵入哦,还要能读取 properties/yml 配置来设置下划线转驼峰,思考一下该怎么做呗——

然后 servlet 你应该知道是线程不安全的吧,现在某些业务里的一些类要做原型模式,每个请求都要做实例化,要求是只在类上加注解就行,去实现吧——

然后手动配 web.xml 里的 servlet 路由,然后部署到 web 容器再启动是不是太麻烦了呢?当然还是得上注解,
根据注解的值自动配置每个 servlet 的路由,然后记得把容器嵌进来哦,打 jar 包就能运行的那种——
——————————————————————————————————
数据库操作?这个和框架无关,不用框架也能拿来用

那请封一个 crud util,要求和 mybatis-plus 一样,先自动生成实体类,然后用实体类 get/set 方法引用指代大部分基本字段,还要能读取实体类的注解来自动处理逻辑删除和乐观锁,最后要用带泛型的 basemapper 类封装 crud 操作,当然性能不能比 mybatis 差吧——

一定要灵活,最好能用方法调用解决表关联的问题,要是能自动扫描索引并且优化 SQL 就太棒了呢——

我们还有 MongoDB 呢,顺带请您做一个抽象层吧!一定也不难对不对——

哦对,注解式事务也是框架相关,也实现一下吧,顺便做一下完整的 AOP 呗,AspectJ 要专门的编译器当然不行,看看 JDK 动态代理怎么做的吧,当然我们虽然不用专门的编译器,但是你得在注解里支持 AspectJ 的语法哦,顺带写个 IDEA 插件支持一下你注解的语法高亮吧——
——————————————————————————————————
用户鉴权以及 session 相关?很简单就是个 key-value 读写

那请您来做一个类似于 Spring Security 的框架,顺便实现一下 OAuth 呗,顺带我这业务可能要变动,可能要接多种登录方式,账号密码登录,手机验证码登录,微信 openid 登录,session 要支持多种持久化方式,同样是用注解支持配置权限哦——

——————————————————————————————————
这些是单机应用的问题,接下来做 rpc 调用了

我们写业务的最多只能做到用注解标明这个函数是远程的,剩下的你当然都会帮我们做了对不对?访问注册中心,然后用动态代理去做实际的远程调用,再封装结果,封装异常给我们,这个你想想咋做呗,应该也不难——

分布式事务你一定能随手搞定吧?也要加注解就能做哦——

——————————————————————————————————
顺带抛出异常一定要简单易懂,我知道咱们自己封的异常谷歌肯定搜不到,那每个异常给出可能出的问题中文说明不过分吧——

哦对,以上都不算工时不计绩效哦,毕竟是你自己提出要自己写代码抛弃框架的嘛,自己晚上加加班吧,半个月内差不多能出活吧——

出 bug 倒扣钱,耽误其他人出活当然得承担后果咯——

然后文档要详细,注释要详细,后来人看不懂哪怕你离职了也有义务解答,不然分分秒扔掉你的代码用开源框架重构哦——

——————————————————————————————————









做完了是吧?

还没出 bug ??

真的??

我操 牛逼 你已经吊着 SpringSource 的所有程序员打了 你已经做出了一大套框架 整理整理开源然后等着猎头挖你去国外养老吧
0x000007b
2019-09-06 11:06:06 +08:00
@kevindu flask 就是自己玩玩,随便弄点什么只有一两个接口啥都不考虑的东西,分分钟就可以用了。
Rashford
2019-09-06 11:14:30 +08:00
关键这样做有什么意义呢,不是浪费精力又浪费时间吗?
Rashford
2019-09-06 11:16:33 +08:00
当然,那种"练手"的项目就不要讨论了,自己想怎么写都行。企业会有这么荒唐的开发模式?现在什么年代了
cooooler
2019-09-06 15:12:26 +08:00
是不是编辑器也要用命令行的才能显示出来你牛逼
wh1012023498
2019-09-09 21:44:30 +08:00
== 我就知道这样的蠢问题 会有很多人评论。。笑笑不说话。。
tctc4869
2021-06-21 11:23:18 +08:00
楼主发的内容让我觉得楼主对框架的认知运用很有问题。

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

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

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

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

© 2021 V2EX