做一枚全栈工程师

导语   这篇抢手文章在 2017 年 6 月更新过,引入了更多新技能。  假如一个全栈工程师能够依据原型完结一个完好的MVP(minimum viable product,至少可行的产品),咱们一般会以为他十八般武艺样样精通,而

  这篇抢手文章在 2017 年 6 月更新过,引入了更多新技能。

博学谷

  假如一个全栈工程师能够依据原型完结一个完好的MVP(minimum viable product,至少可行的产品),咱们一般会以为他十八般武艺样样精通,并且有满足的理由来证明这一点。为了给全栈工程师一个最新鲜的界说,咱们首要来重视一下全栈工程师曾经是搞什么的。

  曾经的全栈工程师

  很久曾经,大约在 2000 年(在互联网的次元里,17年能够说是一个十分长的时刻了),一个全栈工程师有必要把握下面的身手:

  用 Adobe 公司的 Photoshop 或许 Fireworks 东西规划出一个网页

  将规划稿变成 HTML, CSS 还有抢手图(额,还记得那些吗?)

  写一些根本的 PHP 4.0 脚本(非面向对象的 PHP 行将成为前史)来处理服务端逻辑

  保存一切的动态数据到 MySQL 中,也或许会做一些小优化

  用 FTP 上传一切代码、数据库什么的到一台服务器,然后就能够收取酬劳啦

  留意咱们在这里只评论 PHP —— 一个全栈 Flash 或许 Coldfusion (一种 Web 服务器) 开发者或许有不同的作业办法(可是也只是是纤细的不同)。

  在那个单纯的年代,日子是如此的夸姣。个人开发者一抓一大把,并且程序猿作业完还有大把的时刻陪同自己的家人。

  那现在呢?

  现在的全栈工程师需求自带什么技能呢

  最近,咱们也会发生这些惊惧——为什么工程师的日子会变成这样?

Jack of all trades

  为了在这个牛逼的商场里获得成功,咱们这些开发者——一般都是完美主义者——应常常把“假如你想做正确的事”作为自己的座右铭,并常常责问自己。这会逼迫咱们自己集中精力在一处,并且有必要学习一切东西,所以做一个全栈工程师往往要学会以下技能:

  服务办理/运维

  一个开发者有必要了解根底的服务器办理常识。包含当不限于以下常识:

  经过终端或其他没有用户界面的环境来长途衔接服务器

  会写根本的 shell 脚本

  服务器上的用户和群组办理

  办理像 Apache 和 Nginx 这样的服务器程序来供给运用

  防火墙办理和权限办理

  装置和更新软件

\

图片来自GIPHY

  除了这些根底技能,开发者有必要懂得怎样去创立一个好的、健康的、别离的开发环境,在 Docker 或许像 Vagrant 这样的虚拟机环境中。 假如上面一切的技能你都不了解,那我有必要给你引荐一本超棒的书,点这里购买。

  开发者有必要对版别操控体系十分娴熟,为了让开发有靠谱的出产备份和可共享、可协同的代码库,这些代码库能够依据时刻来盯梢代码改变。现在现已没有开发者的作业流是彻底脱离版别操控的了。咱们有一个十分棒的关于版别操控的视频教程,点这里购买。

  云

  和实践办理或许虚拟服务器不同,一个开发者或许要知道云主机渠道,比方Heroku, Google Cloud, Azure, AWS等等。

运维

图片来自GIPHY

  有一点有必要阐明的是,渠道和东西更多的是为了炒作而不是其有用性。虽然有许多渠道和东西的有用性并不如宣扬的那么好,可是了解这些咱们都在议论的服务,从长远来看会很有用——客户或许会随时要求替换服务供给商。走运的是,咱们具有这些云主机布置威望攻略。

  后端

  在后端,除了要懂挑选什么言语以外,比方 PHP 和许多的结构 and CMSes,一个全栈开发者有必要了解:

  Web 服务器,比方 Nginx 和 Apache ,和运维严密相关

  不幸的是,NodeJS 现已能够将 JS、CSS 和其他资源文件编译成静态能够便利缓存的文件了。走运的是,也有办法防止学习 NodeJS,用PHP也是能够的

  像Composer这样的 PHP 包办理东西在现代化的开发环境中现已离不开了

  好的API 规划,自从大部分新式网页都依据 API 并且只是为BETWAY登录服务(下面会详细描绘)

  ElasticSearch (introduction here) 这样的搜索引擎关于网站功用的进步是十分重要的

  cronjobs 和后端的作业,运用Gearman 或许 Crunz 这类的库

  了解缓存, Varnish, Redis 等牛B的东西能够分片存储数据,这样能够将一个项目布置的多个主机上

  数据库

  数据库是一个独自的部分,由于除了很好地把握咱们根本上不会有结构改变的联系数据库(MySQL 或许 PostgreSQL)的数据方式之外,一个全栈工程师应该对非联系型数据库有所了解,如MongoDB, Redis, 或 Cassandra ,更不用说像 Neo4j 这样的图形数据库了。

