3

nodejs 前后端一把梭的优势在哪?

 2 years ago
source link: https://www.v2ex.com/t/822487
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  Node.js

nodejs 前后端一把梭的优势在哪?

  rophie123 · 16 小时 49 分钟前 · 4131 次点击

相比 js+php ,语言都熟悉的前提下,出活快,js 一把梭的优势在哪?真有那么多复用的代码吗?

第 1 条附言  ·  9 小时 42 分钟前

补充一下,说的就是前后端分离,一个人全栈接活,目前用的是 vue+php ,如果后端换 node 会不会有更大优势
62 条回复    2021-12-16 16:08:52 +08:00

ipwx

ipwx      16 小时 38 分钟前

1. vue.js + webpack 配合其他语言不是难事,比如我经常配合 python 。
2. vue.js 就是比 html bootstrap jquery 好写啊。。。

seki

seki      16 小时 33 分钟前   ❤️ 1

优势在于不用学第二门语言。
除此之外复用代码也是一种可能性

golangLover

golangLover      16 小时 33 分钟前   ❤️ 1

不用聘请第二个人

dcoder

dcoder      16 小时 26 分钟前

适合业余"full-stack engineer"直接做出产品原型

ob

ob      16 小时 6 分钟前

@ipwx 请教下,vue 的界面布局有没有比 bootstrap 更好用的方式?目前只比较熟悉 bootstrap 那套。

DOLLOR

DOLLOR      16 小时 2 分钟前   ❤️ 2

曾经跟 node+typescript 的后端对接过接口,前后端可以共用 interface 、type ,沟通成本比其他语言低很多。

BealuoC

BealuoC      15 小时 40 分钟前

@ob tailwindcss

yyfearth

yyfearth      14 小时 48 分钟前

可以复用 数据层的代码 校验代码

另外要考虑到前端需要 build 脚本 一般都是 nodejs 比如 webpack
后段需要运维脚本 一般用 python 和 shell 的多
然后数据库要用到 sql
这么一来开发一个功能你就需要 full stack 的话 需要用到 js php python shell sql 多个语言 而且可能还需要共享数据结构和部分逻辑
那么当然用 JS 一把嗦比较爽了 vue/react+webpack+node+mongo
但是前提就是 full stack 一个人从前到后
而且 nodejs 性能在脚本语言里面不错的

如果前后端分工 就无所谓了 这种我见过纯后端用 Java 比较多

yyfearth

yyfearth      14 小时 47 分钟前   ❤️ 1

@ob vue 和 react 都可以继续用 bootstrap 呀 并不冲突
react 有 react-bootstrap 和 reactstrap
vue 也有类似的
style 和 layout 和用 jquery 的 bootstrap 没啥区别

caisanli

caisanli      9 小时 15 分钟前 via iPhone

@DOLLOR 怎么共用呢?前后端代码写到一个项目里吗?

dayeye2006199

dayeye2006199      9 小时 4 分钟前

优势是方便只会 JS 的人干活

gzf6

gzf6      8 小时 46 分钟前 via Android   ❤️ 1

这种情况 ng + nestjs 的 monorepo 项目代码复用率会高一些

mirage13

mirage13      8 小时 41 分钟前

优势就是 前后端一把梭

banliyaya

banliyaya      8 小时 23 分钟前   ❤️ 2

@ob 可以试试 tailwind css 个人认为比 bootstrap 好用

murmur

murmur      8 小时 22 分钟前

你都会抢答了,前端后端一个人全干

version

version      8 小时 8 分钟前

如果熟练起来.没啥区别吧.现在我都是 mongodb 的开发模式.crud 全部前端传参数就好.别搞那么多 mvc 框架.浪费开发时间.性能也差.只用 koa 或者 express
优势应该是有些数据可以 vue 状态机来处理数据聚合洗和转数据。。到后期稳定可以般到服务器来处理。安全些
如果有接口性能要求的活动或者秒杀.直接 redis+lua 当数据库.云服务器百万数据基本也没问题.时间成本且 qps 服务器成本随便碾压任何语言

wobuhuicode

wobuhuicode      8 小时 5 分钟前

@yyfearth 运维脚本也用 node 来写,数据库很多都用 mongodb 的,直接套个 orm 框架,sql 也不用。

cweijan

cweijan      8 小时 5 分钟前

node.js 开发很快, 缺点是程序容易崩, 时刻需要处理异常, 没有统一规范, 这意味着如果要用于商业项目, 程序员的水平要高.

rophie123

rophie123      7 小时 45 分钟前 via iPhone

@cweijan 这么看 php 更稳一点啊,不是引战,因为我现在就是这么用的

zhsama

zhsama      7 小时 28 分钟前

@dcoder 为啥是业余😂感觉使用体验良好

Rocketer

Rocketer      7 小时 28 分钟前 via iPhone   ❤️ 1

