1
luckrill 2019-09-04 10:59:01 +08:00
好想法
但不是我的选择 摸索着看吧 |
2
hyl24 2019-09-04 11:48:01 +08:00 2
用框架在于开发效率
|
4
skiy 2019-09-04 12:50:54 +08:00
难道不需要处理逻辑的吗? WEB 开发又不是一个 http server 就能成事的。大头在于数据处理,鉴权什么的。
|
5
xxxiong 2019-09-04 12:59:20 +08:00 via iPhone
各种库集成进来了就跟框架差不多了
|
6
zjsxwc OP @skiy #4 原文:“难道不需要处理逻辑的吗? WEB 开发又不是一个 http server 就能成事的。大头在于数据处理,鉴权什么的。”
====== 回复: 都在业务里面啊,我说了在第三点里, 还有你说的鉴权有什么难的,无非就是把某个 http 请求 header 值作为 session id 获取登录用户而已 |
7
zhixuanziben 2019-09-04 13:10:27 +08:00
有自行车,为啥非要步行?
|
8
GzhiYi 2019-09-04 13:19:19 +08:00
没提高效率是认真的吗?除了效率,还能提升 web 整体质量。
|
9
zjsxwc OP @GzhiYi #8 原文:“没提高效率是认真的吗?除了效率,还能提升 web 整体质量。”
====== 回复: 我都说了,只返回 json,不再和以前那样还要拼 html 返回, 用框架写业务和不用框架写业务实际没有区别,代码一样质量也是一样的 |
10
lifeintools 2019-09-04 13:31:41 +08:00 3
你这样适合 单人开发模式。多人开发 要代码一致性 可读性 安全性 都有要求的,框架之所以存在 就是为了解决这些问题。
|
11
mrobot 2019-09-04 13:39:47 +08:00 via iPhone 1
不涉及具体业务谈技术选型的都是耍流氓 个人项目怎么做都行 团队项目你想想你会先考量哪些方面再谈技术选型与开发模式
|
12
nekoyaki 2019-09-04 13:45:44 +08:00 1
编程真的还需要高级语言吗? 只有汇编语言就够了。
|
13
cruii 2019-09-04 14:04:09 +08:00 1
没有提高效率的依据在哪儿
|
14
AOIO7t 2019-09-04 14:04:18 +08:00 4
我一 spring 工程师哪里会用 servlet,这不是要我失业
|
15
mazai 2019-09-04 14:09:56 +08:00 1
你愿意用你上呗,没人拦着
|
16
wunonglin 2019-09-04 14:14:26 +08:00
直接把 json 显示出来就行了,要啥 html 啊
|
17
lancerliu 2019-09-04 14:19:51 +08:00
直接看数据库不是更爽?还要啥接口
|
18
Caballarii 2019-09-04 14:22:44 +08:00
lz 所谓的框架大概是那些模板引擎吧
|
19
userdhf 2019-09-04 14:24:50 +08:00
前端菜鸡表示一把 jq 梭哈到社会主义
|
20
Yourshell 2019-09-04 14:28:05 +08:00
请你给出五个不用框架日 UV 过万的例子,你自己写的。
|
21
pink123 2019-09-04 14:30:03 +08:00
理论上可以不用,自己封装一套,但是可能吗?为了快速开发你不可能不用框架的
|
22
eGlhb2Jhb2Jhbw 2019-09-04 14:30:12 +08:00
后端有啥框架么,不就是增删改查么🐒🐒🐒
|
23
Carseason 2019-09-04 14:31:15 +08:00
当你的 web 程序逻辑到一定程序的时候就需要封装好方法和接口了,当你封装好后就是一个简单的框架了。。。。
|
24
greatghoul 2019-09-04 14:33:01 +08:00
楼主厉害。
|
25
oneonesv 2019-09-04 14:33:29 +08:00
这种问题怎么天天都有人讨论,在实际业务开发中用过框架开发和不用框架开发的人心里都懂
|
26
ieiayaobb 2019-09-04 14:34:48 +08:00
框架减少了共同维护者的阅读成本,你的项目就你一个人维护当我没说。我见过核心项目从 main 函数开始写的,所有的流程和概念都只有一个人懂,靠着无法替代、无法交接一路从普通开发晋升成专家。
|
27
newtype0092 2019-09-04 14:36:41 +08:00
微框架了解一下?
|
28
Vegetable 2019-09-04 14:42:34 +08:00
PostgREST 之类才是王道咯?
|
29
shuizhengqi 2019-09-04 14:51:15 +08:00 1
为什么不能直接页面给一个框,用户要什么,直接连到 mysql 查,后端都不用,直连 mysql
|
30
lllllliu 2019-09-04 14:52:43 +08:00
理论上是可以,但是你自己想出来的一个模块跟开源社区上万人维护的一个模块,我选择后者。
当然如果非要闭门造车是需要时间沉淀的,是有成本的,特别是现在需求一个接一个。公司怎么允许你开发一个基础业务模块从 0 开始呢?风险谁承担呢。。。 |
31
momocraft 2019-09-04 14:53:02 +08:00
不是不可行,自己设计好也不如何难维护
代价是什么都要自己写,要自己保证质量,找人比有名框架麻烦 |
32
SuperMild 2019-09-04 14:54:21 +08:00 15
@zjsxwc 确实不需要框架。但,框架有它诞生的必然性。
刚开始你做一个项目,用标准库做,路由、session、表单验证、数据库接口、修改 header 等等,为了方便自己以及代码逻辑清晰,必然要弄一堆函数。 后来你做别的项目,你会发现,那一堆函数拿过来改一下就能用,根据这次项目的需求你加了一些功能,还修改了几个以前没有发现的 bug。 后来你和别人合作一起搞项目,你说嘿哥们,我这里已经有一套函数很好用一起用呗…… 最后这堆函数很可能就在公司自建的仓库里,大家一起用一起改进,或者拿去开源让全世界的人都有机会一起用一起改进。 这就是框架。 结论是,当你工作经验足够长,你要么用自己参与制作的框架,要么去用别人制作的框架,不太可能还从零开始写项目。 |
33
Raymon111111 2019-09-04 14:56:05 +08:00
?
一个负载均衡和服务注册你自己跑去实现就累的要死了 |
34
thankuu 2019-09-04 14:57:49 +08:00
脱离业务谈架构都是无稽之谈
|
35
mamahaha 2019-09-04 14:58:04 +08:00 2
你的应用可以赚钱了或者有融资价值了,你可以用赚到的钱来或雇人重构或增加服务器配置来优化改进。
在此之前,何苦和自己过不去呢?放着那么多现成的东西不用,自己从头做,结果做完了没人看,不觉得累吗? |
36
yvescheung 2019-09-04 15:02:37 +08:00 1
我不需要 != 没用
|
37
zsdroid 2019-09-04 15:05:27 +08:00
还是大神厉害,分分钟用原生写出路由、session、表单验证、数据库。所以不需要框架。
|
38
guokeke 2019-09-04 15:06:30 +08:00 3
这就是 "去楼下小卖铺买零食用不着开汽车, 所以觉得汽车没用" 一样的道理
|
39
ignore 2019-09-04 15:10:31 +08:00
[:微笑]
|
40
SuperMild 2019-09-04 15:10:59 +08:00 1
你说你能写、简单,但还是要花时间写啊,你第一次自己写,下次做项目你是拿自己写过的代码来改,还是又重新写一遍?
即使再简单,你都不可能一次就写出覆盖一切可能性的函数,你下次需要改动加功能,就这样加着加着,你那个东西就变成一个框架了,并且你还会发现,自己多年经验积累做出来的,和某个流行框架类似,但人家那个更完善一些。 |
41
maddot 2019-09-04 15:19:36 +08:00 3
不用框架的结果就是自己写了一个蹩脚的框架,然后让下一个接手的人吃屎
|
42
salamanderMH 2019-09-04 15:20:52 +08:00
东西大了就需要一个良好的设计
|
44
jhdxr 2019-09-04 15:22:31 +08:00
路由呢?
|
45
skiy 2019-09-04 15:22:41 +08:00
|
46
TangMonk 2019-09-04 15:22:44 +08:00
写 api 可能不需要或者说一个简单的框架就行,写 web 应用非常需要框架
|
47
chocotan 2019-09-04 15:23:21 +08:00
楼主你连框架这个概念都说不清楚
|
48
zdnyp 2019-09-04 15:31:18 +08:00
但凡写过业务的都不会说出这些话
|
49
limuyan44 2019-09-04 15:35:05 +08:00 via Android
在你回答框架没有提高 web 开发效率的时候楼下就不要浪费时间讨论了。
|
50
reus 2019-09-04 15:36:08 +08:00 1
有些开发者离开框架,就什么都不会写了,他们是不可能认同你的
|
51
jry 2019-09-04 15:38:05 +08:00 via iPhone 1
框架核心是路由
|
52
qdzzyb 2019-09-04 15:38:33 +08:00
框架是个开发标准或者说规则吧,大家都在一个标准里玩。
等你开发开发 抽象抽象 不就又有标准了。 |
53
chickenJuicer 2019-09-04 15:45:54 +08:00
当然可以不用, 框架有框架约定的东西, 众口难调是注定的;
但是题主你不觉得你这么直接裸写一个简化版的框架出来以后, 不仅很难招到人并且招到人以后很难上手并且如果项目扩大有可能很难扩展并且扩展以后有可能有很多隐藏 bug, 后面还有一堆并且就不说了; 框架就是带给开发者一种规范一种便利, 就像你明明可以扫码支付但是你非要一毛一毛的从银行取钱然后付钱, 当然最后结果是一样的但是, 没那个必要; 哦对了, 建议题主多近一些大公司, 团队开发里的规范并不比框架规范少多少, 参考阿里的 java 开发规范 |
54
zhengwenk 2019-09-04 15:46:51 +08:00
楼主的逻辑就是
1、只能返回 json,不存在服务端渲染。 2、xxx 操作?这个和框架无关,不用框架也能拿来用 3、yyy ?和业务有关,自己实现一个也简单 ---------- 1、摩托车? 不需要了,我只骑自行车 2、用餐具? 这个和吃饭无关,不用筷子和碗。(用树叶和手抓就行) 3、米饭? 这个和吃饭有关,自己煮也简单 (钻木取火) |
55
Hopetree 2019-09-04 15:48:34 +08:00
举个最简单的例子,假设你用你上面说到的写了一个项目 A,然后现在你要开始写功能类似的项目 B,请问你现在要怎么写 B ?你会重头开始写 B 还是把 A 项目的大部分东西运用到 B 上面来?显然,你肯定选择后者,那么对 B 项目而已,A 项目就是最初的框架,框架不就是这样形成的吗????????
|
56
nielinjie 2019-09-04 15:50:57 +08:00
框架,是轮子的一种,为何不要轮子?
|
57
hbolive 2019-09-04 15:52:38 +08:00
先不说框架,如果要做 SEO,还是服务器端渲染好一些。这样的网站很多,而且占了绝大多数。。
|
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 单点高可靠性 |
59
sadfQED2 2019-09-04 16:16:53 +08:00 via Android
直接上 es,前端直接连 es,cudr 仔都不需要了
|
60
cemian 2019-09-04 16:20:52 +08:00
你自己按照你说的写一些你就知道为啥了
|
61
way2create 2019-09-04 16:21:14 +08:00
一个人写随你怎么玩
|
62
Seaony 2019-09-04 16:22:06 +08:00
talk is cheap,show me the code.
|
63
sagaxu 2019-09-04 16:28:29 +08:00 via Android 1
当年我还是学生的时候,坚持自己读写 socket,封装一个薄薄的 http 通信层,哪里看的上 servlet 这么笨重的东西,一个简单的接口还要带上 tomcat,不能忍。
后来用上了 springboot 全家桶,真香。 |
64
fedfrank 2019-09-04 16:57:03 +08:00
@zhixuanziben 锻炼身体
|
65
doublie 2019-09-04 17:02:20 +08:00 via iPhone
应该是说现在前后端分离了需要新的框架,其实这种只写接口的框架有好多的
|
66
janxin 2019-09-04 17:38:13 +08:00
能给开发减轻负担的第三方库就有必要用...
|
67
jianzhiyao020 2019-09-04 17:46:12 +08:00
写 web 为什么要用 java 和 PHP,直接用汇编就好了
|
68
linjiayu 2019-09-04 17:48:59 +08:00 1
graphql
|
69
killerv 2019-09-04 17:49:43 +08:00
使用框架的原因主要有两点:提升开发速度、统一开发规范。如果你们公司业务可以不用框架手撸,那应该是你们公司业务太小,稍微复杂一点,没有框架约束根本不行,这个框架可以是开源的也可以是自己开发,但是必须要有。
|
70
yunye 2019-09-04 17:51:30 +08:00 via Android
还当什么人,猴子不要车不要房还不是能活😒
|
71
maplelin 2019-09-04 18:10:08 +08:00
碰到那种多个业务项目拼成一个项目的业务,没有合理的框架数据重复度太高,全局作用域冲突了解一下,架构本来就是为大型项目服务的,小项目我 react,vue 都不需要,性能也差不了多少
|
72
DOLLOR 2019-09-04 18:15:09 +08:00
多人开发,如果没有框架约束,每个人都放飞自我,互相鄙视别人的写法,到时候维护起来,就知道什么叫酸爽。
|
73
StarkWhite 2019-09-04 18:25:34 +08:00
HTTP RESTful 不够用了,FaceBook 出了 GraphQL,那么问题来了,你要自己写一个 GraphQL 框架?
https://v2ex.com/t/589138 |
74
spotfg 2019-09-04 19:07:44 +08:00
我觉得 web 框架更多的是约束,让多人协同开发,写出的代码都互相很容易理解。
对开发和维护带来一定的效率 |
75
rrfeng 2019-09-04 19:31:17 +08:00 1
按你的逻辑加了 ORM、RBAC、Session 完了之后,就是一个『框架』。因为你要要求所有人用统一的 ORM、RBAC、Session,不然你甚至都没法协作开发。
你说着不用,最后还是变成了自己讨厌的样子。 |
76
wangxiaoaer 2019-09-04 19:33:55 +08:00 via Android
不知道你所谓的框架到底是什么。
我不想做那些脏活累活,比如请求方法区分,参数抽取,bean 封装,返回对象 json 编码,所以我选择 spring MVC. 更不想重复写那些初级的 crud SQL 语句,所以我选择 jpa。 用户权限又不是 Web 框架提供的。 至于你说的模板引擎,从来都不是挑框架的主要考量因素。 |
77
components 2019-09-04 20:55:30 +08:00
既然不要框架了,那么 spring 全家桶存在的意义是什么?
|
78
iPhoneXI 2019-09-04 20:57:59 +08:00 via Android
重复造轮子,个人玩具写写还行,企业里就是浪费时间
|
79
panlatent 2019-09-04 21:30:29 +08:00
我选择生态
|
80
zzzzzzzzzp 2019-09-04 21:34:31 +08:00 via iPhone
我们 go 就没用框架,直接 net.http,不过写了很多的代码生成工具,crud 自动生成,用着还凑活
|
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。但是多数时候框架还是带给人方便的(存在即合理嘛)。 |
82
KamenReborn 2019-09-04 21:46:39 +08:00 via Android
@wunonglin 要我说,啥都不用,给用户直接分配一个数据库账号,让他们自行 CRUD 不就行了 doge
|
83
zhaoliguo 2019-09-04 21:49:37 +08:00
我们的服务端就是直接用 servlet 写的,全部返回 json,到今年 13 年,正在切换到 spring。
|
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(); 是的,在框架中一定有这个方法或类似封装。 而所有的约定一旦成规(设计模式),就会出现大量符合这个规则的生态。你可以利用这个规则,快速集成并构建任意的应用。 |
85
luckylo 2019-09-04 22:04:32 +08:00 via Android
那为什么要数据库?为什么要写代码? excel 可视化不行么?
|
86
GM 2019-09-04 22:44:54 +08:00
用什么 servlet、go-http 啊,直接用 java 写 socket 自己解析 http 报文多好,零依赖。
|
87
default7 2019-09-04 22:47:57 +08:00
初级程序员才会这样思考
|
88
pengfei 2019-09-04 22:51:10 +08:00
交接啊
|
89
edk24 2019-09-04 22:56:41 +08:00
我觉得没有框架就差不多没有规范了, 楼主见过几个程序员接手的 ecshop 项目吗? 就用原生写接口. 各写各的. 数据库连接, 数据库操作都好几个.
另外即便是写接口, 你总得有个返回的规范吧? 直接返回数据吗? 如果返回格式是 ``` { code:200, msg:'ok', data:[], count:0 } ``` 你每个都 echo json_encode() 吗? 那我可真佩服你 |
90
YYYeung 2019-09-04 23:02:32 +08:00
不用框架,最后可能就是造出了一个功能类似的框架,然后附带了很多 bug 儿
|
91
runnerlee 2019-09-04 23:10:16 +08:00
如果是一个人开发并且项目只会有这一个,那我可以一个项目有且只有 index.php ,在里面撸几千上万行。
如果多个人开发,或者是不止一个项目。我肯定选一个框架,哪怕是自己拼出一个简易的框架。 |
92
vipcc 2019-09-05 00:06:49 +08:00 via Android
脱离需求空谈没意义。
市场的框架使用量数据可能不赞同你的说法 自己有框架的公司可能不赞同你的说法 尝试过这个方法的小伙伴可能不赞同你的说法 |
93
monkeyk 2019-09-05 01:03:21 +08:00 3
建议楼主按照无框架的做一个真实的产品或项目出来 ,这样讨论更有实际 价值 /
|
94
puncsky 2019-09-05 02:26:59 +08:00 via iPhone
自己造了一个框架 onefx.js.org 目标是让全栈开发更快更有质量
|
95
zgqq 2019-09-05 02:38:36 +08:00
如果你不用框架,对象要怎么管理?到处都是不必要 new XXService()? 还有如果要拦截某些方法做一些操作,每个方法都手动加代码吗?
|
96
no1xsyzy 2019-09-05 02:39:17 +08:00
想起格林斯潘第十定律:
> 任何 C 或 Fortran 程序复杂到一定程度之后,都会包含一个临时开发的、不合规范的、充满程序错误的、运行速度很慢的、只有一半功能的 Common Lisp 实现。 所以说你不用框架,最后还是自己搭了个 “临时开发的、不合规范的、充满程序错误的、运行速度很慢的、只有一半功能的” 框架 |
97
chaleaochexist 2019-09-05 07:41:09 +08:00
回到最原始的框架和库(lz 的视角是第三方组件)的区别.
库提供额外的功能. 框架出了库的功能之外,更多的是约束.在框架的约束内开发. |
98
zachlhb 2019-09-05 07:58:35 +08:00 via Android
请问你自己用了第三方组件后和框架有什么区别?
|
99
T3RRY 2019-09-05 08:07:38 +08:00
路由呢?
一致性怎么解决? 约定呢? ... 再说 net.http 是啥 你知道不? |
100
a11214214 2019-09-05 08:18:52 +08:00
|