资讯专栏INFORMATION COLUMN

FEer到全栈开发

WrBug / 1739人阅读

摘要:代码开发记得曾经听开发平台的同学骄傲的讲,中只有百度有全公司级别的统一代码仓库,并且使用管理代码,不明觉厉,我也很骄傲。

前言

从前,一个类B/S架构的应用里,FEer,或者叫切图仔,切图+表单验证就是工作的全部。无奈我所做的全部,只是整个应用的冰山一角...责任小了,边缘感就强了,owner意识自然差,视野自然受限。

感谢V8引擎的极速体验&chrome浏览器的紧随规范,js执行速度快的飞起,w3c规范愈加丰满,FEer终于可以翻身农奴把歌唱了。推倒了切图仔的定位并不断扩展js的责任田。

其实前端可以有模块化

其实前端可以满足除老本行表单验证外更多的业务逻辑

其实前端可以有路由层

其实前端可以有数据层

...

看吧,这种趋势已经势不可挡,js从单文件脚本开始有模块化概念,有前端主义特色的MVC,有更高大上、业务层实现更easy的MVVM,react,vue,angular.js (姑且叫美中三强?)越来越多的WEB应用开始变为SPA。

什么?你在质疑JS,你说SEO?我们FEer来加一个服务端渲染,顺带白屏时间长问题一同解决送你,还吹毛求疵?请UEmm做一张精美的loading图附加给你,无话可说了吧~

野心越来越强,client已经无法满足FEer,感谢酷酷的高性能服务器专家Ryan Dahl和他的node.js,不仅贡献了一个基于事件的高性能的WEB服务器,还带来了javascript的大繁荣。FEer终于可以有机会低成本触及server端开发了,因为遥远的对岸将不止有json"炮弹",还会有我们熟悉的js大兄弟,你懂得这意味着什么,海峡两岸是一家!未来的沟通,一切将变得更加简单方便称心如意,未来对岸的大兄弟(可能就是你自己)将给你更舒心更懂你的json"礼包"。事件驱动,异步I/O,顺带手FEer就可以自信高效的将VIEW渲染、路由分发等之前可望不可及的工作包揽实现。

也就是这样,FEer腿也不疼了,腰也不困了,一口气完成前后端开发,不费劲。好像title都可以变了,把自己称为全栈工程师,责任大了,owner意识强了,曾经的后端RD被我们亲切的成为服务端RD,FEer可以豪爽的说:『提供给我服务就好,页面渲染、路由分发这些小事儿,小的做就行了,您去专心开发更复杂的服务端接口吧』。不过就算这样,我们还是很开心,因为我们是FEer,我们也是Full Stack developer,没错,我们是更懂前端的后端!

新职责 工作流

我们已经不是游击队了,我们有自己的作战部队,需要自己独立指挥。虽然FEer在饱受折磨,强烈抗议,争得前后端分离开发的荣誉后,已经在工作流上有质的优化了(主要体现在有了写build.sh,养成了编译的好习惯)。现在作为全栈,还需要重新梳理下工作流。在社区有社区的方案,在百度,我们这样做。icafe + icode + agile ,一条龙服务标准、周到、包满意。

需求管理

icafe是百度内部的工作平台,在我理解,就是需求管理平台。PM等需求方在icafe上发布需求,开发小哥肢解圣意,将一个Aplication级别的需求不断拆分,拆分成story,逐个开发满足。PM、RD、QA在icafe平台了解PM所需,测验RD所得,清楚QA所测。

代码开发

记得曾经听开发icode平台的同学骄傲的讲,BAT中只有百度有全公司级别的统一代码仓库,并且使用git管理代码,不明觉厉,我也很骄傲。icode平台代码的提交可以通过issue号与icafe里的需求store连接起来。通过git进行版本控制是业界及开源社区主流的选择。包括百度EFE的大神们编纂了公司级别统一的各种语言的编码规范,代码提交会触发编码规范校验,保证了入库代码的规范,review后准入的限制基本保证了代码的质量。

持续集成

百度的持续集成解决方案是依托于agile平台实现。还记得朴大的广告,集成的,好喝的!。每个icode项目都会要求开发者编写一个BCLOUD脚本,类似travis ci的.travis.yml的文件,代码提交会触发线上云编译机集群完成编译,并记录编译状态,协助开发者保证线上代码分支的持续可用。agile另一个主要功能是完成代码发布,发布后,代码即进入公司级代码仓库。

域名

什么,你在说域名?我真的可以包办域名了!在你要包办域名的前,首先需要判断你心仪的希望使用的域名是否已被占用。dignslookup是我使用的判别方法。

nslookup baidu.com //只是做示范,提醒自己小伙子野心不要太大

在确认你心仪且该域名尚未被占用的后,你就应该了解下A记录、CNAME了。简言之,一个域名的A记录是域名指向ip的映射,而CNAME是域名指向其他域名的别名映射。在百度,有shifen系统,shifen系统的域名是A记录,但它其实指向的是vip(虚拟ip),机房、机群多了以后,这样会尽可能的保证运维的灵活度。

数据库

B/S架构应用运转的本质就是数据的流动。任何业务逻辑的实现到最后都会被抽象成数据结构,持久化到数据库中保存。数据库种类很多,业务中最常用的可能就是MySQL,Redis,MongoDB等。大多数的B/S应用数据库选型都会使用MySQL,因为它是最流行的关系型数据库,体积小、速度快、性能卓越。Redis常用于session共享及业务逻辑数据缓存,提高接口响应速度。说到MySQL,phpMyAdmin是一个不错的MySQL数据库管理工具,当然,作为新时代的FEer,在不方便使用phpMyAdmin的场合,你也得掌握基础的MySQL命令。

// 登录MySQL server
mysql -h IP -P port -u username -ppassword

// RD让你导出个表,不能不会
mysqldump database table 

// 看下MySQL server上有哪些数据库
show databases;

// 想操作哪个库
use db;

// 想操作的库里有哪些表
show tables;

// 查看下编码
show variables like "%char%";

// 咦、不是utf8?
SET character_set_client="utf8";
SET character_set_connection="utf8";
SET character_set_results="utf8";

// 增?
INSERT INTO `table` (`prop`,`prop`...) VALUES(value1,value2);

// 删?
DELETE FROM `table` WHERE conditions;

// 改?
UPDATE `table` SET prop=value WHERE conditions;

// 查?
SELECT * FROM `table` WHERE condition;
前端

如果还不用美中三强或其他MVVM框架(比如百度errorrik大神的san,据说能扛IE6的MVVM)怎么好意思说自己是前端。前端标配已经是webpack + babel + MVVM + (FE)-router + (FE)-Store/x... 包括module bundler,transformer,MVVM,前端路由,前端状态管理,数据驱动,状态机,这些东西已经融入到现代WEB前端产品内,缺少一样,都觉得少了点什么,像个中官

后端

说到node.js,说到后端服务器框架,不得不再感谢一个大拿,TJ,贡献太大了。express, koa, co等等,进一步降低了FEer进入的门槛。后端选TJ大拿的框架就够了,当然包括百度、阿里在内都有一些自己的服务端框架,基本都是基于TJ大拿加上业务线的实际运用场景之上的封装。包括yog2,egg等。对了,MySQL orm推荐使用sequelize,这里有篇文档介绍的挺全。

服务端

如上文所述,FEer把路由分发、页面渲染这些杂活揽下以后,RD大大们就可以专心写服务端接口了。node server 与其他服务端server的通信可以通过RPC、Webservice等方式实现,node server也可以做proxy,将客户端的请求代理到其他服务器获取业务的数据。当前开源风愈来愈强的风气下,各类相关node包一片大繁荣,大家可以自行选择你看中的。在我的业务场景下,我最常使用的是百度FEX Team的 node-ral。

MORE

责任越大,就要求能力越强。从FEer到Full stack developer,不是那么简单,需要变化的不止一点,要不断扩大自己的技术关注圈,提升自己的技术广度与深度,增强技术视野,只有真正按RD的标准来要求自己,配合FEer的看家本领,才能做一名合格的全栈开发。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48798.html

相关文章

  • FEer全栈开发

    摘要:代码开发记得曾经听开发平台的同学骄傲的讲,中只有百度有全公司级别的统一代码仓库,并且使用管理代码,不明觉厉,我也很骄傲。 前言 从前,一个类B/S架构的应用里,FEer,或者叫切图仔,切图+表单验证就是工作的全部。无奈我所做的全部,只是整个应用的冰山一角...责任小了,边缘感就强了,owner意识自然差,视野自然受限。 感谢V8引擎的极速体验&chrome浏览器的紧随规范,js执行速度...

    elina 评论0 收藏0
  • 【从前端全栈】- koa快速入门指南

    摘要:前言随着技术的不断发展,前端工程师也被赋予了越来越多的职责。接下来这篇文章,完成一个简单的登录注册,能让你快速上手,成为一个小全栈工程师,快速开始安装因为已经完全支持语法,所以请保证的版本在以上推荐一个的多版本管理工具。 前言 随着技术的不断发展,前端工程师也被赋予了越来越多的职责。不再是从前只需要切个图,加个css样式就能完成任务的切图仔了。接下来这篇文章,完成一个简单的登录注册,能...

    邹强 评论0 收藏0
  • 全栈开发:2017年你最好的选择[翻译]

    摘要:全栈开发是一个学习实现提高的过程。解除对开发人员的限制所有的职业都在持续的进化。哪怕是爆炸和拥挤的印度招聘市场,全栈工程师在年也非常的抢手。印度的创业公司已经开发意识到全栈工程师的重要意义,全栈会越来越重要。 在不断壮大的招聘市场上,最需要的是有非常广泛技术栈的人。 前言 敬爱的读者,大家好。大家经常讨论的话题是作为一个软件工程师是一个持续学习的过程。因为现有的趋势和技术在软件领域会很...

    fireflow 评论0 收藏0
  • 全栈开发:2017年你最好的选择[翻译]

    摘要:全栈开发是一个学习实现提高的过程。解除对开发人员的限制所有的职业都在持续的进化。哪怕是爆炸和拥挤的印度招聘市场,全栈工程师在年也非常的抢手。印度的创业公司已经开发意识到全栈工程师的重要意义,全栈会越来越重要。 在不断壮大的招聘市场上,最需要的是有非常广泛技术栈的人。 前言 敬爱的读者,大家好。大家经常讨论的话题是作为一个软件工程师是一个持续学习的过程。因为现有的趋势和技术在软件领域会很...

    Scliang 评论0 收藏0
  • 全栈开发:2017年你最好的选择[翻译]

    摘要:全栈开发是一个学习实现提高的过程。解除对开发人员的限制所有的职业都在持续的进化。哪怕是爆炸和拥挤的印度招聘市场,全栈工程师在年也非常的抢手。印度的创业公司已经开发意识到全栈工程师的重要意义,全栈会越来越重要。 在不断壮大的招聘市场上,最需要的是有非常广泛技术栈的人。 前言 敬爱的读者,大家好。大家经常讨论的话题是作为一个软件工程师是一个持续学习的过程。因为现有的趋势和技术在软件领域会很...

    aisuhua 评论0 收藏0

发表评论

0条评论

WrBug

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<