相比 js+php ,语言都熟悉的前提下,出活快,js 一把梭的优势在哪?真有那么多复用的代码吗?
1
ipwx 2021-12-16 00:40:13 +08:00
1. vue.js + webpack 配合其他语言不是难事,比如我经常配合 python 。
2. vue.js 就是比 html bootstrap jquery 好写啊。。。 |
2
seki 2021-12-16 00:45:09 +08:00 1
优势在于不用学第二门语言。
除此之外复用代码也是一种可能性 |
3
golangLover 2021-12-16 00:45:55 +08:00 1
不用聘请第二个人
|
4
dcoder 2021-12-16 00:52:52 +08:00 2
适合业余"full-stack engineer"直接做出产品原型
|
6
DOLLOR 2021-12-16 01:16:22 +08:00 3
曾经跟 node+typescript 的后端对接过接口,前后端可以共用 interface 、type ,沟通成本比其他语言低很多。
|
8
yyfearth 2021-12-16 02:30:09 +08:00
可以复用 数据层的代码 校验代码
另外要考虑到前端需要 build 脚本 一般都是 nodejs 比如 webpack 后段需要运维脚本 一般用 python 和 shell 的多 然后数据库要用到 sql 这么一来开发一个功能你就需要 full stack 的话 需要用到 js php python shell sql 多个语言 而且可能还需要共享数据结构和部分逻辑 那么当然用 JS 一把嗦比较爽了 vue/react+webpack+node+mongo 但是前提就是 full stack 一个人从前到后 而且 nodejs 性能在脚本语言里面不错的 如果前后端分工 就无所谓了 这种我见过纯后端用 Java 比较多 |
9
yyfearth 2021-12-16 02:31:15 +08:00 1
@ob vue 和 react 都可以继续用 bootstrap 呀 并不冲突
react 有 react-bootstrap 和 reactstrap vue 也有类似的 style 和 layout 和用 jquery 的 bootstrap 没啥区别 |
11
dayeye2006199 2021-12-16 08:14:14 +08:00
优势是方便只会 JS 的人干活
|
12
gzf6 2021-12-16 08:32:50 +08:00 via Android 1
这种情况 ng + nestjs 的 monorepo 项目代码复用率会高一些
|
13
mirage13 2021-12-16 08:37:23 +08:00
优势就是 前后端一把梭
|
15
murmur 2021-12-16 08:56:16 +08:00
你都会抢答了,前端后端一个人全干
|
16
yuyue001 2021-12-16 09:10:10 +08:00 7
|
17
version 2021-12-16 09:10:44 +08:00
如果熟练起来.没啥区别吧.现在我都是 mongodb 的开发模式.crud 全部前端传参数就好.别搞那么多 mvc 框架.浪费开发时间.性能也差.只用 koa 或者 express
优势应该是有些数据可以 vue 状态机来处理数据聚合洗和转数据。。到后期稳定可以般到服务器来处理。安全些 如果有接口性能要求的活动或者秒杀.直接 redis+lua 当数据库.云服务器百万数据基本也没问题.时间成本且 qps 服务器成本随便碾压任何语言 |
18
wobuhuicode 2021-12-16 09:13:37 +08:00
@yyfearth 运维脚本也用 node 来写,数据库很多都用 mongodb 的,直接套个 orm 框架,sql 也不用。
|
19
cweijan 2021-12-16 09:13:41 +08:00
node.js 开发很快, 缺点是程序容易崩, 时刻需要处理异常, 没有统一规范, 这意味着如果要用于商业项目, 程序员的水平要高.
|
22
Rocketer 2021-12-16 09:50:25 +08:00 via iPhone 2
正式一点的开发可以考虑一下.Net Core ,又稳又快。用 Nuget 管理包比其他主流语言都方便,搭建开发环境也比其他主流语言快,装个 VS 就全有了。
|
23
nicholasxuu 2021-12-16 09:58:54 +08:00
共享代码,共享逻辑。
一个人开发前后端时换脑子轻松一点。 可以考虑 SSR (服务器端渲染)。 其实大部分语言都差不多,量级上去了可能某些语言对资源要求低可以省成本(但量级上去了大多可以不在乎那点成本)。更多是看是否有合适的开发人员,还有这个语言的生态如何(比如 ORM 之类有哪些,是否好用)。 |
24
dreamerblue 2021-12-16 10:02:37 +08:00 1
如果走前后端分离,前端业务逻辑占比应该不会少,前端复杂度会很高,除非是传统的异构 SSR + 前端仅处理少量交互代码。这个时候如果前后端同构都用 JS ( TS ),优势就体现出来了,前后端复用的校验、接口 DAO 、服务、工具类、配置等可以显著提升一把梭速度。我们组维护的几个 MAU 只有几百万的小项目就是从几年前开始一直在这么搞的,技术栈主要就是自研的 JS 全栈框架 + Vue 。当然运维相关对 Node.js 是个问题,公司有支持是最好,个人项目直接用 alinode 等也不错
|
25
lmoon 2021-12-16 10:06:15 +08:00
相比 Tailwind CSS 我觉得 Windi CSS 更好
|
26
adspe 2021-12-16 10:21:24 +08:00
优势就是省人工成本
|
27
Terry05 2021-12-16 10:23:19 +08:00
都没有兼容 ie 的硬性要求了嘛,都敢上 Tailwid CSS 跟 Windi CSS 了
|
28
BlackJac95 2021-12-16 10:25:40 +08:00
vue+egg 感觉不错的
|
29
eason1874 2021-12-16 10:27:39 +08:00
复用校验代码确实爽
之前我写 JS + PHP ,校验逻辑一样,其实代码也 99%相同,但要写两遍,就很羡慕 Node 的前后一把梭 |
31
darknoll 2021-12-16 10:35:58 +08:00
没有优势,一把梭单纯的是因为不会其他语言的后端
|
32
chenqh 2021-12-16 10:37:20 +08:00
但是小项目,可以校验逻辑完全放到后端来做呀, 前端什么也不校验,就是用起来不那么友好罢了
|
33
dany813 2021-12-16 10:42:27 +08:00
复用逻辑吧
|
34
Elissa 2021-12-16 10:43:07 +08:00
大的样式布局用 flex+grid 布局,配合组件库自带的栅格系统,和 bootstrap 效果一样。细节布局组件库已经实现的很精致了,需要覆盖的话定义个公共的样式,main.js 引入覆盖
|
36
makelove 2021-12-16 10:54:54 +08:00
我就是单人 node 前后端,以前用 py 做后端现在也改 node 了。
优点很大,前后端共用 typescript 定义,只用一种语言大脑切换损失小,js+ts 语言灵活表达力高还是强类型检查,可以说完全没有坚守 php 的理由。 @cweijan node 容易崩?哪来的说法?给个会崩的场景? |
37
iugo 2021-12-16 10:59:57 +08:00
目前 Deno + React, 核心优势是使用 TypeScript 后 共同的业务类型约束, 相关的运行时类型判断函数也通用.
|
38
xuanbg 2021-12-16 11:02:42 +08:00 4
其实没啥优势,后端能力在线的,学几种 Java 这样的语言压根就不是什么问题。编程的问题也从来不是语言的问题,生态的问题远大于语言,而解决问题的能力又远高于生态。
|
39
fujishimamao 2021-12-16 11:02:42 +08:00 via Android
写 BFF 的话用 gql 前端直接复用后端类型,只不过变成每天都在写图了
|
40
fujishimamao 2021-12-16 11:07:27 +08:00 via Android
@cweijan 交给 docker 或者 k8s 来管理
|
41
ipwx 2021-12-16 11:10:48 +08:00
|
42
agdhole 2021-12-16 11:24:19 +08:00 via iPhone 1
写了几年 PHP 的告诉你,node 各方面都可以取代 PHP ,性能,ts 静态类型,常驻任务,开发速度,前后端大统一,就这几点为啥还抱着 PHP 玩,写个实时通讯 PHP 都要搞什么 swoole ,瞎折腾。
|
44
Austaras 2021-12-16 11:56:42 +08:00
如果真的爱玩新技术,可以尝试一下 fsharp 全栈。。。甚至有 ssr
|
46
ijse 2021-12-16 11:58:02 +08:00
|
47
4771314 2021-12-16 12:05:48 +08:00
优势在于会搞出很多的 bug (如果前端水平不够的话)
接手过一个前端搞的后端项目,bug 很多,逻辑也很扯,主要是 OOM 、CPU 的问题全都有 好家伙,一个项目,直接把后端的问题暴露了个全 我 TM 直接好家伙 |
48
dreamerblue 2021-12-16 12:29:03 +08:00
@4771314 深有体会,之前接手过隔壁组的 node 项目,屎山不说,各种内存泄漏、for 循环串行 rpc 、不写鉴权导致安全问题频出等等。拉前端来写 node 业务还是要有一定经验的才行
|
49
libook 2021-12-16 12:35:12 +08:00
前后端通用的包不少比如 Lodash 、Axios 、Bluebird ,另外因为语言绝大部分特性一样,所以自己写的很多代码可以前后端复用,比如涉及到 API 的各种类。
你熟悉啥,用啥出活就快。 每个技术栈都有擅长的领域和不擅长的领域,看你当前遇到的需求或问题是否是某一个技术栈擅长的,比如涉及到大量 JSON 处理的场景,后端 Node.js 就肯定比 PHP 方便一些,以及 Node.js 的异步非阻塞是开箱即用的,不需要很多工作就能支持高并发。 对于公司来说,Node.js 全栈的优势是一门语言通吃前后端,前后端交集的那一部分不需要重新学,很多设计思想也可以通用。 但任何一个规模较大的项目都不是一门语言可以拿下的,需要用多个技术栈各自发挥特长。 所以你现在熟悉 PHP ,在没有实际遇到不适合 PHP 的需求的时候,好像也没必要硬换技术栈。 |
50
pengtdyd 2021-12-16 12:48:19 +08:00 1
优势在于本来要,前端,后端,测试,运维,产品的,现在招一个人就可以了。5 大问题 1 人搞定,累死了就下一个
|
51
L1shen 2021-12-16 13:05:01 +08:00
可以了解下 jamstack
比如 https://blitzjs.com/ 这个框架 |
52
boja 2021-12-16 13:10:03 +08:00
node 最大的不方便是進程間通訊,和數字浮點處理。除此外專業後端寫的 node 跟 java/php 並沒什麼區別。代碼共享,調試 /溝通成本直降 80%。
|
53
zzWinD 2021-12-16 13:10:16 +08:00 1
.net core
|
54
3dwelcome 2021-12-16 13:14:42 +08:00
我发现前后端一把梭的优势,是可以把传统后端一锅端,直接把后端代码,放到 WASM 里和前端一起运行。
这样就变成了一个传统的应用程序,所有的数据都是本地文件来源和内存数据库。 都不需要网络通讯了。数据通过“伪后端”处理加工后,再发送给前端页面展示出来。 |
56
nicevar 2021-12-16 13:36:46 +08:00
没有什么优势,对个人开发者来说,还不如 php 实在,我工作时后台用 Java ,自己的后台用过 Java/Go/Python/NodeJs ,后来换 php 了,开发调试方便,各种东西大多有现成的可用。
|
57
mikulch 2021-12-16 14:04:33 +08:00
国内用这个的太少了。
|
58
yyfearth 2021-12-16 14:48:00 +08:00
@wobuhuicode 我就是这个意思啊
“JS 一把嗦比较爽了 vue/react+webpack+node+mongo” |
59
zhy0216 2021-12-16 14:58:19 +08:00
如果是 ts 的话 至少类型可以复用
|
61
vertigo 2021-12-16 15:45:27 +08:00 1
js 开发者特点:
大问题没有,小问题不断,js 很容易写出自己的语言风格 所以带来的好处是: 项目质量总体不错,一直出错可以一直维护,项目方找不到能接盘的人只能一直绑定开发 很适合赚钱 |
62
7gugu 2021-12-16 16:08:52 +08:00 1
最大优势就是学了 JS ,就可以通杀前后端,国内外生态也不错,很多轮子可以用,教程也多经验也多。
js+php 当然可以跑,只是用同一门语言没那么多心智负担,比如 php 的变量要加$,js 里面不用,写着写着就很容易把这两者的差异给搞混,都用 js 就不怕了,语言特性是一样的,差别仅仅是存在于 API 上。 |
63
badmarillo 2021-12-16 18:55:43 +08:00
上家公司就是全“沾”,技术栈:vue/react + koa + typescript + sequelize
|
64
star7th 2021-12-16 19:49:24 +08:00
我几年前前也是 js+php . 但近年来全部换成 js + node 了。优势嘛,就是不用常切换语言,减轻心智负担。另外就是 node 在读数据库 io 方面,由于异步,比 php 要高性能一些
|
65
shuimugan 2021-12-16 19:55:19 +08:00 9
js 一把梭挺爽的,让我告诉你 php 换 nodejs 之后爽在哪里
1.异步 io 性能大幅度提升。很多人说你的项目压根用不到语言的瓶颈,但他们往往说的是计算瓶颈,而不是 io 瓶颈。很多 php 用户没搞清楚“异步里面不能套同步”就上 swoole ,就和很多 python 用户在 tornado/fastapi/asyncio 里用内置 file 等 io 阻塞型函数,java 用户在 netty 里用 jdbc 那样。我测试 8700K [单核心] 空跑 node 的 qps 有 4w ,内存占用 65MB ,这种性能优势随便招个人培训一下随便写都不会差到哪里去。 2.单步调试。说实话很多 php 用户连 xdebug 都没用过几次,echo/vardump 一把梭,更别说在 swoole 里用断点调试了。 3.有很多相似的库。像 Laravel 的框架有 AdonisJS,像 SpringBoot 的框架有 Nest.js,像 Yii2 的 ORM 有 TypeOrm,用 JavaScript 实现的 PHP 函数库有 https://github.com/locutusjs/locutus (注意不要用 io 相关和加密相关的,是阻塞实现)。 4.代码复用。很多逻辑判定的代码可以复用,不过要在编码过程中注意调用环境,函数最好是无运行环境依赖的。 5.服务端打包。node.js 打包是非常多的人忽略的,包括各路 serverless 厂商。大家认为有 docker 就不需要打包了,但是 nodejs 是可以直接打成二进制的。比如 https://github.com/vercel/pkg 这个库可以把 nodejs 项目打包成二进制,然后可以直接在服务器上运行(这一点和 go 、.net 的特性一致了,还用啥 go )。实测一个没有使用.node 扩展的 300MB+的项目打成二进制才 40MB 出头,tar.gz 后大概在 20MB 。做 docker alpine 镜像也就加多几 MB 。 很多人说运维的问题,但我觉得未来属于 serverless ,而且现在各家 serverless 都支持跑 docker 镜像了。前后端都用 js ,服务部署上云,真的是连运维都不用,服务器维护都免了。我上家一年在公有云消费几千万,资源利用率才 30%多,各种 java 应用在上面跑,都是 io 密集型应用,还有为了高可用应用实例最低都是 2 个节点的,要是能改 serverless 架构一年能省千万级的费用。如果你的应用冷启动都是毫秒级,实际上 0 应用实例就可以做到高可用了,无论是做 saas 还是丢给客户在公有云部署,都是极大的优势。 |
67
shuimugan 2021-12-16 20:38:48 +08:00
|
68
zhennann 2021-12-16 20:44:55 +08:00
事实 1:大多数类似 vue admin 的 UI 框架都是为 pc 端定制,mobile 端可用但不好用
事实 2:大多数 node 项目都是 crud 和工具类应用,没有好用的工作流引擎 因此,强烈建议使用 CabloyJS ,解决了上述两个问题,而且还有大量丰富的工具和组件,将低代码的开箱即用和专业代码的灵活定制,有机的结合了起来 眼见为实,在线演示: https://test.cabloy.com/ 分别使用 PC 和手机浏览该网页,体验与众不同的 pc=mobile+pad 自适应布局 |
69
byte10 2021-12-16 21:09:03 +08:00
|
70
fkdog 2021-12-17 09:14:30 +08:00
nodejs 前边几年吹的很厉害,前后端一把梭。
经过几年时间的检验,nodejs 在后端届并没有展现出杀手级的应用,反而还被异军突起的 go 和 k8s 杀了一道。 现在 nodejs 基本已经沦落为用来 js 打包、本地 webpack 调试一类的支持工具了。。。 |
71
zhennann 2021-12-17 10:18:35 +08:00
@fkdog 你说的是现实。前几年,nodejs 炒作来炒作去,还不是工具层、代理层,网上大多数知识也只是在玩具的层面翻来覆去的 copy 。所以,我花了几年时间做了一款 node 全栈开源框架:CabloyJS 。内置工作流引擎,全新的 UI 布局风格,希望能为 node 生态添砖加瓦。
|
72
imruxin 2021-12-17 17:20:37 +08:00
前后端都分离了,至于后端用 PHP 还是 node 看公司团队跟技术栈熟悉程度咯。PHP 能实现的,node 也能实现。不过大型项目用 node 的好像不多,中小型的项目用 node 还是挺多的。
|
73
rophie123 OP @imruxin 没有公司和团队,一直说的就是个人,不争论语言,就是比出活优势,没优势就继续 php
|
74
hutoer 2021-12-17 19:50:33 +08:00
php 貌似漏洞特别多,当然我的观念还在 php5 的时代,很久没碰 php 了
用 nodejs 的话,php 漏洞的问题解决了,算不算优势? |
76
7086cmd 2022-02-20 12:47:06 +08:00
单纯靠我的看法来讲,……
1. 前后端语法相同,出现了 Bug 可以很好地定位,并且可以提出方案(运营方面) 2. Node.js 有很多的轮子,在必要的时候可以帮助一把 3. 前后端可以统一配置统一使用,测试方便 4. 若使用 TypeScript ,前后端可以使用自动补全,即使是 API 5. Node.js 不会有 PHP 那么样直接跑源码等的性能问题和源码泄露(我觉得 |