Web全栈课程体系

程序员需要掌握的是一门技术,而并不只是一种编程语言

高洛峰

发布时间:2021-05-21

当前版本

  • 文件状态:
  • [    ] 草稿
  • [ √ ] 正式发布
  • [    ] 正在修改
文件标识:学习猿地-Web全栈工程师-01
当前版本: V5.1
作       者: 高洛峰
完成日期: 2021-05-20

历史版本

版本/状态 作        者 参    与    者 起止日期 备        注
V4.0 高洛峰 孙健魁,徐枭雄
刘万涛、吴健
2019-01-05
2020-04-12
学习猿地-PHP开发工程师-01
学习猿地-Web前端开发工程师-01
学习猿地-Linux运维工程师-01
V5.0 高洛峰 孙健魁,徐枭雄
刘万涛、吴健
2021-05-20
至今
学习猿地-Web全栈工程师-01
版本/状态 起止日期 备        注
V4.0 2019-01-05
2021-05-20
学习猿地-PHP开发工程师-01
学习猿地-Web前端开发工程师-01
学习猿地-Linux运维工程师-01
V5.0 2021-05-20
至今
学习猿地-Web全栈工程师-01

学习目标

  • ☆ 掌握Web前端HTML、CSS、JavaScript全套开发技能, 可以完成PC系统、移动站、小程序、公众号、WebAPP等,前后端开发分离的所有形式的页面开发。
  • ☆ 掌握后端开发语言PHP和Node.js全部开发技术,可以完成所有服务器端的业务处理。
  • ☆ 掌握MySQL和Redis关系型和非关系型全部的管理和应用,可以完成所有项目的数据库管理应用、安全、高并发处理等。
  • ☆ 掌握Linux操作、云服务器、Web服务器应用与管理、以及虚拟化技术,可以完成所有项目的环境部署和管理。
  • ☆ 掌握项目管理和开发流程,可以完成所有Web项目的架构设计、协作开发、软件管理。
  • ☆ 掌握Web全栈开发技术,可以胜任PHP高级开发工程师、前端开发工程师、运维工程师、架构师等和Web开发相关的所有岗位。

学习方式

  • ✔ 采用“迭代式”学习方式, 前一阶段都是在为下一阶段做基础铺垫。学习步骤是先从面向过程的编程思想开始,再到面向对象的编程思想, 再到面向组件的编程思想, 再到面向架构的编程思想,最后再到企业实习。从编程思想和技术应用上,都能达到逐级提升。进阶式教学方法,不仅适合技术的成长,更适合编程思想的成长,是从小白到大牛的最有效的程序员成长方法。
  • ✔ 采用“全栈式”授课方法, 每个阶段学习的并只不是一种编程语言,而学习的是一门技术。所以每学完一个阶段都可以完成一个Web项目,包括前端页面、后端业务处理、数据库操作,以及Web服务器的管理与应用。
  • ✔ 采用“浸入式”学习方式,不仅有一个专门的企业实习阶段,浸入到项目中和总监一起开发商业项目, 而且在每一阶段的教学中也是以项目实战贯穿技术点的方式。 每个阶段都会先梳理项目需求,进行项目设计, 学习部分前端技术就为项目编写页面,学点数据库技术就为项目设计表和编写SQL语句,学习一部分后端技能就为项目编写业务逻辑和架构设计,每个阶段最后再整体对项目进行优化、升级、测试、上线和总结。

阶段一:入门#初级程序员#面向过程开发思想

本阶段的内容学完就可以编写绝大多数的Web项目开发, 但开发思想是最单纯的过程化开发思想, 程序架构简单、直接、易懂,中小企业网站会采用这种开发方式, 是新手常用的Web开发架构,也是早期Web项目开发的基本架构。单服务器也就可以承受10万左右的PV, 不易扩展和维护,但作为程序员入门是非常好的选择。

