CNode

前端如何进阶全栈开发

分享
Vvellengs发布于8 年前最后回复7 年前45 回复17223 浏览0 收藏

前端进阶之困

最近看了不少文章和帖子, 如文:

身边和朋友圈也不少做前端开发的同事朋友问如何发展和提升 这里我向大家给一些建议

扎实基础

首先思考下手上的工作是否做得足够好了,近几年前端技术发展迅猛各种框架层出不穷,刚学会jquery还没用熟, angular 、vue 、react 已经满大街了。 gulp 还没明白怎么回事、webpack 已开始遍地开花了。眼花缭乱的技术不知道从哪里开始好。 如果你还被这些困扰的话,那请静下来思考一下,技术的发展总是有规律的,学习也是有规律可循的,我的建议是,把共性和必要的技能先稳固下来,既不浪费时间,又能提高效率,如果这块还么稳固好、框架什么少看几种吧,先有一样可用的就好。 对于加强基础一个可行的方案是,从自己上手的工作开始、除了专注现学现用工作需要的框架技术外加强基础的学习,如:

  • 基本的逻辑(与、或、非)
  • 运算操作(加减乘除 Math 下的各种函数)
  • 字符串处理 (什么大小写、编码、裁剪什么的)
  • 时间处理 (日期的加减、对比、格式转换等)
  • 数组、集合对象处理 可以了解学习一些基础库 如: lodashmoment 等、若时间有限可以看看示例有个印象回头可以查找,当然最好的方式是实践练习。

发展全栈的正确姿势

Javascript 生态链对于全栈有一些优势,但全栈不是贴金的标签,如果技能不够硬,必然落得个 前端不强,后端不行 的尴尬局面。

那对于前端是不是不该发展后端呢?

回答当然是否定的,前端有目的、有计划的发展后端技能,对于系统全局观、工作协作能力提升是非常有帮助的,另外切实让老板愿意为你加工资是非常可能的

那要如何才能是有目的、有计划的发展后端技能呢?

首先认清后端技能出发点和关键点。

  • 出发点: 是主动权和话语权(可能某个后端老是鄙视你,你要的东西,说这个没办法,那个不应该,造成了你工作很被动,效率不高,出错了可能还先找你)。
  • 关键点: 前后端接口 (如果你能清晰、标准、明确你要的接口,那么一些都会明朗起来)。 所以我认为前端切入后端应该从接口开始。

从标准接口开始,什么样的接口才是标准的呢?

OpenAPI Specification 这里我为大家推荐 Swagger 标准接口 (目前有两个标准 OAS 2.0 和 OAS 3.0) Swagger 致力于接口的标准化,并为此提供了一系列的工具,方便大家对进口进行标准化。

有什么好处呢

  • 简化工作流程 (Streamline Your Workflow)。
  • 自由构建 (Restraint-Free Build)
  • 开放/全球化的支持 (Open & Globally Supported) 我的理解是增强系统的健壮性、降低沟通成本、提高写作效率,另外接口是系统的一种抽象可以更好的从宏观把握系统。

标准化的接口要如何实践

这里我安利下我的开源项目 typerx, typerx 是一个轻量注解式的全栈系统、你可以使用他快速的实践接口标准的全栈开发。

  • 创建接口前、我们仍旧还是要考虑接口模块的、模块化的设计能降低我们一次思考的复杂度。 在 typerx 中我们分了 core 模块和 cms 模块。
  • 接口的创建从原型开始考虑、确定接口所需的模型 model, 这个模型我们称之为 DTO(data transform object) 也就是接口的输入输出数据对象。 dto 的编写示例
  • 有了模型之后我们就可以确定需要哪些接口方法了,编写接口的时候先不着急考虑接口的实现,我们只要先提供模型(可以建立一个按模型提供的数据mock)确保必要的接口规格描述就好, account 的接口定义 这里我们通过直接编写代码的方式来实现文档,这样方便我们高效、可维护的接口文档(当然先完成文档再来生成代码也是可以的,不过代码能表述的永远比文档能描述的多,所以应该是有一套能够自动生成api 文档的代码来维护比较合适,过去也曾从文档开始,但文档的错漏不方便验证、而且文档维护数据模型是很累的一个事情无法动态关联重构)。
  • 按要求完成了接口定义之后,你只要轻松运行
npm run build 

你就拥有标准的接口文档描述文件 swagger.json / swagger.yaml 了, 你可以使用 typerx 直接启动服务端预览接口 localhost:4700 或者放到在线编辑器上预览 editor.swagger.io;

  • 好了标准话的接口有了你可以保持这个接和后端的接口一致,这样就可以和后端愉快的协作了,当然如果你喜欢,直接使用 typerx 实现自己真实的后端。

最后欢迎大家关注 typerx 一起讨论努力进阶。

查看回复

回复 (44)

V
vellengs#1·8 年前

最近不少人怀疑 node 对全栈的意义,实际上我们要分清的是node 对前后端贯通真正的优势点的地方, 而不要用node 的弱势点去扯,啥都能干上,。

H
hankewins#2·8 年前

前端发展非常快很迅速,但是在很多公司中前端大部分职责还是停留在UI层开发,对于数据和接口层操作受到很多阻碍。其实前端如果能很好的借助Node的使用场景,开发有效的产品或工具,还是有很大的提升和收获。