云

  不幸的是,这些都是服务器上的东西,都在全栈工程师的操控下。也有几个相似 Mongo 的长途处理计划,像RestDB或许 Google-owned Firebase 等。

  BETWAY登录

  提到BETWAY登录,真的很蛋疼。

Database illustration

图片来自GIPHY

  想知道一个正常的BETWAY登录常识图谱是怎样样的,能够在JavaScript 版块看 这篇绝世好文 。可是作为一个全栈工程师,你需求了解

  NodeJS and NPM

  Yarn

  预处理器和编译器(如Babel),用来编译 Typescript, ES6, LESS, SCSS, SaSS

  构建东西,如 Grunt 和 Gulp

  结构,如 VueJS、React、Angular

  模块打包东西,如 Webpack、Browserify、Rollup

  规划

  在规划方面,全栈开发者需求了解怎样在一个产品变成实在可用的 HTMLCSS 代码之前,画一个 原型图 。然后就能够去用 JS 写交互、后端也能够用假数据来模仿出产环境。只要这个要害的原型图完结,用户体会规划和接口规划安排妥当,实在的开发才干开端。这自身便是一项艰巨的使命,需求一套特别的东西:

  Photoshop 和 Illustrator 或许一些开源的东西比方 Gimp / Inkscape。拜访 Design channel 来了解更多这样的东西。

  一个牛B的、快速的编辑器,比方 Atom 或 Sublime Text (这儿有十种好用的 sublime插件)

  像 Subtlepatterns 的布景挑选器和色彩挑选器能够调配一些色彩

  CSS 的栅格体系

  上面所说的BETWAY登录所需求了解的一切常识和 JS 数据模仿

  将原型图宣告到网上供咱们阅览并给于反应,Ngrok 就十分好用

  日志体系

  为了高效监控运用的健康度,全栈开发者有必要能够追寻过错,找到过错日志然后从中提取出有用的信息。全栈开发者也需求从日志中猜测一些趋势,比方 CPU 或许 I/O 占用率的上涨,以防运用不知道什么时候就挂了。这部分和运维也有一些联系,可是需求一些特别的技能:

BETWAY官网

图片来自GIPHY

  引荐一篇十分棒的 ELK stack 的文章,这会协助你了解做日志体系所需求的常识。里边包含了查找日志的 ElasticSearch ,搜集日志的 Logstash,把日志用十分棒的图表展示出来的的 Kibana,乃至还有供给处理计划的 Logz.io。

  移动端

  最终,咱们该说说移动端了。跟着 iOS 和安卓上的的 webview 变得越来越高效,还有 PWA(渐进式web运用) 的到来,native 运用正在变得暗淡,由于他们开发起来实在是太杂乱了。所以一个全栈工程师有必要了解 PWA 或许 React Native,或许像NativeScript, Tabris, Cordova, Phonegap或许其他 webview 来让客户端运用调用 API 跑起来(如上一章最终说的那样)。

  做一个全栈工程师值得吗?

  所以最终只要一个问题,值不值?

  首要,应该留意到很少的全栈工程师称得上实在的全栈,大部分全栈工程师重视了上面技能的某些方面,而不是一切的,只是由于不或许有那么多精力放在上面一切方面。

  其次,对一切方面都了解一点或许不会让你在详细方面成为大师,可是说实在的,这会让你在更好地了解项目的流程,和项目的确都需求用到的技能。当作为乙方、开一个外包公司或许给一个苍茫的团队指一条明路方面是无价的技能。

  我或许不是一个“JavaScript 巨星”,“Elasticsearch 忍者”,“MySQL 大师”,“运维狂人”,或许“移动端老司机”,我不想被阿谀,可是我觉得,做一个全栈工程师让我张开了翅膀,测验不同的技能,作为自由职业者给我的客户供给异乎寻常的处理计划。我能够有各式各样的挣钱办法,也能拿到从服务端作业到 WordPress 插件开发等不同的订单,由于我对一切的这些都有许多了解(早晚的事)。关于我来说,做一个全栈工程师是十分值得的,比照我曾经只做 Flash 的日子,我现在更喜欢我的作业,其时作业多并且薪酬低(没有 JavaScript)。

  你呢,你是全栈仍是也精于专呢?不论你是不是全栈,你觉得做的作业值吗?

http://www.nucmc.com/ true 做一枚全栈工程师 http://www.nucmc.com/show-10-1117-1.html report 4300   这篇抢手文章在 2017 年 6 月更新过,引入了更多新技能。  假如一个全栈工程师能够依据原型完结一个完好的MVP(minimum viable product,至少可行的产品),咱们一般会以为他十八般武艺样样精通,而
TAG:全栈工程师
本站欢迎任何方式的转载,但请有必要注明出处,尊重别人劳动成果
转载请注明: 文章转载自:BETWAY官网网 http://www.nucmc.com/show-10-1117-1.html
BETWAY官网网 Copyright 2012-2014 www.nucmc.com All rights reserved.(晋ICP备13001436号-1)