【 在 eGust (十年) 的大作中提到: 】
: 标 题: Re: 4个月了,没找到工作,大龄了确实惨,学习C++都难投入
: 发信站: 水木社区 (Thu Dec 31 10:14:00 2020), 站内
:
: 大概看了一下,就是比 next.js 走的更远了一些,把数据层也加到 react 控件里了呗?
:
: 只不过传统 mvc 框架是用后端渲染 html/css/js,这个是把后端逻辑揉在前端代码里。我觉得两者本质上是没有差别的,不管前端后端哪个胖哪个瘦,都是尽量在一端来实现全部逻辑,只不过多了 ts 的类型自动推导而已。
~~~~~~~~~~~~~~~~~~~~~~对,就是在nextjs的基础上加上了后端的prisma数据层,并且实现了ts前后端自动类型推导。prisma的schema就是你所谓的single source of truth,所有和数据相关的类型都是自动从这里面推出来的
:
: 这其实又回到老的问题上,为什么传统的 mvc 框架被 web/API 分离的方式取代。主要一个原因就是 mobile app 的兴起,实现一套 api 就可以接不同的前端。不同的前端可能对数据有不同的需求,graphql 可以减少后端的开发工作量,避免没必要的数据库请求。
:
: 我觉得你的需求本质上还是代码重用的问题,只不过刚好前后端都是 ts,所以事情简单了许多。除了能重用类型以外,传统 mvc 框架存在的问题,其实一个都避免不了。
:
: 类型这个东西也挺没办法的,不同的数据库有自己的类型系统,每个语言也有自己的类型系统,gql 又有自己的 dsl 类型系统。所以如果是一个 ts 前端,gql 做 api,另外一个语言做后端,还有个数据库的系统,后端框架可能还有一套 dsl 做 db migration,所以加在一起大概得有5种以上的类型描述,基本上是在做同一件事情。我个人的倾向是数据和逻辑分离,而类型也是作为数据的一种,用 json/xml/yaml 或者 dsl 表示都没太大问题,然后作为 single source of truth 去生成其它的东西。然而这件事情如果做不好的话,那就又加入了一套类型描述的系统,于是又多了一个问题。
:
: 【 在 beep (菜M.喵星耗子) 的大作中提到: 】
: : 我来说说为啥革命性:
: : 全栈开发我觉得目前最麻烦的痛点是前后端的typing怎么连起来。前端用ts,后端也用ts(node)或者任何有类型标注的语言(python现在都有类型标注了,也不难用),各自的类型安全是可以很容易地保证的。
: : 但是前端后端之间传递数据,要通过一个本质上无类型信息的http协议,到这里就把信息全丢了。接收端只能自己从头为这个api的返回值再写一遍类型,还要通过类似jsonschema之类的东西耗费性能来检查一遍类型合法性,然后api如果变了,还得手动修改类型。。麻烦的要死
: : ...................
:
: --
:
: ※ 修改:·eGust 于 Dec 31 10:26:42 2020 修改本文·[FROM: 115.188.162.*]
: ※ 来源:·水木社区 newsmth.net·[FROM: 115.188.162.*]
--
修改:eGust FROM 115.188.162.*
FROM 223.72.57.*