正式一点的开发可以考虑一下.Net Core ,又稳又快。用 Nuget 管理包比其他主流语言都方便,搭建开发环境也比其他主流语言快,装个 VS 就全有了。

nicholasxuu

nicholasxuu      7 小时 20 分钟前

共享代码,共享逻辑。
一个人开发前后端时换脑子轻松一点。
可以考虑 SSR (服务器端渲染)。
其实大部分语言都差不多,量级上去了可能某些语言对资源要求低可以省成本(但量级上去了大多可以不在乎那点成本)。更多是看是否有合适的开发人员,还有这个语言的生态如何(比如 ORM 之类有哪些,是否好用)。

dreamerblue

dreamerblue      7 小时 16 分钟前   ❤️ 1

如果走前后端分离,前端业务逻辑占比应该不会少,前端复杂度会很高,除非是传统的异构 SSR + 前端仅处理少量交互代码。这个时候如果前后端同构都用 JS ( TS ),优势就体现出来了,前后端复用的校验、接口 DAO 、服务、工具类、配置等可以显著提升一把梭速度。我们组维护的几个 MAU 只有几百万的小项目就是从几年前开始一直在这么搞的,技术栈主要就是自研的 JS 全栈框架 + Vue 。当然运维相关对 Node.js 是个问题,公司有支持是最好,个人项目直接用 alinode 等也不错

lmoon

lmoon      7 小时 12 分钟前

相比 Tailwind CSS 我觉得 Windi CSS 更好

adspe

adspe      6 小时 57 分钟前

优势就是省人工成本

Terry05

Terry05      6 小时 55 分钟前

都没有兼容 ie 的硬性要求了嘛,都敢上 Tailwid CSS 跟 Windi CSS 了

BlackJac95

BlackJac95      6 小时 53 分钟前

vue+egg 感觉不错的

eason1874

eason1874      6 小时 51 分钟前

复用校验代码确实爽

之前我写 JS + PHP ,校验逻辑一样,其实代码也 99%相同,但要写两遍,就很羡慕 Node 的前后一把梭

rophie123

rophie123      6 小时 47 分钟前

@eason1874 我现在和你一样,所以我想问问 node 会不会更有优势一点

darknoll

darknoll      6 小时 43 分钟前

没有优势,一把梭单纯的是因为不会其他语言的后端

chenqh

chenqh      6 小时 41 分钟前

但是小项目,可以校验逻辑完全放到后端来做呀, 前端什么也不校验,就是用起来不那么友好罢了

dany813

dany813      6 小时 36 分钟前

复用逻辑吧

Elissa

Elissa      6 小时 36 分钟前

大的样式布局用 flex+grid 布局,配合组件库自带的栅格系统,和 bootstrap 效果一样。细节布局组件库已经实现的很精致了,需要覆盖的话定义个公共的样式,main.js 引入覆盖

dcoder

dcoder      6 小时 26 分钟前

@zhsama
分人, 主要是有太多 新手前端工程师学点 mongoDB, 就号称自己是 full stack 了

makelove

makelove      6 小时 24 分钟前

我就是单人 node 前后端,以前用 py 做后端现在也改 node 了。
优点很大,前后端共用 typescript 定义,只用一种语言大脑切换损失小,js+ts 语言灵活表达力高还是强类型检查,可以说完全没有坚守 php 的理由。


@cweijan node 容易崩?哪来的说法?给个会崩的场景?

iugo

iugo      6 小时 19 分钟前

目前 Deno + React, 核心优势是使用 TypeScript 后 共同的业务类型约束, 相关的运行时类型判断函数也通用.

xuanbg

xuanbg      6 小时 16 分钟前   ❤️ 3

其实没啥优势,后端能力在线的,学几种 Java 这样的语言压根就不是什么问题。编程的问题也从来不是语言的问题,生态的问题远大于语言,而解决问题的能力又远高于生态。

fujishimamao

fujishimamao      6 小时 16 分钟前 via Android

写 BFF 的话用 gql 前端直接复用后端类型,只不过变成每天都在写图了

fujishimamao

fujishimamao      6 小时 11 分钟前 via Android

@cweijan 交给 docker 或者 k8s 来管理

ipwx

ipwx      6 小时 8 分钟前

agdhole

agdhole      5 小时 54 分钟前 via iPhone   ❤️ 1

写了几年 PHP 的告诉你,node 各方面都可以取代 PHP ,性能,ts 静态类型,常驻任务,开发速度,前后端大统一,就这几点为啥还抱着 PHP 玩,写个实时通讯 PHP 都要搞什么 swoole ,瞎折腾。

galikeoy

galikeoy      5 小时 24 分钟前

@cweijan #19 容易蹦??给个例子?公司项目生产环境跑了 2 年,金额流水过亿

Austaras

Austaras      5 小时 22 分钟前

