# ATU 专业性培训计划(For Pyke)Squall Hu **Repository Path**: atu_development_team_2/ATUTrainfor14 ## Basic Information - **Project Name**: ATU 专业性培训计划(For Pyke)Squall Hu - **Description**: ATU 专业性培训计划(For Pyke)Squall Hu - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-08-15 - **Last Updated**: 2020-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ATU 专业性培训计划(For Pyke)Squall Hu #### 介绍 ATU 专业性培训计划(For Pyke)Squall Hu ## 阶段性任务 * 请每日对当日学习进行总结,并记录成文档 * 每天拉取一次仓库,以防冲突。请每日下班后将自己所做、所学、遇到的问题进行整理成文件夹,以日期命名推送至本仓库 #### 1. 第一阶段(2019.08.12 - 2019.09.07,共 4 周) * 概念建立,理解前端的基本概念,熟悉前端开发的思想与开发模式 * 前端学习: * 学习 HTML5、CSS、JavaScript、Vue * 学习 VSCode、Git 等工具的使用 * 第一阶段完成后,应该掌握前端开发能力 #### 1. 第二阶段(2019.09.09 - 2019.10.18,共 5 周) * 概念建立:理解后端的基本概念,熟悉后端开发的思想与开发方式,理解 MVC 设计模式等,学习开发文档写法。 * 后端: * 学习 PHP 基础知识; * 学习数据库 MySQL 基础知识; * 了解 MVC 设计模式以及前后端分离开发的概念; * 学习框架 ThinkPHP * 第二阶段完成后,对后端 MVC 架构有清晰的认识, 以及掌握前后端分离开发的能力。 ## 培训老师 Squall Hu Yumi Li Koga Liang Fichin Lai ## 参与学员 Pyke Zhang ## 培训日常计划 ### 第一阶段(2019.08.12 - 2019.09.07,共 4 周) #### 2019.08.12 了解 HTML 基础知识,学习 HTML 标签,并跟着教程进行代码编写 > [HTML 基础教程](https://www.w3school.com.cn/html/index.asp) **** #### 2019.08.13 学习 CSS 基础知识 > [CSS 基础教程](https://www.w3school.com.cn/css/index.asp) **** #### 2019.08.14 根据所学 HTML 、CSS 知识参考 AOS 主页完成登录、首页、个人资料 静态页面的设计 **** #### 2019.08.15 * 学习 Git 的使用 * 继续完成静态页面编写 >[Git 教程](https://www.liaoxuefeng.com/wiki/896043488029600) **** #### 2019.08.16 * 学习 MarkDown 语法,学会使用 Markdown 编写文档 * 学习 Element-ui 的使用,Element-ui 为前端组件库,使用组件 Demo 快速体验交互细节,使用前端框架封装的代码帮助工程师快速开发 * 继续完成静态页面的编写 >[Element-ui](https://element.eleme.cn/#/zh-CN) VSCode 插件:Markdown Preview Enhanced **** #### 2019.08.19 学习 JavaScript 基础知识 > 看教程文档时,里面的练习请自己搭建工程书写,并有对应的 demo **基础知识** * 掌握 JavaScript 基本语法 * 函数类型和变量 * 字符串 * 数组 * 对象 * 条件判断 * 循环 * Map 和 Set **函数** * 掌握函数的定义和调用方法 * 什么是变量的作用域 * 函数的方法 * 高阶函数有哪几种 * 理解什么是 js 闭包 * 箭头函数 **面向对象编程** * 关键字 typeof * 基本类型的包装对象 * 常用对象:Date、RegExp(正则表达式对字符串的校验) * JSON 序列化与反序列化 * 理解如何进行面向对象编程 * 理解原型链、构造函数、继承 **浏览器对象** * 常见的浏览器对象 * 操作 DOM、操作表单、文件 * AJAX * Promise(并联及串联操作) * Canvas(绘图操作) >[学习资料:JavaScript 教程](https://www.liaoxuefeng.com/wiki/1022910821149312) **** #### 2019.08.20 * 继续学习 JavaScript 有关知识,撰写文档回答以下问题 * 什么是 js,应用场景是什么,有什么优缺点 * js 基本数据类型 * js 的作用域 * js 闭包 * js 原型链 * this 指向 * js 回调函数 * JSON 和 XML * AJAX **** #### 2019.08.21 使用 JavaScript 有关知识完成 TodoList 小项目,功能如下: 1. 将用户输入添加至待办项 2. TodoList 的每一项可以编辑和删除 3. 将用户的输入数据写入 LocalStorage 本地缓存,实现对输入数据的保存 **** #### 2019.08.22 完成 JavaScript 案例: 完成对 AOS 用户登录的验证,要求使用 AJAX * 了解 HTTP 协议、TCP/IP 协议。请撰写文档回答以下问题 * 什么是 HTTP * HTTP 请求到服务器的消息包含哪些内容 * HTTP 的请求方法有哪几种 * 了解 HTTP 状态码和 HTTP content-type * HTTP 与 HTTPS 的区别和联系 * 什么是 TCP/IP 协议 **** #### 2019.08.23 继续完成有关功能 **** #### 2019.08.26 1. 学习 Vue * 通读 [Vue 官方文档](https://cn.vuejs.org/v2/guide/) * 掌握 [Vue Cli3](https://cli.vuejs.org/zh/) 搭建项目框架 * 理解 [Vue Router](https://router.vuejs.org/zh/guide/) * 掌握 [axios](https://www.kancloud.cn/yunye/axios/234845) 获取 http 数据 * 掌握 [vuex](https://vuex.vuejs.org/zh/), 包括如何定义 mutations,actions,并在页面如何触发定义的行为 **** #### 2019.08.27 继续学习 Vue 有关知识 **** ### 2019.08.28 继续学习 Vue 有关知识 **** #### 2019.08.29 进行项目开发,以 Vue 框架,「BTC 使用工具」为例进行 WebAPP 的开发,要求实现 APP 上功能 「BTC 使用工具」功能点如下: 1. 登录、获取用户信息并显示 2. 获取用户所有设备信息并显示 3. 获取用户指定设备信息并显示 4. 控制设备的马达[PWM]、控制 LED[RGB]、控制 Oled 的显示文字 >1. 「BTC 使用工具接口文档(5.3 接口说明部分)」(http://docs.atu360.cn/btc/app/system/adms-api.html) 文档中接口域名由 'https://btc.atu360.cn' 更改为 'https://www.wpibtc.com/' > 2. 请使用 vue-cli3 脚手架进行项目开发,学会用 vue-router 进行路由跳转,使用 axios 获取 HTTP 数据 > 3. 前后端交互需要跨域,请参考资料配置前端跨域处理 > 4. 请写好代码注释,并注意前端命名规范 **** #### 2019.08.30 项目开发 **** #### 2019.09.02-2019.09.06 继续学习 Vue 有关知识,完成项目 ### 第二阶段(2019.09.09 - 2019.10.18,共 5 周) #### 2019.09.09 学习 PHP 基础知识,跟着教程搭建 PHP 开发环境并进行代码编写: > [PHP 基础教程](https://www.runoob.com/php/php-tutorial.html) > 先使用 XAMPP 搭建 PHP 开发环境 重点掌握: * 了解弱类型语言与强类型语言的区别 * 掌握超级全局变量的作用 * 了解 PHP 魔术常量 * 学习命名空间语法格式以及作用 * 学习面向对象概念,了解类,抽象类,接口的不同以及用法 **** #### 2019.09.10 - 2019.09.11 * 学习搭建 LAMP 和 LNMP 环境 * 学习 PHP 发送表单请求,并处理请求返回响应 * 学习菜鸟教程中高级教程部分的内容 重点掌握: * 数组知识:PHP 数组十分强大,需要学习多维数组以及了解相关的数组函数 >[Array 函数](https://www.runoob.com/php/php-ref-array.html) * 日期,date 函数以及日期类 DateTime * 文件包含:inclue 和 require * 文件上传 * Cookie 和 Session * 异常和错误(Exception 和 Error) * JSON 对象的处理(json_encode 和 json_decode) localhost/image/create 任务: 使用搭建 LAMP 或者 LNMP 的环境,完成一个个人资料填写表单请求的处理响应。 **** #### 2019.09.12 - 2019.09.13 * 学习 MySQL 知识 * 基础 SQL 操作 * 列类型与列属性 * 了解索引的类型、重要性以及应用场景 * 多表查询、分页查询 * 学习事务的应用 * 数据的备份与还原 * 用户权限管理 * 学习 PHP 操作 MySQL * 学习 MySQLi 和 PDO * 学习预处理,防止 MySQL 注入 任务: 1. 完成 MySQL 安装 2. 封装 PHP 的 MySQL 功能类 3. 用表单提交和 MySQL 完成一个能够完成登录的待办事项记录应用(页面不要求样式设计,重点实现功能) 相关教程: * [MySQL 教程](https://www.runoob.com/mysql/mysql-tutorial.html) * [MySQL教程:MySQL数据库学习宝典(从入门到精通)](http://c.biancheng.net/mysql/) * [PDO](https://www.php.net/manual/zh/book.pdo.php) **** #### 2019.09.16 - 2019.09.18 * 学习 MVC 设计模式 * 了解单入口文件实现方式 * 了解路由与 Url 的关系 * 了解 Model(模型)、View(视图)、Controller(控制器)三者的职能 相关资料: * [PHP 启示录](https://www.awaimai.com/php) **** #### 2019.09.19 - 2019.09.20 * 学习 PHP Xdebug 安装以及使用 * 学习 PHP 反射知识 任务: 1. 安装 PHP Xdebug 2. 自己尝试写一个 PHP MVC 框架完成待办事项记录应用,要求使用 Reflection 实现类加载 相关资料: * [PHP 反射](https://www.php.net/manual/zh/book.reflection.php) ### 第三阶段(2019.10.21 - 2019.12.06,共 7 周) #### 2019.10.21 * 学习 nodejs * 学习 nodejs 常用模块使用 * 学习 nodejs Web 开发相关知识 任务: 1. 使用 nodejs 实现简单的 Web 服务器,能够处理 get,post,delete,put 的 http 请求,并返回数据 相关资料: * [nodejs 教程](https://www.liaoxuefeng.com/wiki/1022910821149312/1023025235359040) * [api 文档](http://nodejs.cn/api/http.html) (不用仔细看,用到的时候查下就好) * [nodejs 菜鸟教程](https://www.runoob.com/nodejs/nodejs-callback.html) 菜鸟教程主要看: * Node.js 事件循环 (了解一下就好)✔ * Node.js EventEmitter (熟悉事件监听的使用)✔ * Node.js 路由 (了解路由是如何实现的) ✔ * Node.js 文件系统 (熟悉异步和同步的使用)✔ * Node.js 回调函数 ✔ * Node.js 函数 ✔ * Node.js GET/POST请求 ✔ * Node.js Web 模块 ✔ * Node.js Buffer ✔ #### 2019.10.22 - 2019.10.23 * 学习了解 es6 的部分语法(异步的语法) ✔ * 学习 koa 框架的使用 ✔ * 学习 mysql 的简单使用 ✔ * 学习 nodejs 中 websocket 服务器的搭建 任务: 1. 使用 koa 框架和 [ws 库](https://github.com/websockets/ws) 来完成 websocket 服务端搭建,之后使用在线的模拟客户端来简单的收发数据 相关资料: * [es6](http://es6.ruanyifeng.com/)(16 和 20 章,其他的以后自己看看) ✔ * [koa 入门](https://www.liaoxuefeng.com/wiki/1022910821149312/1023025933764960)(模版引擎不用看的太仔细,了解下就好)✔ * [koa 教程](http://www.ruanyifeng.com/blog/2017/08/koa.html)(了解下中间件的使用方式)✔ * [koa API 文档](https://koa.bootcss.com/#links) 了解下常用的 API 方法有哪些 ✔ * [nodejs 中使用 mysql](https://www.liaoxuefeng.com/wiki/1022910821149312/1023026017596000) ✔ * [WebSocket](https://www.liaoxuefeng.com/wiki/1022910821149312/1103303693824096)(如何编写聊天室随便看看就好,知道 ws 怎么用就行)✔ * [ws 库 API 文档](https://github.com/websockets/ws/blob/master/doc/ws.md#new-websocketserveroptions-callback) ✔ #### 2019.10.24 * 学习 mongodb 的使用 ✔ * 学习 mongoose 的使用 ✔ 任务: 1. 通过之前搭建的 web 服务器,添加新的接口,能够实现对 mongodb 数据库的增删改查 ✔ 2. 通过之前搭建的 web 服务器,添加新的接口,能够实现对 mysql 数据库的增删改查 相关资料: * [数据库工具](https://robomongo.org/) ✔ * [mongoose 学习文档](http://ourjs.com/detail/53ad24edb984bb4659000013) ✔ * [mongoose基本用法](https://www.jianshu.com/p/9b20c1e2f373) ✔ * [Mongoose使用案例](https://www.tuicool.com/articles/meeQN3N) ✔ #### 2019.10.25 - 2019.10.27 * 熟悉 koa + mongodb 的使用 ✔ * 熟悉 MVC 目录分层结构 ✔ 任务: 使用 koa + mongodb 编写项目,采用 MVC 的结构,实现一个用户系统。通过 API 的方式,能够进行以下操作 * 用户账号注册 * 用户登录 * 忘记密码 * 密码修改 * 用户名修改 * 查看(一个或多个)用户信息(多个的话要进行分页查询) * 删除用户 * 用户要进行权限分组,分为管理员和普通用户,只有管理员能查看所有多个用户,普通用户只能看一个,删除用户只能是管理员删普通用户(可选) 相关资料: 1. [Koa MVC](https://blog.csdn.net/sinat_17775997/article/details/83148107) ✔ 2. [Koa MVC 2](https://yesixuan.github.io/2018/01/04/node-koa%E5%88%86%E5%B1%82/) ✔ #### 2019.10.28 - 2019.10.31 * 学习 es6 的部分语法 * 学习 eggjs 的使用 任务; 1. egg 文档基础功能以及核心功能要看完 2. egg 文档教程部分主要看 Sequelize(可以不按照文档中的方式来创建 model,而是按照之前所学的方式来创建即可) 和 Socket.IO。 相关资料: * [es6](http://es6.ruanyifeng.com/) 主要看 2,3,21) * [eggjs 文档](https://eggjs.org/zh-cn/intro/index.html) #### 2019.11.01 - 2019.11.03 * 熟悉使用 eggjs + mysql 开发 * 了解 websocket 服务器的开发 任务: 使用 egg.js + mysql + socket.io 实现一个简单的 websocket 通讯 demo。使用 eggjs 搭建 websocket 服务端,客户端则是一个简单的 demo。要求实现以下功能 * 客户端连接到服务端的第一时间,将数据(随便定)发送给服务端,服务端将其存入数据库后,响应客户端成功与否 还需要提供以下 API 接口 * 能够查看获取数据库所有客户端的数据 * 通过数据库的 id,找到对应的客户端,然后向客户端发送数据,并得到对应的响应(这里需要考虑到事件监听,数据库数据查找,websocket 长连接的管理)