泻药
这是一个设计的问题
设计的问题犹如写作文,每个人有每个人的发挥,千篇一律反而是有点问题的
不同场景选择应该会有不同的取舍
同样的问题你可以问,什么时候用nosql,什么时候用rdbms?
答案是,看你的设计
想起今天中午的群里的一个讨论
现有的模式是nignx -> node -> java这么一个层次结构
那问有没有什么选择
给了三种选择
1)把node干掉,用前端渲染,前后端分离
2)保留node,用服务器端渲染
3)把node干掉,用模版,也用服务器端渲染
服务器端渲染好处就是速度快,对客户端的压力小
那这个时候,其他群的人也提出来,java的模版很难调试
那建议使用thymeleaf,浏览器看到th:开头的tag会自动跳过,那这样的话,对于我们来说
可以节省下来一个前端,后端可以直接对接美工了,如果你对前端要求也不高的话,这样做没问题
于是话题转入全栈,香港的同学提出一点,全栈的话,可以考虑全部用js搞定
比如node,electron之类的
可以不可以,多数时候可以,但是这样做有一个问题
就是tcp长连接会比较弱,而且60fps的性能往往实现不了,用在游戏领域会比较吃力
还有就是3d graphics api js也比较弱,缺少类似图形引擎一样的东西,像javafx和flutter都有自己的图形引擎,而且都已经开源,fx的prism已经接入了d3d和opengl,甚至都出现了driftfx这种能够直接渲染node的项目,这个领域,javafx和flutter走得更远一点,有了这些工具,我们就能做出游戏来了,相比之下,一般的js engine就缺少这种东西
不是理论上不可行
但是理论可行到实际可行之间有很长的距离
类似这种问题,其实随着你手中的技术越来越多,你可以选的空间也就越来越大
比如之前说的那个例子,用nosql还是用rdbms啊?
如果你不会nosql,很多人只会mysql,那么就希望其他db尤其是nosql全死掉
但是如果你会file system,会nosql,会真rdbms,那么你就可以根据需要,定制你的持久化
谁说一定要用db的?
同样的,谁说一定要用java的?
谁说一定要java bean的?
像scala和kotlin都有case class和data class,这也是一种选择不是?