全栈
占比
技术点 学习目标 实战/寓学于练
前端
10%
HTML基础应用
CSS基础应用
DIV+CSS标准化页面布局
js基础插件
掌握HTML和CSS的基本应用,学会DIV+CSS页面布局可以完成PC端基本的页面编写。了解js一些基本插件应用。 按项目原型设计:
1.完成前台所有页面开发。
2.完成后台所有所有应用页面编写。
3.应用JS插件完成页面中特效要求。
后端
30%
PHP基本语法
PHP基本应用
PHP常用功能扩展模块
PHP操作数据库
PHP处理业务流程
掌握PHP语言基本功能,掌握PHP的语法,学会使用PHP的一些常用功能扩展模块,操作数据库等,可以通过面向过程的思想处理业务流程。 按项目业务需求:
1.接收用户操作请求。
2.完成后端的业务处理。
3.向用户响应处理结果。
数据库
30%
MySQL架构组成
MySQL数据库基本应用
建库建表
常用的SQL语句
PHPMyAdmin操作数据
掌握MySQL的服务器基本配置,可以为项目设计和创建表结构,会编写基本的SQL语言,完成项目的业务需求。 按项目的需求:
1.完成CMS的表设计。
2.创建CMS需要的所有表。
3.编写项目中100+条SQL语句。
服务器
5%
Windows的集成开发环境
Apache应用与管理
MySQL服务器管理
PHP服务器管理
使用最新版本的集成开发环境,掌握集成中的每个服务器的基本应用和管理,以及每个服务器的核心文件的操作。 按项目的需求:
1.搭建项目的运行环境。
2.可以管理项目的服务器。
3.做一些基本的优化和安全防控。

项目实战:轻量级CMS(企业动态官方网站)

通过CMS系统的应用可达到对网页的内容分类排版、文章内容的发布、用户之间的文章管理与交流。根据内容管理系统(CMS)的特点,可以将其分为前台和后台两个应用,前台应用包括内容展示和个人中心两部分,而后台应用则分为平台操作管理、系统管理频道、内容管理频道和用户管理频道4个部分。

1.门户网站
用户分为访客和会员,访客可以在网站上浏览频道、浏览文章、搜索文章等。会员可以发布文章、对文章进行评论、加好友、发站内信、收藏文章等。

2.后台管理系统
后台管理系统的用户分为超级管理员、网编与内容管理员三种角色:网编可进行系统设计、管理栏目分类、友情链接管理及公告管理;内容管理员可以管理文章和幻灯片;超级管理员有所有权限,包括管理用户和用户组。

说明:

项目的核心功能已经以实战的方式贯穿在每天的课程中,在本阶段的项目期,只需要根据需求分析和产品原型设计,百分之百将项目实现,进行页面优化,架构改进,业务流程优化,补全功能模块,并测试无Bug,将项目上线。并总结开发经验。

阶段二:进阶#中级程序员#面向对象开发思想

本阶段的内容学完几乎可以开发所有的Web项目, 而且完全采用面向对象的开发思想实现,前端能用各种响应式布局开发页面, 支持在多终端下访问,并采用流行的BootStrap框架,结合jQuery 实现与用户交互和特效编写, 当然也可以使用纯JS实现。后端则使用自己定义MVC模式框架,应用最新版本构建架构, 并且服务器都是在Linux下搭建的环境,也是生产环境下常用的环境, 本阶段数据库也可以做到安全防护和优化处理。 这个阶段学习的技术是现在中小系统最常用的开发模式, 单服务器可以承受100万左右的PV, 扩展和维护相对容易, 也是Web开发必须掌握的全栈开发技能。这部分学完就具备参加工作的能力, 升级为中级程序员水平。

全栈
占比
技术点 学习目标 实战/寓学于练
前端
60%
HTML5和CSS3新特性
多种方法响应式页面布局
JavaScript语法基础
WebAPI之BOM和DOM操作
jQuery/BootStrap常用框架
掌握H5和C3的新特性,可以布局响应式页面,弹性布局和栅格布局,掌握JS语言,可以使用DOM思想编写用户前端交互和特效。 按项目原型设计:
1.完成前后台所有模板开发。
2.支持手机购物和后台定单处理。
3.通过JS完成所有前端交互。
4.实现所有页面中的特效。
后端
60%
PHP面向对象技术
数据库抽象层PDO
会话控制高级应用
Composer包管理工具
自定义MVC模式开发框架
掌握PHP面向对象的编程思想,熟练使用Composer管理常用开发组件,和自定义高可用的后端开发框架。 按项目业务需求:
1.搭建MVC结构开发框架。
2.完成项目的业务处理。
3.模拟第三方登录和支付流程。
数据库
50%
Memcached应用与管理
MySQL备份和恢复
数据库事务处理
MySQL查询和慢查询日志分析
MySQL索引优化
MySQL存储引擎优化
MySQL锁机制优化
掌握数据库的安全处理方式,可以处理数据库容灾,掌握数据库的各种优化方式,将数据库的优化提升到最高级别,提升系统运行效率。 按项目的需求:
1.完成商城项目的表设计。
2.创建商城项目表和索引。
3.实现项目中的全部SQL语句。
4.实现数据定期备份和性能优化。
服务器
60%
Linux 应用操作
Linux的网络管理
LNMP环境安装和应用
Linux服务的运维与安全
掌握Linux系统应用,基本的Shell编程,配置和管理常用的网络服务,LAMP和LNMP环境的安装和应用。 按项目的需求:
1.通过源码包搭建LNMP环境。
2.配置管理Nginx的应用服务器。
3.设置优化和安全防控任务脚本。

