当前版本
| 文件标识: | 学习猿地-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聊天功能 说明: 项目的核心功能已经以实战的方式贯穿在每天的课程中,在本阶段的项目期,只需要根据需求分析和产品原型设计,百分之百将项目实现,进行页面优化,架构改进,业务流程优化,补全功能模块,并测试无Bug,将项目上线。并总结开发经验。 |
阶段五:进入企业实习参与商业项目开发
这个阶段安排入职智校云网络科技有限公司实习,实习期为一个月,分配到商业项目组中和老程序员一起参与上线项目的开发工作。浸入项目组实习,不仅可以积累工作经验,在工作中学习更是技术提升的关键时期。相关的工作经验对于新工作的薪资起着决定性作用,因为参加实际项目开发解决过一些实际问题,一些开发工具会使用很熟练,并掌握相关的业务流程,了解团队协作开发的相互配合, 了解相关的项目管理规范等,所以开发效率会很高。在实际的编程工作中,你做的事情往往是一个大系统中的一个组件,完成一个大系统的开发工作是一个团队的事情,但你必须学会如何团队开发。最主要的是学过再多的技术,学习的内容也都是“点状”的,例如会写小段代码,掌握各种算法,了解所有设计模式,但没有参加过商业项目开发就不相信自己能胜任这份工作。作为程序员要有被甲方“威胁”的经历,要有被产品经理反复改需求“博弈”的过程,要有为了项目预期上线连夜“奋战”的时候,更要有项目经测试后反馈回来BUG成堆无地自容的感觉,也要有过讨论架构“拍桌子”大喊的情况。
全栈 占比 | 技术点 | 学习目标 |
---|---|---|
代码管理 | Git安装 代码时光机 多人合作 分支特性 远程仓库 | 远程仓库 Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 其中很多的特性相较于svn,cvs更加的强大,特别是分支特性,更好的维护产品代码,保证代码的健壮性。 |
团队协作 | 文档管理 设计图管理 团队人员分工 员工沟通技巧 | 团队协作是团队运作非常重要的一个环节,直接影响整个项目能否顺利完成。其中还包括员工的沟通,考核以及后续的升职加薪。 |
项目开发流程 | 原型制作 设计图制作 数据库设计 框架开发 测试 上线 | 了解整个项目的开发流程对开发人员有着非常重要的意义,开发人员可以在宏观角度来认识项目,并提高和其他部门之间的配合,为后续的升职加薪做好准备。 |
客户沟通 | 客户沟通 项目定价 合同制作 产品分析 | 客户是公司生存的经济来源,与客户的沟通显得至关重要,企业技术总监亲自讲述与客户沟通的那些事。 |
项目实战:10个商业项目二次开发 智校云三年来已经自主研发并上线几十个商业项目,从中挑选10个不同类型的精品项目给到实习程序员,这10个商业项目总价值不会低于500万。会给你源代码学习和个人使用。但源码不可以在网络上公开,不可以私自用于商业用途,需要通过公司商业授权。 这10个项目不但给你源码,还会由参与这些项目开发的技术总监为你讲解项目的背景、需求、安装和使用,并详细分析项目架构和功能模块,并教会你进行二次开发,可以为项目扩展、修改或删减功能,并上线运行变成自己的项目。 |