前端进阶之困
最近看了不少文章和帖子, 如文:
身边和朋友圈也不少做前端开发的同事朋友问如何发展和提升 这里我向大家给一些建议
扎实基础
首先思考下手上的工作是否做得足够好了,近几年前端技术发展迅猛各种框架层出不穷,刚学会jquery还没用熟, angular 、vue 、react 已经满大街了。 gulp 还没明白怎么回事、webpack 已开始遍地开花了。眼花缭乱的技术不知道从哪里开始好。 如果你还被这些困扰的话,那请静下来思考一下,技术的发展总是有规律的,学习也是有规律可循的,我的建议是,把共性和必要的技能先稳固下来,既不浪费时间,又能提高效率,如果这块还么稳固好、框架什么少看几种吧,先有一样可用的就好。 对于加强基础一个可行的方案是,从自己上手的工作开始、除了专注现学现用工作需要的框架技术外加强基础的学习,如:
- 基本的逻辑(与、或、非)
- 运算操作(加减乘除 Math 下的各种函数)
- 字符串处理 (什么大小写、编码、裁剪什么的)
- 时间处理 (日期的加减、对比、格式转换等)
- 数组、集合对象处理 可以了解学习一些基础库 如: lodash、moment 等、若时间有限可以看看示例有个印象回头可以查找,当然最好的方式是实践练习。
发展全栈的正确姿势
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 一起讨论努力进阶。
最近不少人怀疑 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点半
感觉好难啊
@mmhaobai 努力吧年轻人
不可能做到全栈的,还是老老实实把前端或者后端搞好搞精,切勿眼高手低。
如果说软件开发是一个职业的话,全栈是必然的目标。 去年11月推出了EggBorn.js全栈框架,今年7月推出了Cabloy.js全栈业务开发框架。 https://github.com/zhennann/cabloy
30岁以后的路,还早着呢
一步步前进
前端新知识出现的太多太快了,累
@alber1986 目标全栈
666
@zhennann 我怎么感觉PC打开也像手机端的?
@whoknowme 这是Cabloy.js采用的全新布局风格:pc=mobile+pad。一方面,pc端和mobile端可以有相同的用户体验,另一方面,前端界面只需开发一套,显著提升开发效率。
前端新手,大家多指教
@GGBond1989 nodejs 微服务是那些?看了你的网站,有ssr。看到graphql里面的是将node做中间层还是直接node做后台?网站不错。
先点赞再看
Node is a gift for JavaScript developers
在线电子书: nodejs基础教程 前端常见面试题汇总
微信小程序在线阅读,扫码阅读:
@fridaydream 后台用node做的,基于moleculer的微服务
对俺来说复杂啊
老司机带带我
前端要学的东西太多了
后端转前端,在学一下App开发实现全栈会相对容易些。但是前段转后端就相对难一些。
来自实用的 CNodeJS-Swift
作为一个做过三年+专职后端, 两年+专职前端的人来讲,前后端对我来讲都是技术,只是思路有些不一样而已。 对于后端,不建议局限于node,仅仅懂node的人是不能说懂后端的。node再后端的使用场景比较有限。我用node主要是想统一和前端的技术栈,统一用js来写。但是如果要我做纯后端的东西,我是不优先考虑node的。工具是为自己所用,每种工具有它的使用场景。不要因为自己懂某一门技术,就尝试用它来解决所有事,最后发现只是禁锢了自己。
@star7th 说得有理
全栈不容易啊,要学的太多
重点:
- 全栈并不意味着就比纯前端或纯后端高一等;
- 全栈不是前端的下一个发展阶段;
- 技术不只是引擎、框架、库,更重要的是思想;
- 不做全栈也不意味着不应该了解其他技术栈;
- 要不要采用全栈开发的方式取决于具体业务需求和团队组织架构;
- 这个帖子其实是个安利贴。。。
@libook 有点意思啊
前端包含的东西太多了
打基础中
666
没天分啊,学起来难
@mmhaobai 如果不是成为业界前1%的话,应该没到拼天赋阶段。
node是纯前端进阶全栈的梯子。
楼上说得有理
node在后端的应用场景还是有限。