“武汉是九省通衢,前端开发工程师大概处在互联网环境中这样的位置。”
就像做厨师需要知道所在饭店的位置及厨房环境,前端开发工程师也需要了解自己所在的环境。
一、生活场景
拿百度网站为例,大家基本都有在百度上搜索资料的经历,场景大概为:
1)有一天小明突然想知道怎么做青椒炒肉
2)小明打开电脑或手机
3)连接wifi或4G、5G (基本自动连接了)
4)找到浏览器并打开
5)在浏览器地址栏输入https://www.baidu.com,浏览器展示了百度的官网,上面有个输入框
6)找到搜索框,输入“青椒炒肉”,按下键盘enter键或点击“百度一下”按钮进行搜索
7)搜索框下方显示了搜索结果,告诉你做青椒炒肉的方法
二、互联网术语
上述过程是互联网环境下一个非常典型的案例,基本覆盖了大部分互联网人工作的范围。上面是用日常语言描述的,这里用互联网的语言解读一下:
1)“小明”这个主体叫“用户”,想知道青椒炒肉怎么做——这叫“用户需求”。
2)电脑或手机——叫电子设备,电脑及手机大小叫设备尺寸。(做前端开发尤其要注意这点)
3)wif或4G——称为网络环境
4)浏览器——叫应用程序,手机上叫app,PC上叫桌面应用
5)https://www.baidu.com——叫做网址、链接地址或ur地址,其中https称为协议,www.baidu.com叫域名
6)在输入框中输入“青椒炒肉”,这个叫【用户行为、交互、用户体验】;点击按钮进行搜索,这里也叫“交互”,同时也包含了一个看不到的过程,叫【请求与响应】。
点击按钮相当于给浏览器发出了一个指令,告诉浏览器,你要帮我找到关于“青椒炒肉”的相关信息,浏览器本身不知道,它需要通过【网络】到另一个地方去取,这个地方叫【服务器】(可以理解成是一台类似电脑的机器),“青椒炒肉”的相关信息都放在这个服务器上面叫做【数据库】的地方。如下图。
7)搜索结果显示——这里叫【响应请求】
三、互联网职业
前面我们是以用户的视角来说明利用互联网解决生活中的一个小问题的过程,到这里,我们转换一下角色,设想一下我们是解决问题的服务者或者创造者。要利用互联网解决搜索这样的问题,需要怎么实现,并且需要哪些角色参与呢?
首先假设百度官网还没有出现,而电子设备、网络、浏览器、服务器等都发展成熟。
简单粗暴来讲,咱们需要一个网址,可以让用户在浏览器里面输入后,可以打开一个搜索用的网站,叫百度官网,用户输入关键字之后可以展示关键字相关的结果。
1)首先我们需要一个角色,负责确定这个网站里面应该有什么功能,明确这个网站的作用,确保网站可以满足用户的需求、解决问题。这类人,我们称为【产品经理】,主要关注【需求】,工作产出物一般为“需求文档”和“原型”(原型可以理解为草图)。
2)当需求确定之后,我们还需要一个角色,负责确保这个网站外观的好看,使用的体验感,我们称为【设计师】,分【UI设计师】和【交互设计师】,主要关注【视觉】和【交互】,工作产品一般为"UI设计稿"和“交互设计稿”。(设计稿可以理解为高保真图)
3)设计稿并不能在浏览器上给到用户使用,需要可以转化为可以让浏览器识别的东西,这里就需要【前端开发工程师】,把设计稿通过代码转化为html文件,让浏览器可以识别供用户使用。主要关注【实现,网页实现、交互实现】,工作产出物一般为“网页”、“代码”等。(代码可以理解成写在文件里面的指令)
4)当需要去服务器请求数据,拿到用户想要的结果时,需要【后端开发工程师】去实现相关逻辑,主要关注【动态数据,接口】,工作产物一般为“接口”。(接口可以理解为一个返回动态数据的url地址)
5、当前后端工程师完成工作后,百度官网这个“产品”基本已经成型可以使用了,但还不能正式上线给到真正的用户使用,因为开发工程师并不能完全确保做出来的东西是否和产品经理最开始要的东西一致且没有问题,所以需要非常重要的【测试工程师】来对开发出来的产品进行测试,确保其符合上线标准。测试工程师主要关注“质量”,产物一般为“测试报告”。
6、上面说到的“上线”,是指把开发开发工程师产出的“代码”上传到服务器,这样世界各地的用户都可以通过网络在浏览器上访问到这些“代码”(也就是网站),上传代码这个过程一般需要【运维工程师】来完成,主要关注“发布、部署、稳定性”,产出物一般是“上线报告”
以上介绍了互联网最主要的职业,相关关系可见下图,为了便于大家理解,各职业也只介绍了最常见的职责,每种职业又可以再细分,更具体的大家可以根据自己的兴趣再详细了解。下面会着重展开介绍前端开发工程师相关工作。
四、前端开发工程师介绍
从上图可以看出,前端开发工程师和其他角色都有密切的联系,在这个产品开发过程中有非常重要的职责。
1、前端工程师的定义?
互联网行业的一种职业,写代码的程序员,主要开发web网站、手机App等。
2、前端工程师的职责?
1)参加需求评审(产品经理发起),充分理解需求,并对需求提出建设性建议,提供技术咨询。
2)参加UI评审(设计师发起),并根据UI设计稿,用代码实现HTML网页及相关交互。
3)参加接口评审(后端工程师发起),并和后端同学一起定义和讨论接口,进行接口联调,完成动态数据和静态网页的结合。
4)参加测试用例评审(测试工程师发起),并根据需求文档、设计稿、接口文档及测试用例完成自测和提测。
5)配合运维工程师完成代码发布,确保发布无异常,用户可以正常访问产品。
6)作为前端开发工程师,架构好前端工程,组织好前端代码,实现好用户需求,监控好线上产品状态。
3、前端开发工程师需掌握的技能
详见《前端开发知识体系》,【传送门】
4、前端开发工程师的职业等级
1)入门级,也就是60分到80分的,基本没有什么市场竞争力,属于业余选手,不在等级的考虑范围。
2)专业级,80分到90分,也就是说达到80分才有资格进行等级划分
A1:80—85分,初级前端开发工程师,可以做好自我管理,并且在其他人的引导下可顺利完成项目开发。
A2:85—88分,中级前端开发工程师,可独立完成项目开发。
A3:89—90分,高级前端开发工程师,可带领初中级工程师一起完成项目开发。
3)职业级,90分以上
S1:90—93分,初级架构师
S2:94—95分,资深架构师
S3:95分以上,专家、科学家
五、下一步,去了解下前端开发知识体系