阿里 egg.js 香不香?
作为一个后端研发,想了解下 node,于是试了下 egg,安装完之后吓一跳,项目的 node_modules 文件夹里面好几百个模块,当时吓一跳,大家平时开发用 egg 吗,还有别的轻量级框架木有
作为一个后端研发,想了解下 node,于是试了下 egg,安装完之后吓一跳,项目的 node_modules 文件夹里面好几百个模块,当时吓一跳,大家平时开发用 egg 吗,还有别的轻量级框架木有
总感觉被盯上了。
另外 egg.js 不香,一点都不好玩。
Nestjs 是正解。
打不开好久了
要我说 Egg 从 Node Web 研发模式上确实带来了不少提升,至于性能确实不怎么样,至于用不用需要结合很多因素综合判断的
你看看人家 Angular,整个编译器都重写了一遍,接口兼容性几乎没变。
react hooks 你可用可不用,而且不需要重写,老版本代码就可以一点一点改成 hooks 。
gulp 和 grunt 依然有很多项目在用。
你用框架打包都是人家给你写好的,你根本不需要管什么构建工具。
你觉着 jquery 是不是已经被淘汰了,你可以去 npm 搜搜 jquery 下载量。
Angular.js 1.x 版本,到现在还在维护,谷歌内部也有大量网站基于 1.x 。
对老版本的兼容是开源项目的一种责任和义务。
国内厂家各种技术宣传,然后所有人一拥而上,结果人家毁灭性升级,大家就都懵逼了。
很多公司在技术选型的时候没有做足横向和纵向比较,没有针对自身项目和团队适合度做很好的考量。
和 nestjs 是两个方向
不要无脑黑,并不是什么 KPI 垃圾
上的要不拿个自己的东西出来我们看看是不是所谓的垃圾?
我在说的是,前端技术升级很频繁,但是只要站好队,大部分技术并没有被替代掉。
如果你 5 年前已经开始用 React/Angular 了,到现在他们依然是最火的,不管是向前看还是向钱看。
技术换代的理由绝不是你所谓的 Vue 2.0 刚发布,结果 Vue 3.0 出来了,学不动了,前端好乱。
而是过去一个用 jQuery 1000 行才能写出来的功能,用 React/Angular 200 行就搞定了。
过去用 js 写的大项目,随便修改一个地方就会有 100 个地方出 bug,改成 Typescript 以后系统稳定了很多。
这些才是真正换代的理由。
不要被技术牵着鼻子走,而是要驾驭它们。
以上言论仅代表个人见解,且篇幅有限,可能存在较大歧义。
拜托,angular 早好几年就出了仿 react 的状态管理框架了,ngxs 了解下。但是 ng 根本不需要这种状态管理好吗?
你不会觉得 redux 是第六代吧? redux 就是一坨屎。flutter 的状态管理了解下。
你去想想为什么现在大家都说真香的 Nestjs 仿的是 angular 而不是 react ?细细品。。。
说 egg 是 KPI 产物也没错,人家想晋升肯定得搞点东西出来,虽然它是在 koa 的基础上封装的,但是人家文档写的也挺完善,社区也没死,各方面来讲也符合开源的标准,唯一的缺陷就是不支持 ts,但是据说在阿里内部是有基于 ts 的 node 框架的。
@Hanggi #56
事先声明,以下内容仅代表个人见解,为方便表述使用了一些可能会存在歧义的名词或者概念。
事先声明,一直对 vue 的创始人以及使用 vue 的技术群体充满了敬畏之情,万一说错了什么,敬请谅解。
JQuery/Vue/React/Angular 属于基于浏览器端 DOM/BOM 接口的“交互向”或者“视觉向”的前端应用开发框架,这四者可以作比较。
EggJS/NestJS 可以放在一起作比较,主要是在用来开发服务器端 NodeJS 环境下业务系统,统称为“数据向”的前端框架。
Redux 只能算是针对 React 某一部分功能的加强或者扩展,同样与 JQuery/Vue/React/Angular 不是一类产品。
如果把 JQuery/Vue/React/Angular 比作战斗机的话,egg/nestjs 就可以比作坦克,毕竟两者的战场完全不一样。
总之,不是一类的东西放在一起比较没有意义。
先比较 JQuery/Vue/React/Angular 四个框架之间的差异。
每一代浏览器端前端框架都解决了至少一个核心技术难点,就好比每一代战机都会在至少一个核心技术方面有重大突破一样,可能是发动机、隐身、雷达、武器等方面中的任何一种或者多种。
话题回到浏览器端前端框架的问题,这里说的“分代”,不是指的产品,而是指的产品背后的技术思想。
JQuery 所代表的的三代技术思想主要解决的是垮浏览器端 DOM 接口的兼容性问题。
Backbone 属于三代半,在 jq 的思想基础之上,实现了基于数据绑定思想的 MV*架构。
判定四代的标准是不依赖 jq 操作 DOM (但仍然要操作 DOM,也就是所谓的虚拟 DOM ),同时实现了基于数据绑定思想的各种 MV*架构。
发展初期的 Vue/React/Angular 站在同一起跑线上,均属于四代,但由于种种原因早已渐行渐远了。
Vue 核心思想就是速成,快速上手、高速开发。
Angular 在三四代技术思想之上,核心发展思想是创建规范化的前端工程开发流程,写出尽可能优秀的代码。换句话说就是开发前端应用的时候要有开发系统软件、桌面软件、服务器端业务系统一样的“硬姿势”,导致的结果就是开发工作颗粒度太细,开发效率低,学习曲线陡等问题,导致大多数开发者在潜移默化中把开发出良好用户体验的前端应用的目标调整成了写出符合 ng 标准的代码,代码质量确实提高了,但开发出来的东西用户不买账,或者开发出用户满意的东西工期太长。
可以看出 Angular 和 Vue 在某些层面是站在绝对的对立面的。
Angular 后续版本重点解决的是自身的性能问题,比如 ng8 引入,ng9 扶正的 Ivy 引擎,对于 API 用户来说没有思想上的改变。
Vue 的后续版本则是类似于 IE6789 风格的升级。
v16 之前的 react 核心技术思想是单向数据流,还有 JSX 勉强也算,redux 则不是 react 官方的东西。
为什么说 v16+的 React 属于五代技术思想?
v16 之后有三个很重要的东西,Fiber/Hook/Concurrent,网上有很多优秀的分析文章,这里不再赘述。
React 把近十几年优秀的前端开发思想集成到了一起,而非通过打包工具、第三方库、语法糖、接口等方式把这些思想层面简单粗暴的堆到一起,毕竟前端开发是门手艺活儿,手艺人需要的是灵活发挥的空间,以及齐全趁手的工具。
再就是与浏览器端 JS 开发的层叠样式设计开发、交互动画设计开发等方面的技术问题,开发流程、代码架构等思想上应该是统一的,React 实现了这一点。
这里扩展说一下,CSS 的布局思想由 BFC 发展到 FFC 再发展到 GFC,与 React 的单向数据流思想不谋而合。
更进一步说,UI 设计,布局设计,动画设计,交互设计,以及状态管理策略设计,应遵循单向数据流风格的开发流程,React 可以保证这一类型的开发流程的顺利递进,而 Vue/Angular 不行,它们只关心怎么写 JS/TS 代码。
对,“一把梭”的前端技术时代已经过去了,算法向、视觉向、交互向、数据向、架构向、编译器向的前端工种以及前端产品以后会划分的越来越清晰。
别的不说了,总之,这年头千万不要说其他框架不行