如果真的爱玩新技术,可以尝试一下 fsharp 全栈。。。甚至有 ssr

galikeoy

galikeoy      5 小时 22 分钟前

@cweijan #19 异常处理,哪个语言不需要异常处理,统一规范那是项目管理的事情

ijse

ijse      5 小时 21 分钟前

看 React Remix 全栈框架,一把梭的优势就在于可以给页面做到更好的体验。

https://remix.run/

但前后端分离的项目,应该优势不大。

4771314

4771314      5 小时 13 分钟前

优势在于会搞出很多的 bug (如果前端水平不够的话)
接手过一个前端搞的后端项目,bug 很多,逻辑也很扯,主要是 OOM 、CPU 的问题全都有
好家伙,一个项目,直接把后端的问题暴露了个全
我 TM 直接好家伙

dreamerblue

dreamerblue      4 小时 50 分钟前

@4771314 深有体会,之前接手过隔壁组的 node 项目,屎山不说,各种内存泄漏、for 循环串行 rpc 、不写鉴权导致安全问题频出等等。拉前端来写 node 业务还是要有一定经验的才行

libook

libook      4 小时 43 分钟前

前后端通用的包不少比如 Lodash 、Axios 、Bluebird ,另外因为语言绝大部分特性一样,所以自己写的很多代码可以前后端复用,比如涉及到 API 的各种类。

你熟悉啥,用啥出活就快。

每个技术栈都有擅长的领域和不擅长的领域,看你当前遇到的需求或问题是否是某一个技术栈擅长的,比如涉及到大量 JSON 处理的场景,后端 Node.js 就肯定比 PHP 方便一些,以及 Node.js 的异步非阻塞是开箱即用的,不需要很多工作就能支持高并发。

对于公司来说,Node.js 全栈的优势是一门语言通吃前后端,前后端交集的那一部分不需要重新学,很多设计思想也可以通用。

但任何一个规模较大的项目都不是一门语言可以拿下的,需要用多个技术栈各自发挥特长。

所以你现在熟悉 PHP ,在没有实际遇到不适合 PHP 的需求的时候,好像也没必要硬换技术栈。

pengtdyd

pengtdyd      4 小时 30 分钟前   ❤️ 1

优势在于本来要,前端,后端,测试,运维,产品的,现在招一个人就可以了。5 大问题 1 人搞定,累死了就下一个

L1shen

L1shen      4 小时 14 分钟前

可以了解下 jamstack
比如 https://blitzjs.com/ 这个框架

boja

boja      4 小时 9 分钟前

node 最大的不方便是進程間通訊,和數字浮點處理。除此外專業後端寫的 node 跟 java/php 並沒什麼區別。代碼共享,調試 /溝通成本直降 80%。

zzWinD

zzWinD      4 小时 8 分钟前   ❤️ 1

.net core

3dwelcome

3dwelcome      4 小时 4 分钟前

我发现前后端一把梭的优势,是可以把传统后端一锅端,直接把后端代码,放到 WASM 里和前端一起运行。

这样就变成了一个传统的应用程序,所有的数据都是本地文件来源和内存数据库。

都不需要网络通讯了。数据通过“伪后端”处理加工后,再发送给前端页面展示出来。

agdhole

agdhole      3 小时 53 分钟前   ❤️ 1

@3dwelcome #54 c# blazor

nicevar

nicevar      3 小时 42 分钟前

没有什么优势,对个人开发者来说,还不如 php 实在,我工作时后台用 Java ,自己的后台用过 Java/Go/Python/NodeJs ,后来换 php 了,开发调试方便,各种东西大多有现成的可用。

mikulch

mikulch      3 小时 14 分钟前

国内用这个的太少了。

yyfearth

yyfearth      2 小时 31 分钟前

@wobuhuicode 我就是这个意思啊
“JS 一把嗦比较爽了 vue/react+webpack+node+mongo”

zhy0216

zhy0216      2 小时 20 分钟前

如果是 ts 的话 至少类型可以复用

rophie123

rophie123      2 小时 11 分钟前

@nicevar 是的,开发部署方便,修改完了直接上传一下文件就行了,有问题直接撤回,调试就不好玩了

vertigo

vertigo      1 小时 33 分钟前

js 开发者特点:
大问题没有,小问题不断,js 很容易写出自己的语言风格
所以带来的好处是:
项目质量总体不错,一直出错可以一直维护,项目方找不到能接盘的人只能一直绑定开发

很适合赚钱

7gugu

7gugu      1 小时 10 分钟前

最大优势就是学了 JS ,就可以通杀前后端,国内外生态也不错,很多轮子可以用,教程也多经验也多。

js+php 当然可以跑,只是用同一门语言没那么多心智负担,比如 php 的变量要加$,js 里面不用,写着写着就很容易把这两者的差异给搞混,都用 js 就不怕了,语言特性是一样的,差别仅仅是存在于 API 上。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK