原标题:从后端开发转职前端开发,我都经历了些什么?

从前端转行后端

从后端开发转职到前端开发真的不容易。

特别是当你已经习惯了后端开发的工作模式,习惯了构建数据结构,编写类似于测试驱动开发的测试,习惯了使用持久层、仓库和数据库图表,以及给前端创建API接口。

凡此种种,不胜枚举。后端有其复杂性,所以大部分人没有时间学习前端开发的内部运作方式。

我也是。

甚至可以说,基本上已经与后端绑定了,直到我被迫转职,调岗到前端,从此我能为最好的、拥有强大UI交互性的产品编写代码,无需过多依赖前端框架,无需框架提供的黑盒帮我挑重担,还能创造很棒的app。

以下是从后端转职前端开发至今的经验

1

前端技能梳理

我们把前端同事做的事情简单的梳理下,大概可以分为:

效果图 -> HTML还原

将UED设计的效果图还原为页面,这个也是以前狭义的UI完成的工作。梳理下这个工作需要的技能:

熟悉HTMLCSS、熟悉常见布局,div+css

熟悉浏览器兼容

熟悉PS切图

随着前端UI框架的发展,当你使用bootstrap、elements、iview这类框架时,80%的功能开发可以不需要这一步,因此一个小团队有1个这样的工程师就OK了。

HTML->应用

单独的HTML是缺乏灵魂的,还需要绑定数据,这样才是一个完整的页面。在前后端未分离的时代,通常是后端基于前端还原的html来进行开发,通过模板技术绑定数据。而随着ajax的兴起,前端 MVVM框架的流行,前后端分离,数据绑定工作前移到前端,因此前端的职责之一就是调用后端的服务,并显示到页面上。

同样的,梳理下这个工作需要的技能:

了解或者熟悉html

熟悉HTTP

基本的java应用

熟悉一个js框架的应用,比如jq、vue.js

一个合格的后端,在熟悉java的情况下,可以很快掌握。

复杂的单页应用

现在流行一个词“大前端”,前端更大的挑战就是构建复杂的单页应用,比如易企秀的H5编辑器,单个页面里包含了非常多的功能和逻辑,这类页面有个特点:

包含复杂的业务逻辑

通常需要上千行的java代码

需要良好的设计模式来组织和维护代码,MVCMVVM等概念在前端运用

而随着技术的发展,java可以用来开发手机端app(react-native、weex),本质上来说还是开发复杂的单页应用。特别是使用vuex这类状态管理库时,如果懂的后端的数据库概念,可以事半功倍的理解其原理。

总结一下,开发复杂的单页应用,需要具备的技能:

熟悉数据结构和算法

熟悉常用的设计模式

OOP思维

模块化开发

db思维

熟悉java,熟悉es2015es2017

一句话总结起来, 复杂的前端应用开发所需要的技能,恰恰是后端开发所擅长的,只是编程语言从java、c#变成了java,仅此而已。

2

一切都与用户界面和用户体验有关

在后端,让人最为担心的就是数据结构,数据库结构和性能,代码架构,服务,以及开发前端工程师能理解并使用的强大API。

前端则非常不同。开发人员需要关注用户界面,关心用户如何与app互动,然后量化评估用户体验。有时你需要自己设计用户体验,然后改进应用程序流程。

前端开发最好的一点是可以直接解决用户需求、关注他们的体验。前端的方法跟后端不同,因为前端以用户为中心,一切都围绕着如何让用户更舒适地使用你开发的app,而不是处理数据结构。

3

在项目开始时,把UI摆在第一位

在开展个人项目来提升前端技能时,关于“用户点击按钮、与UI组件互动时,UI会如何运作和推进”的思考极大地改善了我的思维模式。

在后端工作时,我们无法想象如何与用户互动、如何改进用户流程,因为我们几乎只关心CRUD(数据库的增删改查)操作以及app如何将数据存储到数据库,包括最重要和最敏感的信息,比如公式、信用卡信息,等等。因此,当我们做UI相关工作时,真的糟透了。

转职到前端后就大不一样了。现在,会首先考虑用户会如何使用app并与其互动,思考他们是否会喜欢这样的体验。然后,会在UI或者展示模型的基础上,设计合适的后端结构和数据库。

4

思考如何提升UI复用性

自从React这样的前端框架面世,开发人员都从“组件”出发考虑和安排UI。组件能够在不同的页面重复使用,这是一件好事。再也不用为重复使用UI组件白费力气了,因为现在UI组件已经标准化了。

正如所说,转职到前端促使大家思考UI的复用性,提升了决策水平。在选择符合需求和项目范围的前端框架时,无论是React,Vue还是Angular,我都能选出正确的那一个。

如果你想把UI组件分享给不同的项目及团队,建议看看Bit的工具,看它能否帮到你。

5

学会创建快速响应的网页

创建快速响应的网页无疑是前端开发中让人头疼的挑战之一。开发人员必须确保UI的响应在不同设备上都足够快,无论用户用的是台式电脑、笔记本电脑还是智能手机。

在刚开始学习前端开发的技巧时,我仍视其为让人头疼的挑战,直到我找到了其中的诀窍。准确来说,制作快速响应的网页乍看简单,但是我没有意识到我一直以来都错了。

当然,如果打算依赖前端的框架,这个麻烦自然不复存在。但是,我们不想过多地依赖框架,想从头开始,自己学习前端开发是如何运作的。

6

学习搜索引擎优化(SEO)

SEO是提升app主页排名背后的驱动力,所以学会SEO也是非常重要的。

SEO常用于前端app中,帮助顾客或app提升排名,这样潜在的用户就能很快看到app并使用它。

因为学习了前端技术,肯定的是SEO是一项必须掌握的重要技术,它甚至能为用户或者app本身提高销量。

7

善用层叠式样表 (CSS)

CSS是前端开发的一个重要组成部分。如果你无法掌握CSS技能,不知道如何用CSS排列UI组件,你是无法在前端部门立足的。

一开始,这对我来说非常困难。我没有敏锐的设计眼光,也不知道如何按照喜好合理排列UI组件。但随着我对前端开发的学习、逐渐掌握了CSS,这就像第二天性一样,我再也无需苦恼了。

因此,通过转职到前端开发部门,我出色地掌握了CSS。

8

学会不再过于依赖前端框架

我们都必须承认,作为曾经从事后端工作的人,依赖前端框架只是为了完成工作,以及把产品转给他人接手。

有一个学员在一家初创企业工作时,只掌握了后端技能,一直依赖前端UI库和框架做下拉菜单和侧边栏,但是这样很容易把事情复杂化,前端代码也变得难以维护,因为哪怕是一小段基础代码都离不开前端库。

转职成为全职前端开发人员更自由。因为,仅仅为了让前端UI更好看、互动更流畅,除了框架还有许多其他的方法。要说转职到前端有什么不同的话,那就是你可以自由决定如何排列前端组件、让它们动起来,而无需过度依赖框架。

从一个前后端人员的角度来看,前端的工作一开始真的非常有挑战性,直到我扎实掌握了前端的基础技能,开发app对我来说就像第二天性一样了。

如果你问不同的人,其他人可能第一眼就觉得前端编程非常简单,但对于我来说,一开始前端编程绝对是个挑战。

现在,网页开发生态系统日新月异,学习前端技能对职业生涯有益,能够更多地帮助我的客户,所以我马上投身于前端的浪潮,开始学习前端技术。

对于那些想要从后端转职到前端但是又不知道从何处着手的人,以下是我的建议:放手去做,勤加练习,夯实基础,掌握对的技能/技术,在前端开发的舞台上大展身手吧!

END

人工智能物联网班火热招生中

我们的课程从 入门到实战项目 ,让你 快速掌握 企业所需 前沿技术 ,职坐标 助你在6个月 挑战高薪入职。

职坐标在线∣一个有用的公众号

戳 “阅读原文”一起来充电吧!

责任编辑:

java后台转前端_从后端开发转职前端开发,我都经历了些什么?相关推荐

  1. idea新建springboot后端到前端_基于SpringBoot+AntDesign的快速开发平台

    项目介绍 Jeecg-Boot是一款基于SpringBoot+代码生成器的快速开发平台!前后端分离架构.技术采用SpringBoot.AntDesignVue.Mybatis.Shiro.JWT.强大 ...

  2. 乾坤 微前端_拥抱云时代的前端开发架构——微前端

    微前端架构旨在解决单体应用在一个相对长的时间跨度下,由于参与的人员.团队的增加,从一个普通应用演变成一个巨石应用(Frontend Monolith),随之而来的应用不可维护的问题.这类问题在企业级 ...

  3. java xmpp即时通讯_基于XMPP协议即时通讯工具开发总结

    一.概要 转眼毕业了,毕业设计的课题是"基于XMPP协议的通讯工具",开发平台式android,实现了基本的离线消息,文字聊天,表情聊天,文件传输,语音聊天的功能. 本文主要介绍开 ...

  4. 什么是后端渲染?什么是前端渲染?后端渲染和前端渲染又有什么区别呢?

    什么是后端渲染?什么又是前端渲染呢?后端渲染和前端渲染又有什么区别呢? 最近在学习Vue的时候接触到了这个话题,我觉得还挺有意思的,所以写下来,记下来. 一.什么是后端渲染? 我们都知道现在的网页都由 ...

  5. 2020年是走前端还是走后端好,前端又有哪些优势呢?

    前后端都挺有发展前景,都挺好,相对来说前端会比较简单一点.但是现在对于同个层次的人,一般公司前后端待遇都差不多,待遇好的肯定是你技术过硬的.那就要看自己的爱好了.以下是web前端开发和java后端开发 ...

  6. qiankun 微前端_看滴普大前端是如何玩转基于“qiankun”(乾坤)的微前端架构的...

    前言 「微前端」可以算是 2019年前端技术领域中最热门的话题.各个大厂也纷纷贡献出了自己的解决方案和实践分享.滴普科技作为一家致力于为企业提供数字化转型服务的技术公司,前端也需要灵活聚合,快速复用, ...

  7. 年薪50万的程序员_这些年薪50万+的程序员都经历了什么?

    如果说薪资是检验一家公司对你认可的标准,那么年纪轻轻就能达到年薪 50 万+,一定程度上说明了公司对他创造的价值的认可. 深访过了10+ 名这样的程序员,把他们最常见的三种成长途径梳理了出来 在一家公 ...

  8. java后台环境搭建_后端-java环境搭建

    java环境搭建 开发工具:idea/eclipse/myeclipse + mysql/oracle/sqlserver/postgresql + tomcat6/7/8/9. 下面以eclipse ...

  9. java后台jd_2017春季_京东_Java后端研发岗面经

    纸上得来终觉浅,绝知此事要躬行 --2017春季Java后端研发工程师面试心得 收获offer:上海汉得+北京中科软+成都百词斩+成都诺基亚研发中心+清华大学计算机研究所等offer.阿里一面猝.京东 ...

最新文章

  1. html网络,HTML—构建网络
  2. ABAP Decimal byte
  3. tablets计算机英语,计算机专业英语词汇
  4. 生成指定序列的前一字典序序列(洛谷P2525题题解,C++语言描述)
  5. cmdb整体项目梳理(2)
  6. django进阶04部署上线(nginx,uwsgi,supervisor)
  7. vue里面v-cloak/v-text/v-html/v-pre的应用
  8. 强大的日志分析工具AWStats经典备忘
  9. Bailian4141 砝码称重【DP】
  10. ie下使用frameset布局导致跨域cookie丢失问题解决
  11. Excel 如何提取单元格中的多个数值
  12. MySQL索引和锁实现原理及优化
  13. js--计算两个时间相差几年、几月、几日
  14. 【职业规划】阿里校园招聘对java本科生的要求
  15. 图形图像文件格式分类
  16. 新学期,新FLAG | 要以码为梦而非夜郎自大
  17. 嵌入式安卓开发:使用Camera2获取相机
  18. 皇冠采集模板php,ptcms4.2.8自动采集配置教程
  19. 使用-XX:+PrintCommandLineFlags展示JVM启动参数
  20. 基于COCHONUT做和弦识别

热门文章

  1. 探讨getchar与scanf的区别
  2. mysql字符串类型的数字如何排序
  3. 几百款Android游戏源码、实例源码、开源项目
  4. 视频抽帧:多视频、可视化、手动旋转
  5. 用户画像、用户分级与指标提升策略数据分析(jd消费者行为数据分析)
  6. word中 表头和表格之间有空格如何解决
  7. android 微信登录与分享集成
  8. APP保险销售经营分析思考
  9. Android 禁止息屏 保持屏幕常亮的方式
  10. 台式计算机的分辨率如何改,电脑分辨率多少合适 调整适合分辨率方法【图文】...