欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  联网行业现今一直都很火热,相信未来也会是一直保持火热的状态。所以有很多朋友都开启了学习互联网学习的计划,有人选择培训,有人选择自学。但是对于学习互联网技术,应该有很多朋友都会感到迷茫吧。前几天,就有朋友问想自学web全栈应该怎么去做。下面我将和大家一起谈谈如何自学web全栈。



 
 
  首先,你要了解什么是web全栈,以及知道web全栈需要学习哪些知识。
 
  其次,你要知道自学web全栈,不是一件简单的事情,需要你有足够的毅力去坚持,也需要你有高效学习的能力,才能在尽量短的时间内学好它。
 
  一个Web开发过程有三层架构:
 
  表示层:表示层也被称为网站的前端部分。它处理网站的用户界面相关问题。
 
  业务逻辑层:业务逻辑层也被称为网站的后端层,负责数据验证和动态处理。
 
  数据库层:最后是数据访问层,利用API为网站提供数据。
 
  以上三层共同称为全栈web开发。
 
  作为web全栈工程师你需要知道以下知识:
 
  1、服务管理/运维
 
  一个开发者必须了解基础的服务器管理知识。包括当不限于以下知识:
 
  通过终端或其他没有用户界面的环境来远程连接服务器
 
  会写基本的shell脚本
 
  服务器上的用户和群组管理
 
  管理像Apache和Nginx这样的服务器程序来提供应用
 
  防火墙管理和权限管理
 
  安装和更新软件
 
  除了这些基础技能,开发者必须懂得怎样去创建一个好的、健康的、分离的开发环境,在Docker或者像Vagrant这样的虚拟机环境中。如果上面所有的技术你都不熟悉,那我必须给你推荐一本超棒的书,点这里购买。
 
  开发者必须对版本控制系统非常熟练,为了让开发有靠谱的生产备份和可分享、可协同的代码库,这些代码库能够根据时间来跟踪代码变化。现在已经没有开发者的工作流是完全离开版本控制的了。我们有一个非常棒的关于版本控制的视频教程,点这里购买。
 
  2、云
 
  和实际管理或者虚拟服务器不同,一个开发者也许要知道云主机平台,比如Heroku,GoogleCloud,Azure,AWS等等。
 
  有一点必须说明的是,平台和工具更多的是为了炒作而不是其实用性。尽管有很多平台和工具的实用性并不如宣传的那么好,但是了解这些大家都在谈论的服务,从长远来看会很有用――客户可能会随时要求更换服务提供商。幸运的是,我们拥有这些云主机部署权威指南。
 
  3、后端
 
  在后端,除了要懂选择什么语言以外,比如PHP和众多的框架andCMSes,一个全栈开发者必须熟悉:
 
  Web服务器,比如Nginx和Apache,和运维紧密相关
 
  不幸的是,NodeJS已经可以将JS、CSS和其他资源文件编译成静态可以方便缓存的文件了。幸运的是,也有办法避免学习NodeJS,用PHP也是可以的
 
  像Composer这样的PHP(http://www.ujiuye.com/zt/php/)包管理工具在现代化的开发环境中已经离不开了
 
  好的API设计,自从大部分新型网页都基于API而且仅仅为前端服务(下面会详细描述)
 
  ElasticSearch(introductionhere)这样的搜索引擎对于网站性能的提高是非常重要的
 
  cronjobs和后端的工作,使用Gearman或者Crunz这类的库
 
  了解缓存,Varnish,Redis等牛B的工具可以分片存储数据,这样可以将一个项目部署的多个主机上
 
  4、数据库
 
  数据库是一个单独的部分,因为除了很好地掌握我们基本上不会有结构变化的关系数据库(MySQL或者PostgreSQL)的数据模式之外,一个全栈工程师应该对非关系型数据库有所了解,如MongoDB,Redis,或Cassandra,更不用说像Neo4j这样的图形数据库了。
 
  不幸的是,这些都是服务器上的东西,都在全栈工程师的控制下。也有几个类似Mong的远程解决方案,像RestDB或者Google-ownedFirebase等。
 
  5、前端
 
  想知道一个正常的前端知识图谱是怎么样的,可以在JavaScript版块看这篇绝世好文。但是作为一个全栈工程师,你需要了解
 
  NodeJSandNPM
 
  Yarn
 
  预处理器和编译器(如Babel),用来编译Typescript,ES6,LESS,SCSS,SaSS
 
  构建工具,如Grunt和Gulp
 
  框架,如VueJS、React、Angular
 
  模块打包工具,如Webpack、Browserify、Rollup
 
  6、设计
 
  在设计方面,全栈开发者需要了解怎样在一个产品变成真正可用的HTML、CSS代码之前,画一个原型图。然后就可以去用JS写交互、后端也可以用假数据来模拟生产环境。只有这个关键的原型图完成,用户体验设计和接口设计就绪,真正的开发才能开始。这本身就是一项艰巨的任务,需要一套特殊的工具:
 
  Photoshop和Illustrator或者一些开源的工具比如Gimp/Inkscape。访问Designchannel来了解更多这样的工具。
 
  一个牛的、快速的编辑器,比如Atom或SublimeText(这儿有十种好用的sublime插件)
 
  像Subtlepatterns的背景选择器和颜色选择器能够搭配一些颜色
 
  CSS的栅格系统
 
  上面所说的前端所需要了解的所有知识和JS数据模拟
 
  将原型图发表到网上供大家浏览并给于反馈,Ngrok就非常好用
 
  7、日志系统
 
  为了高效监控应用的健康度,全栈开发者必须能够追踪错误,找到错误日志然后从中提取出有用的信息。全栈开发者也需要从日志中预测一些趋势,比如CPU或者I/O占用率的上涨,以防应用不知道什么时候就挂了。这部分和运维也有一些关系,但是需要一些特别的技能:
 
  推荐一篇非常棒的ELKstack的文章,这会帮助你了解做日志系统所需要的知识。里面包括了查找日志的ElasticSearch,收集日志的Logstash,把日志用非常棒的图表展现出来的的Kibana,甚至还有提供解决方案的Logz.io。
 
  8、移动端
 
  最后,我们该说说移动端了。随着iOS和安卓上的的webview变得越来越高效,还有PWA(渐进式web应用)的到来,native应用正在变得黯淡,因为他们开发起来实在是太复杂了。所以一个全栈工程师必须了解PWA或者ReactNative,或者像NativeScript,Tabris,Cordova,Phonegap或者其他webview来让客户端应用调用API跑起来。

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html5/h54032.shtml