项目实战:电子商城系统(网上书城)

项目需求是将商品展示、在线购物、订单管理、支付管理、文章管理、客户咨询反馈等功能相结合,并提供了简易的操作、实用的功能,快速让用户建立个性化的网上商店,为用户提供了一个低成本、高效率的网上商城建设方案。本系统主要分为前台用户功能和后台管理功能两大应用。前台应用主要是实现了用户通过登录进入商城后,对公告、商品的浏览以及查询、购买。后台管理主要实现了管理员对公告、商品、订单、咨询的管理。制作电子商务系统的原理与超市购物原理是一样的,首先客户应该在网页中选购自己需要的商品并将商品放入购物车中,当然也可以改变购买商品的数量或清空购物车中的商品。选购好商品后就可以到收银台,在收银台填写并提交收货人信息。网上商店的主要参与者是顾客和商场,以及后台管理人员。网上电子商城应包括两个基本的部分,一个是前台销售,用户在前台可以浏览,搜索,购买商品,能看到商城最新的公告;另一个是后台管理,管理员在此管理网站信息和商品,具体包括录入,更改网上信息,订单的查询和处理,商品的上架与下架,还可以管理在商城里注册的用户等。系统前、后台功能结构图如图:

说明:

项目的核心功能已经以实战的方式贯穿在每天的课程中,在本阶段的项目期,只需要根据需求分析和产品原型设计,百分之百将项目实现,进行页面优化,架构改进,业务流程优化,补全功能模块,并测试无Bug,将项目上线。并总结开发经验。

阶段三:提高#高级程序员#面向组件开发思想

本阶段的内容学完可以开发所有的Web项目, 而且本阶段全部采用最流行的组件化思想开发,实现前后端开发完全分离。服务器采用生产环境阿里云服务器,数据库引入NoSQL技术学习Redis管理数据和缓存,并应用MySQL主从数据库扩展系统负载能力,全程项目开发使用GIT工具管理项目版本仓库。后端技术则使用PHP应用排名第一的Laravel框架,应用最新版本构建架构。按项目业务需求全部封装成标准的接口。网站前台PC版本使用VUE框架开发,移动端使用微信小程序开发,网后台管理界面采用REACT框架技术开发。这个阶段学习的技术是现在中大系统最常用的开发模式,单服务器可以承受1000万左右的PV, 扩展和维护非常容易,也是Web开发必须掌握的全栈开发技能。这部分学完就具备高级程序员开发水平。

全栈
占比
技术点 学习目标 实战/寓学于练
前端
90%
前后端交互核心
Vue框架使用与进阶
React框架应用与进阶
微信小程序和公众号开发
掌握Vue和React框架的应用,可以通过虚拟DOM方式,开发前端交互,以及和后端交互处理数据,可以进行微信小程序和微信公众号的开发工作。 按项目原型设计:
1.使用VUE完成前台模版开发。
2.移动端应用微信小程序开发。
3.用React完成后台模板开发。
后端
75%
CURL管理与应用
RESTFul API定义接口
Laravel新版框架应用
大型项目的架构设计
掌握PHP新版本的Laravel框架应用,和RESTFul API的接口设计原则和应用,可以自定义开发接口,并能搭建高可用项目架构的目标。 按项目业务需求:
1.用Laravel框架搭建项目架构。
2.按业务标准完成项目接口开发。
数据库
85%
主从数据库设计
NoSQL技术应用
Redis 应用与管理
掌握MySQL主从数据库的设计与应用,掌握Redis的开发与应用,可以在PHP中操作Redis数据库。 按项目的需求:
1.完成项目的表设计。
2.应用Redis做缓存。
3.采用主从增加项目负载能力。
服务器
75%
云服务器下的生产环境应用管理
Git 管理与协作开发
GitHub神操作
可以在阿里云服务器上搭建和管理生产环境下的Web服务器,熟练使用Git工具管理代码和团队协作开发,并能灵活的操作GitHub账号。 按项目的需求:
1.在阿里云上搭建项目生产环境。
2.使用GIT工具管理管理代码。