V
vellengs#3·8 年前

@hankewins Node 还有工具链的优势,今天我加了个自动提交到 editor.swagger.io 的脚本,自动生成前端的代理类输出到前端到文件夹,一个命令完成接口同步更新操作,这个是相当方便的,对提交协作效率是非常有帮助的。 https://github.com/vellengs/typerx/blob/master/packages/server/src/scripts/apigen.ts

N
Nancygirl#4·8 年前

要学的朋友,分享视频教程给你们 http://www.sucaihuo.com/video

W
whoknowme#5·8 年前

新技术太多了,都没时间学啊

G
GGBond1989#6·8 年前

深有同感,现在也确实很焦虑。自己也在探索走向后端,甚至全栈发展。最近基于nodejs + react同构 + node微服务 + graphql 开发的一个产品 www.boxopened.com 刚刚上线,也算是自己的一个尝试吧。希望给楼主一个参考。

M
mmhaobai#8·8 年前

全栈,我来了

B
BengBu-YueZhang#9·8 年前
引用 whoknowme新技术太多了,都没时间学啊

@whoknowme 除非工作非常忙,我现在9点半看到12点,早上6点看到7点半

M
mmhaobai#10·8 年前

感觉好难啊

N
Nancygirl#11·8 年前
引用 mmhaobai感觉好难啊

@mmhaobai 努力吧年轻人

A
ar-insect#12·8 年前

不可能做到全栈的,还是老老实实把前端或者后端搞好搞精,切勿眼高手低。

Z
zhennann#13·8 年前

如果说软件开发是一个职业的话,全栈是必然的目标。 去年11月推出了EggBorn.js全栈框架,今年7月推出了Cabloy.js全栈业务开发框架。 https://github.com/zhennann/cabloy

C
codeofking#14·8 年前

30岁以后的路,还早着呢

W
whoknowme#15·8 年前

一步步前进

A
alber1986#16·8 年前

前端新知识出现的太多太快了,累

A
abochi#18·8 年前

666

Z
zhennann#20·8 年前

@whoknowme 这是Cabloy.js采用的全新布局风格:pc=mobile+pad。一方面,pc端和mobile端可以有相同的用户体验,另一方面,前端界面只需开发一套,显著提升开发效率。

M
myhuier#21·8 年前

前端新手,大家多指教

F
fridaydream#22·8 年前
引用 GGBond1989深有同感,现在也确实很焦虑。自己也在探索走向后端,甚至全栈发展。最近基于nodejs + react同构 + node微服务 + graphql 开发的一个产品 www.boxopened.c...

@GGBond1989 nodejs 微服务是那些?看了你的网站,有ssr。看到graphql里面的是将node做中间层还是直接node做后台?网站不错。

M
mmhaobai#23·8 年前

全栈不容易啊,要学的太多

L
libook#24·8 年前

重点:

  1. 全栈并不意味着就比纯前端或纯后端高一等;
  2. 全栈不是前端的下一个发展阶段;
  3. 技术不只是引擎、框架、库,更重要的是思想;
  4. 不做全栈也不意味着不应该了解其他技术栈;
  5. 要不要采用全栈开发的方式取决于具体业务需求和团队组织架构;
  6. 这个帖子其实是个安利贴。。。
M
missheying#26·8 年前

道理懂了,可学起来好难

J
jtghaha#27·8 年前

前端包含的东西太多了

M
mmhaobai#28·7 年前

打基础中

N
Nancygirl#29·7 年前

666

M
mmhaobai#30·7 年前

没天分啊,学起来难

S
szy0syz#31·7 年前
引用 mmhaobai没天分啊,学起来难

@mmhaobai 如果不是成为业界前1%的话,应该没到拼天赋阶段。

W
whoknowme#32·7 年前

楼上说得有理

M
missheying#33·7 年前

前端先学再考虑前栈

N
naecoo#34·7 年前

node在后端的应用场景还是有限。

Q
qiqingfu#35·8 年前

先点赞再看

D
dudueasy#36·8 年前

Node is a gift for JavaScript developers

C
cllgeek#37·8 年前

在线电子书: nodejs基础教程 前端常见面试题汇总

微信小程序在线阅读,扫码阅读:gh_39561cafdf5e_258.jpg

A
alber1986#39·8 年前

对俺来说复杂啊

M
mmhaobai#40·8 年前

老司机带带我

N
Nancygirl#41·8 年前

前端要学的东西太多了

T
tomoya92#42·8 年前

后端转前端,在学一下App开发实现全栈会相对容易些。但是前段转后端就相对难一些。

来自实用的 CNodeJS-Swift

S
star7th#43·8 年前

作为一个做过三年+专职后端, 两年+专职前端的人来讲,前后端对我来讲都是技术,只是思路有些不一样而已。 对于后端,不建议局限于node,仅仅懂node的人是不能说懂后端的。node再后端的使用场景比较有限。我用node主要是想统一和前端的技术栈,统一用js来写。但是如果要我做纯后端的东西,我是不优先考虑node的。工具是为自己所用,每种工具有它的使用场景。不要因为自己懂某一门技术,就尝试用它来解决所有事,最后发现只是禁锢了自己。

参与回复
登录后即可参与回复。登录