web系统架构体系B/S(Browser/Server):浏览器实现优点:规范、使用方便、本身实现成本低 容易升级、便于维护缺点:没有网络,无法使用 保存数据量有限,和服务器交互频率高、耗费流量 安全
顺晟科技
2021-06-16 10:47:29
212
网络行业一直很热,我相信以后还会一直热下去。所以很多朋友都开始了学习互联网的计划,有的选择培训,有的选择自学。但是对于学习互联网技术,很多朋友应该感到困惑。前几天,一个朋友问,如果他想自学一大堆网页,该怎么办?接下来我就和大家说说如何自学全栈web。
首先,你需要知道什么是web全栈,需要学习什么知识。
其次,你要知道自学全栈web不是一件简单的事情,它需要你有足够的毅力去坚持,也需要你有高效学习的能力,让你在最短的时间内学好它。
网络开发过程有三层架构:
表示层:表示层也叫网站的前部。它处理与网站用户界面相关的问题。
业务逻辑层:业务逻辑层,又称网站后端层,负责数据验证和动态处理。
数据库层:最后是数据访问层,利用API为网站提供数据。
以上三层统称全栈web开发。
作为一名web全栈工程师,您需要了解以下知识:
1.服务管理/操作和维护
开发人员必须了解服务器管理的基本知识。包括但不限于以下知识:
通过终端或其他环境远程连接到服务器,无需用户界面
能写基本的shell脚本
服务器上的用户和组管理
管理服务器程序,如Apache和Nginx,以提供应用程序
防火墙管理和权限管理
安装和更新软件
除了这些基本技能之外,开发人员还必须知道如何在Docker或者类似于float的虚拟机环境中创建一个好的、健康的、独立的开发环境。如果你不熟悉以上所有技巧,那么我一定推荐一本很棒的书给你在这里买。
开发人员在版本控制系统方面必须非常熟练。为了开发可靠的生产备份和可共享的协作代码库,这些代码库可以根据时间跟踪代码更改。现在没有一个开发人员的工作流程是完全不受版本控制的。我们有一个很棒的版本控制视频教程。点击这里购买。
2.云
与实际的管理或虚拟服务器不同,开发者可能需要了解云托管平台,比如Heroku、GoogleCloud、Azure、AWS等等。
必须注意的是,平台和工具更多的是为了炒作,而不是为了实用。虽然有许多平台和工具并不像宣传的那样实用,但从长远来看,理解每个人都在谈论的这些服务将是有用的——客户可能随时要求更换服务提供商。幸运的是,我们有这些权威的云托管部署指南。
3.后端
在后端,除了知道选择什么语言之外,比如PHP和许多框架和MSes,全栈开发人员必须熟悉:
Web服务器,比如Nginx,Apache,和运维关系密切
不幸的是,NodeJS已经能够将JS、CSS等资源文件编译成可以轻松缓存的静态文件。幸运的是,有办法避免学习NodeJS,也有可能使用PHP
像Composer这样的PHP(http://www.ujuye.com/ZT/PHP/)包管理工具离不开现代开发环境
良好的应用编程接口设计,因为大多数新网页都是基于应用编程接口的,并且只为前端服务(下面将详细描述)
像弹性搜索这样的搜索引擎对提高网站性能非常重要
Cronjobs和后端工作,使用诸如Gearman或Crunz这样的库
了解缓存、清漆、Redis等的工具。可以分段存储数据,以便一个项目可以部署在多个主机上
4.数据库资料库
数据库是一个独立的部分,因为除了掌握基本没有结构变化的关系数据库(MySQL或PostgreSQL)的数据模式之外,一个全栈的工程师应该对非关系数据库有一定的了解,比如MongoDB,Redis,或者Cassandra,更不用说像Secondary这样的图形数据库了。
不幸的是,这些都是服务器上的东西,在全栈工程师的控制下。还有几个像Mong这样的远程解决方案,比如RestDB或者Google拥有的dFirebase。
5.前端
如果你想知道一个正常的前端知识地图是什么样的,可以看看这篇用JavaScript写的文章。但是作为一个全栈工程师,你需要明白
NodeJSandNPM
故事
预处理器和编译器(比如巴贝尔)用来编译typescript、es6、less、SCS和sass
构建工具,如咕噜和大口
框架,如真空、反作用、角度
模块打包工具,如网络包、浏览、汇总
6.设计
在设计方面,全栈开发人员需要知道如何在产品成为真正可用的HTML和CSS代码之前绘制原型。然后可以用JS写交互,后端也可以用假数据模拟生产环境。只有当这个关键的原型图完成,用户体验设计和界面设计准备就绪,才能开始真正的开发。这本身就是一项艰巨的任务,需要一套特殊的工具:
Photoshop和Illustrator或者一些开源工具比如Gimp/Inkscape。请访问设计频道,了解有关这些工具的更多信息。
一个牛逼的、快速的编辑器,比如Atom或者升华文本(这里有十个简单易用的升华插件)
背景选择器和颜色选择器,如子模式,可以匹配一些颜色
CSS的网格系统
以上前端需要知道的所有知识和JS数据模拟
把原型图发布到网上让大家浏览反馈,Ngrok非常好用
7.日志系统
为了有效地监控应用程序的运行状况,全栈开发人员必须能够跟踪错误、找到错误日志并从中提取有用的信息。全栈开发人员还需要从日志中预测一些趋势,比如CPU或者I/O占用率的增加,以防应用程序不知道什么时候挂机。这部分也和操作维护有关,但是需要一些特殊的技巧:
推荐一篇很棒的关于ELKstack的文章,有助于你理解制作日志系统所需的知识。它包括用于查找日志的弹性搜索、用于收集日志的日志存储、用于显示具有出色图表的日志的Kibana,甚至用于提供解决方案的Logz.io。
8.移动端
最后要说移动端。随着iOS和Android上的webview越来越高效,以及PWA(渐进式web应用)的到来,原生应用因为过于复杂而无法开发,变得暗淡无光。因此,一个全栈的工程师必须知道PWA或者ReactNative,或者像Native Script,塔布里斯,Cordova,Phonegap或者其他webview,这样客户端应用才能调用API来运行。
07
2022-10
30
2022-09
16
2022-09
15
2022-09
15
2022-09
15
2022-09