项目实战:在线教育系统(PC + 小程序)

根据系统功能特点,将在线教育EDUPlayer系统划分为前台和后台两个应用部分。前台包括首页、用户、我的学习、我的教学、课程浏览、课程购买、课程管理、班级浏览、班级管理、班级购买等模块。前台主要有两个角色,分别是学员和授课教师,学员在前台浏览课程和学习课程,教师在前台编辑课程资料等。后台包括系统登录、后台管理平台页面、用户管理模块、课程管理模块、运营管理模块、财务管理模块、系统管理模块等。

说明:

项目的核心功能已经以实战的方式贯穿在每天的课程中,在本阶段的项目期,只需要根据需求分析和产品原型设计,百分之百将项目实现,进行页面优化,架构改进,业务流程优化,补全功能模块,并测试无Bug,将项目上线。并总结开发经验。

阶段四:大牛#架构师#面向服务架构的编程思想

本阶段内容学习可以成为系统架构师了。项目前端使用组件化开发,前端体验要求越来越高,所以前端开发通过React框架完成页面交互控件,并打包为APP应用;后端采用轻量化思想,全部使用接口实现,并通过Nodejs和PHP结合开发实现这个层次的功能,并且后端轻量化的核心问题在于如何和原有的SOA体系打通;服务层则是微型化的实现,从基础服务开始,按照Service粒度拆分服务,使用轻量协议,可以用不同语言开发,不受限与任何技术栈;运维用上标准化,将业务模块固化为标准单元,发布前测试,发布流程标准化,数据库脚本需要进行版本化,可持续部署,自动运维。这个阶段学习的技术是现在超大系统最常用的架构模型,可根据服务器扩展、数据库集群、分布式架构等支撑几十亿的PV, 不仅架构扩展和维护非常容易,项目功能更容易扩展和迭代,人员协作开发工作任务容易分配和管理。这部分学完完全具备架构师开发开发水平。

全栈
占比
技术点 学习目标 实战/寓学于练
前端
100%
前端开发模块化思想与应用
APP项目构建工具
Web前端性能优化
掌握前端模块化开发思想,和前后端分离技术,能够熟练使用前端项目的各种构建工具,并需要掌握Web前端的各种性能优化方法。 前端组件化
1.通过React框架完成页面交互控件
2.混合APP打包
后端
100%
Node.js应用与开发
分布式系统架构
面向服务的架构(SOA)
掌握Node.js的应用,和PHP配合实现后端业务流程。能部署分布式架构和面向服务的SOA程序开发架构。 后端轻量化
1.使用各个接口综合返回JSON数据。
2.使用Nodejs和PHP共同开发这个层次功能
3.和SOA体系打通
数据库
100%
MySQL集群
Redis性能提升
数据库安全与优化
掌握MySQL集群部署和多实例数据库环境搭建,掌握关系型和非关系型数据库联合应用。 数据库架构
1.数据库脚本的版本化
2.MySQL集群架构
3.Redis缓存和性能提升
服务器
100%
微服务架构应用
微服务docker部署
架构伸缩性和可靠性
系统架构迭代升级
能够设计并独立部署微服务架构,在Docker下php容器安装swoole扩展, 达到快速的扩展开发团队目标,实现对业务不断分层,不断拆分。 自动部署
1.虚拟化,以极低的成本实现资源的最大利于率
2.一键部署,以最简单的方式完成日常任务
3.多环境支撑,支持开发、测试和生产环境
4.安全隔离与审查,人员隔离与日志。
5.可以快速回滚,快速回退到上个稳定版本。

项目实战:直播电商(SAAS)

根据随着互联网的兴起,各式各样的手机APP也越来越多,从最开始的电商APP逐步发展到视频直播APP,再到后来的社交电商以及电商视频直播,现在人们不需要出门只需要一部手机就可以购物,电商视频直播APP的功能基本需求:

一、电商视频直播APP预约功能:
主播或者商户在直播的时间,很多用户并不知道他们的开播时间,大部分人在白天都需要工作,也不能每分每秒的登录这个APP等待主播直播,所以就有了直播预约时间功能,提前设置开播时间,利用短信推送或者客服推送到用户手机。

二、电商视频直播APP视频展示功能:
相信看过直播的朋友们也都知道,主播在直播的过程中会展示相应的产品,给用户介绍产品的优点、用途、适用人群,这样的目的是为了实现边看边买,可以在观看的同时点击购买链接。

三、电商视频直播APP录播回放功能:
录播回放的功能是为了满足那些没时间在直播间观看的用户,在这些用户有时间的时候可以打开回放观看,或者是直播可以将自己录播好的上传平台。

四、电商视频直播APP一键分享功能:
用户可以将自己觉得还不错的产品,以微信、支付宝或者其他方式分享给朋友同事,有一些商户通过分享的方式做一些优惠的活动,同时也宣传了自己的产品。

五、电商视频直播APP聊天功能
用户或许在直播的时候有很多相关的问题需要咨询,这个时候可以在平台打字交流,主播可以在看到用户的问题之后做出解答,在问题得到解答之后,方便促成更好的购买成单。

说明:

项目的核心功能已经以实战的方式贯穿在每天的课程中,在本阶段的项目期,只需要根据需求分析和产品原型设计,百分之百将项目实现,进行页面优化,架构改进,业务流程优化,补全功能模块,并测试无Bug,将项目上线。并总结开发经验。

阶段五:进入企业实习参与商业项目开发

这个阶段安排入职智校云网络科技有限公司实习,实习期为一个月,分配到商业项目组中和老程序员一起参与上线项目的开发工作。浸入项目组实习,不仅可以积累工作经验,在工作中学习更是技术提升的关键时期。相关的工作经验对于新工作的薪资起着决定性作用,因为参加实际项目开发解决过一些实际问题,一些开发工具会使用很熟练,并掌握相关的业务流程,了解团队协作开发的相互配合, 了解相关的项目管理规范等,所以开发效率会很高。在实际的编程工作中,你做的事情往往是一个大系统中的一个组件,完成一个大系统的开发工作是一个团队的事情,但你必须学会如何团队开发。最主要的是学过再多的技术,学习的内容也都是“点状”的,例如会写小段代码,掌握各种算法,了解所有设计模式,但没有参加过商业项目开发就不相信自己能胜任这份工作。作为程序员要有被甲方“威胁”的经历,要有被产品经理反复改需求“博弈”的过程,要有为了项目预期上线连夜“奋战”的时候,更要有项目经测试后反馈回来BUG成堆无地自容的感觉,也要有过讨论架构“拍桌子”大喊的情况。

全栈
占比
技术点 学习目标
代码管理 Git安装
代码时光机
多人合作
分支特性
远程仓库
远程仓库 Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 其中很多的特性相较于svn,cvs更加的强大,特别是分支特性,更好的维护产品代码,保证代码的健壮性。
团队协作 文档管理
设计图管理
团队人员分工
员工沟通技巧
团队协作是团队运作非常重要的一个环节,直接影响整个项目能否顺利完成。其中还包括员工的沟通,考核以及后续的升职加薪。
项目开发流程 原型制作
设计图制作
数据库设计
框架开发
测试
上线
了解整个项目的开发流程对开发人员有着非常重要的意义,开发人员可以在宏观角度来认识项目,并提高和其他部门之间的配合,为后续的升职加薪做好准备。
客户沟通 客户沟通
项目定价
合同制作
产品分析
客户是公司生存的经济来源,与客户的沟通显得至关重要,企业技术总监亲自讲述与客户沟通的那些事。

项目实战:10个商业项目二次开发

智校云三年来已经自主研发并上线几十个商业项目,从中挑选10个不同类型的精品项目给到实习程序员,这10个商业项目总价值不会低于500万。会给你源代码学习和个人使用。但源码不可以在网络上公开,不可以私自用于商业用途,需要通过公司商业授权。

这10个项目不但给你源码,还会由参与这些项目开发的技术总监为你讲解项目的背景、需求、安装和使用,并详细分析项目架构和功能模块,并教会你进行二次开发,可以为项目扩展、修改或删减功能,并上线运行变成自己的项目。