前端如何进阶全栈开发
发布于 4 个月前 作者 vellengs 5380 次浏览 来自 分享

前端进阶之困

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

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

扎实基础

首先思考下手上的工作是否做得足够好了,近几年前端技术发展迅猛各种框架层出不穷,刚学会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 一起讨论努力进阶。

26 回复

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

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

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

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

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

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

@GGBond1989 老哥 你这个网站源码能参考吗

全栈,我来了

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

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

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

30岁以后的路,还早着呢

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

@zhennann 我怎么感觉PC打开也像手机端的?

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

前端新手,大家多指教

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

先点赞再看

Node is a gift for JavaScript developers

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

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

@fridaydream 后台用node做的,基于moleculer的微服务

回到顶部