Showing preview only (2,004K chars total). Download the full file or copy to clipboard to get everything.
Repository: frank-lam/fullstack-tutorial
Branch: master
Commit: 566d7368741e
Files: 234
Total size: 1.9 MB
Directory structure:
gitextract_4faglbb2/
├── .gitattributes
├── .github/
│ └── FUNDING.yml
├── .travis.yml
├── README.md
├── assets/
│ ├── deploy/
│ │ └── deploy.sh
│ └── mind/
│ └── 2019-learning.xmind
├── course/
│ ├── 01 玩转数据结构.md
│ ├── 02 玩转算法面试.md
│ ├── 03 算法与数据结构.md
│ ├── 04 Nginx从入门到实战.md
│ ├── 05 Java并发编程与高并发解决方案.md
│ ├── 06 HTTP协议原理+实践 Web开发工程师必学.md
│ ├── 07 SpringBoot微信点餐.md
│ ├── 08 廖雪峰的Java教程.md
│ ├── 09 Spring学习框架.md
│ ├── 10 Redis.md
│ ├── 11 SpringMVC.md
│ ├── 12 Mybatis.md
│ ├── 13 韩立刚计算机网络.md
│ ├── 14 韩立刚计算机网络2.md
│ ├── 15 咕泡学院-公开课.md
│ ├── 16 咕泡学院-JAVA开发中的热点技术剖析.md
│ ├── 17 咕泡学院-BAT面试课程.md
│ ├── 18 咕泡学院-性能优化.md
│ ├── 19 并发编程原理.md
│ ├── 20 MySQL性能管理及架构设计.md
│ ├── 21 JVM.md
│ ├── 22 白鹤翔_JVM虚拟机优化.md
│ ├── 23 MySQL大型分布式集群.md
│ ├── 24 操作系统(清华大学).md
│ ├── 25 Linux达人养成计划 I.md
│ ├── 26 Linux 达人养成计划 II.md
│ ├── 27 快速上手Linux 玩转典型应用.md
│ ├── 28 系统学习Docker 践行DevOps理念.md
│ ├── 30 Python Flask构建可扩展的RESTful API.md
│ ├── 31 学习Scala 进击大数据Spark生态圈.md
│ ├── 32 10小时入门大数据.md
│ ├── Java 架构师成长之路/
│ │ ├── 01 Java 单体应用.md
│ │ ├── 02 Java 微服务架构.md
│ │ ├── 03 Java 微服务实战.md
│ │ └── 04 Java 微服务架构 Dubbo 篇.md
│ ├── LEARN.md
│ ├── LEARNLIST.md
│ ├── LEARN_FULL.md
│ └── LEARN_RECORD.md
├── notes/
│ ├── DeepLearning/
│ │ ├── README.md
│ │ ├── assets/
│ │ │ └── README.md
│ │ ├── 深度学习入门课程.md
│ │ └── 深度学习初识.md
│ ├── DistributedSystem/
│ │ ├── 03 分布式通信-序列化.md
│ │ └── 04 分布式通信协议-http.md
│ ├── Docker.md
│ ├── Docker基础.md
│ ├── Docker实战.md
│ ├── EalsticSearch/
│ │ └── Untitled.md
│ ├── FastDFS.md
│ ├── Frontend/
│ │ ├── Angular.md
│ │ ├── README.md
│ │ ├── assets/
│ │ │ └── README.md
│ │ └── 前端知识体系.md
│ ├── Git.md
│ ├── Git命令速查.md
│ ├── Git工作流.md
│ ├── JavaArchitecture/
│ │ ├── 01-Java基础.md
│ │ ├── 02-Java集合框架.md
│ │ ├── 03-Java并发编程.md
│ │ ├── 04-Java-IO.md
│ │ ├── 05-Java虚拟机.md
│ │ ├── 06-Java设计模式.md
│ │ ├── 07-JavaWeb.md
│ │ ├── 08-系统架构.md
│ │ ├── Overview.md
│ │ └── assets/
│ │ └── 16002cfab99f86bc
│ ├── JavaWeb/
│ │ ├── Hibernate.md
│ │ ├── Mybatis.md
│ │ ├── Spring.md
│ │ └── 深入浅出IOC.md
│ ├── LEARNLIST.md
│ ├── Leetcode题解.md
│ ├── Linux.md
│ ├── Linux实战.md
│ ├── MachineLearning/
│ │ ├── README.md
│ │ └── assets/
│ │ └── README.md
│ ├── Memcached.md
│ ├── MicroService/
│ │ └── kafka/
│ │ ├── README.md
│ │ ├── kafka-tutorial-1_初识.md
│ │ ├── kafka-tutorial-2_单节点部署.md
│ │ ├── kafka-tutorial-3_集群化部署.md
│ │ ├── kafka-tutorial-4_架构深入.md
│ │ ├── kafka-tutorial-5_kafka-api.md
│ │ ├── kafka-tutorial-6_spring-kafka-api.md
│ │ └── kafka-tutorial-7_监控.md
│ ├── MySQL.md
│ ├── Nginx.md
│ ├── PostgreSQL.md
│ ├── Python/
│ │ ├── Python安装.md
│ │ ├── Python简介及基础语法.md
│ │ └── 流畅的Python/
│ │ ├── README.md
│ │ ├── python命名空间.md
│ │ ├── python字节码-补充内容.md
│ │ ├── python时间模块.md
│ │ ├── 上下文管理器和else块.md
│ │ ├── 使用asyncio包处理并发.md
│ │ ├── 使用future处理并发.md
│ │ ├── 使用一等函数实现设计模式.md
│ │ ├── 函数.md
│ │ ├── 函数装饰器和闭包.md
│ │ ├── 动态属性和特性.md
│ │ ├── 协程-补充内容.md
│ │ ├── 协程.md
│ │ ├── 可迭代的对象-迭代器和生成器.md
│ │ ├── 字典和集合.md
│ │ ├── 对象引用-可变性和垃圾回收.md
│ │ ├── 属性描述符.md
│ │ ├── 常见问题答疑.md
│ │ ├── 序列构成的数组.md
│ │ ├── 序列的修改-散列和切片.md
│ │ ├── 序幕.md
│ │ ├── 扩展内容.md
│ │ ├── 抽象类.md
│ │ ├── 文本和字节序列.md
│ │ ├── 正确重载运算符.md
│ │ ├── 符合Python风格的对象.md
│ │ ├── 类元编程.md
│ │ └── 类继承.md
│ ├── RESTful API.md
│ ├── Redis.md
│ ├── SQL.md
│ ├── SkillTree/
│ │ ├── assets/
│ │ │ ├── backend-skill-from-zero.xmind
│ │ │ └── backend-skill.xmind
│ │ └── backend-skill.md
│ ├── Socket.md
│ ├── SpringBoot/
│ │ └── README.md
│ ├── XP极限编程.md
│ ├── archives/
│ │ ├── 我的秋招之路.md
│ │ └── 手把手教你,搭建内网穿透服务.md
│ ├── assets/
│ │ ├── 20150924172800834
│ │ └── 20150924173757246
│ ├── data-structures-and-algorithms/
│ │ ├── LeetCode.md
│ │ ├── README.md
│ │ ├── leetcode/
│ │ │ └── Leetcode 307. 区域和检索 - 数组可修改.md
│ │ ├── 数据结构.md
│ │ └── 算法思想.md
│ ├── docs/
│ │ └── 如何给我的仓库贡献.md
│ ├── docsify/
│ │ ├── about/
│ │ │ ├── author.md
│ │ │ └── donate.md
│ │ ├── coverpage.md
│ │ ├── css/
│ │ │ └── main.css
│ │ ├── index.html
│ │ ├── js/
│ │ │ ├── .eslintrc.js
│ │ │ └── main.js
│ │ ├── navbar.md
│ │ ├── sidebar.md
│ │ └── unpkg/
│ │ ├── docsify/
│ │ │ └── lib/
│ │ │ └── plugins/
│ │ │ ├── emoji.js
│ │ │ └── search.js
│ │ ├── docsify-themeable/
│ │ │ └── dist/
│ │ │ └── css/
│ │ │ ├── theme-defaults.css
│ │ │ ├── theme-simple-dark.css
│ │ │ └── theme-simple.css
│ │ ├── gitalk/
│ │ │ └── dist/
│ │ │ └── gitalk.css
│ │ └── gotop/
│ │ └── jquery-2.1.0.js
│ ├── git-tutorial.md
│ ├── index.html
│ ├── introduction.md
│ ├── my_linux_cmd.md
│ ├── project/
│ │ └── README.md
│ ├── reference.md
│ ├── somecoolblog.md
│ ├── web应用开发标准流程.md
│ ├── 全栈开发神兵利器.md
│ ├── 分布式/
│ │ └── Zookeeper.md
│ ├── 分布式.md
│ ├── 分布式锁/
│ │ └── 分布式锁.md
│ ├── 分布式锁.md
│ ├── 大数据.md
│ ├── 如何选择自己的技术栈.md
│ ├── 开源贡献.md
│ ├── 微服务.md
│ ├── 技术交流群.md
│ ├── 技术点实践.md
│ ├── 持续集成.md
│ ├── 操作系统.md
│ ├── 数据结构.md
│ ├── 数据结构与算法.md
│ ├── 智力题.md
│ ├── 架构师成长之路.md
│ ├── 正则表达式.md
│ ├── 海量数据处理.md
│ ├── 网络安全.md
│ ├── 计算机网络.md
│ ├── 超简版面试清单.md
│ ├── 软件测试.md
│ ├── 面试话术.md
│ └── 项目实践与技术分析.md
└── others/
├── OVERVIEW.md
├── Overview_ulli.md
├── Skill-Tree.md
├── UPLOG.md
├── blog/
│ ├── 20180606 用别名(alias)创建你自己的命令.md
│ ├── 20180609 Spring Boot热部署.md
│ ├── 20180620 JWT API安全.md
│ ├── 20180621 20小时学会任何技能.md
│ └── 20180701 深入理解快速排序.md
├── book/
│ ├── Java程序员面试笔试宝典.md
│ └── 关键20小时,快速学会任何技能!.epub
├── devdoc/
│ ├── IntelliJ IDEA/
│ │ ├── debug技巧.md
│ │ └── lombok插件使用.md
│ ├── Java/
│ │ ├── HTTPS配置.md
│ │ ├── IDEA使用操作.md
│ │ ├── Java环境搭建.md
│ │ └── Spring Boot热部署.md
│ ├── MySQL/
│ │ └── mysql设置远程连接.md
│ ├── redis/
│ │ └── redis安装.md
│ ├── sublime/
│ │ └── sublime右键菜单设置.md
│ └── tools/
│ ├── 01 Navicat 工具破解说明.md
│ └── 02 Idea破解.md
├── emoji.md
├── interview/
│ ├── InterviewOneDay/
│ │ ├── 20180807 阿里云面经.md
│ │ ├── 20180810 招银网络科技.md
│ │ ├── 20180811 蘑菇街.md
│ │ ├── 20180813 京东.md
│ │ ├── 20180820 Java面试不相信眼泪.md
│ │ ├── 20180823 网易游戏2017暑期实习生面经 Java开发.md
│ │ ├── 20180823 网易考拉 java 凉面面经.md
│ │ ├── 20180823 聊聊C10K问题及解决方案.md
│ │ └── README.md
│ ├── Java面试经验贴.md
│ ├── TODOLIST.md
│ ├── interview-daily/
│ │ ├── 20180901 有道简单面经.md
│ │ ├── 20180902 金山云一二三面.md
│ │ └── 20180913 美团三面.md
│ ├── 秋招面经_重口味AC.md
│ └── 面经资源.md
├── pics_tag.md
└── reference/
└── 参考资料.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
*.js linguist-language=java
*.css linguist-language=java
*.html linguist-language=java
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: https://raw.githubusercontent.com/frank-lam/fullstack-tutorial/master/assets/wechat/wx-green.png
================================================
FILE: .travis.yml
================================================
sudo: required
script: bash ./assets/deploy/deploy.sh
branches:
only:
- master
notifications:
email: true
================================================
FILE: README.md
================================================
<div align="center"><img src="assets/logo-2021.svg" width="80%"/></div><br/>
| I | II | III | IV | V | VI | VII | VIII | IX | X | XI | XII |
| :--------------------------: | :-------------------: | :----------------------: | :---------------------: | :--------------: | :---------------: | :----------------------: | :----------------------: | :----------------------: | :----------------------: | :----------------------: | :----------------------: |
| 算法<br />[📝](#一数据结构与算法) | Java<br/>[☕️](#二java) | Python<br />[🐍](#三python) | 前端<br />[🔗](#四前端) | 数据库<br/>[💾](#五数据库) | 操作系统<br/>[💻](#六操作系统) | 网络通信<br/>[☁️](#七网络通信) | 分布式<br/>[📃](#八分布式) | 机器学习<br/> [🔍](#九机器学习) |工具<br/>[🔨](#十工具) |Learn<br />[📖](#learn-) |Talking<br />[💡](#talking-bulb) |
<div align="center">
<p>
✨✨✨
</p>
<p>
和 500+ 技术达人在线交流:
<a href="notes/技术交流群.md">🤟 快来吧,和大家一起技术互动交流</a>
</p>
<p>
『技术博客』:<a href="https://www.frankfeekr.cn">www.frankfeekr.cn</a> | 『开源贡献』:<a href="notes/开源贡献.md">⊱ 英雄招募令</a> | 『微信订阅号』:全栈开发社区
</p>
</div>
<div align="center"><img src="assets/zhishixingqiu.JPG" width="40%"/></div><br/>
🔥🔥🔥
欢迎光临 LinTools 开发者的在线导航: https://tools.frankfeekr.cn
如果你有更好的在线工具,[请点击留言](https://github.com/frank-lam/fullstack-tutorial/issues/65),持续更新!
## 前言
- [谈谈技术学习的一些方法论](https://www.frankfeekr.cn/2019/05/09/谈谈技术学习的一些方法论/)
在学习技术这条路上并不是一帆风顺,也一直在探索一条适合自己的学习方法。从一开始的技术小白,到现在还比较上道的老鸟,在这个过程中走了太多的弯路,想在这里和大家分享一些我的经历和学习方法。
- [如何选择自己的技术栈](https://www.frankfeekr.cn/2019/05/27/如何选择自己的技术栈/)
在编程的世界里,该如何选择自己的技术栈呢。学前端?学 APP 开发?对于 Java、C++、C#、Python、PHP 又如何选择呢?人工智能现如今这么火,是不是机器学习、深度学习更高级一些呢?那么程序员又如何修炼内功呢?
- [全栈开发神兵利器](notes/全栈开发神兵利器.md)
工欲善其事,必先利其器。这里我将推荐开发过程中的提效工具、开发利器、协作工具、文档技术等等。
- [XP 极限编程](notes/XP极限编程.md)
敏捷软件开发中可能是最富有成效的几种方法学之一
## 技能图谱
- [backend skill](notes/SkillTree/backend-skill.md)
后台开发技能图谱,从程序员的内功修炼到后台语言,分布式系统架构
## 一、数据结构与算法
- [数据结构与算法](notes/数据结构与算法.md)
排序算法、动态规划、递归、回溯法、贪心算法等
- [海量数据处理](notes/海量数据处理.md)
数据处理典型案例,逐渐更新
## 二、Java
- [Java 基础概念](notes/JavaArchitecture/01-Java基础.md)
基本概念、面向对象、关键字、基本数据类型与运算、字符串与数组、异常处理、Object 通用方法
- [Java 集合框架](notes/JavaArchitecture/02-Java集合框架.md)
数据结构 & 源码分析:ArrayList、Vector、LinkedList、HashMap、ConcurrentHashMap、HashSet、LinkedHashSet and LinkedHashMap
- [Java 并发编程](notes/JavaArchitecture/03-Java并发编程.md)
线程状态、线程机制、线程通信、J.U.C 组件、JMM、线程安全、锁优化
- [Java I/O](notes/JavaArchitecture/04-Java-IO.md)
磁盘操作、字节操作、字符操作、对象操作、网络操作、NIO
- [Java 虚拟机](notes/JavaArchitecture/05-Java虚拟机.md)
运行时数据区域、垃圾收集、内存分配机制、类加载机制、性能调优监控工具
- [Java 设计模式](notes/JavaArchitecture/06-Java设计模式.md)
Java 常见的 10 余种设计模式,全 23 种设计模式逐步更新
- [Java Web](notes/JavaArchitecture/07-JavaWeb.md)
包含 Servlet & JSP、Spring、SpringMVC、Mybatis、Hibernate、Structs2 核心思想,如 IOC、AOP 等思想。SSM 更详细请转向:[Spring](notes/JavaWeb/Spring.md) | [SpringMVC](https://github.com/frank-lam/SpringMVC_MyBatis_Learning) | [MyBatis](https://github.com/frank-lam/SpringMVC_MyBatis_Learning)
## 三、Python
- [Python 语言基础](notes/Python/Python简介及基础语法.md)
## 四、前端
- [前端知识体系](notes/Frontend/前端知识体系.md)
- [Angular 基础知识](notes/Frontend/Angular.md)
- [ES6+ 语法全解析](https://notes.frankfeekr.cn/docs/frontend/es6/%E9%A1%B9%E7%9B%AE%E5%87%86%E5%A4%87/%E5%89%8D%E8%A8%80)
<details>
<summary>TODO LIST</summary>
- HTML5
- CSS3
- CSS 预处理
- sass(scss)
- less
- stylus
- CSS 框架
- BootStarp
- LayUI
- JavaScript
基础语法、进阶、ES6
- JavaScript 框架
- Vue
- React
- Angular
- jQuery
- Node
常用 api、对象池、异常处理、进程通信、高并发
- 静态类型检查
- TypeScript
- Flow
- 构建/打包工具
- webpack
- gulp
- rollup
- 包管理工具
- npm
- yarn
- 服务端渲染
- koa2
- express
- nuxt
- next
</details>
## 五、数据库
- [MySQL](notes/MySQL.md)
存储引擎、事务隔离级别、索引、主从复制
- [Redis](notes/Redis.md)
Redis 核心知识
- [SQL](notes/SQL.md)
常用 SQL 语句
- [PostgreSQL](notes/PostgreSQL.md)
一个开源的关系数据库,是从伯克利写的 POSTGRES 软件包发展而来的
- [InfluxDB](https://www.frankfeekr.cn/2019/07/24/influxdb-tutorial-start/)
玩转时序数据库
## 六、操作系统
- [操作系统原理](notes/操作系统.md)
进程管理、死锁、内存管理、磁盘设备
- [Linux](notes/Linux.md)
基础核心概念、常用命令使用
## 七、网络通信
- [计算机网络](notes/计算机网络.md)
传输层、应用层(HTTP)、网络层、网络安全
- [RESTful API](notes/RESTful%20API.md)
软件架构风格、格设计原则和约束条件
- [Web网络安全](notes/网络安全.md)
web前后端漏洞分析与防御,XSS 攻击、CSRF 攻击、DDoS 攻击、SQL 注入
## 八、分布式
- [Docker](notes/Docker基础.md)
容器化引擎服务
- [微服务](notes/微服务.md)
微服务简介、API 网关、服务注册发现、服务通信
- [Zookeeper](notes/分布式/Zookeeper.md)
分布式协调服务,服务注册发现
- [Kafka](notes/MicroService/kafka/README.md)
深入浅出 Kafka,将用最极简的语言带你走进 Kafka 的消息中间件世界
【说明】**分布式专题** 笔者也在学习中,这里列举了一些技能列表,笔者将局部更新。敬请期待
<details>
<summary>TODO LIST</summary>
- Kubernetes(k8s)
容器化部署,管理云平台中多个主机上的容器化的应用
- 云计算
SaaS(软件即服务) 、PaaS(平台即服务) 、IaaS(基础架构即服务)
- Zookeeper
分布式协调服务,服务注册发现
- Dubbo、Thrift(RPC 框架)
分布式服务治理
- 分布式事务解决方案
- ActiveMQ、Kafka、RabbitMQ
分布式消息通信
- 熔断,限流,降级机制
- Redis
分布式缓存
- Mycat
数据库路由
- Nginx
反向代理
- Tomcat
Web Server 服务
- DevOps
自动化运维,持续集成、持续交付、持续部署
- 分布式锁
基于 Redis、MySQL、Zookeeper 的分布式锁实现
- FastDFS
轻量级分布式文件管理系统
- Go
并发的、带垃圾回收的、快速编译的语言
</details>
## 九、机器学习
- [深度学习初识](notes/DeepLearning/深度学习初识.md)
- 经典机器学习算法
K 近邻算法、线性回归、梯度下降法、逻辑回归、支持向量机、决策树、集成学习
## 十、工具
- [Git](notes/git-tutorial.md)
学习指引,将用最极简的语言带你进入 Git 版本控制的世界
- [Git 工作流](notes/Git工作流.md)
集中式工作流,功能分支工作流, GitFlow 工作流,Forking 工作流,Pull Requests
- [正则表达式](notes/正则表达式.md)
常见符号含义,速查表
- [手把手教你搭建内网穿透服务](https://github.com/frank-lam/lanproxy-nat)
基于 lanproxy 穿透服务,为你定了一键启动的服务端和客户端 Docker 镜像
- [基于 SpringBoot & IDEA & JRebel 玩转远程热部署与远程调试](https://www.frankfeekr.cn/2019/07/17/springboot-idea-jrebel-hotswap/)
手把手带你玩转,远程调试与远程热部署
- [什么是 TDD 及常见的测试方法](notes/软件测试.md)
## Learn 📖
- [LEARN_LIST](notes/LEARNLIST.md)
包含阅读清单,学习课程两部分
- [web应用开发标准流程](notes/web应用开发标准流程.md)
## Talking :bulb:
本仓库致力于成为一个全栈开发爱好者的学习指南,给初学者一个更明确的学习方向,同时也是对自己技能的强化和巩固。在架构师这条路上,希望和大家一起成长,帮助更多的计算机爱好者能够有一个明确的学习路径。持续不间断的维护本仓库,也欢迎有更多的极客们加入。
都说好记性不如烂笔头,定期的学习和整理必然对学习巩固有所帮助,这里通过索引的方式对全栈开发技术做一个系统分类,方便随时巩固和学习,当然还有面试。在学习这条路上难免会有很多盲点和学不完的知识。有道无术,术尚可求,掌握好思维能力才能应对千变万化的技术。不要把大脑当成硬盘,也不要做高速运转的 CPU,而修行自己的大脑成为一个搜索引擎,学会分析解决问题。
Since 20,May,2018
## Reference
个人的能力有限,在编写的过程中引用了诸多优秀的 GitHub 仓库。本项目的启发来自 [@CyC2018](https://github.com/CyC2018) 的学习笔记,是一个非常优秀的开源项目,在本仓库中部分内容引用文字和图例;引用了 [@计算所的小鼠标](https://github.com/CarpenterLee) 中对于 JCF 的源码分析和理解;引用了 [阿里面试题总结](https://www.nowcoder.com/discuss/5949) 中全部的面试题,并对面经进行了整理勘误,并进行了知识拓展和修改;引用了 [牛客网](https://www.nowcoder.com) 上的面试经验贴。也引用了知乎上的热门回答和优秀博客的回答。在这里特别鸣谢,我将每篇文章中做外链引用说明。
文中我也推荐了学习的书籍和学习课程,都将附着上最高清、最形象的配图进行讲解。在文中的配图都来自自己绘制的、博客、Github、PDF书籍等等,这里没法一一感谢,谢谢你们。
推荐一些优秀的开源项目,供大家参考,[reference](notes/reference.md)。
## Contributors
Thank you to all the people who already contributed to fullstack-tutorial !
Please make sure to read the [Contributing Guide/如何给我的仓库贡献](notes/docs/如何给我的仓库贡献.md) before making a pull request.
<a href="https://github.com/frank-lam/fullstack-tutorial/graphs/contributors"><img src="https://opencollective.com/fullstack-tutorial/contributors.svg?width=890&button=false" /></a>
## Stargazers over time

## License
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
Copyright (c) 2021-present, Frank Lam
## 关于作者 :boy:
<div align="center">
<p>
『作者简介』:<a href="https://www.frankfeekr.cn/author">https://www.frankfeekr.cn/author</a>
</p>
</div>
<div align="center">
<p>
在颠覆世界的同时,也要好好关照自己。
</p>
<a target="_blank" href="https://frankfeekr.cn" rel="nofollow"><img src="https://img.shields.io/badge/BLOG-frankfeekr.cn-blue.svg" alt="BLOG" data-canonical-src="" style="max-width:100%;"></a>
<a target="_blank" href="mailto:frank_lin@whu.edu.cn" rel="nofollow"><img src="https://img.shields.io/badge/Email-frank__lin@whu.edu.cn-lightgrey.svg" alt="邮箱" data-canonical-src="" style="max-width:100%;"></a>
<a target="_blank" href="https://jq.qq.com/?_wv=1027&k=593WvX0" rel="nofollow" ><img src="https://img.shields.io/badge/QQ群-862619503-green.svg" alt="QQ群" data-canonical-src="" style="max-width:100%;"></a>
<br/><br/>
<p>
from zero to hero.
</p>
</div>
<div align="center"> <img src="assets/wechat/wx-green.png" width="70%"/></div>
================================================
FILE: assets/deploy/deploy.sh
================================================
#!/usr/bin/env sh
# 确保脚本抛出遇到的错误
set -e
rm gh-pages -rf; mkdir gh-pages; cp -r notes/* gh-pages/;
cd gh-pages;
# 将子目录的所有图片全部复制到文档根目录中,解决docsify图片索引不到的问题
rm assets/ -rf
mkdir assets
rm pics/ -rf
mkdir pics
for f in $(find ../notes/ -type f -print | grep assets)
do
cp $f ./assets
done
for f in $(find ../notes/ -type f -print | grep pics)
do
cp $f ./pics
done
# 进入生成的文件夹
#创建.nojekyll 防止Github Pages build错误
touch .nojekyll
git init
git add -A
git commit -m 'deploy'
git push -f "https://${GH_TOKEN}@github.com/frank-lam/fullstack-tutorial.git" master:gh-pages
cd -
================================================
FILE: course/01 玩转数据结构.md
================================================
## 刘宇波《玩转数据结构》学习记录
| 章节 | 记录 |
| ------------------------------------------- | ---- |
| **第1章 欢迎学习《玩转数据结构》** | |
| 1-1 欢迎学习《玩转数据结构》 | |
| 1-2 学习数据结构(和算法)到底有没有用? | |
| 1-3 关于课程学习的更多注意事项 | |
| 1-4 课程编程环境搭建 | |
| | |
| **第2章 不要小瞧数组** | |
| 2-1 使用Java中的数组 | |
| 2-2 二次封装属于我们自己的数组 | |
| 2-3 向数组中添加元素 | |
| 2-4 数组中查询元素和修改元素 | |
| 2-5 包含,搜索和删除 | |
| 2-6 使用泛型 | |
| 2-7 动态数组 | |
| 2-8 简单的复杂度分析 | |
| 2-9 均摊复杂度和防止复杂度的震荡 | |
| | |
| **第3章 栈和队列** | |
| 3-1 栈和栈的应用:撤销操作和系统栈 | 5/21 |
| 3-2 栈的基本实现 | 5/21 |
| 3-3 栈的另一个应用:括号匹配 | 5/21 |
| 3-4 关于Leetcode的更多说明 | 5/21 |
| 3-5 数组队列 | 5/21 |
| 3-6 循环队列 | 5/21 |
| 3-7 循环队列的实现 | 5/21 |
| 3-8 数组队列和循环队列的比较 | 5/21 |
| | |
| **第4章 最基础的动态数据结构:链表** | |
| 4-1 什么是链表 | |
| 4-2 在链表中添加元素 | |
| 4-3 使用链表的虚拟头结点 | |
| 4-4 链表的遍历,查询和修改 | |
| 4-5 从链表中删除元素 | |
| 4-6 使用链表实现栈 | |
| 4-7 带有尾指针的链表:使用链表实现队列 | |
| | |
| **第5章 链表和递归** | |
| 5-1 Leetcode中和链表相关的问题 | |
| 5-2 测试自己的Leetcode链表代码 | |
| 5-3 递归基础与递归的宏观语意 | |
| 5-4 链表的天然递归结构性质 | |
| 5-5 递归运行的机制:递归的微观解读 | |
| 5-6 递归算法的调试 | |
| 5-7 更多和链表相关的问题 | |
| | |
| **第6章 二分搜索树** | |
| 6-1 为什么要研究树结构 | 6/29 |
| 6-2 二分搜索树基础 | 6/29 |
| 6-3 向二分搜索树中添加元素 | 6/29 |
| 6-4 改进添加操作:深入理解递归终止条件 | 6/30 |
| 6-5 二分搜索树的查询操作 | 6/30 |
| 6-6 二分搜索树的前序遍历 | 6/30 |
| 6-7 二分搜索树的中序遍历和后序遍历 | 6/30 |
| 6-8 深入理解二分搜索树的前中后序遍历 | 6/30 |
| 6-9 二分搜索树前序遍历的非递归实现——**通过栈实现** | 6/30 |
| 6-10 二分搜索树的层序遍历——**通过队列实现** | 6/30 |
| 6-11 删除二分搜索树的最大元素和最小元素 | 6/30 |
| 6-12 删除二分搜索树的任意元素 | 6/30 |
| 6-13 更多二分搜索树相关话题 | 6/30 |
| | |
| **第7章 集合和映射** | |
| 7-1 集合基础和基于二分搜索树的集合实现 | |
| 7-2 基于链表的集合实现 | |
| 7-3 集合类的复杂度分析 | |
| 7-4 _Leetcode中的集合问题和更多集合相关问题 | |
| 7-5 映射基础 | |
| 7-6 基于链表的映射实现 | |
| 7-7 基于二分搜索树的映射实现 | |
| 7-8 映射的复杂度分析和更多映射相关问题 | |
| 7-9 Leetcode上更多集合和映射的问题 | |
| | |
| **第8章 优先队列和堆** | |
| 8-1 什么是优先队列 | |
| 8-2 堆的基础表示 | |
| 8-3 向堆中添加元素和Sift Up | |
| 8-4 从堆中取出元素和Sift Down | |
| 8-5 Heapify 和 Replace | |
| 8-6 基于堆的优先队列 | |
| 8-7 Leetcode上优先队列相关问题 | |
| 8-8 Java中的PriorityQueue | |
| 8-9 和堆相关的更多话题和广义队列 | |
| ||
| **第9章 线段树** ||
| 9-1 什么是线段树 ||
| 9-2 线段树基础表示 ||
| 9-3 创建线段树 ||
| 9-4 线段树中的区间查询 ||
| 9-5 Leetcode上线段树相关的问题 ||
| 9-6 线段树中的更新操作 ||
| 9-7 更多线段树相关的话题 ||
| ||
| **第10章 Trie** ||
| 10-1 什么是Trie字典树 ||
| 10-2 Trie字典树基础 ||
| 10-3 Trie字典树的查询 ||
| 10-4 Trie字典树的前缀查询 ||
| 10-5 Trie字典树和简单的模式匹配 ||
| 10-6 Trie字典树和字符串映射 ||
| 10-7 更多和Trie字典树相关的话题 ||
| ||
| **第11章 并查集** ||
| 11-1 什么是并查集 ||
| 11-2 Quick Find ||
| 11-3 Quick Union ||
| 11-4 基于size的优化 ||
| 11-5 基于rank的优化 ||
| 11-6 路径压缩 ||
| 11-7 更多和并查集相关的话题 ||
| ||
| **第12章 AVL** ||
| 12-1 平衡树和AVL ||
| 12-2 计算节点的高度和平衡因子 ||
| 12-3 检查二分搜索树性质和平衡性 ||
| 12-4 旋转操作的基本原理 ||
| 12-5 左旋转和右旋转的实现 ||
| 12-6 LR 和 RL ||
| 12-7 从AVL树中删除元素 ||
| 12-8 基于AVL树的集合和映射 ||
| | |
| **第13章 红黑树** | |
| 13-1 红黑树与2-3树 | |
| 13-2 2-3树的绝对平衡性 | |
| 13-3 红黑树与2-3树的等价性 | |
| 13-4 红黑树的基本性质和复杂度分析 | |
| 13-5 保持根节点为黑色和左旋转 | |
| 13-6 颜色翻转和右旋转 | |
| 13-7 红黑树中添加新元素 | |
| 13-8 红黑树的性能测试 | |
| 13-9 更多和红黑树相关的话题 | |
| 13-10 对于红黑树,任何不平衡都会在三次旋转内解决? | |
| | |
| **第14章 哈希表** | |
| 14-1 哈希表基础 | |
| 14-2 哈希函数的设计 | |
| 14-3 Java中的 hashCode 方法 | |
| 14-4 链地址法 Seperate Chaining | |
| 14-5 实现属于我们自己的哈希表 | |
| 14-6 哈希表的动态空间处理与复杂度分析。 | |
| 14-7 哈希表更复杂的动态空间处理方法 | |
| 14-8 更多哈希冲突的处理方法 | |
| | |
| **第15章 结尾语** | |
| 15-1 更广阔的数据结构的世界,大家加油! | |
**2018年7月10日完结**
================================================
FILE: course/02 玩转算法面试.md
================================================
## 刘宇波《玩转算法面试》学习记录
| 章节 | 记录 |
| ------------------------------------------------------------ | ---- |
| **第1章 算法面试到底是什么鬼?** | |
| 1-1 算法面试不仅仅是正确的回答问题 | |
| 1-2 算法面试只是面试的一部分 | |
| 1-3 如何准备算法面试 | |
| 1-4 如何回答算法面试问题 | |
| | |
| **第2章 面试中的复杂度分析** | |
| 2-1 究竟什么是大O(Big O) | |
| 2-2 对数据规模有一个概念 | |
| 2-3 简单的复杂度分析 | |
| 2-4 亲自试验自己算法的时间复杂度 | |
| 2-5 递归算法的复杂度分析 | |
| 2-6 均摊时间复杂度分析(Amortized Time Analysis) | |
| 2-7 避免复杂度的震荡 | |
| | |
| **第3章 数组中的问题其实最常见** | |
| 3-1 从二分查找法看如何写出正确的程序 | |
| 3-2 改变变量定义,依然可以写出正确的算法 | |
| 3-3 在LeetCode上解决第一个问题 Move Zeros | |
| 3-4 即使简单的问题,也有很多优化的思路 | |
| 3-5 三路快排partition思路的应用 Sort Color | |
| 3-6 对撞指针 Two Sum II - Input Array is Sorted | |
| 3-7 滑动窗口 Minimum Size Subarray Sum | |
| 3-8 在滑动窗口中做记录 Longest Substring Without Repeating Characters | |
| | |
| **第4章 查找表相关问题** | |
| 4-1 set的使用 Intersection of Two Arrays | |
| 4-2 map的使用 Intersection of Two Arrays II | |
| 4-3 set和map不同底层实现的区别 | |
| 4-4 使用查找表的经典问题 Two Sum | |
| 4-5 灵活选择键值 4Sum II | |
| 4-6 灵活选择键值 Number of Boomerangs | |
| 4-7 查找表和滑动窗口 Contain Duplicate II | |
| 4-8 二分搜索树底层实现的顺序性 Contain Duplicate III | |
| | |
| **第5章 在链表中穿针引线** | |
| 5-1 链表,在节点间穿针引线 Reverse Linked List | |
| 5-2 测试你的链表程序 | |
| 5-3 设立链表的虚拟头结点 Remove Linked List Elements | |
| 5-4 复杂的穿针引线 Swap Nodes in Pairs | |
| 5-5 不仅仅是穿针引线 Delete Node in a Linked List | |
| 5-6 链表与双指针 Remove Nth Node Form End of List | |
| | |
| **第6章 栈,队列,优先队列** | |
| 6-1 栈的基础应用 Valid Parentheses | |
| 6-2 栈和递归的紧密关系 Binary Tree Preorder, Inorder and Postorder Traversal | |
| 6-3 运用栈模拟递归 | |
| 6-4 队列的典型应用 Binary Tree Level Order Traversal | |
| 6-5 BFS和图的最短路径 Perfect Squares | |
| 6-6 优先队列 | |
| 6-7 优先队列相关的算法问题 Top K Frequent Elements | |
| | |
| **第7章 二叉树和递归** | |
| 7-1 二叉树天然的递归结构 | |
| 7-2 一个简单的二叉树问题引发的血案 Invert Binary Tree | |
| 7-3 注意递归的终止条件 Path Sum | |
| 7-4 定义递归问题 Binary Tree Path | |
| 7-5 稍复杂的递归逻辑 Path Sum III | |
| 7-6 二分搜索树中的问题 Lowest Common Ancestor of a Binary Search Tree | |
| | |
| **第8章 递归和回溯法** | |
| 8-1 树形问题 Letter Combinations of a Phone Number | 7/19 |
| 8-2 什么是回溯 | |
| 8-3 排列问题 Permutations | |
| 8-4 组合问题 Combinations | |
| 8-5 回溯法解决组合问题的优化 | |
| 8-6 二维平面上的回溯法 Word Search | |
| 8-7 floodfill算法,一类经典问题 Number of Islands- | |
| 8-8 回溯法是经典人工智能的基础 N Queens | |
| | |
| **第9章 动态规划基础** | |
| 9-1 什么是动态规划 | |
| 9-2 第一个动态规划问题 Climbing Stairs | |
| 9-3 发现重叠子问题 Integer Break | |
| 9-4 状态的定义和状态转移 House Robber | |
| 9-5 0-1背包问题 | |
| 9-6 0-1背包问题的优化和变种 | |
| 9-7 面试中的0-1背包问题 Partition Equal Subset Sum | |
| 9-8 LIS问题 Longest Increasing Subsequence | |
| 9-9 LCS,最短路,求动态规划的具体解以及更多 | |
| | |
| **第10章 贪心算法** | |
| 10-1 贪心基础 Assign Cookies | |
| 10-2 贪心算法与动态规划的关系 Non-overlapping Intervals | |
| 10-3 贪心选择性质的证明 | |
| | |
| **第11章 课程结语** | |
| 11-1 结语 | |
================================================
FILE: course/03 算法与数据结构.md
================================================
## 刘宇波《算法与数据结构》学习记录
| 章节 | 记录 |
| ------------------------------------------------------------ | ---- |
| **第1章 当我们在讨论算法的时候,我们在讨论什么?** ||
| 1-1 我们究竟为什么要学习算法 ||
| 1-2 课程介绍 ||
| ||
| **第2章 排序基础** ||
| 2-1 选择排序法 ||
| 2-2 使用模板(泛型)编写算法 ||
| 2-3 随机生成算法测试用例 ||
| 2-4 测试算法的性能 ||
| 2-5 插入排序法 ||
| 2-6 插入排序法的改进 ||
| 2-7 更多关于O(n*2)排序算法的思考 ||
| ||
| **第3章 高级排序问题** ||
| 3-1 归并排序法 ||
| 3-2 归并排序法的实现 ||
| 3-3 归并排序法的优化 ||
| 3-4 自底向上的归并排序算法 ||
| 3-5 快速排序法 ||
| 3-6 随机化快速排序法 ||
| 3-7 双路快速排序法 ||
| 3-8 三路快速排序法 ||
| 3-9 归并排序和快速排序的衍生问题 ||
| ||
| **第4章 堆和堆排序** ||
| 4-1 为什么使用堆 ||
| 4-2 堆的基本存储 ||
| 4-3 Shift Up ||
| 4-4 Shift Down ||
| 4-5 基础堆排序和Heapify ||
| 4-6 优化的堆排序 ||
| 4-7 排序算法总结 ||
| 4-8 索引堆 ||
| 4-9 索引堆的优化 ||
| 4-10 和堆相关的其他问题 ||
| ||
| **第5章 二分搜索树** ||
| 5-1 二分查找法 ||
| 5-2 二分搜索树基础 ||
| 5-3 二分搜索树的节点插入 ||
| 5-4 二分搜索书的查找 ||
| 5-5 二分搜索树的遍历(深度优先遍历) ||
| 5-6 层序遍历(广度优先遍历) ||
| 5-7 删除最大值,最小值 ||
| 5-8 二分搜索树的删除 ||
| 5-9 二分搜索树的顺序性 ||
| 5-10 二分搜索树的局限性 ||
| 5-11 树形问题和更多树。 ||
| ||
| **第6章 并查集** ||
| 6-1 并查集基础 ||
| 6-2 Qucik Find ||
| 6-3 Quick Union ||
| 6-4 基于size的优化 ||
| 6-5 基于rank的优化 ||
| 6-6 路径压缩 ||
| ||
| **第7章 图的基础** ||
| 7-1 图论基础 ||
| 7-2 图的表示 ||
| 7-3 相邻点迭代器 ||
| 7-4 图的算法框架 ||
| 7-5 深度优先遍历和联通分量 ||
| 7-6 寻路 ||
| 7-7 广度优先遍历和最短路径 ||
| 7-8 迷宫生成,ps抠图--更多无权图的应用 ||
| ||
| **第8章 最小生成树** ||
| 8-1 有权图 ||
| 8-2 最小生成树问题和切分定理 ||
| 8-3 Prim算法的第一个实现 ||
| 8-4 Prim算法的优化 ||
| 8-5 优化后的Prim算法的实现 ||
| 8-6 Krusk算法 ||
| 8-7 最小生成树算法的思考 ||
| ||
| **第9章 最短路径** ||
| 9-1 最短路径问题和松弛操作 ||
| 9-2 Dijkstra算法的思想 ||
| 9-3 实现Dijkstra算法 ||
| 9-4 负权边和Bellman-Ford算法 ||
| 9-5 实现Bellman-Ford算法 ||
| 9-6 更多和最短路径相关的思考 ||
| ||
| **第10章 结束语** ||
| 10-1 总结,算法思想,大家加油! ||
================================================
FILE: course/04 Nginx从入门到实战.md
================================================
## 《Nginx从入门到实践》学习记录
February 2018 Web Server Survey | Netcraft
https://news.netcraft.com/archives/2018/02/13/february-2018-web-server-survey.html
| 章节 | 记录 |
| ------------------------------------------------------------ | ---- |
| **第1章 课程前言** | |
| 1-1 课程介绍 | |
| 1-2 学习环境准备 | |
| | |
| **第2章 基础篇** | |
| 2-1 什么是Nginx | |
| 2-2 常见的中间件服务 | |
| 2-3 Nginx特性_实现优点1 | |
| 2-4 Nginx特性_实现优点2 | |
| 2-5 Nginx特性_实现优点3 | |
| 2-6 Nginx特性_实现优点4 | |
| 2-7 Nginx快速安装 | |
| 2-8 Nginx的目录和配置语法_Nginx安装目录 | |
| 2-9 Nginx的目录和配置语法_Nginx编译配置参数 | |
| 2-10 Nginx的目录和配置语法_默认配置语法 | |
| 2-11 Nginx的目录和配置语法_默认配置与默认站点启动 | |
| 2-12 HTTP请求 | |
| 2-13 Nginx日志_log_format1 | |
| 2-14 Nginx日志_log_format2 | |
| 2-15 Nginx模块讲解_模块介绍 | |
| 2-16 Nginx模块讲解_sub_status | |
| 2-17 Nginx模块讲解_random_index | |
| 2-18 Nginx模块讲解_sub_module | |
| 2-19 Nginx模块讲解_sub_module配置演示 | |
| 2-20 Nginx的请求限制_配置语法与原理1 | |
| 2-21 Nginx的请求限制_配置语法与原理2 | |
| 2-22 Nginx的请求限制_配置语法与原理3 | |
| 2-23 Nginx的访问控制_介绍实现访问控制的基本方式 | |
| 2-24 Nginx的访问控制—access_module配置语法介绍 | |
| 2-25 Nginx的访问控制—access_module配置 | |
| 2-26 Nginx的访问控制—access_module局限性 | |
| 2-27 Nginx的访问控制—auth_basic_module配置 | |
| 2-28 Nginx的访问控制—auth_basic_module局限性 | |
| | |
| **第3章 场景实践篇** | |
| 3-1 场景实践篇内容介绍 | |
| 3-2 Nginx作为静态资源web服务_静态资源类型 | |
| 3-3 Nginx作为静态资源web服务_CDN场景 | |
| 3-4 Nginx作为静态资源web服务_配置语法 | |
| 3-5 Nginx作为静态资源web服务_场景演示 | |
| 3-6 Nginx作为静态资源web服务_浏览器缓存原理 | |
| 3-7 Nginx作为静态资源web服务_浏览器缓存场景演示 | |
| 3-8 Nginx作为静态资源web服务_跨站访问 | |
| 3-9 Nginx作为静态资源web服务_跨域访问场景配置 | |
| 3-10 Nginx作为静态资源web服务_防盗链(1) | |
| 3-11 Nginx作为静态资源web服务_防盗链(2) | |
| 3-12 Nginx作为代理服务_代理服务 | |
| 3-13 Nginx作为代理服务_配置语法及反向代理场景 | |
| 3-14 Nginx作为代理服务_正向代理配置场景(1) | |
| 3-15 Nginx作为代理服务_正向代理配置场景(2) | |
| 3-16 Nginx作为代理服务_代理配置语法补充 | |
| 3-17 Nginx作为代理服务_代理补充配置和规范 | |
| 3-18 Nginx作为负载均衡服务_负载均衡与Nginx | |
| 3-19 Nginx作为负载均衡服务_配置语法 | |
| 3-20 Nginx作为负载均衡服务_配置场景 | |
| 3-21 Nginx作为负载均衡服务_server参数讲解 | |
| 3-22 Nginx作为负载均衡服务_backup状态演示 | |
| 3-23 Nginx作为负载均衡服务_轮询策略与加权轮询 | |
| 3-24 Nginx作为负载均衡服务_负载均衡策略ip_hash方式 | |
| 3-25 Nginx作为负载均衡服务_负载均衡策略url_hash策略 | |
| 3-26 Nginx作为缓存服务_Nginx作为缓存服务 | |
| 3-27 Nginx作为缓存服务_缓存服务配置语法 | |
| 3-28 Nginx作为缓存服务_场景配置演示 | |
| 3-29 Nginx作为缓存服务_场景配置补充说明 | |
| 3-30 Nginx作为缓存服务_分片请求 | |
| | |
| **第4章 深度学习篇** | |
| 4-1 Nginx动静分离_动静分离场景演示 | |
| 4-2 Nginx动静分离_动静分离场景演示(1) | |
| 4-3 Nginx动静分离_动静分离场景演示(2) | |
| 4-4 Rewrite规则_rewrite规则作用 | |
| 4-5 Rewrite规则_rewrite配置语法 | |
| 4-6 Rewrite规则_rewrite正则表达式 | |
| 4-7 Rewrite规则_rewrite规则中的flag | |
| 4-8 Rewrite规则_redirect和permanent区别 | |
| 4-9 Rewrite规则_rewrite规则场景(1) | |
| 4-10 Rewrite规则_rewrite规则场景(2) | |
| 4-11 Rewrite规则_rewrite规则书写 | |
| 4-12 Nginx进阶高级模块_secure_link模块作用原理 | |
| 4-13 Nginx进阶高级模块_secure_link模块实现请求资源验证 | |
| 4-14 Nginx进阶高级模块_Geoip读取地域信息模块介绍 | |
| 4-15 Nginx进阶高级模块_Geoip读取地域信息场景展示 | |
| 4-16 基于Nginx的HTTPS服务_HTTPS原理和作用1 | |
| 4-17 基于Nginx的HTTPS服务_HTTPS原理和作用2 | |
| 4-18 基于Nginx的HTTPS服务_证书签名生成CA证书 | |
| 4-19 基于Nginx的HTTPS服务_证书签名生成和Nginx的HTTPS服务场景演示1 | |
| 4-20 基于Nginx的HTTPS服务_证书签名生成和Nginx的HTTPS服务场景演示2 | |
| 4-21 基于Nginx的HTTPS服务_实战场景配置苹果要求的openssl后台HTTPS服务1 | |
| 4-22 基于Nginx的HTTPS服务_实战场景配置苹果要求的openssl后台HTTPS服务2 | |
| 4-23 基于Nginx的HTTPS服务_实战场景配置苹果要求的openssl后台HTTPS服务3 | |
| 4-24 基于Nginx的HTTPS服务_HTTPS服务优化 | |
| 4-25 Nginx与Lua的开发_Nginx与Lua特性与优势 | |
| 4-26 Nginx与Lua的开发_Lua基础开发语法1 | |
| 4-27 Nginx与Lua的开发_Lua基础开发语法2 | |
| 4-28 Nginx与Lua的开发_Nginx与Lua的开发环境 | |
| 4-29 Nginx与Lua的开发_Nginx调用Lua的指令及Nginx的Luaapi接口 | |
| 4-30 Nginx与Lua的开发_实战场景灰度发布 | |
| 4-31 Nginx与Lua的开发_实战场景灰度发布场景演示1 | |
| 4-32 Nginx与Lua的开发_实战场景灰度发布场景演示2 | |
| 4-33 Nginx与Lua的开发_实战场景灰度发布场景演示3 | |
| 4-34 Nginx与Lua的开发_实战场景灰度发布场景演示4 | |
| | |
| **第5章 Nginx架构篇** | |
| 5-1 Nginx常见问题_架构篇介绍 | |
| 5-2 Nginx常见问题__多个server_name中虚拟主机读取的优先级 | |
| 5-3 Nginx常见问题_多个location匹配的优先级1 | |
| 5-4 Nginx常见问题_多个location匹配的优先级2 | |
| 5-5 Nginx常见问题_try_files使用 | |
| 5-6 Nginx常见问题_alias和root的使用区别 | |
| 5-7 Nginx常见问题_如何获取用户真实的ip信息 | |
| 5-8 Nginx常见问题_Nginx中常见错误码 | |
| 5-9 Nginx的性能优化_内容介绍及性能优化考虑 | |
| 5-10 Nginx的性能优化_ab压测工具 | |
| 5-11 Nginx的性能优化_ab压测工具1 | |
| 5-12 Nginx的性能优化_ab压测工具2 | |
| 5-13 Nginx的性能优化_ab压测工具3 | |
| 5-14 Nginx的性能优化_系统与Nginx性能优化 | |
| 5-15 Nginx的性能优化_文件句柄设置 | |
| 5-16 Nginx的性能优化_CPU亲和配置1 | |
| 5-17 Nginx的性能优化_CPU亲和配置2 | |
| 5-18 Nginx的性能优化_Nginx通用配置优化 | |
| 5-19 Nginx安全_基于Nginx的安全章节内容介绍 | |
| 5-20 Nginx安全_恶意行为控制手段 | |
| 5-21 Nginx安全_攻击手段之暴力破解 | |
| 5-22 Nginx安全_文件上传漏洞 | |
| 5-23 Nginx安全_SQL注入 | |
| 5-24 Nginx安全_SQL注入场景说明 | |
| 5-25 Nginx安全_场景准备mariadb和lnmp环境 | |
| 5-26 Nginx安全_模拟SQL注入场景 | |
| 5-27 Nginx安全_Nginx+LUA防火墙功能 | |
| 5-28 Nginx安全_Nginx+LUA防火墙防sql注入场景演示 | |
| 5-29 Nginx安全_复杂的访问攻击中CC攻击方式 | |
| 5-30 Nginx安全_Nginx版本更新和本身漏洞 | |
| 5-31 Nginx架构总结_静态资源服务的功能设计 | |
| 5-32 Nginx架构总结_Nginx作为代理服务的需求 | |
| 5-33 Nginx架构总结_需求设计评估 | |
| 5-34 完结散花 | |
================================================
FILE: course/05 Java并发编程与高并发解决方案.md
================================================
## 《Java并发编程与高并发解决方案》学习记录
时长:12小时30分钟
| 章节 | 记录 |
| ------------------------------------------ | ---- |
| **第1章 课程准备** | |
| 1-1 课程导学 | |
| 1-2 并发编程初体验 | |
| 1-3 并发与高并发基本概念 | |
| | |
| **第2章 并发基础** | |
| 2-1 CPU多级缓存-缓存一致性 | |
| 2-2 CPU多级缓存-乱序执行优化 | |
| 2-3 JAVA内存模型 | |
| 2-4 并发的优势与风险 | |
| | |
| **第3章 项目准备** | |
| 3-1 案例环境初始化 | |
| 3-2 案例准备工作 | |
| 3-3 并发模拟-工具 | |
| 3-4 并发模拟-代码 | |
| | |
| **第4章 线程安全性** | |
| 4-1 线程安全性-原子性-atomic-1 | |
| 4-2 线程安全性-原子性-atomic-2 | |
| 4-3 线程安全性-原子性-synchronized | |
| 4-4 线程安全性-可见性 | |
| 4-5 线程安全性-有序性与总结 | |
| | |
| **第5章 安全发布对象** | |
| 5-1 安全发布对象-发布与逸出 | |
| 5-2 安全发布对象-四种方法-1 | |
| 5-3 安全发布对象-四种方法-2 | |
| | |
| **第6章 线程安全策略** | |
| 6-1 不可变对象-1 | |
| 6-2 不可变对象-2 | |
| 6-3 线程封闭-1 | |
| 6-4 线程封闭-2 | |
| 6-5 线程不安全类与写法-1 | |
| 6-6 线程不安全类与写法-2 | |
| 6-7 同步容器-1 | |
| 6-8 同步容器-2 | |
| 6-9 并发容器及安全共享策略总结 | |
| | |
| **第7章 J.U.C之AQS** | |
| 7-1 J.U.C之AQS-介绍 | |
| 7-2 J.U.C之AQS-CountDownLatch | |
| 7-3 J.U.C之AQS-Semaphore | |
| 7-4 J.U.C之AQS-CyclicBarrier | |
| 7-5 J.U.C之AQS-ReentrantLock与锁-1 | |
| 7-6 J.U.C之AQS-ReentrantLock与锁-2 | |
| | |
| **第8章 J.U.C组件拓展** | |
| 8-1 J.U.C-FutureTask-1 | |
| 8-2 J.U.C-FutureTask-2 | |
| 8-3 J.U.C-ForkJoin | |
| 8-4 J.U.C-BlockingQueue | |
| | |
| **第9章 线程调度-线程池** | |
| 9-1 线程池-1 | |
| 9-2 线程池-2 | |
| 9-3 线程池-3 | |
| | |
| **第10章 多线程并发拓展** | |
| 10-1 死锁 | |
| 10-2 并发最佳实践 | |
| 10-3 Spring与线程安全 | |
| 10-4 HashMap与ConcurrentHashMap解析 | |
| 10-5 多线程并发与线程安全总结 | |
| | |
| **第11章 高并发之扩容思路** | |
| 11-1 高并发之扩容思路 | |
| | |
| **第12章 高并发之缓存思路** | |
| 12-1 高并发之缓存-特征、场景及组件介绍-1 | |
| 12-2 高并发之缓存-特征、场景及组件介绍-2 | |
| 12-3 高并发之缓存-redis的使用 | |
| 12-4 高并发之缓存-高并发场景问题及实战讲解 | |
| | |
| **第13章 高并发之消息队列思路** | |
| 13-1 高并发之消息队列-1 | |
| 13-2 高并发之消息队列-2 | |
| 13-3 高并发之消息队列-3 | |
| | |
| **第14章 高并发之应用拆分思路** | |
| 14-1 高并发之应用拆分-1 | |
| 14-2 高并发之应用拆分-2 | |
| | |
| **第15章 高并发之应用限流思路** | |
| 15-1 高并发之应用限流-1 | |
| 15-2 高并发之应用限流-2 | |
| | |
| **第16章 高并发之服务降级与服务熔断思路** | |
| 16-1 高并发之服务降级与服务熔断思路 | |
| | |
| **第17章 高并发之数据库切库分库分表思路** | |
| 17-1 高并发之数据库切库分库分表 | |
| | |
| **第18章 高并发之高可用手段介绍** | |
| 18-1 高并发之高可用一些手段 | |
| | |
| **第19章 课程总结** | |
| 19-1 课程总结 | |
================================================
FILE: course/06 HTTP协议原理+实践 Web开发工程师必学.md
================================================
## 《HTTP协议原理+实践 Web开发工程师必学》学习记录
| 章节 | 记录 |
| ----------------------------------------- | ---- |
| **第1章 课程导学** | |
| 1-1 导学 | |
| 1-2 内容介绍 | |
| | |
| **第2章 HTTP协议基础及发展历史** | |
| 2-1 5层网络模型介绍 | |
| 2-2 HTTP协议的发展历史 | |
| 2-3 HTTP的三次握手 | |
| 2-4 URI-URL和URN | |
| 2-5 HTTP报文格式 | |
| 2-6 创建一个最简单的web服务 | |
| | |
| **第3章 HTTP各种特性总览** | |
| 3-1 认识HTTP客户端 | |
| 3-2 CORS跨域请求的限制与解决 | |
| 3-3 CORS跨域限制以及预请求验证 | |
| 3-4 缓存头Cache-Control的含义和使用 | |
| 3-5 缓存验证Last-Modified和Etag的使用 | |
| 3-6 cookie和session | |
| 3-7 HTTP长连接 | |
| 3-8 数据协商 | |
| 3-9 Redirect | |
| 3-10 CSP | |
| | |
| **第4章 Nginx代理以及面向未来的HTTP** | |
| 4-1 Nginx安装和基础代理配置 | |
| 4-2 Nginx代理配置和代理缓存的用处 | |
| 4-3 HTTPS解析 | |
| 4-4 使用Nginx部署HTTPS服务 | |
| 4-5 HTTP2的优势和Nginx配置HTTP2的简单使用 | |
| | |
| **第5章 课程总结** | |
| 5-1 课程总结 | |
================================================
FILE: course/07 SpringBoot微信点餐.md
================================================
## 《Spring Boot企业微信点餐系统 》学习记录
| 章节 | 记录 | |
| ----------------------------------- | ---- | ---- |
| **01章 课程介绍** | | |
| 01-01 课程介绍 | | |
| | | |
| **02章 项目设计** | | |
| 02-01 项目设计 | | |
| 02-02 架构和基础框架 | | |
| 02-03 数据库设计 | | |
| | | |
| **03章 项目起步** | | |
| 03-01 开发环境搭建 | | |
| 03-02 日志的使用 | | |
| 03-03 源码下载及使用 | | |
| | | |
| **04章 买家端类目** | | |
| 04-01 买家类目-dao(上) | | |
| 04-02 买家类目-dao(下) | | |
| 04-03 买家类目-service | | |
| | | |
| **05章 买家端商品** | | |
| 05-01 买家商品-dao | 5/22 | |
| 05-02 买家商品-service | 5/22 | |
| 05-03 买家商品-api(上) | 5/22 | |
| 05-04 买家商品-api(下) | 5/22 | |
| | | |
| **06章 买家端订单** | | |
| 06-01 买家订单-dao(上) | | |
| 06-02 买家订单-dao(下) | | |
| 06-03 买家订单-service创建_A | | |
| 06-04 买家订单-service创建_B | | |
| 06-05 买家订单-service创建_C | | |
| 06-06 买家订单-service创建_D | | |
| 06-07 买家订单-service查询 | | |
| 06-08 买家订单-service取消 | | |
| 06-09 买家订单-service finish和paid | | |
| 06-10 买家订单-api_A | | |
| 06-11 买家订单-api_B | | |
| 06-12 买家订单-api_C | | |
| 06-13 买家订单-api_D | | |
| | | |
| **07章 微信授权** | | |
| 07-01 设置域名 | | |
| 07-02 获取code | | |
| 07-03 换取access_token | | |
| 07-04 使用sdk方式(上) | | |
| 07-05 使用sdk方式(下) | | |
| 07-06 微信网页授权前端调试 | | |
| | | |
| **08章 微信支付和退款** | | |
| 08-01 发起微信支付-后端(上) | | |
| 08-02 发起微信支付-后端(下) | | |
| 08-03 在网页发起支付 | | |
| 08-04 动态注入参数发起支付 | | |
| 08-05 微信异步通知(上) | | |
| 08-06 微信异步通知(下) | | |
| 08-07 微信退款 | | |
| 08-08 补充:使用测试号实现授权 | | |
| | | |
| **09章 卖家端订单** | | |
| 09-01 卖家订单-service | | |
| 09-02 卖家-订单-controller(上) | | |
| 09-03 卖家-订单-controller(下) | | |
| 09-04 卖家订单-controller-翻页 | | |
| 09-05 卖家订单-controller-取消订单 | | |
| 09-06 卖家订单-controller-订单详情 | | |
| 09-07 卖家订单-controller-完结订单 | | |
| | | |
| **10章 卖家端通用功能和上下架** | | |
| 10-01 关于模版的小技巧 | | |
| 10-02 实现边栏 | | |
| 10-03 实现商品列表 | | |
| 10-04 商品上下架-service | | |
| 10-05 商品上下架-controller | | |
| | | |
| **11章 卖家端新增商品和类目** | | |
| 11-01 卖家商品-新增修改页面 | | |
| 11-02 卖家商品-修改表单提交 | | |
| 11-03 卖家商品-新增功能 | | |
| 11-04 卖家类目功能开发 | | |
| | | |
| **12章 买家和卖家端联通** | | |
| 12-01 分布式session理论(上) | | |
| 12-02 分布式session理论(下) | | |
| 12-03 卖家信息表-dao开发 | | |
| 12-04 卖家扫码登录service开发 | | |
| 12-05 卖家扫码登录获取openid | | |
| 12-06 登录成功 | | |
| 12-07 登出成功 | | |
| 12-08 AOP实现身份验证 | | |
| 12-09 微信模版消息推送 | | |
| 12-10 webSocket消息推送 | | |
| | | |
| **13章 项目优化** | | |
| 13-01 异常捕获 | | |
| 13-02 mybatis注解方式使用_A | | |
| 13-03 mybatis注解方式使用_B | | |
| 13-04 mybatis xml方式使用 | | |
| 13-05 jpa和mybatis的选择 | | |
| 13-06 ab压测介绍 | | |
| 13-07 synchronized处理并发 | | |
| 13-08 redis分布式锁 | | |
| 13-09 redis缓存的使用(上) | | |
| 13-10 redis缓存的使用(下) | | |
| | | |
| **14章 项目部署** | | |
| 14-01 项目部署 | | |
| | | |
| **15章 课程总结** | | |
| 15-01 13.总结 | | |
================================================
FILE: course/08 廖雪峰的Java教程.md
================================================
## 《廖雪峰的Java教程》学习记录
| 章节 | 小节 | 记录 |
| ------------------------ | ---------------------- | ---- |
| **1-Java快速入门** | | |
| 01-Java入门 | | |
| | 01-Java简介 | |
| | 02-安装JDK | |
| | 03-第一个Java程序 | |
| | 04-安装并使用Eclipse | |
| | 05-安装Eclipse插件 | |
| 02-Java程序基础 | | |
| | 01-Java程序基本结构 | |
| | 02-变量和数据类型 | |
| | 03-整数运算 | |
| | 05-浮点数运算 | |
| | 07-布尔运算 | |
| | 08-字符和字符串 | |
| | 09-数组类型 | |
| 03-流程控制 | | |
| | 01-输入和输出 | |
| | 03-if判断 | |
| | 04-switch多重选择 | |
| | 05-while循环 | |
| | 06-do-while循环 | |
| | 07-for循环 | |
| | 09-break和continue | |
| 04-数组操作 | | |
| | 1-遍历数组 | |
| | 2-数组排序 | |
| | 4-多维数组 | |
| | 5-命令行参数 | |
| | | |
| **2-Java面向对象编程** | | |
| 1-面向对象的概念 | | |
| | 面向对象基础 | |
| 2-数据封装 | | |
| | 1-方法 | |
| | 2-构造方法 | |
| | 3-方法重载 | |
| 3-继承和多态 | | |
| | 1-继承 | |
| | 2-多态 | |
| 4-抽象类和接口 | | |
| | 1-抽象类 | |
| | 2-接口 | |
| 5-包和classpath | | |
| | 1-静态字段和方法 | |
| | 2-包 | |
| | 3-作用域 | |
| | 4-classpath和jar | |
| 6-Java核心类 | | |
| | 1-字符串和编码 | |
| | 2-StringBuilder | |
| | 3-包装类型 | |
| | 4-JavaBean | |
| | 5-枚举类 | |
| | 6-常用工具类 | |
| | | |
| **3-Java异常处理** | | |
| 1-错误处理 | | |
| | 1-Java的异常 | |
| | 2-捕获异常 | |
| | 3-抛出异常 | |
| | 4-自定义异常 | |
| 2-断言和日志 | | |
| | 1-使用断言 | |
| | 2-使用JDK Logging | |
| | 3-使用Commons Logging | |
| | 4-使用Log4j | |
| | | |
| **4-Java反射与泛型** | | |
| 1-反射 | | |
| | 1-Class类 | |
| | 2-访问字段 | |
| | 3-调用方法 | |
| | 4-调用构造方法 | |
| | 5-获取继承关系 | |
| 2-注解 | | |
| | 1-使用注解 | |
| | 2-定义注解 | |
| | 3-处理注解 | |
| 3-泛型 | | |
| | 1-什么是泛型 | |
| | 2-使用泛型 | |
| | 3-编写泛型 | |
| | 4-擦拭法 | |
| | 5-extends通配符 | |
| | 6-super通配符 | |
| | 7-泛型和反射 | |
| | | |
| **5-Java集合** | | |
| 1-Java集合简介 | | |
| | Java集合简介 | |
| 2-List | | |
| | 1-使用List | |
| | 2-编写equals方法 | |
| 3-Map | | |
| | 1-使用Map | |
| | 2-编写equals和hashCode | |
| | 3-使用Properties | |
| 4-Set | | |
| | 使用Set | |
| | | |
| 5-Queue | | |
| | 1-使用Queue | |
| | 2-使用PriorityQueue | |
| | 3-使用Deque | |
| 6-Stack | | |
| | 使用Stack | |
| | | |
| 7-最佳实践 | | |
| | 1-使用Iterator | |
| | 2-使用Collections | |
| | | |
| **6-Java IO编程** | | |
| 1-IO基础 | | |
| | 1-IO简介 | |
| | 2-File对象 | |
| 2-Input和Output | | |
| | 1-InputStream | |
| | 2-OutputStream | |
| | 4-Filter模式 | |
| | 6-classpath资源 | |
| | 7-序列化 | |
| 3-Reader和Writer | | |
| | 1-Reader | |
| | 2-Writer | |
| | | |
| **7-Java处理日期和时间** | | |
| 1-概念 | | |
| | 日期和时间 | |
| 2-Date和Calendar | | |
| | 1-Date | |
| | 2-Calendar | |
| 3-java.time的API | | |
| | 1-LocalDateTime | |
| | 2-ZonedDateTime | |
| 4-最佳实践 | | |
| | 最佳实践 | |
| | | |
| **8-JUnit单元测试** | | |
| 1-JUnit简介 | | |
| | JUnit测试 | |
| | | |
| 2-使用JUnit | | |
| | 1-使用Before和After | |
| | 2-异常测试 | |
| | 3-参数化测试 | |
| | 4-超时测试 | |
| | | |
| **9-Java正则表达式** | | |
| 1-正则表达式入门 | | |
| | 1-正则表达式简介 | |
| | 2-匹配规则 | |
| 2-正则表达式进阶 | | |
| | 1-复杂匹配规则 | |
| | 3-分组匹配规则 | |
| | 5-非贪婪匹配 | |
| | 6-搜索和替换 | |
| | | |
| **10-Java加密与安全** | | |
| 1-数据安全简介 | | |
| | 加密与安全 | |
| 2-编码算法 | | |
| | 1-URL编码 | |
| | 2-Base64编码 | |
| 3-摘要算法 | | |
| | 1-MD5 | |
| | 3-SHA1 | |
| | 4-BouncyCastle | |
| | 5-Hmac | |
| 4-加密算法 | | |
| | 1-对称加密算法 | |
| | 2-口令加密算法 | |
| | 4-密钥交换算法 | |
| | 5-非对称加密算法 | |
| 5-签名算法 | | |
| | 1-RSA签名算法 | |
| | 2-DSA签名算法 | |
| 6-数字证书 | | |
| | 数字证书 | |
| | | |
| **11-Java多线程编程** | | |
| 1-线程的概念 | | |
| | 1-多线程简介 | |
| | 2-创建新线程 | |
| | 3-线程的状态 | |
| | 5-中断线程 | |
| | 6-守护线程 | |
| 2-线程同步 | | |
| | 1-线程同步 | |
| | 2-synchronized方法 | |
| | 3-死锁 | |
| | 4-wait和notify | |
| 3-高级concurrent包 | | |
| | 1-ReentrantLock | |
| | 2-ReadWriteLock | |
| | 3-Condition | |
| | 4-Concurrent集合 | |
| | 5-Atomic | |
| | 6-ExecutorService | |
| | 7-Future | |
| | 8-CompletableFuture | |
| | 9-Fork_Join | |
| 4-线程工具类 | | |
| | ThreadLocal | |
| | | |
| **12-Maven基础** | | |
| 1-Maven入门 | | |
| | 1-Maven介绍 | |
| | 2-依赖管理 | |
| | 3-构建流程 | |
| 2-Maven进阶 | | |
| | 1-使用插件 | |
| | 2-模块管理 | |
| | | |
| **13-Java网络编程** | | |
| 1-Socket编程 | | |
| | 1-网络编程概念 | |
| | 2-TCP编程 | |
| | 3-TCP多线程编程 | |
| | 5-UDP编程 | |
| 2-Email编程 | | |
| | 1-发送Email | |
| | 2-接收Email | |
| 3-其他 | | |
| | 1-HTTP编程 | |
| | 2-RMI远程调用 | |
| | | |
| **14-Java操作XML和JSON** | | |
| 1-XML | | |
| | 1-XML介绍 | |
| | 2-DOM | |
| | 3-SAX | |
| | 4-第三方XML库 | |
| 2-JSON | | |
| | 1-JSON介绍 | |
| | 2-处理JSON | |
| | | |
| **15-Java JDBC编程** | | |
| 1-关系数据库基础 | | |
| | 1-关系数据库简介 | |
| | 2-安装MySQL | |
| 2-SQL入门 | | |
| | 1-SQL介绍 | |
| | 2-Insert语句 | |
| | 3-Select语句 | |
| | 4-Update语句 | |
| | 5-Delete语句 | |
| 3-JDBC接口 | | |
| | 1-JDBC简介 | |
| | 2-JDBC查询 | |
| | 3-JDBC更新 | |
| | 4-JDBC事务 | |
| | 5-JDBC连接池 | |
| | | |
| **16-Java函数式编程** | | |
| 1-Lambda表达式 | | |
| | 1-Lambda基础 | |
| | 3-Method Reference | |
| 2-Stream | | |
| | 1-Stream简介 | |
| | 2-创建Stream | |
| | 4-map | |
| | 5-filter | |
| | 6-reduce | |
| | 7-其他操作 | |
================================================
FILE: course/09 Spring学习框架.md
================================================
Spring框架2016-黑马程序员_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
https://www.bilibili.com/video/av27640334?from=search&seid=15898343232092137971
黑马程序员springmvc_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
https://www.bilibili.com/video/av18288362?from=search&seid=11826156096511418277
尚硅谷好评如潮【SpringBoot】视频_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
https://www.bilibili.com/video/av20965295?from=search&seid=5610749687546975866
尚硅谷-SpringBoot整合篇_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
https://www.bilibili.com/video/av23284778/
最好的JavaWeb教程 - 搜索结果 - 哔哩哔哩弹幕视频网 - ( ゜- ゜)つロ 乾杯~ - bilibili
https://search.bilibili.com/all?keyword=%E6%9C%80%E5%A5%BD%E7%9A%84JavaWeb%E6%95%99%E7%A8%8B
| 类型 | 课程 | 时长 |
| ---------- | ------------------------------------------------------------ | ---- |
| Spring AOP | [【慕课在线】探秘Spring AOP-慕课网](https://www.imooc.com/learn/869) | |
| 基础课程 | [【黑马】Struts2 ](https://www.bilibili.com/video/av13748042) | |
| 基础课程 | [【黑马】Spring](https://www.bilibili.com/video/av14839030?from=search&seid=7226271969404706912) | |
| 基础课程 | [【黑马】Hibernate](https://www.bilibili.com/video/av14626440) | |
| | | |
| | | |
| | | |
| | | |
| | | |
================================================
FILE: course/10 Redis.md
================================================
## 《一站式学习Redis 从入门到高可用分布式实践》 学习记录
- ##### 第1章 Redis初识
带领听众进入Redis的世界,了解它的前世今生、众多特性、应用场景、安装配置、简单使用,可以让听众对Redis有一个全面的认识。
- 1-1 导学
- 1-2 Redis初识
- 1-3 谁在使用Redis
- 1-4 redis特性目录
- 1-5 特性1-速度快
- 1-6 特性2-持久化
- 1-7 特性3-数据结构
- 1-8 特性4-多语言客户端
- 1-9 特性5-功能丰富
- 1-10 特性6-简单
- 1-11 特性7-复制
- 1-12 特性8-高可用分布式
- 1-13 redis典型使用场景
- 1-14 redis三种启动方式介绍
- 1-15 redis常用配置
- 1-16 redis安装启动演示
- ##### 第2章 API的理解和使用
全面介绍了Redis提供的5种数据结构字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)的数据模型、常用命令、典型应用场景。同时本章还会对Redis的单线程处理机制、键值管理做一个全面介绍,通过对这些原理的理解,听众可以在合适的应用场景选择合适的数据结构。 ...
- 2-1 -课程目录
- 2-2 -通用命令
- 2-3 数据结构和内部编码
- 2-4 单线程
- 2-5 字符串
- 2-6 hash (1)
- 2-7 hash (2)
- 2-8 list(1)
- 2-9 list(2)
- 2-10 set
- 2-11 zset
- ##### 第3章 Redis客户端的使用
本章重点关注Redis客户端的开发,介绍了详细讲解了Java客户端Jedis,简单介绍下Python和Go语言的Redis客户端的选择和使用。
- 3-1 课程目录
- 3-2 Java客户端:Jedis
- 3-3 Python客户端:redis-py
- 3-4 Go客户端:redigo简介
- 3-5 Jedis配置优化(上)
- 3-6 Jedis配置优化(下)
- ##### 第4章 瑞士军刀Redis其他功能
除了5种数据结构外,Redis还提供了诸如慢查询、Pipeline、Bitmap、HyperLogLog、发布订阅、GEO等附加功能,在这些功能的帮助下,Redis的应用场景更加丰富。
- 4-1 课程目录
- 4-2 慢查询
- 4-3 pipeline
- 4-4 发布订阅
- 4-5 bitmap
- 4-6 hyperloglog
- 4-7 geo
- ##### 第5章 Redis持久化的取舍和选择
Redis的持久化功能有效避免因进程退出造成的数据丢失问题,本章将介绍介绍RDB和AOF两种持久化配置和运行流程,以及选择策略
- 5-1 目录
- 5-2 持久化的作用
- 5-3 RDB(1)
- 5-4 RDB(2)
- 5-5 RDB(3)
- 5-6 AOF(1)
- 5-7 AOF(2)
- 5-8 AOF实验
- 5-9 RDB和AOF抉择
- ##### 第6章 常见的持久化开发运维问题
本章探讨了常见的持久化问题进行定位和优化,最后结合Redis常见的单机多实例部署场景进行优化
- 6-1 常见问题目录
- 6-2 fork
- 6-3 子进程开销和优化
- 6-4 AOF阻塞
- ##### 第7章 Redis复制的原理与优化
复制是实现高可用的基石,但复制同样是运维的痛点,本部分详细分析复制的原理,讲解运维过程中可能遇到的问题。
- 7-1 目录
- 7-2 什么是主从复制
- 7-3 主从复制配置-介绍
- 7-4 主从复制配置-操作
- 7-5 runid和复制偏移量
- 7-6 全量复制
- 7-7 全量复制开销 + 部分复制
- 7-8 故障处理
- 7-9 主从复制常见问题
- ##### 第8章 Redis Sentinel
本章将一步步解析Redis Sentinel的相关概念、安装部署、配置、客户端路由、原理解析,最后分析了Redis Sentinel运维中的一些问题。
- 8-1 sentinel-目录
- 8-2 主从复制高可用?
- 8-3 redis sentinel架构
- 8-4 redis sentinel安装与配置
- 8-5 redis sentinel安装演示-1
- 8-6 redis sentinel安装演示-2
- 8-7 java客户端
- 8-8 python客户端
- 8-9 实现原理-1-故障转移演练
- 8-10 实现原理-2.故障转移演练(客户端)
- 8-11 实现原理-3.故障演练(日志分析)
- 8-12 三个定时任务
- 8-13 主观下线和客观下线
- 8-14 领导者选举
- 8-15 故障转移
- 8-16 常见开发运维问题-目录
- 8-17 节点运维
- 8-18 高可用读写分离
- 8-19 本章总结
- ##### 第9章 初识Redis Cluster
Redis Cluster是Redis 3提供的分布式解决方案,有效解决了Redis分布式方面的需求,同时它也是学习分布式存储的绝佳案例。本章将针对Redis Cluster的数据分布,搭建集群进行分析说明。
- 9-1 本章目录
- 9-2 呼唤集群
- 9-3 数据分布概论
- 9-4 节点取余分区
- 9-5 一致性哈希分区
- 9-6 虚拟槽哈希分布
- 9-7 基本架构
- 9-8 原生安装
- 9-9 原生安装-1.准备节点
- 9-10 原生安装-2.节点握手
- 9-11 原生安装-3.分配槽
- 9-12 原生安装-4.分配主从
- 9-13 ruby环境准备-说明
- 9-14 ruby环境准备-操作
- 9-15 redis-trib构建集群
- 9-16 原生命令和redis-trib.rb对比
- ##### 第10章 深入Redis Cluster
本章将针对Redis Cluster的集群伸缩,请求路由,故障转移等方面进行分析说明。
- 10-1 集群伸缩目录
- 10-2 集群伸缩原理
- 10-3 扩展集群-1.加入节点
- 10-4 扩展集群-2.加入集群
- 10-5 扩展集群-3.迁移槽和数据
- 10-6 集群扩容演示-1
- 10-7 集群扩容演示-2
- 10-8 集群缩容-说明
- 10-9 集群缩容-操作
- 10-10 客户端路由-目录
- 10-11 moved异常说明和操作
- 10-12 ask重定向
- 10-13 smart客户端实现原理
- 10-14 JedisCluster执行源码分析
- 10-15 smart客户端JedisCluster-目录
- 10-16 JedisCluster基本使用
- 10-17 整合spring-1
- 10-18 整合spring-2
- 10-19 多节点操作命令
- 10-20 批量操作优化
- 10-21 故障转移-目录
- 10-22 故障发现
- 10-23 故障恢复
- 10-24 故障模拟
- 10-25 Redis Cluster常见开发运维问题-目录
- 10-26 集群完整性
- 10-27 带宽消耗
- 10-28 PubSub广播
- 10-29 集群倾斜-目录
- 10-30 数据倾斜
- 10-31 请求倾斜
- 10-32 读写分离
- 10-33 数据迁移
- 10-34 集群vs单机
- 10-35 本章总结
- ##### 第11章 缓存设计与优化
讲解将缓存加入应用架构后带来的一些问题,这些问题常常会成为应用的致命点。
- 11-1 目录
- 11-2 缓存的受益和成本
- 11-3 缓存的更新策略
- 11-4 缓存粒度问题
- 11-5 缓存穿透问题
- 11-6 缓存雪崩优化
- 11-7 无底洞问题
- 11-8 热点key的重建优化
- 11-9 本章总结
- ##### 第12章 Redis云平台CacheCloud
本章结合前面的知识介绍redis规模化后使用云平台如何进行机器部署、应用接入、用户相关功能维护等问题
- 12-1 _目录
- 12-2 _Redis规模化困扰
- 12-3 _快速构建
- 12-4 机器部署
- 12-5 应用接入
- 12-6 用户功能
- 12-7 运维功能
- ##### 第13章 课程总结
课程总结
- 13-1 _课程总结
- ##### 第14章 增补:Redis布隆过滤器
现有50亿电话号码,如何快速判断10w个电话号码是否在其中?利用之前学习的bitmap和redis cluster构建分布式布隆过滤器
- 14-1 _目录_
- 14-2 引出布隆过滤器
- 14-3 布隆过滤器基本原理
- 14-4 布隆过滤器误差率
- 14-5 本地布隆过滤器
- 14-6 Redis布隆过器
- 14-7 Redis分布式布隆过滤器
- ##### 第15章 Redis开发规范
本章介绍键值的设计、命令的优化、连接池优化、客户端使用规范及客户端常见问题,带领用户全面梳理Redis开发规范。
- 15-1 key设计
- 15-2 value设计
- 15-3 发现bigkey的方法
- 15-4 bigkey的删除
- 15-5 选择合理的数据结构
- 15-6 键值生命周期的管理
- 15-7 命令优化技巧
- 15-8 java客户端优化
- 15-9 连接池参数优化1
- 15-10 连接池参数优化2
- 15-11 连接池参数优化3
- ##### 第16章 内存管理
本章主要讲解Redis内存消耗、组成分析、Redis内存管理设置及内存优化技巧。
- 16-1 Redis内存优化介绍
- 16-2 Redis内存消耗
- 16-3 客户端缓冲区
- 16-4 缓冲内存
- 16-5 对象内存
- 16-6 内存设置上限
- 16-7 内存回收策略
- 16-8 内存优化
- 16-9 客户端缓冲区优化
- ##### 第17章 开发运维常见坑
本章介绍Linux针对Redis的内核参数优化、Redis安全七个方法以及Redis热点key的发现方法。
- 17-1 redis开发运维那些坑
- 17-2 overcommit_memory参数讲解和演示
- 17-3 其它参数的讲解
- 17-4 安全的redis
- 17-5 安全七法则
- 17-6 热点key
================================================
FILE: course/11 SpringMVC.md
================================================
## 黑马程序员 SpringMVC 学习记录
时长:10小时04分钟
| 章节 | 记录 |
| ----------------------------------------------------------- | ---- |
| **day01** | |
| 01 spring第一天课程安排 | |
| 02 springmvc架构-mvc设计模式在bs系统下的应用 | |
| 03 springmvc架构-springmvc架构原理分析 | |
| 04 springmvc入门程序-环境搭建 | |
| 05 springmvc入门程序-前端控制器配置 | |
| 06 springmvc入门程序-Handler编写调试 | |
| 07 springmvc入门程序-非注解映射器和适配器 | |
| 08 springmvc入门程序-注解映射器和适配器配置 | |
| 09 springmvc入门程序-注解映射器和适配器 | |
| 10 springmvc入门程序-前端控制器源代码分析 | |
| 11 springmvc入门程序-视图解析器配置前缀和后缀 | |
| 12 springmvc和mybaits整合-整合思路 | |
| 13 springmvc和mybaits整合-工程结构 | |
| 14 springmvc和mybaits整合-商品查询mapper | |
| 15 springmvc和mybaits整合-商品查询service | |
| 16 springmvc和mybaits整合-商品查询controller | |
| 17 springmvc和mybaits整合-商品查询调试 | |
| 18 springmvc注解开发-商品修改功能分析 | |
| 19 springmvc注解开发-商品修改功能开发service | |
| 20 springmvc注解开发-商品修改功能开发controller | |
| 21 springmvc注解开发-RequestMapping注解 | |
| 22 springmvc注解开发-controller方法返回值 | |
| 23 springmvc注解开发-springmvc参数绑定过程 | |
| 24 springmvc注解开发-springmvc参数绑定-简单类型绑定 | |
| 25 springmvc注解开发-springmvc参数绑定-pojo绑定 | |
| 26 springmvc注解开发-springmvc参数绑定-自定义参数绑定 | |
| 27 springmvc和struts2的区别 | |
| | |
| **day02** | |
| 01 springmvc第一天课程复习 | |
| 02 springmvc注解开发-springmvc参数绑定-包装类型pojo参数绑定 | |
| 03 springmvc注解开发-springmvc参数绑定-数组 | |
| 04 springmvc注解开发-springmvc参数绑定-list | |
| 05 springmvc注解开发-validation校验-商品修改校验 | |
| 06 springmvc注解开发-validation校验-分组校验 | |
| 07 springmvc注解开发-数据回显 | |
| 08 springmvc异常处理-全局异常处理器开发 | |
| 09 springmvc异常处理-抛出异常 | |
| 10 springmvc上传图片 | |
| 11 springmvc实现json交互-requestBody和responseBody | |
| 12 springmvc实现json交互-准备环境 | |
| 13 springmvc实现json交互-json交互测试 | |
| 14 springmvc对RESTful支持 | |
| 15 springmvc拦截器-定义和配置 | |
| 16 springmvc拦截器-多拦截器测试 | |
| 17 springmvc拦截器-实现登陆认证 | |
================================================
FILE: course/12 Mybatis.md
================================================
## 黑马程序员 Mybatis 学习记录
时长:10小时23分钟
| 章节 | 记录 |
| ------------------------------------------------- | ---- |
| **day-01** | |
| 01 mybatis第一天课程安排 | |
| 02 原生态jdbc编程中的问题总结 | |
| 03 mybatis框架原理 | |
| 04 mybatis入门程序-工程结构 | |
| 05 mybatis入门程序-根据id查询用户-映射文件 | |
| 06 mybatis入门程序-根据id查询用户-程序代码 | |
| 07 mybatis入门程序-根据id查询用户-程序调试 | |
| 08 mybatis入门程序-根据名称查询用户 | |
| 09 mybatis入门程序-查询用户小结 | |
| 10 mybatis入门程序-添加用户 | |
| 11 mybatis入门程序-添加用户-主键返回 | |
| 12 mybatis入门程序-删除用户和更新用户 | |
| 13 mybatis入门程序-小结 | |
| 14 mybatis和hibernate的本质区别和应用场景 | |
| 15 mybatis开发dao方法-sqlSession应用场合 | |
| 16 mybatis开发dao方法-原始dao开发方法 | |
| 17 mybatis开发dao方法-原始dao开发方法-问题总结 | |
| 18 mybatis开发dao方法-mapper代理开发方法-开发规范 | |
| 19 mybatis开发dao方法-mapper代理开发方法-实现 | |
| 20 SqlMapConfig-properties定义 | |
| 21 SqlMapConfig-settings | |
| 22 SqlMapConfig-别名定义 | |
| 23 SqlMapConfig-类型处理器 | |
| 24 SqlMapConfig-mapper加载 | |
| 25 输入映射-pojo包装类型-定义pojo包装类型 | |
| 26 输入映射-pojo包装类型-实现 | |
| 27 输出映射-resultType | |
| 28 输出映射-resultMap | |
| 29 动态sql-if判断 | |
| 30 动态sql-sql片段 | |
| 31 动态sql-foreach | |
| **day-02** | |
| 01 第一天课程复习及第二天课程安排 | |
| 02 订单商品数据模型-分析思路 | |
| 03 订单商品数据模型-分析 | |
| 04 高级映射-一对一查询-使用resultType | |
| 05 高级映射-一对一查询-使用resultMap | |
| 06 高级映射-一对多查询 | |
| 07 高级映射-多对多查询 | |
| 08 高级映射-resultMap总结 | |
| 09 高级映射-延迟加载 | |
| 10 查询缓存-一级缓存原理 | |
| 11 查询缓存-一级缓存测试 | |
| 12 查询缓存-一级缓存实际应用 | |
| 13 查询缓存-二级缓存-二级缓存测试 | |
| 14 查询缓存-二级缓存-整合ehcache | |
| 15 查询缓存-二级缓存-应用场景和局限性 | |
| 16 mybatis和spring整合-sqlSessionFactory配置 | |
| 17 mybatis和spring整合-原始dao开发 | |
| 18 mybatis和spring整合-mapper代理开发 | |
| 19 mybatis逆向工程自动生成代码 | |
================================================
FILE: course/13 韩立刚计算机网络.md
================================================
## 《韩立刚计算机网络》学习记录
| 章节 | 记录 |
| ------------------------------------------------- | ---- |
| **第1章 计算机网络概述** | |
| 01 课程介绍 | |
| 02 局域网 | |
| 03 Intenet和广域网 | |
| 04 规划IP地址介绍MAC地址 | |
| 05 数据包和数据帧 | |
| 06 访问网站数据传输过程 | |
| 07 OSI参考模型 | |
| 08 理解OSI参考模型分层思想 | |
| 09 OSI参考模型和网络排错 | |
| 10 OSI参考模型和网络安全 | |
| 11 OSI参考模型和TCP_IP协议 | |
| 12 计算机网络性能指标1 | |
| 13 计算机网络性能指标2 | |
| | |
| **第2章 物理层** | |
| 14 物理层定义的标准 | |
| 15 数据通信基础知识 | |
| 16 常用编码 | |
| 17 奈氏准则和香农公式 | |
| 18 数据通信基础知识总结 | |
| 19 物理层下面的传输介质 | |
| 20 信道复用技术 | |
| 21 数字传输系统 | |
| 22 宽带接入技术 | |
| | |
| **第3章 数据链路层** | |
| 23 数据链路层基本概念 | |
| 24 封装成帧和透明传输 | |
| 25 差错检测 | |
| 26 点到点通信数据链路层协议PPP | |
| 27 配置路由器使用PPP协议 | |
| 28 广播信道的数据链路层 | |
| 29 CSMA_CD协议技术细节 | |
| 30 什么是以太网 | |
| 31 以太网帧格式 | |
| 32 抓包分析数据帧格式 | |
| 33 使用网桥和交换机优化以太网 | |
| 34 查看思科交换机MAC地址表 | |
| 35 快速以太网和G比特以太网 | |
| | |
| **第4章 网络层** | |
| 36 网络层提供的服务 | |
| 37 验证网络层功能 | |
| 38 准备发送数据 | |
| 39 发送数据的过程 | |
| 40 ARP协议 | |
| 41 ARP欺骗 | |
| 42 网络执法官和ARP防火墙 | |
| 43 ICMP协议和ping命令 | |
| 44 ping和pathping排除网络故障 | |
| 45 IGMP协议和多播组播 | |
| 46 访问多播视频节目 | |
| 47 抓包分析数据包首部 | |
| 48 数据包总长度和数据包分片 | |
| 49 抓包分析分片数据包 | |
| 50 数据包TTL和协议号 | |
| 51 使用抓包工具排除网络故障 | |
| 52 网络畅通的条件 | |
| 53 静态路由 | |
| 54 动态路由 | |
| | |
| **第5章 传输层** | |
| 55 TCP和UDP的应用场景 | |
| 56 传输层协议和应用层协议之间关系 | |
| 57 服务和应用层协议之间的关系 | |
| 58 服务和端口 端口和安全 | |
| 59 传输层功能和端口范围 | |
| 60 UDP首部 | |
| 61 TCP协议概述 | |
| 62 TCP如何实现可靠传输 | |
| 63 TCP首部 端口序号确认号数据偏移 | |
| 64 抓包分析TCP首部 | |
| 65 TCP首部标记位 | |
| 66 接收窗口和发送窗口 | |
| 67 TCP滑动窗口技术实现可靠传输 | |
| 68 TCP流量控制 | |
| 69 TCP拥塞避免 | |
| 70 TCP传输连接管理 | |
| | |
| **第6章 应用层** | |
| 71 什么是域名 | |
| 72 安装和配置DNS服务器 | |
| 73 安装和配置DHCP服务器 | |
| 74 跨网段配置IP地址 | |
| 75 FTP协议主动模式被动模式 | |
| 76 安装和配置FTP服务器 | |
| 77 telnet协议 | |
| 78 远程桌面协议RDP | |
| 79 HTTP协议和网站 | |
| 80 使用Web代理服务访问网站 | |
| 81 Internet发送和接收电子邮件的过程 | |
| 82 准备邮件服务器实验环境 | |
| 83 安装和配置邮件服务器 | |
| | |
| **第7章 网络安全** | |
| 84 网络安全介绍 | |
| 85 网络安全面临的威胁 | |
| 86 篡改和伪造 | |
| 87 病毒和木马 | |
| 88 对称加密 | |
| 89 非对称加密和数字签名 | |
| 90 证书颁发机构CA | |
| 91 安装CA并申请证书和邮箱 | |
| 92 发送签名加密电子邮件 | |
| 93 安全套接字SSL功能 | |
| 94 配置网站使用SSL通信 | |
| 95 介绍网络层安全IPSec | |
| 96 搭建IPSec实验环境 | |
| 97 配置IPSec实现安全通信 | |
| 98 数据链路层安全 | |
| | |
| **第8章 Internet上的音频视频** | |
| 99 互联网音频视频面临的问题 | |
| 100 安装流媒体服务 | |
| 101 通过网站观看流媒体节目 | |
| 102 流媒体实现现场直播 | |
| 103 IP电话和QoS | |
| | |
| **第9章 无线网络** | |
| 104 无线局域网 | |
| 105 创建临时无线网络 | |
================================================
FILE: course/14 韩立刚计算机网络2.md
================================================
## 《韩立刚计算机网络(v2) 》学习记录
| 章节 | 记录 |
| ------------------------------------------------- | ---- |
| **第1章 计算机网络概述** | |
| 001 课程介绍 | |
| 002 计算机网络在信息时代的作用 | |
| 003 Internet概述 | |
| 004 Internet组成 | |
| 005 计算机网络类别 | |
| 006 计算机网络的性能指标 | |
| 007 回顾 | |
| 008 性能指标2 | |
| 009 OSI参考模型 | |
| 010 理解OSI参考模型 | |
| 011 OSI和网络排错 | |
| 012 OSI参考模型与网络安全 | |
| 013 计算机网络的体系结构 | |
| 014 虚拟机的网络设置 | |
| | |
| **第2章 物理层** | |
| 015 物理层基本概念 | |
| 016 数据通信基础知识 | |
| 017 奈氏准则和香农公式 | |
| 018 物理层下面的物理媒体 | |
| 019 回顾 | |
| 020 频分复用技术 | |
| 021 时分复用技术 | |
| 022 码分复用技术 | |
| 023 数字传输系统 | |
| 024 宽带接入技术 | |
| | |
| **第3章 数据链路层** | |
| 025 数据链路层几个基本概念 | |
| 026 三个基本问题 | |
| 027 CRC差错检测技术 | |
| 028 PPP协议介绍 | |
| 029 PPP协议实现透明传输的2种方法 | |
| 030 PPP协议的工作状态 | |
| 031 配置路由器接口使用PPP协议封装 | |
| 032 回顾 | |
| 033 以太网特点 | |
| 034 CSMA CD | |
| 035 以太网冲突检测和避让机制 | |
| 036 以太网 | |
| 037 集线器 | |
| 038 无冲突时以太网信道最大利用率 | |
| 039 以太网MAC地址 | |
| 040 回顾 | |
| 041 更改和查看MAC地址 | |
| 042 以太网帧格式 | |
| 043 抓包工具排除网络故障 | |
| 044 以太网帧格式2 | |
| 045 网桥和交换机优化以太网 | |
| 046 查看交换机MAC地址表 | |
| 047 生成树过程 | |
| 048 更改交换机生成树的根 优先级 | |
| 049 远程重启服务器 | |
| 050 验证VLAN | |
| 051 VLAN干道链路和访问链路 | |
| 052 扩展以太网 | |
| 053 交换机上实现的接入安全 | |
| | |
| **第4章 网络层** | |
| 054 网络的两种服务 虚电路和数据报服务 | |
| 055 虚电路和数据报服务的对比 | |
| 056 虚拟互联网 | |
| 057 IP地址 网络部分和主机部分 | |
| 058 IP地址 ABCDE类IP地址 | |
| 059 IP地址 十进制和二进制关系 | |
| 060 IP地址 ABCD类网络和默认子网掩码 | |
| 061 IP地址 保留的地址 | |
| 062 子网掩码的作用 | |
| 063 IP地址 将一个C类网络等分成两个子网 | |
| 064 IP地址 将一个C类网络等分成四个子网 | |
| 065 IP地址 将一个C类网络等分成八个子网 | |
| 066 IP地址 点到点网络的子网掩码最好是252 | |
| 067 IP地址 划分子网的规律 | |
| 068 IP地址 变长子网划分 | |
| 069 IP地址 变长子网练习 | |
| 070 IP地址 子网划分回顾 | |
| 071 IP地址 B类网络子网划分 | |
| 072 IP地址 利用超网合并网段 | |
| 073 数据包转发过程 MAC地址和IP地址 | |
| 074 基于MAC地址控制代理服务器只能控制本网段计算机 | |
| 075 ARP协议工作机制 | |
| 076 arp欺骗的应用 | |
| 077 如何断定ARP欺骗 | |
| 078 逆向ARP 就是计算机请求IP地址的过程 | |
| 079 数据包首部 | |
| 080 数据包首部生存时间TTL | |
| 081 数据包首部 首部校验和 | |
| 082 通过抓包工具分析数据包首部 | |
| 083 网络畅通的条件和静态路由 | |
| 084 添加静态路由 | |
| 085 Windows网关就是默认路由 | |
| 086 网络负载均衡 | |
| 087 ICMP协议ping和pathping | |
| 088 RIP协议工作原理 | |
| 089 配置动态路由RIP协议 | |
| 090 回顾 | |
| 091 配置OSPF协议 | |
| 092 OSPF协议特点 | |
| 093 BGP协议实现自制系统之间最佳路径选择 | |
| 094 VPN的功能 | |
| 095 验证VPN拨号 | |
| 096 创建VPN拨号连接 | |
| 097 站点间VPN | |
| 098 NAT和PAT | |
| 099 NAT的端口映射 | |
| 100 回顾 | |
| 101 虚拟机的网络设置 | |
| | |
| **第5章 传输层** | |
| 102 TCPIP协议分层 | |
| 103 TCP和UDP的应用场景 | |
| 104 传输层协议和应用层协议之间的关系 | |
| 105 服务和应用层协议之间的关系 | |
| 106 安装telnet客户端 | |
| 107 更改服务器的默认端口 | |
| 108 TCPIP筛选实现服务器安全 | |
| 109 Windows防火墙的作用 | |
| 110 Windows防火墙不能防控灰鸽子木马程序 | |
| 111 IPSec严格控制网络流量 | |
| 112 UDP协议 | |
| 113 TCP协议概述 | |
| 114 TCP如何实现可靠传输 | |
| 115 TCP首部 | |
| 116 抓包分析TCP首部 | |
| 117 TCP首部标记位 | |
| 118 接收窗口确定发送窗口 | |
| 119 TCP滑动窗口技术实现可靠传输 | |
| 120 避免拥塞 | |
| 121 TCP连接管理 | |
| | |
| **第6章 应用层** | |
| 122 域名解析过程 | |
| 123 安装和配置DNS服务器 | |
| 124 DHCP协议 | |
| 125 跨网段分配IP地址 | |
| 126 FTP协议主动模式和被动模式 | |
| 127 安装和配置FTP服务器 | |
| 128 Telnet协议 | |
| 129 远程桌面协议RDP | |
| 130 HTTP协议 | |
| 131 Web代理服务器 | |
| 132 Internet发送和接收电子邮件的过程 | |
| 133 准备邮件服务器实验环境 | |
| 134 安装和配置邮件服务器 | |
| | |
| **第7章 网络安全** | |
| 135 网络安全介绍 | |
| 136 网络安全面临的4种威胁 | |
| 137 篡改和伪造攻击 | |
| 138 病毒和木马 | |
| 139 对称加密 | |
| 140 非对称加密和数字签名 | |
| 141 证书颁发机构CA | |
| 142 安装CA并申请证书和邮箱 | |
| 143 发送签名和加密电子邮件 | |
| 144 安全套接字SSL功能 | |
| 145 配置网站使用SSL通信 | |
| 146 网络层安全IPSec介绍 | |
| 147 搭建IPSec实验环境 | |
| 148 配置IPSec实现网络安全 | |
| 149 数据链路层安全 | |
| | |
| **第8章 Internet上的音频视频** | |
| 150 互联网音频视频面临的问题 | |
| 151 安装流媒体服务 | |
| 152 通过网站观看流媒体节目 | |
| 153 流媒体实现现场直播 | |
| 154 IP电话 | |
| | |
| **第9章 无线网络** | |
| 155 无线局域网 | |
| 156 创建临时无线网络 | |
================================================
FILE: course/15 咕泡学院-公开课.md
================================================
## 咕泡学院 公开课
| 章节 | 记录 |
| ------------------------------------------------------------ | ---- |
| 2018_03_05如何从源码copy经验并武装自己 | |
| 2018_03_07面试Mysql底层要准备这些 | |
| 2018_04_11_深入浅出JVM | |
| 2018_04_18_轻松搞定面试中各种并发问题 | |
| 2018_04_20_魔鬼式分析NIO通信架构原理 | |
| 2018_04_23_垂直打击之JVM剖析 | |
| 2018_05_08(下午)_一张图完美还原HashMap(JDK1.8)源码 | |
| 2018_05_08_434_BAT面试必问的JVM到底怎么学 | |
| 2018_05_11_阿里面试必备之分析IO及NIO的底层原理 | |
| 2018_05_13_千万级流量的优化策略实战 | |
| 2018_05_14_漫谈Mysql索引 | |
| 2018_05_16_synchronized的底层原理分析 | |
| 2018_05_23面试必问之JVM | |
| 2018_05_28_一小时搞定阿里核心面试题 | |
| Jack_20180427_今晚谁再说看不懂HashMap源码算我输 | |
| Jack_20180430_后来的我们学会了这样看源码 | |
| Jack_20180501_Tomcat8源码邀你乘坐五一假期末班车 | |
| Jack_20180504_Professional Analysis of NIO | |
| Jack_20180511_阿里面试必备之分析IO及NIO的底层原理 | |
| James_0430高效程序员如何优雅落地需求 | |
| James_0506程序员的职业生涯及面试指南 | |
| James_0523面试必问之JVM | |
| James_0719Mysql底层索引剖析 | |
| Mic_20180428_分布式服务Dubbo的前世今生 | |
| Mic_20180502_深入分析https的底层原理 | |
| Mic_20180718_分布式集群及动态负载均衡实战 | |
| Tom_20180429_以ElasticSearch为例,论学习方法的重要性 | |
| Tom_20180503_巧用工具,解放双手,架构师都是这样思考问题的 | |
| Tom_20180720_一口气写完Spring核心代码,不信你就来 | |
| 咕泡学院 - Java 9 异步并发编程 | |
| 咕泡学院 - Java 9 新特性之核心库(上) | |
| 咕泡学院 - Java 9 新特性之核心库(下) | |
| 咕泡学院 - Reactor Streams 并发编程之 Reactor | |
| 咕泡学院 - 微服务实践之路 | |
| 咕泡学院 - 深入浅出 Spring Boot 日志 | |
| 咕泡学院 - 深入浅出 Spring Boot 管控 | |
| 大神带你剖析Mysql索引底层数据结构 | |
| | |
| 20180803_理解 Spring 技术栈或许没有那么难 | |
| Mic_20180802_并发编程的原理 | |
| Tom_20180801_不修改代码、不新增配置和,1小时快速搭建可视化监控系统 | |
| Tom_20180805_10W条记录,只需0.1秒快速搜索到附近的人 | |
================================================
FILE: course/16 咕泡学院-JAVA开发中的热点技术剖析.md
================================================
## 咕泡学院 JAVA开发中的热点技术剖析
| 章节 | 记录 |
| ----------------------------------------------- | ---- |
| **PART1** | |
| Bad smell 内存泄露和内存溢出 | |
| JVM难吗?听听一本正经的James老师怎么说 | |
| mybatis源码分析及手写实现 | |
| 爱一个人需要一万个理由,学习Nginx只需要一个 | |
| | |
| **PART2** | |
| 分布式环境下session跨域共享原理 | |
| 带你装B带你飞,手把手教你学docker | |
| 纯手写系列之Dubbo RPC实现原理 | |
| | |
| **PART3** | |
| 分布式全局ID生成器介绍 | |
| 深入底层解读网络通信 | |
| 高阶程序员必须要知道的多线程并发编程 | |
| | |
| **PART4** | |
| 深入分析ThreadLocal的底层实现原理 | |
| 深入分析动态代理的实现原理 | |
| 深入分析热部署底层原理 | |
| | |
| **PART5** | |
| 一道面试题引发的思考 | |
| 做一个合格的程序员你必须掌握的linux性能工具集锦 | |
| 系统设计方法论之监控系统设计 | |
| 系统设计方法论初探之Redis实现监控系统设计 | |
================================================
FILE: course/17 咕泡学院-BAT面试课程.md
================================================
## 咕泡学院 BAT面试课程
| 章节 | 记录 |
| -------------------------------------------------------- | ---- |
| 7.1 如何控制多线程执行顺序 | |
| 7.2 深入底层研究volatile和synchronized的区别 | |
| 7.3 深入底层lock接口和synchronized的区别和优势 | |
| 7.4 多线程并发编程的总结和梳理 | |
| 7.5 分布式锁的实现原理 | |
| 7.6 剖析一道不简单的面试题 | |
| 7.7 图解阻塞io和非阻塞io及多路复用机制 | |
| 7.8 mysql中binlog的底层原理分析 | |
| 7.9 cookie和session的联系和区别 | |
| 7.10 tom_面试题_aop的底层实现原理,动态代理的动如何体现 | |
| 7.11 tom_面试题_javaweb开发中解决跨域问题的n种方案 | |
| 7.12 tom_面试题_从数据库底层来分析事务的提交与回滚全过程 | |
| 7.13 james_vip_要不要跳槽,怎么成长 | |
| 7.14 小马哥-技术人成长之路(上) | |
| 7.15 小马哥-技术人成长之路(下) | |
================================================
FILE: course/18 咕泡学院-性能优化.md
================================================
## 咕泡学院 性能优化
| 章节 | 记录 |
| --------------------------------- | ---- |
| 1.1 性能优化专题-什么是性能优化一 | |
| 1.1 性能优化专题-什么是性能优化二 | |
| 2.1 性能测试与优化(一) | |
| 2.1 性能测试与优化(二) | |
| 3.1 jvm介绍 一 | |
| 3.1 jvm介绍 二 | |
| 3.2 jvm垃圾回收一 | |
| 3.2 jvm垃圾回收二 | |
| 3.3 jvm案例分析一 | |
| 3.3 jvm案例分析二 | |
| 4.1 tomcat 架构(上) | |
| 4.1 tomcat 架构(下) | |
| 4.2 嵌入式 tomcat(下) | |
| 4.2 嵌入式 tomcat(上) | |
| 4.3 tomcat 性能优化(下) | |
| 4.3 tomcat 性能优化(中) | |
| 4.3 tomcat 性能优化(上) | |
| 5.1 性能优化之mysql介绍一 | |
| 5.1 性能优化之mysql介绍二 | |
| 5.2 性能优化之mysql优化一 | |
| 5.2 性能优化之mysql优化二 | |
================================================
FILE: course/19 并发编程原理.md
================================================
## 《Java并发编程原理与实战》学习记录
官网:[【龙果学院】Java并发编程原理与实战](https://www.roncoo.com/course/view/b6f89747a8284f44838b2c4da6c8677b)
| 课程大纲 | 记录 |
| ---------------------------------------------------------- | ---- |
| 1 你真的了解并发吗? | |
| 2 理解多线程与并发的之间的联系与区别 | |
| 3 解析多线程与多进程的联系以及上下文切换所导致资源浪费问题 | |
| 4 学习并发的四个阶段并推荐学习并发的资料 | |
| 5 线程的状态以及各状态之间的转换详解 | |
| 6 线程的初始化,中断以及其源码讲解 | |
| 7 多种创建线程的方式案例演示(一)带返回值的方式 | |
| 8 多种创建线程的方式案例演示(二)使用线程池 | |
| 9 Spring对并发的支持:Spring的异步任务 | |
| 10 使用jdk8提供的lambda进行并行计算 | |
| 11 了解多线程所带来的安全风险 | |
| 12 从线程的优先级看饥饿问题 | |
| 13 从Java字节码的角度看线程安全性问题 | |
| 14 synchronized保证线程安全的原理(理论层面) | |
| 15 synchronized保证线程安全的原理(jvm层面) | |
| 16 单例问题与线程安全性深入解析 | |
| 17 理解自旋锁,死锁与重入锁 | |
| 18 深入理解volatile原理与使用 | |
| 19 JDK5提供的原子类的操作以及实现原理 | |
| 20 Lock接口认识与使用 | |
| 21 手动实现一个可重入锁 | |
| 22 AbstractQueuedSynchronizer(AQS)详解 | |
| 23 使用AQS重写自己的锁 | |
| 24 重入锁原理与演示 | |
| 25 读写锁认识与原理 | |
| 26 细读ReentrantReadWriteLock源码 | |
| 27 ReentrantReadWriteLock锁降级详解 | |
| 28 线程安全性问题简单总结 | |
| 29 线程之间的通信之wait/notify | |
| 30 通过生产者消费者模型理解等待唤醒机制 | |
| 31 Condition的使用及原理解析 | |
| 32 使用Condition重写wait/notify案例并实现一个有界队列 | |
| 33 深入解析Condition源码 | |
| 34 实战:简易数据连接池 | |
| 35 线程之间通信之join应用与实现原理剖析 | |
| 36 ThreadLocal 使用及实现原理 | |
| 37 并发工具类CountDownLatch详解 | |
| 38 并发工具类CyclicBarrier 详解 | |
| 39 并发工具类Semaphore详解 | |
| 40 并发工具类Exchanger详解 | |
| 41 CountDownLatch,CyclicBarrier,Semaphore源码解析 | |
| 42 提前完成任务之FutureTask使用 | |
| 43 Future设计模式实现(实现类似于JDK提供的Future) | |
| 44 Future源码解读 | |
| 45 Fork/Join框架详解 | |
| 46 同步容器与并发容器 | |
| 47 并发容器CopyOnWriteArrayList原理与使用 | |
| 48 并发容器ConcurrentLinkedQueue原理与使用 | |
| 49 Java中的阻塞队列原理与使用 | |
| 50 实战:简单实现消息队列 | |
| 51 并发容器ConcurrentHashMap原理与使用 | |
| 52 线程池的原理与使用 | |
| 53 Executor框架详解 | |
| 54 实战:简易web服务器(一) | |
| 55 实战:简易web服务器(二) | |
| 56 JDK8的新增原子操作类LongAddr原理与使用 | |
| 57 JDK8新增锁StampedLock详解 | |
| 58 重排序问题 | |
| 59 happens-before简单概述 | |
| 60 锁的内存语义 | |
| 61 volatile内存语义 | |
| 62 final域的内存语义 | |
| 63 实战:问题定位 | |
================================================
FILE: course/20 MySQL性能管理及架构设计.md
================================================
## 《MySQL性能管理及架构设计》学习记录
| 章节 | 记录 |
| ------------------------------------------------------------ | ---- |
| **第1章 实例和故事** | |
| *决定电商11大促成败的各个关键因素。* | |
| | |
| 1-1 什么决定了电商双11大促的成败 | |
| 1-2 在双11大促中的数据库服务器 | |
| 1-3 在大促中什么影响了数据库性能 | |
| 1-4 大表带来的问题 | |
| 1-5 大事务带来的问题 | |
| | |
| **第2章 什么影响了MySQL性能** | |
| *详细介绍影响性能各个因素,包括硬件、操作系统等等。* | |
| | |
| 2-1 影响性能的几个方面 | |
| 2-2 CPU资源和可用内存大小 | |
| 2-3 磁盘的配置和选择 | |
| 2-4 使用RAID增加传统机器硬盘的性能 | |
| 2-5 使用固态存储SSD或PCIe卡 | |
| 2-6 使用网络存储SAN和NAS | |
| 2-7 总结:服务器硬件对性能的影响 | |
| 2-8 操作系统对性能的影响-MySQL适合的操作系统 | |
| 2-9 CentOS系统参数优化 | |
| 2-10 文件系统对性能的影响 | |
| 2-11 MySQL体系结构 | |
| 2-12 MySQL常用存储引擎之MyISAM | |
| 2-13 MySQL常用存储引擎之Innodb | |
| 2-14 Innodb存储引擎的特性(1) | |
| 2-15 Innodb存储引擎的特性(2) | |
| 2-16 MySQL常用存储引擎之CSV | |
| 2-17 MySQL常用存储引擎之Archive | |
| 2-18 MySQL常用存储引擎之Memory | |
| 2-19 MySQL常用存储引擎之Federated | |
| 2-20 如何选择存储引擎 | |
| 2-21 MySQL服务器参数介绍 | |
| 2-22 内存配置相关参数 | |
| 2-23 IO相关配置参数 | |
| 2-24 安全相关配置参数 | |
| 2-25 其它常用配置参数 | |
| 2-26 数据库设计对性能的影响 | |
| 2-27 总结 | |
| | |
| **第3章 MySQL基准测试** | |
| *了解基准测试,MySQL基准测试工具介绍及实例演示。* | |
| | |
| 3-1 什么是基准测试 | |
| 3-2 如何进行基准测试 | |
| 3-3 基准测试演示实例 | |
| 3-4 Mysql基准测试工具之mysqlslap | |
| 3-5 Mysql基准测试工具之sysbench | |
| 3-6 sysbench基准测试演示实例 | |
| | |
| **第4章 MySQL数据库结构优化** | |
| *详细介绍数据库结构设计、范式和反范式设计、物理设计等等。* | |
| | |
| 4-1 数据库结构优化介绍 | |
| 4-2 数据库结构设计 | |
| 4-3 需求分析及逻辑设计 | |
| 4-4 需求分析及逻辑设计-反范式化设计 | |
| 4-5 范式化设计和反范式化设计优缺点 | |
| 4-6 物理设计介绍 | |
| 4-7 物理设计-数据类型的选择 | |
| 4-8 物理设计-如何存储日期类型 | |
| 4-9 物理设计-总结 | |
| | |
| **第5章 MySQL高可用架构设计** | |
| *详细介绍二进制日志及其对复制的影响、GTID的复制、MMM、MHA等等。* | |
| | |
| 5-1 mysql复制功能介绍 | |
| 5-2 mysql二进制日志 | |
| 5-3 mysql二进制日志格式对复制的影响 | |
| 5-4 mysql复制工作方式 | |
| 5-5 基于日志点的复制 | |
| 5-6 基于GTID的复制 | |
| 5-7 MySQL复制拓扑 | |
| 5-8 MySQL复制性能优化 | |
| 5-9 MySQL复制常见问题处理 | |
| 5-10 什么是高可用架构 | |
| 5-11 MMM架构介绍 | |
| 5-12 MMM架构实例演示(上) | |
| 5-13 MMM架构实例演示(下) | |
| 5-14 MMM架构的优缺点 | |
| 5-15 MHA架构介绍 | |
| 5-16 MHA架构实例演示(1) | |
| 5-17 MHA架构实例演示(2) | |
| 5-18 MHA架构优缺点 | |
| 5-19 读写分离和负载均衡介绍 | |
| 5-20 MaxScale实例演示 | |
| | |
| **第6章 数据库索引优化** | |
| *介绍BTree索引和Hash索引,详细介绍索引的优化策略等等。* | |
| | |
| 6-1 Btree索引和Hash索引 | |
| 6-2 安装演示数据库 | |
| 6-3 索引优化策略(上) | |
| 6-4 索引优化策略(中) | |
| 6-5 索引优化策略(下) | |
| | |
| **第7章 SQL查询优化** | |
| *详细介绍慢查询日志及示例演示,MySQL查询优化器介绍及特定SQL的查询优化等。* | |
| | |
| 7-1 获取有性能问题SQL的三种方法 | |
| 7-2 慢查询日志介绍 | |
| 7-3 慢查询日志实例 | |
| 7-4 实时获取性能问题SQL | |
| 7-5 SQL的解析预处理及生成执行计划 | |
| 7-6 如何确定查询处理各个阶段所消耗的时间 | |
| 7-7 特定SQL的查询优化 | |
| | |
| **第8章 数据库的分库分表** | |
| *详细介绍数据库分库分表的实现原理及演示案例等。* | |
| | |
| 8-1 数据库分库分表的几种方式 | |
| 8-2 数据库分片前的准备 | |
| 8-3 数据库分片演示(上) | |
| 8-4 数据库分片演示(下) | |
| | |
| **第9章 数据库监控** | |
| *介绍数据库可用性监控、性能监控、MySQL主从复制监控等* | |
| | |
| 9-1 数据库监控介绍 | |
| 9-2 数据库可用性监控 | |
| 9-3 数据库性能监控 | |
| 9-4 MySQL主从复制监控 | |
================================================
FILE: course/21 JVM.md
================================================
## 《深入理解Java虚拟机》学习记录
[深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)](https://www.roncoo.com/course/view/0ec92a81e8764b838e86c4febe7a5b17)
| 章节 | 记录 |
| ---------------------------------------------------- | ---- |
| 1 说在前面的话 | |
| 2 整个部分要讲的内容说明 | |
| 3 环境搭建以及jdk,jre,jvm的关系 | |
| 4 jvm初体验-内存溢出问题的分析与解决 | |
| 5 jvm再体验-jvm可视化监控工具 | |
| 6 杂谈 | |
| 7 Java的发展历史 | |
| 8 Java的发展历史续 | |
| 9 Java技术体系 | |
| 10 jdk8的新特性 | |
| 11 lanmbda表达式简介 | |
| 12 Java虚拟机-classic vm | |
| 13 Java虚拟机-ExactVM | |
| 14 Java虚拟机-HotSpotVM | |
| 15 Java虚拟机-kvm | |
| 16 Java虚拟机-JRockit | |
| 17 Java虚拟机-j9 | |
| 18 Java虚拟机-dalvik | |
| 19 Java虚拟机-MicrosoftJVM | |
| 20 Java虚拟机-高性能Java虚拟机 | |
| 21 Java虚拟机-TaobaoVM | |
| 22 Java内存区域-简介 | |
| 23 Java内存区域-Java虚拟机栈 | |
| 24 Java内存区域-程序计数器 | |
| 25 Java内存区域-本地方法栈 | |
| 26 Java内存区域-堆内存 | |
| 27 Java内存区域-方法区 | |
| 28 Java内存区域-直接内存和运行时常量池 | |
| 29 对象在内存中的布局-对象的创建 | |
| 30 探究对象的结构 | |
| 31 深入理解对象的访问定位 | |
| 32 垃圾回收-概述 | |
| 33 垃圾回收-判断对象是否存活算法-引用计数法详解 | |
| 34 垃圾回收-判断对象是否存活算法-可达性分析法详解 | |
| 35 垃圾回收算法-标记清除算法 | |
| 36 垃圾回收算法-复制算法 | |
| 37 垃圾回收算法-标记整理算法和分代收集算法 | |
| 38 垃圾收集器-serial收集器详解 | |
| 39 垃圾收集器-parnew收集器详解 | |
| 40 垃圾收集器-parallel收集器详解 | |
| 41 垃圾收集器-cms收集器详解 | |
| 42 最牛的垃圾收集器-g1收集器详解 | |
| 43 内存分配-概述 | |
| 44 内存分配-Eden区域 | |
| 45 内存分配-大对象直接进老年代 | |
| 46 内存分配-长期存活的对象进入老年代 | |
| 47 内存分配-空间分配担保 | |
| 48 内存分配-逃逸分析与栈上分配 | |
| 49 虚拟机工具介绍 | |
| 50 虚拟机工具-jps详解 | |
| 51 虚拟机工具-jstat详解 | |
| 52 虚拟机工具-jinfo详解 | |
| 53 虚拟机工具-jmap详解 | |
| 54 虚拟机工具-jhat详解 | |
| 55 虚拟机工具-jstack详解 | |
| 56 可视化虚拟机工具-Jconsole内存监控 | |
| 57 可视化虚拟机工具-Jconsole线程监控 | |
| 58 死锁原理以及可视化虚拟机工具-Jconsole线程死锁监控 | |
| 59 VisualVM使用详解 | |
| 60 性能调优概述 | |
| 61 性能调优-案例1 | |
| 62 性能调优-案例2 | |
| 63 性能调优-案例3 | |
| 64 前半部分内容整体回顾 | |
| 65 Class文件简介和发展历史 | |
| 66 Class文件结构概述 | |
| 67 Class文件设计理念以及意义 | |
| 68 文件结构-魔数 | |
| 69 文件结构-常量池 | |
| 70 文件结构-访问标志 | |
| 71 文件结构-类索引 | |
| 72 文件结构-字段表集合 | |
| 73 文件结构-方法表集合 | |
| 74 文件结构-属性表集合 | |
| 75 字节码指令简介 | |
| 76 字节码与数据类型 | |
| 77 加载指令 | |
| 78 运算指令 | |
| 79 类型转换指令 | |
| 80 对象创建与访问指令 | |
| 81 操作树栈指令 | |
| 82 控制转移指令 | |
| 83 方法调用和返回指令 | |
| 84 异常处理指令 | |
| 85 同步指令 | |
| 86 类加载机制概述 | |
| 87 类加载时机 | |
| 88 类加载的过程-加载 | |
| 89 类加载的过程-验证 | |
| 90 类加载的过程-准备 | |
| 91 类加载的过程-解析 | |
| 92 类加载的过程-初始化 | |
| 93 类加载器 | |
| 94 双亲委派模型 | |
| 95 运行时栈帧结构 | |
| 96 局部变量表 | |
| 97 操作数栈 | |
| 98 动态连接 | |
| 99 方法返回地址和附加信息 | |
| 100 方法调用-解析调用 | |
| 101 方法调用-静态分派调用 | |
| 102 方法调用-动态分派调用 | |
| 103 动态类型语言支持 | |
| 104 字节码执行引擎小结 | |
| 105 总结与回顾 | |
| 106 happens-before简单概述 | |
| 107 重排序问题 | |
| 108 锁的内存语义 | |
| 109 volatile的内存语义 | |
| 110 final域内存语义 | |
================================================
FILE: course/22 白鹤翔_JVM虚拟机优化.md
================================================
## 尚学堂-白鹤翔_jvm虚拟机优化 学习记录
| 章节 | 记录 |
| ------------------------------- | ------------------------------- |
| 1 jvm_虚拟机概念1 | |
| 2 jvm_虚拟机概念2 | |
| 3 jvm_虚拟机组成部分概述 | |
| 4 jvm_堆栈永久区详细讲解 | |
| 5 jvm_虚拟机参数讲解(一)1 | |
| 6 jvm_虚拟机参数讲解(一)2 | |
| 7 jvm_虚拟机参数讲解(二)1 | |
| 8 jvm_虚拟机参数讲解(二)2 | |
| 9 jvm_虚拟机参数讲解(三)1 | |
| 10 jvm_虚拟机参数讲解(三)2 | |
| 11 jvm_虚拟机参数讲解(三)3 | |
| 12 jvm_垃圾收集算法讲解(一)1 | |
| 13 jvm_垃圾收集算法讲解(一)2 | |
| 14 jvm_垃圾收集算法讲解(二) | |
| 15 jvm_关于一些编辑器工具使用 | |
| 16 虚拟机介绍 | |
| 17 垃圾回收 | |
================================================
FILE: course/23 MySQL大型分布式集群.md
================================================
## 《MySQL大型分布式集群》 学习记录
官网:[【龙果学院】MySQL大型分布式集群](https://www.roncoo.com/course/view/658088f6e77541f5835b61800314083e)
### 课程介绍
本套课程将通过分布式集群和分库分表两部分内容进行讲解
1. 主要解决针对大型网站架构中持久化部分中,大量数据存储以及高并发访问所带来是数据读写问题。分布式是将一个业务拆分为多个子业务,部署在不同的服务器上。集群是同一个业务,部署在多个服务器上。
2. 着重对数据切分做了细致丰富的讲解,从数据切分的原理出发,一步一步深入理解数据的切分,通过深入理解各种切分策略来设计和优化我们的系统。这部分中我们还用到了数据库中间件和客户端组件来进行数据的切分,让广大网友能够对数据的切分从理论到实战都会有一个质的飞跃。
学完本套课程以后能够达到的效果:
期望通过本课程能帮助大家学习到如何通过分布式+集群的方式来提高io的吞吐量,以及数据库的主从复制,主主复制,负载均衡,高可用,分库分表以及数据库中间件的使用。希望能够帮助大家更加清楚了解架构的工作模式,从而写出更高质量的代码。对于企业的架构人员可以优化企业架构。对于兴趣爱好者,可以作为一个很好的入门。
课程讲解过程中尽可能用简单的语言描述其中的原理,通过实例来帮助初学者快速上手。案例中代码全部手写,实例全部现场真实环境演示。
教程样例项目中用到的技术及相应的环境
MySQL5.7 CentOS6.9 Vmware Spring3.x以上 JDK8 Maven XShell Xftp
教程中所有的与编程相关均使用Java来进行演示,但与编程语言无关,可使用任何编程语言进行测试。
| 章节 | 记录 |
| ---------------------------------------------------- | ---- |
| 1 课程概述 | |
| 2 课程背景 | |
| 3 纵观大型网站架构发展,总结持久化部分需要应对的问题 | |
| 4 操作系统安装以及配置 | |
| 5 在CentOS上通过yum安装mysql5.7 | |
| 6 mysql初次见面-mysql5.7的用户以及安全策略 | |
| 7 mysql初次见面续-mysql基本操作 | |
| 8 认识主从复制 | |
| 9 主从复制的准备工作01-mysql用户以及权限 | |
| 10 主从复制的准备工作02-binlog日志详解 | |
| 11 主从实战01-准备环境 | |
| 12 主从实战02-主节点配置 | |
| 13 主从实战03-从节点配置 | |
| 14 java操作主从01 | |
| 15 java操作主从02 | |
| 16 主主复制 | |
| 17 负载均衡概述以及环境准备 | |
| 18 搭建负载均衡-01 | |
| 19 搭建负载均衡-02 | |
| 20 启动haproxy的监控功能 | |
| 21 高可用以及环境准备 | |
| 22 搭建keepalived | |
| 23 Keepalived配置简介 | |
| 24 Keepalived配置邮件 | |
| 25 Keepalived其他配置 | |
| 26 分库分表概述 | |
| 27 逻辑分表01-水平分表 | |
| 28 逻辑分表02-水平分表续及垂直分表 | |
| 29 表分区 | |
| 30 数据库中间件01-认识mycat | |
| 31 数据库中间件02-mycat安装 | |
| 32 数据库中间件03-mycat的helloworld | |
| 33 数据库中间件04-mycat的初识 | |
| 34 数据库中间件05-mycat的数据切分 | |
| 35 数据库中间件06-mycat的读写分离-01 | |
| 36 数据库中间件06-mycat的读写分离-02 | |
| 37 数据库中间件06-mycat的读写分离03-读写分离补充 | |
| 38 数据库中间件07-mycat的高可用-01 | |
| 39 数据库中间件08-mycat的高可用-02 | |
| 40 数据库中间件09-mycat集群 | |
| 41 mysql查询缓存 | |
| 42 数据库切分概述 | |
| 43 java环境配置 | |
| 44 水平切分原理及单表切分后的操作 | |
| 45 水平切分原理及单表切分后的操作-2 | |
| 46 水平切分多表关联操作 | |
| 47 垂直切分原理及操作 | |
| 48 全局序列号 | |
| 49 数据库切分策略-分片枚举 | |
| 50 数据库切分策略-hash | |
| 51 数据库切分策略-范围约定 | |
| 52 数据库切分策略-取模 | |
| 53 数据库切分策略-按日期分片 | |
| 54 全局表 | |
| 55 认识MyCat | |
| 56 部署MyCat | |
| 57 使用MyCat完成简单的数据库分片 | |
| 58 MyCat分片策略 | |
| 59 MyCat全局表配置 | |
| 60 MyCatER表配置 | |
| 61 另外一种切分方式-使用客户端组件的方式实现数据库分 | |
| 62 课程总结 | |
================================================
FILE: course/24 操作系统(清华大学).md
================================================
## 操作系统_清华大学(向勇、陈渝)
| 章节 | 记录 |
| ------------------------------------------ | ---- |
| 1.1 课程概述 | |
| 1.2 什么是操作系统 | |
| 1.3 为什么学习操作系统 | |
| 1.4 如何学习操作系统 | |
| 1.5 操作系统实例 | |
| 1.6 操作系统的历史 | |
| 1.7 操作系统结构 | |
| 1.8 小结 | |
| | |
| 2.1 操作系统的启动 | |
| 2.2 操作系统的终端、异常、和系统调用 | |
| | |
| 3.1 计算机体系结构及内存分层体系 | |
| 3.2 地址空间与地址生成 | |
| 3.3 连续内存分配:内存碎片与分区的动态分配 | |
| 3.4 连续内存分配:压缩式与交换式碎片整理 | |
| | |
| 4.1 非连续内存分配:分段 | |
| 4.2 非连续内存分配:分页 | |
| 4.3 非连续内存分配:页表-概述、TLB | |
| 4.4 非连续内存分配:页表-二级,多级页表 | |
| 4.5 非连续内存分配:页表-反向页表 | |
| | |
| 5.1 虚拟内存的起因 | |
| 5.2 覆盖技术 | |
| 5.3 交换技术 | |
| 5.4 虚存技术(上) | |
| 5.5 虚存技术(下) | |
| | |
| 6.1 最优页面置换算法 | |
| 6.2 先进先出算法 | |
| 6.3 最近最久未使用算法 | |
| 6.4 时钟页面置换算法 | |
| 6.5 二次机会法 | |
| 6.6 最不常用法 | |
| 6.7 Belady现象、LRU、FIFO、Clock的比较 | |
| 6.8 局部页替换算法的问题、工作集模型 | |
| 6.9 两个全局置换算法 | |
| 6.10 抖动问题 | |
| | |
| 7.1 进程的定义 | |
| 7.2 进程的组成 | |
| 7.3 进程的特点 | |
| 7.4 进程控制结构 | |
| 7.5 进程的生命期原理 | |
| 7.6 进程状态变化模型 | |
| 7.7 进程挂起 | |
| 7.8 为什么使用线程 | |
| 7.9 什么是线程 | |
| 7.10 线程的实现 | |
| 7.11 上下文切换 | |
| 7.12 进程控制——创建进程 | |
| 7.13 进程控制——加载和执行进程 | |
| 7.14 进程控制——等待和终止进程 | |
| | |
| 8.1 背景 | |
| 8.2 调度原则 | |
| 8.3 调度算法1 | |
| 8.4 调度算法2 | |
| 8.5 实时调度 | |
| 8.6 多处理器调度与优先级反转 | |
| | |
| 9.1 背景知识 | |
| 9.2 一些概念part1 | |
| 9.3 一些概念part2 | |
| 9.4 一些概念part3 | |
| 9.5 临界区 | |
| 9.6 方法1:禁用硬件中断 | |
| 9.7 方法2:基于软件的解决方案 | |
| 9.8 方法3:更高级的抽象 | |
| | |
| 10.1 背景 | |
| 10.2 信号量 | |
| 10.3 信号量的使用 | |
| 10.4 信号量的实现 | |
| 10.5 管程 | |
| 10.6 经典同步问题-1 | |
| 10.7 经典同步问题-2 | |
| 10.8 经典同步问题-3 | |
| 10.9 经典同步问题-4 | |
| 10.10 经典同步问题-5 | |
| 10.11 景点同步问题-6 | |
| | |
| 11.1 死锁问题 | |
| 11.2 系统模型 | |
| 11.3 死锁特征 | |
| 11.4 死锁处理办法 | |
| 11.5 死锁预防和死锁避免 | |
| 11.6 银行家算法 | |
| 11.7 死锁检测和死锁恢复 | |
| 11.8 IPC概述 | |
| 11.9 信号、管道、消息队列和共享内存 | |
| | |
| 12.1 文件系统:总体介绍 | |
| 12.2 基本概念 | |
| 12.3 基本概念——文件系统和文件 | |
| 12.4 基本概念——文件系统的功能 | |
| 12.5 基本概念——文件和块 | |
| 12.6 基本概念——文件描述符 | |
| 12.7 基本概念——目录 | |
| 12.8 基本概念——文件别名 | |
| 12.9 基本概念——文件系统种类 | |
| 12.10 虚拟文件系统 | |
| 12.11 数据缓存 | |
| 12.12 打开文件的数据结构 | |
| 12.13 文件分配 | |
| 12.14 空闲空间列表 | |
| 12.15 多磁盘管理-RAID | |
| 12.16 磁盘调度 | |
================================================
FILE: course/25 Linux达人养成计划 I.md
================================================
## 《Linux达人养成计划 I》学习记录
时长:8小时58分钟
| 章节 | 记录 |
| ------------------------------------------ | ---- |
| 1-1 Linux简介 | |
| 1-2 开源软件简介 | |
| 1-3 Linux应用领域 | |
| 1-4 Linux学习方法 | |
| 1-5 Linux与Windows的不同 | |
| 1-6 字符界面的优势 | |
| | |
| 2-1 虚拟机的安装 | |
| 2-2 虚拟机使用 | |
| 2-3 系统分区之分区与格式化 | |
| 2-4 分区之分区设备文件名与挂载 | |
| 2-5 Linux系统安装 | |
| 2-6 XShell的安装和使用 | |
| | |
| 3-1 命令格式(命令基本格式及文件处理命令) | |
| 3-2 目录处理命令(上) | |
| 3-3 目录处理命令(下) | |
| 3-4 常见目录作用 | |
| 3-5 链接命令 | |
| | |
| 4-1 文件搜索命令locate | |
| 4-2 命令搜索命令 | |
| 4-3 find命令 | |
| 4-4 grep命令 | |
| | |
| 5-1 帮助命令 | |
| 5-2 其他帮助命令 | |
| | |
| 6-1 压缩命令1 | |
| 6-2 压缩命令2 | |
| | |
| 7-1 关机与重启命令 | |
| | |
| 8-1 挂载命令 | |
| 8-2 用户登录查看命令 | |
| | |
| 9-1 shell概述 | |
| 9-2 脚本执行方式 | |
| 9-3 别名与快捷键 | |
| 9-4 历史命令 | |
| 9-5 输出重定向 | |
| 9-6 管道符 | |
| 9-7 通配符 | |
================================================
FILE: course/26 Linux 达人养成计划 II.md
================================================
## 《Linux 达人养成计划 II》学习记录
时长:2小时30分
| 章节 | 记录 |
| --------------------------------- | ---- |
| 第1章 VIM文本编辑器 | |
| 1-1 VIM编辑器概述 | |
| 1-2 VIM编辑器的操作模式 | |
| 1-3 VIM编辑器的命令模式 | |
| 1-4 底行模式和命令模式常用指令 | |
| 1-5 练习题 | |
| | |
| 第2章 磁盘管理 | |
| 2-1 Linux 磁盘管理基本命令 | |
| 2-2 Linux 硬盘分区和格式化概述 | |
| 2-3 Linux 在VM虚拟机中添加硬盘 | |
| 2-4 Linux中MBR分区 | |
| 2-5 Linux中GPT分区 | |
| 2-6 Linux中分区的格式化 | |
| 2-7 Linux中挂载分区 | |
| 2-8 Linux中swap分区 | |
| 2-9 练习题 | |
| | |
| 第3章 用户管理 | |
| 3-1 Linux中用户和用户组的概念 | |
| 3-2 Linux中用户和用户组的基本命令 | |
| 3-3 Linux中用户和用户组进阶命令 | |
| 3-4 Linux中用户管理其他命令 | |
================================================
FILE: course/27 快速上手Linux 玩转典型应用.md
================================================
## 快速上手 Linux 玩转典型应用
时长:10小时
| 章节 | 记录 |
| ------------------------------------------ | ---- |
| 第1章 课程介绍 | |
| 1-1 导学 | |
| | |
| 第2章 Linux简介 | |
| 2-1 什么是 Linux | |
| 2-2 Linux能够做什么事情 | |
| 2-3 Linux的学习方法 | |
| 2-4 忘掉 window的所有东西 | |
| | |
| 第3章 CentOs 的安装 | |
| 3-1 虚拟机是什么 | |
| 3-2 在虚拟机中安装CentOs | |
| 3-3 云服务器介绍 | |
| | |
| 第4章 准备工作 | |
| 4-1 课前准备工作 | |
| | |
| 第5章 远程连接SSH专题 | |
| 5-1 认识SSH | |
| 5-2 服务器安装SSH服务 | |
| 5-3 客户端安装SSH工具 | |
| 5-4 客户端链接SSH服务 | |
| 5-5 SSH config 命令讲解 | |
| 5-6 SSH免密登录 | |
| | |
| 第6章 Linux常用命令讲解 | |
| 6-1 Linux常用命令 | |
| 6-2 服务器硬件资源信息 | |
| 6-3 文件操作命令 | |
| 6-4 Linux文本编辑神器--VIM | |
| 6-5 系统用户操作命令 | |
| 6-6 防火墙的设置 | |
| 6-7 提权和文件上传下载的操作 | |
| | |
| 第7章 WebServer安装和配置讲解 | |
| 7-1 Apache的安装 | |
| 7-2 Apache的虚拟主机配置及伪静态操作 | |
| 7-3 Nginx的基本操作 | |
| 7-4 Nginx伪静态的实现 | |
| 7-5 实例演示反向代理和负载均衡 | |
| | |
| 第8章 数据库服务 | |
| 8-1 Mysql安装及链接 | |
| 8-2 远程链接 | |
| 8-3 开启genelog | |
| | |
| 第9章 缓存服务 | |
| 9-1 Redis、Memcache介绍及安装 | |
| 9-2 Redis的基本操作 | |
| | |
| 第10章 Git安装和使用 | |
| 10-1 git版本管理工具(上) | |
| 10-2 git版本管理工具(下) | |
| | |
| 第11章 Php框架TP5,Lavaral Yii2.0 环境配置 | |
| 11-1 PHP基础运行环境搭建 | |
| 11-2 Laravel运行环境配置(上) | |
| 11-3 Laravel运行环境配置(下) | |
| 11-4 yii2.0 TP 5.0 框架配置 | |
| 11-5 PhpMyadmin的配置安装 | |
| 11-6 PhpRedisAdmin的配置安装 | |
| | |
| 第12章 Java运行环境配置 | |
| 12-1 Java运行环境配置 | |
| 12-2 maven高级使用 | |
| | |
| 第13章 Python运行环境 | |
| 13-1 Python 运行环境配置 | |
| 13-2 Python flask 高级应用 | |
| | |
| 第14章 服务管理 | |
| 14-1 Linux常见服务-Crontba、Ntpdate | |
| 14-2 Linux常见服务--Logrotate.Supervisor | |
| | |
| 第15章 监控神器Zabbix | |
| 15-1 监控系统Zabbix (上) | |
| 15-2 监控系统Zabbix (下) | |
| | |
| 第16章 课程总结 | |
| 16-1 课程总结 | |
================================================
FILE: course/28 系统学习Docker 践行DevOps理念.md
================================================
## 系统学习Docker 践行DevOps理念
时长:15小时
| 章节 | 记录 |
| --------------------------------------------------- | ---- |
| 第1章 容器技术和Docker简介 | |
| 1-1 Docker导学 | |
| 1-2 容器技术概述 | |
| 1-3 Docker魅力初体验 | |
| 1-4 课程源码获取和注意事项 | |
| | |
| 第2章 Docker环境的各种搭建方法 | |
| 2-1 Docker安装简介 | |
| 2-2 在MAC系统上安装Docker | |
| 2-3 在Windows系统上安装Docker | |
| 2-4 Vagrant&VirtualBox for Mac | |
| 2-5 Vagrant&VirtualBox for Windows | |
| 2-6 在CentOS上安装Docker | |
| 2-7 Docker Machine的本地使用 | |
| 2-8 Docker Machine在阿里云上的使用 | |
| 2-9 Docker Machine在亚马逊AWS云上的使用 | |
| 2-10 Docker Playground | |
| 2-11 本章总结 | |
| | |
| 第3章 Docker的镜像和容器 | |
| 3-1 Docker架构和底层技术简介 | |
| 3-2 Docker Image概述 | |
| 3-3 DIY一个Base Image | |
| 3-4 初识Container | |
| 3-5 构建自己的Docker镜像 | |
| 3-6 Dockerfile语法梳理及最佳实践 | |
| 3-7 RUN vs CMD vs Entrypoint | |
| 3-8 镜像的发布 | |
| 3-9 Dockerfile实战 | |
| 3-10 容器的操作 | |
| 3-11 Dockerfile实战(2) | |
| 3-12 容器的资源限制 | |
| | |
| 第4章 Docker的网络 | |
| 4-1 本章概述和实验环境介绍 | |
| 4-2 网络基础回顾 | |
| 4-3 Linux网络命名空间 | |
| 4-4 Docker bridge0详解 | |
| 4-5 容器之间的link | |
| 4-6 容器的端口映射 | |
| 4-7 容器网络之host和none | |
| 4-8 多容器复杂应用的部署演示 | |
| 4-9 Overlay和Underlay的通俗解释 | |
| 4-10 Docker Overlay网络和etcd实现多机容器通信 | |
| | |
| 第5章 Docker的持久化存储和数据共享 | |
| 5-1 本章介绍 | |
| 5-2 本章实验环境介绍 | |
| 5-3 数据持久化之Data Volume | |
| 5-4 数据持久化之Bind Mouting | |
| 5-5 开发者利器-Docker+Bind Mout | |
| | |
| 第6章 Docker Compose多容器部署 | |
| 6-1 根据前面所学部署一个wordpress | |
| 6-2 Docker Compose到底是什么 | |
| 6-3 Docker Compose的安装和基本使用 | |
| 6-4 水平扩展和负载均衡 | |
| 6-5 部署一个复杂的投票应用 | |
| | |
| 第7章 容器编排Docker Swarm | |
| 7-1 容器编排Swarm介绍 | |
| 7-2 创建一个三节点的swarm集群 | |
| 7-3 Service的创建维护和水平扩展 | |
| 7-4 在swarm集群里通过service部署wordpress | |
| 7-5 集群服务间通信之Routing Mesh | |
| 7-6 Routing Mesh之Ingress负载均衡 | |
| 7-7 Docker Stack部署Wordpress | |
| 7-8 作业解答之部署投票应用 | |
| 7-9 Docker Secret管理和使用 | |
| 7-10 Docker Secret在Stack中的使用 | |
| 7-11 Service更新 | |
| | |
| 第8章 DevOps初体验——Docker Cloud和Docker企业版 | |
| 8-1 谈钱不伤感情-Docker的收费模式 | |
| 8-2 Docker Cloud简介 | |
| 8-3 Docker Cloud之自动build Docker image | |
| 8-4 Docker Cloud之持续集成和持续部署 | |
| 8-5 Docker企业版的在线免费体验 | |
| 8-6 Docker企业版本地安装之UCP | |
| 8-7 Docker企业版本地安装之DTR | |
| 8-8 Docker企业版UCP的基本使用演示 | |
| 8-9 体验阿里云的容器服务 | |
| 8-10 在阿里云上安装Docker企业版.mp4 | |
| 8-11 Docker企业版DTR的基本使用演示 | |
| | |
| 第9章 容器编排Kubernetes | |
| 9-1 Kubenetes简介 | |
| 9-2 Minikube快速搭建K8S单节点环境 | |
| 9-3 K8S最小调度单位Pod | |
| 9-4 ReplicaSet和ReplicationController | |
| 9-5 Deployment_.mp4 | |
| 9-6 使用Tectonic在本地搭建多节点K8S集群 | |
| 9-7 k8s基础网络Cluster Network | |
| 9-8 Service简介和演示 | |
| 9-9 NodePort类型Service以及Label的简单实用_音频.mp4 | |
| 9-10 准备工作——使用kops在亚马逊AWS上搭建k8s集群 | |
| 9-11 使用kops在亚马逊AWS上搭建k8s集群.mp4 | |
| 9-12 LoadBlancer类型Service以及AWS的DNS服务配置 | |
| 9-13 在亚马逊k8s集群上部署wordpress | |
| | |
| 第10章 容器的的运维和监控 | |
| 10-1 容器的基本监控 | |
| 10-2 k8s集群运行资源监控——Heapster+Grafana+InfluxDB | |
| 10-3 根据资源占用自动横向伸缩 | |
| 10-4 k8s集群Log的采集和展示——ELK+Fluentd | |
| 10-5 k8s集群监控方案Prometheus | |
| | |
| 第11章 Docker+DevOps实战——过程和工具 | |
| 11-1 本章简介 | |
| 11-2 搭建GitLab服务器 | |
| 11-3 搭建GitLab CI服务器和Pipeline演示 | |
| 11-4 基于真实Python项目的CI演示 | |
| 11-5 简单Java项目的CI演示 | |
| 11-6 使用Python项目演示的CICD流程 | |
| 11-7 CI实现版本自动发布 | |
| 11-8 本章总结和如何继续学习 | |
| | |
| 第12章 课程总结 | |
| 12-1 不是总结的总结 | |
================================================
FILE: course/30 Python Flask构建可扩展的RESTful API.md
================================================
## Python Flask构建可扩展的RESTful API
时长:6小时25分钟
| 章节 | 记录 |
| ------------------------------------------------------------ | ---- |
| **第1章 随便聊聊** | |
| 聊聊Flask与Django,聊聊代码的创造性 | |
| | |
| 1-1 Flask VS Django | |
| 1-2 课程更新维护说明 | |
| | |
| **第2章 起步与红图** | |
| 本章我们初始化项目,探讨与研究Flask的默认层级结构。当我们遇到层级结构不合理时,我们将模仿蓝图自己定义一个“红图”来扩展Flask层级体系 | |
| | |
| 2-1 环境、开发工具与flask1.0 | |
| 2-2 初始化项目 | |
| 2-3 新建入口文件 | |
| 2-4 蓝图分离视图函数的缺陷 | |
| 2-5 打开思维,创建自己的Redprint——红图 | |
| 2-6 实现Redprint | |
| 2-7 优化Redprint | |
| | |
| **第3章 REST基本特征** | |
| 本章我们将探讨REST的基本特征,并结合实际情况给出REST的适用范围与优劣势 | |
| | |
| 3-1 REST的最基本特征(可选观看) | |
| 3-2 为什么标准REST不适合内部开发(可选观看) | |
| | |
| **第4章 自定义异常对象** | |
| 异常处理其实是一个非常严肃而又麻烦的事情,这直接涉及到前端如何对用户做出响应。本章我们将重写HTTPException并建立全局异常处理机制,统一处理框架内的异常,向前端返回统一而标准的异常信息,简化前端的开发流程 | |
| | |
| 4-1 关于“用户”的思考 | |
| 4-2 构建Client验证器 | |
| 4-3 处理不同客户端注册的方案 | |
| 4-4 创建User模型 | |
| 4-5 完成客户端注册 | |
| 4-6 生成用户数据 | |
| 4-7 自定义异常对象 | |
| 4-8 浅谈异常返回的标准与重要性 | |
| 4-9 自定义APIException | |
| | |
| **第5章 理解WTForms并灵活改造她** | |
| WTForms其实是非常强大的验证插件。但很多同学对WTForms的理解仅仅停留在“验证表单”上。那WTForms可以用来做API的参数验证码?完全可以,但这需要你灵活的使用它,对它做出一些“改变” | |
| | |
| 5-1 重写WTForms 一 | |
| 5-2 重写WTForms 二 | |
| 5-3 可以接受定义的复杂,但不能接受调用的复杂 | |
| 5-4 已知异常与未知异常 | |
| 5-5 全局异常处理 | |
| | |
| **第6章 Token与HTTPBasic验证 —— 用令牌来管理用户** | |
| 在我的TP5课程里,我们使用令牌的方式是服务器缓存的方式。那么在Python Flask中我们换一种令牌的发放方式。我们将用户的信息加密后作为令牌返回到客户端,客户端在访问服务器API时必须以HTTP Basic的方式携带令牌,我们再读取令牌信息后,将用户信息存入到g变量中,共业务代码全局使用... | |
| | |
| 6-1 Token概述 | |
| 6-2 获取Token令牌 | |
| 6-3 Token的用处 | |
| 6-4 @auth拦截器执行流程 | |
| 6-5 HTTPBasicAuth基本原理 | |
| 6-6 以BasicAuth的方式发送Token | |
| 6-7 验证Token | |
| 6-8 重写first_or_404与get_or_404 | |
| | |
| **第7章 模型对象的序列化** | |
| 最适合Python JSON序列化的是dict字典类型,每一种语言都有其对应的数据结构用来对应JSON对象,比如在PHP中是它的数组数据结构。而Python是用字典来对应JSON的。如果我们想直接序列化一个对象或者模型对象,那么最笨的办法是把对象的属性读取出来,然后组装成一个字典再序列化。这实在是太麻烦了。本章节我们将深入了解JSO... | |
| | |
| 7-1 鸡汤? | |
| 7-2 理解序列化时的default函数 | |
| 7-3 不完美的对象转字典 | |
| 7-4 深入理解dict的机制 | |
| 7-5 一个元素的元组要特别注意 | |
| 7-6 序列化SQLAlchemy模型 | |
| 7-7 完善序列化 | |
| 7-8 ViewModel对于API有意义吗 | |
| | |
| **第8章 权限控制** | |
| 我看过太多同学编写的API在互联网上疯狂的裸奔了。殊不知这太危险了。API必须提供分层保护机制,根据不同用户的种类来限制其可以访问的API,从而保护接口。比如管理员可以访问哪些接口,普通用户可以访问哪些接口,小程序可以访问哪些,APP又能够访问哪些?灵活而强大的可配置Scope,可以帮助你事半功倍... | |
| | |
| 8-1 删除模型注意事项 | |
| 8-2 g变量中读取uid防止超权 | |
| 8-3 生成超级管理员账号 | |
| 8-4 不太好的权限管理方案 | |
| 8-5 比较好的权限管理方案 | |
| 8-6 实现Scope权限管理 一 | |
| 8-7 globals()实现“反射” | |
| 8-8 实现Scope权限管理 二 | |
| 8-9 Scope优化一 支持权限相加 | |
| 8-10 Scope优化 二 支持权限链式相加 | |
| 8-11 Scope优化 三 所有子类支持相加 | |
| 8-12 Scope优化 四 运算符重载 | |
| 8-13 Scope 优化 探讨模块级别的Scope | |
| 8-14 Scope优化 实现模块级别的Scope | |
| 8-15 Scope优化 七 支持排除 | |
| | |
| **第9章 实现部分鱼书小程序功能** | |
| 理论必须结合实践,我们提供一个简单的鱼书小程序,编写他的业务接口,并用小程序来进行API的检验 | |
| | |
| 9-1 小程序演示API调用效果 | |
| 9-2 模糊搜索书籍 | |
| 9-3 再谈严格型REST的缺陷 | |
| 9-4 实现hide方法 | |
| 9-5 @orm.reconstructor 解决模型对象实例化问题 | |
| 9-6 重构hide与append | |
| 9-7 赠送礼物接口 | |
| 9-8 实现获取令牌信息接口 | |
================================================
FILE: course/31 学习Scala 进击大数据Spark生态圈.md
================================================
学习Scala_进击大数据Spark生态圈-课程章节
https://coding.imooc.com/class/chapter/215.html#Anchor
================================================
FILE: course/32 10小时入门大数据.md
================================================
================================================
FILE: course/Java 架构师成长之路/01 Java 单体应用.md
================================================
## Java 单体应用
| **章节** | **记录** |
| --------------------------------------------------------- | -------- |
| **开篇** | |
| 1 开篇-程序员的玄学与佛学-1 | |
| 2 开篇-程序员的玄学与佛学-2 | |
| 3 开篇-程序员的玄学与佛学-3 | |
| | |
| **第01章** | |
| 4 第01章-使用 Intellij IDEA-IDEA 简介 | |
| 5 第01章-使用 Intellij IDEA-第一个 IDEA 应用程 | |
| 6 小知识-使用 Markdown 记笔记 | |
| | |
| **第02章** | |
| 7 第02章-使用 Maven 构建应用-Maven 简介 | |
| 8 第02章-使用 Maven 构建应用-Maven 安装配置 | |
| 9 第02章-使用 Maven 构建应用-Maven 本地仓库 | |
| 10 第02章-使用 Maven 构建应用-Maven 中央仓库 | |
| 11 第02章-使用 Maven 构建应用-Maven 依赖机制 | |
| 12 第02章-使用 Maven 构建应用-Maven POM | |
| 13 第02章-使用 Maven 构建应用-Maven 快照 | |
| 14 第02章-使用 Maven 构建应用-第一个 Maven 应用程序 | |
| | |
| **第03章** | |
| 15 第03章-三层架构+MVC-什么是三层架构 | |
| 16 第03章-三层架构+MVC-什么是 MVC 模式 | |
| 17 小知识-高内聚,低耦合 | |
| 18 课后练习-三层架构-1 | 12/27 |
| 19 课后练习-三层架构-2 | |
| 20 小知识-关于如何自学的一些心得 | |
| | |
| **第04章** | |
| 21 第04章-使用 Bootstrap-Bootstrap 简介 | |
| 22 第04章-使用 Bootstrap-Bootstrap 环境安装 | |
| 23 第04章-使用 Bootstrap-Bootstrap 网格布局 | |
| 24 第04章-使用 Bootstrap-媒体查询的用法 | |
| 25 第04章-使用 Bootstrap-Bootstrap 表格 | |
| 26 第04章-使用 Bootstrap-Bootstrap 字体图标 | |
| | |
| **第05章** | |
| 27 第05章-基础框架入门-Spring-Spring 简介 | |
| 28 第05章-基础框架入门-Spring-Spring 体系结构 | |
| 29 第05章-基础框架入门-Spring-Spring 的特点 | |
| 30 第05章-基础框架入门-Spring-Spring 与 IoC | |
| 31 第05章-基础框架入门-Spring-第一个 Spring 应用程 | |
| 32 小知识-什么是 TDD 及常见的测试方式 | |
| 33 第05章-基础框架入门-JUnit-JUnit 简介 | |
| 34 第05章-基础框架入门-JUnit-第一个 JUnit 单元测试 | |
| 35 第05章-基础框架入门-JUnit-JUnit 断言 | |
| 36 第05章-基础框架入门-Log4j-Log4j 简介 | |
| 37 第05章-基础框架入门-Log4j-Log4j 日志级别 | |
| 38 第05章-基础框架入门-Log4j-Log4j 日志输出控制文件 | |
| 39 第05章-基础框架入门-Log4j-第一个 Log4j 日志文件 | |
| 40 综合复习-本周知识总结 | |
| 41 综合复习-创建项目 | |
| 42 综合复习-Bootstrap 管理模板-AdminLTE | |
| 43 综合复习-Bootstrap 管理模板-创建登录页 | |
| 44 综合复习-实现登录功能-完成后台编码 | |
| 45 综合复习-实现登录功能-增强用户体验 | |
| | |
| **第06章** | |
| 46 第06章-Spring Web 与 Bean 装配-Spring | |
| 47 第06章-Spring Web 与 Bean 装配-容器中 Bea | |
| 48 第06章-Spring Web 与 Bean 装配-基于注解的装配 | |
| 49 课后作业-记住我 | |
| | |
| **第07章** | |
| 50 第07章-Spring MVC 与 Maven 模块化开发-Spr | |
| 51 第07章-Spring MVC 与 Maven 模块化开发-Spr | |
| 52 第07章-Spring MVC 与 Maven 模块化开发-第一个 | |
| 53 第07章-Spring MVC 与 Maven 模块化开发-Spr | |
| 54 第07章-Spring MVC 与 Maven 模块化开发-Mav | |
| 55 课后练习-重新完善功能代码 | |
| | |
| **第08章** | |
| 56 第08章-MyBatis 数据持久化-MyBatis 简介 | |
| 57 第08章-MyBatis 数据持久化-Druid 简介 | |
| 58 第08章-MyBatis 数据持久化-Spring 整合 Drui | |
| 59 第08章-MyBatis 数据持久化-Spring 整合 MyBa | |
| 60 小知识-utf8 与 utf8mb4 字符集 | |
| 61 第08章-MyBatis 数据持久化-第一个 MyBatis 对象 | |
| | |
| **第09章** | |
| 62 第09章-MyBatis 表操作-单表 CRUD 操作 | |
| 63 项目实战-MyShop-实现用户登录功能 | |
| 64 项目实战-MyShop-实现首页布局 | |
| 65 项目实战-MyShop-用户管理功能-用户列表展示 | |
| 66 项目实战-MyShop-用户管理功能-实现新增用户功能 | |
| 67 项目实战-MyShop-用户管理功能-使用 Spring MVC | |
| 68 项目实战-MyShop-用户管理功能-使用 jQuery Vali | |
| 69 项目实战-MyShop-用户管理功能-使用动态 SQL 实现搜索功 | |
| 70 项目实战-MyShop-用户管理功能-优化搜索功能 | |
| 71 项目实战-MyShop-用户管理功能-使用 jQuery iChe | |
| 72 项目实战-MyShop-用户管理功能-实现批量删除功能1 | |
| 73 项目实战-MyShop-用户管理功能-实现批量删除功能2 | |
| 74 项目实战-MyShop-用户管理功能-使用 DataTables | |
| 75 项目实战-MyShop-用户管理功能-使用 DataTables | |
| 76 项目实战-MyShop-用户管理功能-实现编辑和查看功能 | |
| 77 项目实战-MyShop-用户管理功能-重新实现搜索功能 | |
| 78 项目实战-MyShop-用户管理功能-最后的收尾工作 | |
| 79 项目实战-MyShop-内容管理功能-内容分类功能准备 | |
| 80 项目实战-MyShop-内容管理功能-使用 TreeTable 展 | |
| 81 项目实战-MyShop-内容管理功能-内容列表功能准备 | |
| 82 项目实战-MyShop-内容管理功能-使用 zTree 展示内容分 | |
| 83 项目实战-MyShop-使用 Lombok 插件简化 Bean 代 | |
| 84 项目实战-MyShop-使用 Spring Validation | |
| 85 项目实战-MyShop-内容管理功能-Spring MVC + D | |
| 86 项目实战-MyShop-内容管理功能-封装 Dropzone 插件 | |
| 87 项目实战-MyShop-内容管理功能-使用 wangEditor | |
| 88 项目实战-MyShop-内容管理功能-实现 wangEditor | |
| 89 项目实战-MyShop-内容管理功能-实现关联关系查询 | |
| 90 项目实战-MyShop-重构代码-提取统一的数据访问和业务接口 | |
| 91 项目实战-MyShop-内容管理功能-实现内容分类的新增功能 | |
| 92 项目实战-MyShop-重构代码-深度封装业务逻辑层1 | |
| 93 项目实战-MyShop-重构代码-深度封装业务逻辑层2 | |
| 94 项目实战-MyShop-重构代码-封装控制器层 | |
| | |
| **第11章** | |
| 95 第11章-Spring 的事务管理-Spring 事务管理简介 | |
| 96 第11章-Spring 的事务管理-使用 AspectJ 的 AO | |
| 97 项目实战-MyShop-使用 Spring 注解管理事务 | |
| | |
| **第12章** | |
| 98 第12章-解决模块间的通信问题-项目改动说明 | |
| 99 第12章-解决模块间的通信问题-后台管理与门户数据展示说明 | |
| 100 第12章-解决模块间的通信问题-为什么存在通信问题 | |
| 101 第12章-解决模块间的通信问题-Apache HttpClien | |
| 102 第12章-解决模块间的通信问题-Apache HttpClien | |
| 103 第12章-解决模块间的通信问题-使用 Jackson 处理 JS | |
| 104 第12章-解决模块间的通信问题-创建 API 接口模块 | |
| 105 小知识-POJO、VO、DTO、Entity、Domain 的区 | |
| 106 第12章-解决模块间的通信问题-RESTful 风格的 API | |
| 107 第12章-解决模块间的通信问题-使用 Spirng MVC 实现 | |
| | |
| 108 项目实战-MyShop-创建 Web UI 门户模块 | |
| 109 项目实战-MyShop-实现 UI 模块与 API 模块的通信 | |
| 110 项目实战-MyShop-实现门户首页的幻灯片展示 | |
| 111 项目实战-MyShop-实现门户登录-实现 API | |
| 112 项目实战-MyShop-实现门户登录-对接 API | |
| 113 项目实战-MyShop-实现门户登录-使用拦截器禁止重复登录 | |
| 114 小知识-验证码的作用与如何打码 | |
| 115 项目实战-MyShop-解决 Maven 无法下载依赖的问题 | |
| 116 项目实战-MyShop-实现门户登录-增加 Kaptcha 验证 | |
| 117 项目实战-MyShop-使用 Apache Commons Em | |
| 118 课程完结-阶段总结,撒花,撒花,可喜可贺,可喜可贺 | |
================================================
FILE: course/Java 架构师成长之路/02 Java 微服务架构.md
================================================
## Java 微服务架构
| 章节 | 记录 |
| ----------------------------------------------------- | ---- |
| 1 关于博客改版的一些说明 | |
| 2 第01章-微服务简介-构建单体应用模型 | |
| 3 第01章-微服务简介-走向单体地狱 | |
| 4 第01章-微服务简介-微服务解决复杂问题 | |
| 5 第01章-微服务简介-微服务的优点 | |
| 6 第01章-微服务简介-微服务的缺点 | |
| | |
| 7 第02章-基础设施即服务-Linux-简介 | |
| 8 第02章-基础设施即服务-Linux-关于操作系统的选型 | |
| 9 第02章-基础设施即服务-Linux-安装 Ubuntu Serve | |
| 10 第02章-基础设施即服务-Linux-服务器远程控制 | |
| 11 第02章-基础设施即服务-Linux-目录结构说明 | |
| 12 第02章-基础设施即服务-Linux-操作文件目录命令 | |
| 13 第02章-基础设施即服务-Linux-系统管理命令 | |
| 14 第02章-基础设施即服务-Linux-重启与压缩命令 | |
| 15 第02章-基础设施即服务-Linux-编辑器的使用 | |
| 16 第02章-基础设施即服务-Linux-软件的安装与卸载 | |
| 17 第02章-基础设施即服务-Linux-用户和组管理 | |
| 18 第02章-基础设施即服务-Linux-文件权限管理 | |
| 19 第02章-基础设施即服务-Linux-安装 Java | |
| 20 第02章-基础设施即服务-Linux-安装 Tomcat | |
| 21 第02章-基础设施即服务-Linux-安装 MySQL | |
| 22 第02章-基础设施即服务-Linux-部署应用到生成环境 | |
| 23 第02章-基础设施即服务-Docker-什么是 Docker | |
| 24 第02章-基础设施即服务-Docker-为什么要用 Docker | |
| 25 第02章-基础设施即服务-Docker-引擎 | |
| 26 第02章-基础设施即服务-Docker-架构 | |
| 27 第02章-基础设施即服务-Docker-镜像与容器 | |
| 28 第02章-基础设施即服务-Docker-仓库 | |
| 29 第02章-基础设施即服务-Docker-安装 | |
| 30 第02章-基础设施即服务-Docker-加速器 | |
| 31 第02章-基础设施即服务-Docker-镜像-获取镜像 | |
| 32 第02章-基础设施即服务-Docker-镜像-列出镜像 | |
| 33 第02章-基础设施即服务-Docker-镜像-删除镜像 | |
| 34 第02章-基础设施即服务-Docker-镜像-Dockerfile | |
| 35 第02章-基础设施即服务-Docker-镜像-Dockerfile | |
| 36 第02章-基础设施即服务-Docker-镜像-Dockerfile | |
| 37 第02章-基础设施即服务-Docker-镜像-Dockerfile | |
| 38 第02章-基础设施即服务-Docker-镜像-Dockerfile | |
| 39 第02章-基础设施即服务-Docker-守护态运行容器 | |
| 40 第02章-基础设施即服务-Docker-容器数据持久化 | |
| 41 第02章-基础设施即服务-Docker-部署数据库 | |
| 42 第02章-基础设施即服务-Docker-部署项目到容器 | |
| 43 第02章-基础设施即服务-Docker Compose-简介与安装 | |
| 44 第02章-基础设施即服务-Docker Compose-基本使用 | |
| 45 第02章-基础设施即服务-Docker Compose-部署项目到 | |
| 46 第02章-基础设施即服务-Docker Compose-YAML | |
| | |
| 47 第03章-平台即服务-GitLab-使用 Git 托管代码 | |
| 48 第03章-平台即服务-GitLab-简介与安装 | |
| 49 第03章-平台即服务-GitLab-基本设置 | |
| 50 第03章-平台即服务-GitLab-第一个托管项目 | |
| 51 第03章-平台即服务-GitLab-使用 SSH 免密登录 | |
| 52 第03章-平台即服务-Nexus-简介与安装 | |
| 53 第03章-平台即服务-Nexus-在项目中使用 Maven 私服 | |
| 54 第03章-平台即服务-Registry-简介与安装 | |
| 55 第03章-平台即服务-Registry-配置 WebUI 与客户端 | |
| 56 Docker-真正实现:一次构建,到处运行 | |
| | |
| 57 第04章-再谈微服务-传统架构与微服务架构的区别 | |
| 58 第04章-再谈微服务-微服务的特征 | |
| 59 第04章-再谈微服务-微服务的实践1 | |
| 60 第04章-再谈微服务-微服务的实践2 | |
| 61 小知识-单点故障与分布式锁 | |
| 62 第04章-再谈微服务-微服务架构设计模式 | |
| | |
| 63 第05章-微服务框架-SpringBoot-简史 | |
| 64 第05章-微服务框架-SpringBoot-简介 | |
| 65 第05章-微服务框架-SpringBoot-优缺点 | |
| 66 第05章-微服务框架-SpringBoot-第一个应用程序 | |
| 67 第05章-微服务框架-SpringBoot-单元测试 | |
| 68 第05章-微服务框架-SpringBoot-常用配置 | |
| 69 第05章-微服务框架-SpringBoot-Thymeleaf-简 | |
| 70 第05章-微服务框架-SpringBoot-Thymeleaf-为 | |
| 71 第05章-微服务框架-SpringBoot-Thymeleaf-第 | |
| 72 第05章-微服务框架-SpringBoot-MyBatis-整合 | |
| 73 第05章-微服务框架-SpringBoot-MyBatis-测试 | |
| 74 第05章-微服务框架-SpringCloud-简介 | |
| 75 第05章-微服务框架-SpringCloud-创建统一的依赖管理 | |
| 76 第05章-微服务框架-SpringCloud-服务注册与发现 | |
| 77 第05章-微服务框架-SpringCloud-创建服务提供者 | |
| 78 第05章-微服务框架-SpringCloud-创建服务消费者(Ri | |
| 79 第05章-微服务框架-SpringCloud-创建服务消费者(Fe | |
| 80 第05章-微服务框架-SpringCloud-使用熔断器防止服务雪 | |
| 81 第05章-微服务框架-SpringCloud-使用熔断器仪表盘监控 | |
| 82 第05章-微服务框架-SpringCloud-使用路由网关统一访问 | |
| 83 第05章-微服务框架-SpringCloud-使用路由网关的服务过 | |
| 84 第05章-微服务框架-SpringCloud-分布式配置中心-服务 | |
| 85 第05章-微服务框架-SpringCloud-分布式配置中心-客户 | |
| 86 第05章-微服务框架-SpringCloud-服务链路追踪 | |
| 87 第05章-微服务框架-SpringCloud-服务监控-服务端 | |
| 88 第05章-微服务框架-SpringCloud-服务监控-客户端 | |
================================================
FILE: course/Java 架构师成长之路/03 Java 微服务实战.md
================================================
## Java 微服务实战
| 章节 | 记录 |
| ------------------------------------------- | ---- |
| 1 开篇-倾力打造互联网 Java 全栈工程师 | |
| 2 白皮书 | |
| 3 项目简介 | |
| 4 开发前的准备-了解敏捷开发 | |
| 5 开发前的准备-了解 XP 极限编程 | |
| 6 开发前的准备-创建 GitLab 项目组 | |
| 7 开发前的准备-完善各服务配置 | |
| 8 开发前的准备-部署服务到容器1 | |
| 9 开发前的准备-部署服务到容器2 | |
| 10 部署持续集成-持续集成的基本概念 | |
| 11 部署持续集成-持续集成的操作流程 | |
| 12 部署持续集成-使用 GitLab 持续集成 | |
| 13 部署持续集成-使用 GitLab Runn | |
| 14 部署持续集成-使用 GitLab Runn | |
| 15 部署持续集成-第一个 GitLab Run | |
| 16 部署持续集成-实战分布式配置中心 | |
| 17 部署持续集成-实战服务注册与发现 | |
| 18 管理员服务-提供者1 | |
| 19 管理员服务-提供者2 | |
| 20 管理员服务-提供者3 | |
| 21 管理员服务-消费者 | |
| 22 反向代理负载均衡-Nginx 简介 | |
| 23 反向代理负载均衡-Nginx 虚拟主机 | |
| 24 小知识-Nginx 惊群问题 | |
| 25 反向代理负载均衡-Nginx 反向代理 | |
| 26 反向代理负载均衡-Nginx 负载均衡 | |
| 27 反向代理负载均衡-Nginx 搭建伪 CD | |
| 28 数据缓存服务-Redis 简介 | |
| 29 数据缓存服务-Redis 高可用方案 | |
| 30 数据缓存服务-Redis Sentinel | |
| 31 数据缓存服务-提供者 | |
| 32 单点登录服务-单点登录系统机制 | |
| 33 单点登录服务-多系统登录的复杂性 | |
| 34 单点登录服务-单点登录系统流程 | |
| 35 单点登录服务-实战单点登录1 | |
| 36 单点登录服务-实战单点登录2 | |
| 37 单点登录服务-实战单点登录3 | |
| 38 单点登录服务-实战单点登录4 | |
| 39 单点登录服务-实战单点登录5 | |
| 40 单点登录服务-使用 Nginx 反向代理解 | |
| 41 单点登录服务-实战单点登录完结篇 | |
| 42 进入下半场的准备工作 | |
| 43 番外篇-重构改善既有代码的设计-数据库 | |
| 44 番外篇-重构改善既有代码的设计-领域模型 | |
| 45 番外篇-重构改善既有代码的设计-业务逻辑层 | |
| 46 番外篇-重构改善既有代码的设计-管理员服务 | |
| 47 番外篇-重构改善既有代码的设计-管理员分页 | |
| 48 文章服务-提供者 | |
| 49 文章服务-配置 MyBatis Redis | |
| 50 文章服务-配置 Swagger2 接口文档 | |
| 51 文章服务-消费者 | |
| 52 文章服务-消费者-分页功能 | |
| 53 文章服务-消费者-提取 Thymeleaf | |
| 54 文章服务-消费者-保存功能 | |
| 55 文件上传服务-FastDFS | |
| 56 文件上传服务-提供者 | |
| 57 文章服务-消费者-文件上传功能 | |
| 58 后台服务聚合-页面拆分1 | |
| 59 后台服务聚合-页面拆分2 | |
| 60 后台服务聚合-页面聚合1 | |
| 61 后台服务聚合-页面聚合2 | |
| 62 数字货币服务-前言 | |
| 63 消息队列-消息队列的流派 | |
| 64 消息队列-Actor 模型 | |
| 65 消息队列-RabbitMQ 简介 | |
| 66 消息队列-RabbitMQ 安装 | |
| 67 消息队列-RabbitMQ 使用 | |
| 68 任务调度-Quartz | |
================================================
FILE: course/Java 架构师成长之路/04 Java 微服务架构 Dubbo 篇.md
================================================
## Java 微服务架构 Dubbo 篇
| 章节 | 记录 |
| --------------------------------------------------- | ---- |
| 01 实现微服务架构-课程回顾-微服务架构需要解决的问题 | |
| 02 实现微服务架构-Zookeeper-什么是分布式协调服务 | |
| 03 实现微服务架构-Zookeeper-什么是分布式锁1 | |
| 04 实现微服务架构-Zookeeper-什么是分布式锁2 | |
| 05 实现微服务架构-Zookeeper-什么是分布式锁3 | |
| 06 实现微服务架构-Zookeeper-服务注册与发现 | |
| 07 实现微服务架构-Zookeeper-集群崩溃恢复1 | |
| 08 实现微服务架构-Zookeeper-集群崩溃恢复2 | |
| 09 实现微服务架构-Zookeeper-集群数据同步 | |
| 10 实现微服务架构-Zookeeper-如何实现分布式锁 | |
| 11 实现微服务架构-Zookeeper-基于 Docker | |
| 12 实现微服务架构-Zookeeper-配置说明 | |
| | |
| 13 实现微服务架构-Dubbo-简介1 | |
| 14 实现微服务架构-Dubbo-简介2 | |
| 15 实现微服务架构-Dubbo-服务治理 | |
| 16 实现微服务架构-Dubbo-核心功能与组件角色 | |
| 17 实现微服务架构-Dubbo-管理控制台 | |
| 18 实现微服务架构-Dubbo-服务提供者 | |
| 19 实现微服务架构-Dubbo-服务消费者 | |
| 20 实现微服务架构-Dubbo-负载均衡 | |
| 21 实现微服务架构-Dubbo-使用 Kryo 实现高速序 | |
| 22 实现微服务架构-Dubbo-使用 Hystrix 实现 | |
| 23 实现微服务架构-Dubbo-使用 Hystrix 熔断 | |
| 24 实现微服务架构-Dubbo-系统架构的演进 | |
| | |
| 25 实现微服务架构-项目实战-搭建通用模块项目 | |
| 26 实现微服务架构-项目实战-搭建用户管理服务 | |
| | |
| 27 实现微服务架构-持续集成-GitLab Runner | |
| 28 实现微服务架构-持续集成-实战服务提供者 | |
| 29 实现微服务架构-持续集成-实战服务消费者 | |
| | |
| 30 实现微服务架构-持续交付-基于 Docker 安装 J | |
| 31 实现微服务架构-持续交付-配置 Jenkins | |
| 32 实现微服务架构-持续交付-创建第一个任务 | |
| 33 实现微服务架构-持续交付-实战服务提供者 | |
| | |
| 34 实现微服务架构-用户管理服务-Metronic 模板介 | |
| 35 实现微服务架构-用户管理服务-实现基本布局 | |
| 36 实现微服务架构-用户管理服务-PageHelper分页 | |
| 37 实现微服务架构-用户管理服务-PageHelper分页 | |
| | |
| 38 实现微服务架构-内容管理服务-实现基本功能 | |
| | |
| 39 实现微服务架构-服务聚合-API 网关1 | |
| 40 实现微服务架构-服务聚合-API 网关2 | |
| | |
| 41 实现微服务架构-分布式文件系统-什么是 FastDFS | |
| 42 实现微服务架构-分布式文件系统-基于 Docker 安 | |
| 43 实现微服务架构-分布式文件系统-FastDFS Jav | |
| | |
| 44 实现微服务架构-使用 Nginx 解决跨域问题-跨域现 | |
| 45 实现微服务架构-使用 Nginx 解决跨域问题-Ngi | |
| 46 实现微服务架构-使用 Nginx 解决跨域问题-Ngi | |
| 47 实现微服务架构-使用 Nginx 解决跨域问题-Ngi | |
| 48 实现微服务架构-使用 Nginx 解决跨域问题-Ngi | |
| 49 实现微服务架构-使用 Nginx 解决跨域问题-COR | |
| 50 实现微服务架构-使用 Nginx 解决跨域问题-假请求 | |
| | |
| 51 实现微服务架构-使用 Redis 实现数据缓存-创建缓 | |
| 52 实现微服务架构-使用 Redis 实现数据缓存-MyB | |
| | |
| 53 实现微服务架构-使用 Solr 实现全文检索-Solr | |
| 54 实现微服务架构-使用 Solr 实现全文检索-搜索引擎 | |
| 55 实现微服务架构-使用 Solr 实现全文检索-基于 D | |
| 56 实现微服务架构-使用 Solr 实现全文检索-Solr | |
| 57 实现微服务架构-使用 Solr 实现全文检索-Spri | |
================================================
FILE: course/LEARN.md
================================================
## PART2:学习记录
★2018年6月-7月学习计划
【慕课网】玩转数据结构 从入门到进阶
【慕课网】程序员的内功修炼,学好算法与数据结构
【慕课网】玩转算法面试 leetcode题库分门别类详细解析
【慕课网】HTTP协议原理+实践 Web开发工程师必学
【慕课网】Java并发编程与高并发解决方案
### 学习课程(精简版)
以下清单是需要学习的课程
| 专题 | 类型 | 课程 | 进展 |
| --------- | ------------------ | ------------------------------------------------------------ | :-------------: |
| **专题1** | **数据结构与算法** | | |
| | | :gem:【慕课网】程序员的内功修炼,学好算法与数据结构 | |
| | | :gem:【慕课网】玩转算法面试 leetcode题库分门别类详细解析 | |
| | | :gem:【慕课网】玩转数据结构 从入门到进阶 | |
| | | 【牛客网】算法高频题目精讲 | |
| | | 【牛客网】直通BAT — 求职算法精品课 | |
| **专题2** | **后端技术栈** | | |
| | 00 Web基础 | | |
| | | 【表严肃】讲正则表达式 | 完成 |
| | 01 Java | | |
| | | 【翁凯】Java基础 | 完成 |
| | | 【慕课网】Java零基础入门 | |
| | | :gem:【极客学院】极客学院23种设计模式 | |
| | | :gem:【炼数成金】深入JVM内核—原理、诊断与优化 | |
| | | :gem:【炼数成金】实战Java高并发程序设计 | |
| | | 【慕课网】Java并发编程与高并发解决方案 | **🚴** |
| | | 【慕课网】Google面试官亲授 升级Java面试 | |
| | | 【慕课网】Java读源码之Netty深入剖析 | 有时间回来学习 |
| | | 【慕课在线】Netty入门之WebSocket初体验 \| [慕课网](https://www.imooc.com/learn/941) | |
| | 02 Java web | | |
| | | [【慕课网在线】Spring Boot热部署](https://www.imooc.com/learn/915) \| [参考文档](https://www.cnblogs.com/magicalSam/p/7196355.html) | 进行中 |
| | | 【慕课网】ZooKeeper分布式专题与Dubbo微服务入门 | |
| | | :gem:【慕课网】Spring Cloud微服务实战_廖师兄 | |
| | | :gem:【慕课网】Spring Boot企业微信点餐系统 | 完成 |
| | | 【神马小风】Spring MVC4入门 | 完成 |
| | | ~~【极客学院】JavaWeb工程师(全套)~~ \| 部分可以学习 | |
| | | 神码小风:SpringMVC4从入门到实战视频教程 \| [腾讯课堂](https://ke.qq.com/course/263024) | 完成 |
| | 03 Web Server | | |
| | | :gem:【慕课网】Nginx从入门到实践 | |
| | 04 Linux | | |
| | | 【慕课网】大数据的Linux基础 | |
| | | 【慕课网】快速上手Linux 玩转典型应用 | |
| | | 【莫烦】Linux 简易教学 | |
| | | 【慕课网在线】[Crontab不知疲倦的时间表](https://www.imooc.com/learn/1009) | |
| | 05 网络 | | |
| | | **:gem:【慕课网】HTTP协议原理+实践 Web开发工程师必学** | **:bicyclist:** |
| | 06 数据库 | | |
| | | 【慕课网】MySQL性能管理及架构设计 | |
| | | 【慕课网】Redis从入门到高可用,分布式实践 | |
| | 07 Git | | |
| | | 【表严肃】讲Git | 完成 |
| | | 【莫烦】01 Git 版本管理 | |
| | 08 docker | | |
| | | :gem:【慕课网】系统学习Docker 践行DevOps理念 | |
| | | 【慕课网】Docker环境下的前后端分离项目部署与运维 | |
| **专题3** | **机器学习** | | |
| | | :gem:【慕课网—刘宇波】Python3入门机器学习 经典算法与应用 | |
| | | ~~【慕课网】机器学习入门 Scikit-learn实现经典小案例~~ | |
| | | ~~【慕课网】基于Python玩转人工智能最火框架 TensorFlow应用实践~~ | |
| **专题4** | **Python** | | |
| | | ~~【慕课网】Python3入门与进阶~~ | |
| | | ~~【莫烦】Python+机器学习系列~~ | |
| | | 【慕课网】Python Flask构建可扩展的RESTful API | |
| | | | |
| **专题5** | **PHP** | | |
| | | 【慕课网】360大牛全面解读PHP面试 | 完成 |
| | | 【网易云课堂】thinkphp5开发restful-api接口 | 完成 |
| **专题6** | 工具篇 | | |
| | | [【慕课网在线】IntelliJ IDEA神器使用技巧](https://www.imooc.com/learn/924) | 完成 |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
### 学习图书(精简版)
以下是需要学习的清单
| 编号 | 类型 | 图书 | 进展 |
| ---- | ----------------- | ----------------------------------- | ---- |
| 1 | 面试宝典 | **:gem:《Java程序员面试笔试宝典》** | |
| 2 | 面试宝典 | 《程序员代码面试指南》结合Leetcode | |
| 3 | Java | **《Java并发编程实战》** | |
| 4 | Java | 《深入理解Java虚拟机》 | |
| 5 | Java(设计模式) | **《设计模式之禅》** | |
| 6 | Java Web | 《Spring实战》 | |
| 7 | Java Web | 《深入分析Java Web技术内幕》 | |
| 8 | 数据库 | 《高性能MySQL》 | |
| 9 | 计算机网络 | **《图解HTTP》** | |
| 10 | 数据结构与算法 | 《计算机考研——机试指南》 | |
| 11 | 数据结构与算法 | 《数据结构高分笔记》 | |
| 12 | 操作系统(Linux) | 《快乐的Linux命令行(书)》 | |
深入理解计算机系统
自顶向下计算机网络
Nginx阿里巴巴文档
### 课程与图书总览
以下是所有待学习图书,仅作为全文预览检索
详情转向 [course/LEARN_FULL.md](LEARN_FULL.md)
================================================
FILE: course/LEARNLIST.md
================================================
# 阅读清单与学习课程
在这部分,我将对阅读书籍和学习课程进程推荐,在课程中我将附带官网链接,图书则附京东的链接。
正在整理,未完待续
## 一、数据结构与算法
包含数据结构与算法两部分。
### :books:阅读清单
- [《算法4》](https://item.jd.com/11098789.html)
- [《剑指Offer》](https://item.jd.com/12163054.html)
- [《程序员面试指南》](https://item.jd.com/11770838.html)
### :tv:学习课程
- [【慕课网】刘宇波:玩转数据结构,从入门到进阶](https://coding.imooc.com/class/207.html)
- [【慕课网】刘宇波:程序员的内功修炼,学好算法与数据结构](https://coding.imooc.com/class/71.html)
- [【慕课网】刘宇波:玩转算法面试 leetcode题库分门别类详细解析](https://coding.imooc.com/class/82.html)
## 二、Java
包含 Java 核心知识和 Java Web 框架。
### :books:阅读清单
- [《Java并发编程实战》](https://item.jd.com/10922250.html)
-
- [《深入分析Java Web技术内幕》](https://item.jd.com/11520670.html)
- 《阿里巴巴Java开发手册》
- 《Java程序员面试笔试宝典》
- 《Java网络编程》
- 《Spring实战》
- [《Spring MVC+MyBatis开发从入门到项目实战》](https://item.jd.com/12308496.html)
- 《深入理解Java虚拟机》
- 《Java核心技术 卷Ⅰ / Ⅱ》
### :tv:学习课程
- 【廖雪峰】Java教程
- 【龙果学院】Java并发编程原理与实战
- 【龙果学院】深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)
- 【慕课网】Java零基础入门
- 【尚学堂】白鹤翔_jvm虚拟机优化
- 【网易云课堂】Java开发工程师(Web方向)翁凯
- 【慕课网】Spring Cloud微服务实战_廖师兄
- 【黑马程序员】SSH框架_王泽
- 【黑马程序员】SpringMVC+Mybatis
- 【牛客网】初中高Python+Java项目实战_叶神
## 三、Web Server
- 【网易云课堂】thinkphp5开发restful-api接口
## 四、面向对象
- [《设计模式之禅》](https://item.jd.com/11414555.html)
- 【极客学院】极客学院23种设计模式
## 五、数据库
### :books:阅读清单
- 《高性能MySQL》
- 《Redis实战》
### :tv:学习课程
- 【慕课网】MySQL性能管理及架构设计
- 【慕课网】Redis从入门到高可用,分布式实践
## 六、操作系统
### :books:阅读清单
- 《Linux+C程序设计大全》
- 《快乐的Linux命令行》
- 《深入理解计算机系统》
### :tv:学习课程
- [【慕课网】快速上手Linux 玩转典型应用](https://coding.imooc.com/class/154.html)
- [【慕课在线】Linux达人养成计划 I-Linux的入门级课程!](https://www.imooc.com/learn/175)
- [【慕课在线】Linux 达人养成计划 II VIM+磁盘管理+用户权限!](https://www.imooc.com/learn/111)
- 【小甲鱼】零基础入门学习汇编语言
- 操作系统_清华大学(向勇、陈渝)
## 七、计算机网络
### :books:阅读清单
- 《图解HTTP》
- 《计算机网络原理创新教程》韩立刚主编
### :tv:学习课程
- 【51CTO】韩老师-计算机网络原理-156讲
- 【慕课网】HTTP协议原理+实践 Web开发工程师必学
## 八、系统架构
### :books:阅读清单
### :tv:学习课程
- 【慕课网】Nginx从入门到实践
- 【咕泡学院】架构师系列课程
## 九、面试
- 【慕课网】360大牛全面解读PHP面试
- 【慕课网】Google面试官亲授 升级Java面试
## 十、机器学习
### :books:阅读清单
- 《机器学习实战》
### :tv:学习课程
- 【慕课网】Python3入门机器学习 经典算法与应用
- 【莫烦Python】机器学习系列
## 十一、工具
### :tv:学习课程
- 【表严肃】讲正则表达式
- 【表严肃】讲Git
- 【慕课网】系统学习Docker 践行DevOps理念
- [【慕课在线】IntelliJ IDEA神器使用技巧](https://www.imooc.com/learn/924)
================================================
FILE: course/LEARN_FULL.md
================================================
## PART2:学习总览
### 学习课程总览
| 专题 | 类型 | 课程 | 进展 |
| --------- | :----------------- | ------------------------------------------------------------ | ---- |
| **专题1** | **数据结构与算法** | | |
| | | 【慕课网】程序员的内功修炼,学好算法与数据结构 | |
| | | 【慕课网】玩转算法面试 leetcode题库分门别类详细解析 | |
| | | 【慕课网】玩转数据结构 | |
| | | 【牛客网】算法高频题目精讲 | |
| | | 【牛客网】直通BAT — 求职算法精品课 | |
| | | 【小甲鱼】数据结构与算法 | |
| | | 【慕课网】看得见的算法 7个经典应用诠释算法精髓 | |
| **专题2** | **后端技术栈** | | |
| | 00 Web基础 | | |
| | | 【表严肃】讲正则表达式 | |
| | 01 Java | | |
| | | 【翁凯】Java基础 | |
| | | 【慕课网】Java零基础入门 | |
| | | 【极客学院】极客学院23种设计模式 | |
| | | 【炼数成金】深入JVM内核—原理、诊断与优化 | |
| | | 【炼数成金】实战Java高并发程序设计 | |
| | | 【龙果学院】深入理解Java虚拟机 | |
| | | 【慕课网】Google面试官亲授 升级Java面试 | |
| | 02 Java web | | |
| | | 【慕课网】ZooKeeper分布式专题与Dubbo微服务入门 | |
| | | 【慕课网】Spring Cloud微服务实战_廖师兄 | |
| | | 【慕课网】Spring Boot企业微信点餐系统 | |
| | | 【慕课网】Java秒杀系统方案优化 高性能高并发实战 | |
| | | 【慕课网】IT段子手详解MyBatis遇到Spring 秒学Java SSM开发大众点评 | |
| | | 【慕课网】Docker+Kubernetes(k8s)微服务容器化实践 | |
| | | 【极客学院】JavaWeb工程师(全套) | |
| | | ~~【传智播客】Springmvc+Mybatis由浅入深全套视频教程~~ | |
| | | ~~【传智播客】孔浩Java课程~~ | |
| | | ~~【慕课网】Java Spring带前后端开发完整电商平台~~ | |
| | | ~~【慕课网】Java从零到企业级电商项目实战~~ | |
| | | ~~【慕课网】Spring Boot企业级博客系统实战视频教程~~ | |
| | 03 Web Server | | |
| | | 【慕课网】Nginx从入门到实践 | |
| | 04 Linux | | |
| | | 【慕课网】大数据的Linux基础 | |
| | | 【慕课网】快速上手Linux 玩转典型应用 | |
| | | 【莫烦】Linux 简易教学 | |
| | 05 网络 | | |
| | | 【慕课网】HTTP协议原理+实践 Web开发工程师必学 | |
| | 06 数据库 | | |
| | | 【慕课网】MySQL性能管理及架构设计 | |
| | | 【慕课网】Redis从入门到高可用,分布式实践 | |
| | 07 Git | | |
| | | 【表严肃】讲Git | |
| | | 【莫烦】01 Git 版本管理 | |
| | 08 docker | | |
| | | 【极客学院】docker | |
| | | 【慕课网】系统学习Docker 践行DevOps理念 | |
| **专题3** | **机器学习** | | |
| | | 【麦子学院】机器学习系列 × 3 | |
| | | 【慕课网】机器学习入门 Scikit-learn实现经典小案例 | |
| | | 【慕课网】基于Python玩转人工智能最火框架 TensorFlow应用实践 | |
| | | 【慕课网—刘宇波】Python3入门机器学习 经典算法与应用 | |
| | | 【斯坦福】Andrew Ng机器学习 | |
| **专题4** | **Python** | | |
| | | 【慕课网】Python3入门与进阶 | |
| | | 【慕课网】2017 Vue+Django API前后端分离开发电商新技术跨域项目实战 | |
| | | 【慕课网】Python高级编程和异步IO并发编程 | |
| | | 【慕课网】Python升级3.6 强力Django+杀手级Xadmin打造在线教育平台 | |
| | | 【慕课网】Vue+Django REST framework 打造生鲜电商项目 | |
| | | 【莫烦】Python+机器学习系列 | |
| **专题5** | **PHP** | | |
| | | 【慕课网】360大牛全面解读PHP面试 | |
| | | 【慕课网】PHP接口开发 | |
| | | 【网易云课堂】thinkphp5开发restful-api接口 | |
### 学习书籍总览
以下是所有待学习图书,仅作为全文预览检索
| 类型 | 图书 | 进展 |
| ----------------- | -------------------------------------------- | ---- |
| 面试宝典 | 《Java程序员面试笔试宝典》 | |
| 面试宝典 | 《程序员代码面试指南》 | |
| 面试宝典 | ~~《剑指Offer》~~ | |
| 面试宝典 | ~~《技术之瞳》~~ | |
| 面试宝典 | 《Java程序员面试面试笔试真题与解析》 | |
| Java | 《Java并发编程实战》 | |
| Java | 《深入理解Java虚拟机》 | |
| Java | ~~《Java核心技术 卷Ⅰ / Ⅱ》~~ | |
| Java(设计模式) | 《设计模式之禅》 | |
| Java Web | 《Spring实战》 | |
| Java Web | 《深入分析Java Web技术内幕》 | |
| 数据库 | 《高性能MySQL》 | |
| 计算机网络 | 《图解HTTP》 | |
| 数据结构与算法 | 《计算机考研——机试指南》 | |
| 数据结构与算法 | 《数据结构高分笔记》 | |
| 操作系统(Linux) | 《快乐的Linux命令行(书)》 | |
| 操作系统 | ~~《操作系统高分笔记》~~ | |
| 机器学习 | ~~《机器学习实战》~~ | |
| 机器学习 | ~~《终极算法》~~ | |
| 机器学习 | ~~《机器学习在线——解析阿里云机器学习平台》~~ | |
| 计算机视觉 | ~~《OpenCV3编程入门》~~ | |
| 阿里丛书 | ~~《尽在双十一》~~ | |
================================================
FILE: course/LEARN_RECORD.md
================================================
## PART2:学习记录
### 已完成的课程
| 课程 | 进展 |
| ------------------------------------------------------------ | --------------- |
| [SpringBoot+MyBatis搭建迷你小程序教程](https://www.imooc.com/learn/945) | 2018/05/06 完成 |
| [IntelliJ IDEA神器使用技巧](https://www.imooc.com/learn/924) | 2018/05/14 完成 |
| [表严肃讲正则表达式](http://biaoyansu.com/28.x) | 2018/06/05 完成 |
| [表严肃讲Git](http://biaoyansu.com/27.x) | 2018/06/05 完成 |
| [第一个docker化的java应用](https://www.imooc.com/learn/824) | 2018/06/06 完成 |
### 学习课程
| 课程 | 进展 |
| ------------------------------------------------------------ | ---------------------------- |
| ★★★刘宇波:玩转数据结构 \| [代码仓库](https://github.com/liuyubobobo/Play-with-Algorithms) \| [学习笔记](course\01 玩转数据结构.md ) | 2018/05/06 学习至 第三章<br> |
| ★刘宇波:玩转算法面试 \| [学习笔记](course/02 玩转算法面试.md) | 计划学习 |
| ★刘宇波:程序员的内功修炼 | 计划学习 |
| ★★★廖师兄:[Spring Boot企业微信点餐系统](https://coding.imooc.com/class/117.html) \| [学习笔记](course\03 SpringBoot微信点餐.md ) | 2018/05/06 学习至 第五章 |
| [微信授权登录](https://www.imooc.com/learn/713) | |
| [PHP第三方登录—OAuth2.0协议](https://www.imooc.com/learn/557) | |
| | |
| Redis从入门到高可用,分布式实践 \| [慕课网](https://coding.imooc.com/class/151.html) | 计划学习 |
| ZooKeeper分布式专题与Dubbo微服务入门 \| [慕课网](https://coding.imooc.com/class/201.html) | 计划学习 |
| | |
| [Redis入门](https://www.imooc.com/learn/839) | 计划学习 |
| | |
| HTTP协议原理+实践 Web开发工程师必学 | 正在学习 |
| ★Nginx入门到实践 \| [慕课网](https://coding.imooc.com/class/evaluation/121.html#Anchor) \| [学习笔记](course\04 Nginx从入门到实战.md) | 正在学习 |
| 系统学习Docker 践行DevOps理念 | 正在学习 |
================================================
FILE: notes/DeepLearning/README.md
================================================
深度学习板块
================================================
FILE: notes/DeepLearning/assets/README.md
================================================
深度学习板块-图片文件夹
================================================
FILE: notes/DeepLearning/深度学习入门课程.md
================================================
## 入门课程
> 简介:本课程首先介绍机器学习与深度学习,包括机器学习的应用、岗位职责,深度学习的等。然后通过讲解神经元及其衍生模型逻辑斯底回归、目标函数、梯度下降等深度学习基础知识。最后通过Tensorflow来实现课程讲解的模型。
深度学习之神经网络入门最佳路径
https://www.imooc.com/learn/1063
深度学习-初识 - Corwien - SegmentFault 思否
https://segmentfault.com/a/1190000016068053
## 从入门到实战
实战课已经上线:https://coding.imooc.com/class/259.html
================================================
FILE: notes/DeepLearning/深度学习初识.md
================================================
<!-- TOC -->
- [深度学习初识](#深度学习初识)
- [一、入门基本概念](#一入门基本概念)
- [机器学习简介](#机器学习简介)
- [机器学习应用举例](#机器学习应用举例)
- [机器学习应用流程](#机器学习应用流程)
- [机器学习岗位职责](#机器学习岗位职责)
- [深度学习简介](#深度学习简介)
- [深度学习与机器学习关系](#深度学习与机器学习关系)
- [深度学习算法集合](#深度学习算法集合)
- [深度学习进展](#深度学习进展)
- [二、神经网络](#二神经网络)
- [人体神经元模型](#人体神经元模型)
- [人工神经网络](#人工神经网络)
- [1. 神经元](#1-神经元)
- [2. 逻辑回归模型](#2-逻辑回归模型)
- [目标函数](#目标函数)
- [梯度下降](#梯度下降)
- [三、Tensorflow基础](#三tensorflow基础)
- [Tensorflow简介](#tensorflow简介)
- [计算图模型](#计算图模型)
- [TensorFlow 安装](#tensorflow-安装)
- [参考资料](#参考资料)
<!-- /TOC -->
# 深度学习初识
## 一、入门基本概念
### 机器学习简介
**机器学习**:无序数据转化为价值的方法
**机器学习价值**:从数据中抽取规律,并预测未来
#### 机器学习应用举例
- 分类问题:图像识别、垃圾邮件识别
- 回归问题:股价预测、房价预测
- 排序问题:点击率预估、推荐
- 生成问题:图像生成、图像风格转换、图像文字描述生成
#### 机器学习应用流程

#### 机器学习岗位职责
- 数据处理(采集+去噪)
- 模型训练(特征+模型)
- 模型评估与优化(MSE、F1-score、AUC+调参)
- 模型应用(A/B测试)
### 深度学习简介

人工智能、机器学习、深度学习之间的关系
```
人工智能(AI)> 机器学习(Machine Learning)> 深度学习(Deep learning)
```
#### 深度学习与机器学习关系
- 机器学习是实现人工智能的方法
- 深度学习是实现机器学习算法的技术
#### 深度学习算法集合
- **卷积神经网络**(Convolutional Neural Network, CNN)
- CV 领域使用较多
- **循环神经网络**(Recurrent Neural Networks,RNNs)
- NLP 领域使用较多
- 处理不定长数据
- 自动编码器
- 稀疏编码
- 深度信念网络
- 深度学习 + 强化学习 = **深度强化学习**
- AlphaGo
- AlphaZero
#### 深度学习进展
1. 图像分类
ImageNet: http://image-net.org/

2. 机器翻译

3. 图像生成



- [Implementing Neural Artistic Style Transfer | L2Program](http://l2program.co.uk/945/implementing-neural-artistic-style-transfer)
4. 字体生成
5. AlphaGo
## 二、神经网络
### 人体神经元模型
神经网络模型是模仿人类的大脑神经构造而构造的。先来看人体神经元模型。

神经元的可以分为四个区域:
- 接收区(receptive zone):树突接收到输入信息。
- 触发区(trigger zone):位于轴突和细胞体交接的地方,决定是否产生神经冲动。
- 传导区(conducting zone):由轴突进行神经冲动的传递。
- 输出区(output zone):神经冲动的目的就是要让神经末梢,突触的神经递质或电力释出,才能影响下一个接受的细胞(神经元、肌肉细胞或是腺体细胞),此称为突触传递。
### 人工神经网络
人工神经网络(ANN:Artificial Neural Network),简称神经网络(NN:Neural Network)。迄今为止,人工神经网络尚无统一定义, 其实一种模拟了人体神经元构成的数学模型,依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

上图显示了人工神经网络是一个分层模型,逻辑上可以分为三层:
- 输入层:输入层接收特征向量 x 。
- 输出层:输出层产出最终的预测 h 。
- 隐含层:隐含层介于输入层与输出层之间,之所以称之为隐含层,是因为当中产生的值并不像输入层使用的样本矩阵 X 或者输出层用到的标签矩阵 y 那样直接可见。
### 1. 神经元



### 2. 逻辑回归模型
```
神经元 -> 激活函数sigmoid -> 二元类逻辑斯蒂回归模型
```

神经元 -> 多输出
- W从向量扩展为矩阵
- 输出W*x则变成向量

多输出神经元 -> softmax -> 多分类逻辑斯蒂回归模型



### 目标函数
也称为损失函数,衡量对数据的拟合程度
### 梯度下降
- 下山算法
- 找方向
- 走一步
- 梯度下降算法

## 三、Tensorflow基础
### Tensorflow简介
Google Brain 第二代机器学习框架
### 计算图模型
- 命令式变成
- 声明式变成

## TensorFlow 安装
- [TensorFlow 官方文档](https://tensorflow.google.cn/)
- [TensorFlow 安装方法](https://tensorflow.google.cn/install)
1. 基于 VirtualEnv 的安装
2. 原生 pip
3. Docker
4. 从源代码安装
## 参考资料
- [机器学习入门(五) -- 神经网络](https://waltyou.github.io/Neural-Network/#%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%AE%9A%E4%B9%89)
- [深度学习-初识 - Corwien - SegmentFault 思否](https://segmentfault.com/a/1190000016068053)
================================================
FILE: notes/DistributedSystem/03 分布式通信-序列化.md
================================================
# java序列化机制Serialize接口
## java本身的序列化机制存在的问题
1. 序列化数据结果比较大、传输效率比较低
2. 不能跨语言对接
以至于在后来的很长一段时间,基于XML格式编码的对象序列化机制成为了主流,一方面解决了多语言兼容问题,另一方面比二进制的序列化方式更容易理解。以至于基于XML的SOAP协议及对应的WebService框架在很长一段时间内成为各个主流开发语言的必备的技术。
再到后来,基于JSON的简单文本格式编码的HTTP REST接口又基本上取代了复杂的Web Service接口,成为分布式架构中远程通信的首要选择。但是JSON序列化存储占用的空间大、性能低等问题,同时移动客户端应用需要更高效的传输数据来提升用户体验。在这种情况下与语言无关并且搞笑的二进制编码协议就成为了大家追求的热点技术之一。首先诞生的一个开源的二进制序列化框架-MessagePack。它比google的Protocol Buffers出现得还要早
恰当的序列化协议不仅可以提高系统的通用性、强壮型、安全性、优化性能。同时还能让系统更加易于调试和扩展
## 序列化和反序列化的概念
把对象转化为字节序列的过程称之为对象的序列化
反之,称之为反序列化
# 怎么去实现一个序列化操作
1. 实现Serializable接口
2. ObjectInputStream : 表示读取指定的字节数据转换成对象
3. ObjectOutputStream :
# 科普小知识
## serialVersionUID的作用
文件流中的class和classpath中的class,也就是修改过后的class,不兼容了,处于安全机制考虑,程序抛出了错误,并且拒绝载入。从错误结果来看,如果没有为指定的class配置serialVersionUID,那么java编译器会自动给这个class进行一个摘要算法,类似于指纹算法,只要这个文件有任何改动,得到的UID就会截然不同的,可以保证在这么多类中,这个编号是唯一的。所以,由于没有显指定 serialVersionUID,编译器又为我们生成了一个UID,当然和前面保存在文件中的那个不会一样了,于是就出现了2个序列化版本号不一致的错误。因此,只要我们自己指定了serialVersionUID,就可以在序列化后,去添加一个字段,或者方法,而不会影响到后期的还原,还原后的对象照样可以使用,而且还多了方法或者属性可以用。
## 静态变量的序列化
序列化并不保存静态变量的状态
gitextract_4faglbb2/
├── .gitattributes
├── .github/
│ └── FUNDING.yml
├── .travis.yml
├── README.md
├── assets/
│ ├── deploy/
│ │ └── deploy.sh
│ └── mind/
│ └── 2019-learning.xmind
├── course/
│ ├── 01 玩转数据结构.md
│ ├── 02 玩转算法面试.md
│ ├── 03 算法与数据结构.md
│ ├── 04 Nginx从入门到实战.md
│ ├── 05 Java并发编程与高并发解决方案.md
│ ├── 06 HTTP协议原理+实践 Web开发工程师必学.md
│ ├── 07 SpringBoot微信点餐.md
│ ├── 08 廖雪峰的Java教程.md
│ ├── 09 Spring学习框架.md
│ ├── 10 Redis.md
│ ├── 11 SpringMVC.md
│ ├── 12 Mybatis.md
│ ├── 13 韩立刚计算机网络.md
│ ├── 14 韩立刚计算机网络2.md
│ ├── 15 咕泡学院-公开课.md
│ ├── 16 咕泡学院-JAVA开发中的热点技术剖析.md
│ ├── 17 咕泡学院-BAT面试课程.md
│ ├── 18 咕泡学院-性能优化.md
│ ├── 19 并发编程原理.md
│ ├── 20 MySQL性能管理及架构设计.md
│ ├── 21 JVM.md
│ ├── 22 白鹤翔_JVM虚拟机优化.md
│ ├── 23 MySQL大型分布式集群.md
│ ├── 24 操作系统(清华大学).md
│ ├── 25 Linux达人养成计划 I.md
│ ├── 26 Linux 达人养成计划 II.md
│ ├── 27 快速上手Linux 玩转典型应用.md
│ ├── 28 系统学习Docker 践行DevOps理念.md
│ ├── 30 Python Flask构建可扩展的RESTful API.md
│ ├── 31 学习Scala 进击大数据Spark生态圈.md
│ ├── 32 10小时入门大数据.md
│ ├── Java 架构师成长之路/
│ │ ├── 01 Java 单体应用.md
│ │ ├── 02 Java 微服务架构.md
│ │ ├── 03 Java 微服务实战.md
│ │ └── 04 Java 微服务架构 Dubbo 篇.md
│ ├── LEARN.md
│ ├── LEARNLIST.md
│ ├── LEARN_FULL.md
│ └── LEARN_RECORD.md
├── notes/
│ ├── DeepLearning/
│ │ ├── README.md
│ │ ├── assets/
│ │ │ └── README.md
│ │ ├── 深度学习入门课程.md
│ │ └── 深度学习初识.md
│ ├── DistributedSystem/
│ │ ├── 03 分布式通信-序列化.md
│ │ └── 04 分布式通信协议-http.md
│ ├── Docker.md
│ ├── Docker基础.md
│ ├── Docker实战.md
│ ├── EalsticSearch/
│ │ └── Untitled.md
│ ├── FastDFS.md
│ ├── Frontend/
│ │ ├── Angular.md
│ │ ├── README.md
│ │ ├── assets/
│ │ │ └── README.md
│ │ └── 前端知识体系.md
│ ├── Git.md
│ ├── Git命令速查.md
│ ├── Git工作流.md
│ ├── JavaArchitecture/
│ │ ├── 01-Java基础.md
│ │ ├── 02-Java集合框架.md
│ │ ├── 03-Java并发编程.md
│ │ ├── 04-Java-IO.md
│ │ ├── 05-Java虚拟机.md
│ │ ├── 06-Java设计模式.md
│ │ ├── 07-JavaWeb.md
│ │ ├── 08-系统架构.md
│ │ ├── Overview.md
│ │ └── assets/
│ │ └── 16002cfab99f86bc
│ ├── JavaWeb/
│ │ ├── Hibernate.md
│ │ ├── Mybatis.md
│ │ ├── Spring.md
│ │ └── 深入浅出IOC.md
│ ├── LEARNLIST.md
│ ├── Leetcode题解.md
│ ├── Linux.md
│ ├── Linux实战.md
│ ├── MachineLearning/
│ │ ├── README.md
│ │ └── assets/
│ │ └── README.md
│ ├── Memcached.md
│ ├── MicroService/
│ │ └── kafka/
│ │ ├── README.md
│ │ ├── kafka-tutorial-1_初识.md
│ │ ├── kafka-tutorial-2_单节点部署.md
│ │ ├── kafka-tutorial-3_集群化部署.md
│ │ ├── kafka-tutorial-4_架构深入.md
│ │ ├── kafka-tutorial-5_kafka-api.md
│ │ ├── kafka-tutorial-6_spring-kafka-api.md
│ │ └── kafka-tutorial-7_监控.md
│ ├── MySQL.md
│ ├── Nginx.md
│ ├── PostgreSQL.md
│ ├── Python/
│ │ ├── Python安装.md
│ │ ├── Python简介及基础语法.md
│ │ └── 流畅的Python/
│ │ ├── README.md
│ │ ├── python命名空间.md
│ │ ├── python字节码-补充内容.md
│ │ ├── python时间模块.md
│ │ ├── 上下文管理器和else块.md
│ │ ├── 使用asyncio包处理并发.md
│ │ ├── 使用future处理并发.md
│ │ ├── 使用一等函数实现设计模式.md
│ │ ├── 函数.md
│ │ ├── 函数装饰器和闭包.md
│ │ ├── 动态属性和特性.md
│ │ ├── 协程-补充内容.md
│ │ ├── 协程.md
│ │ ├── 可迭代的对象-迭代器和生成器.md
│ │ ├── 字典和集合.md
│ │ ├── 对象引用-可变性和垃圾回收.md
│ │ ├── 属性描述符.md
│ │ ├── 常见问题答疑.md
│ │ ├── 序列构成的数组.md
│ │ ├── 序列的修改-散列和切片.md
│ │ ├── 序幕.md
│ │ ├── 扩展内容.md
│ │ ├── 抽象类.md
│ │ ├── 文本和字节序列.md
│ │ ├── 正确重载运算符.md
│ │ ├── 符合Python风格的对象.md
│ │ ├── 类元编程.md
│ │ └── 类继承.md
│ ├── RESTful API.md
│ ├── Redis.md
│ ├── SQL.md
│ ├── SkillTree/
│ │ ├── assets/
│ │ │ ├── backend-skill-from-zero.xmind
│ │ │ └── backend-skill.xmind
│ │ └── backend-skill.md
│ ├── Socket.md
│ ├── SpringBoot/
│ │ └── README.md
│ ├── XP极限编程.md
│ ├── archives/
│ │ ├── 我的秋招之路.md
│ │ └── 手把手教你,搭建内网穿透服务.md
│ ├── assets/
│ │ ├── 20150924172800834
│ │ └── 20150924173757246
│ ├── data-structures-and-algorithms/
│ │ ├── LeetCode.md
│ │ ├── README.md
│ │ ├── leetcode/
│ │ │ └── Leetcode 307. 区域和检索 - 数组可修改.md
│ │ ├── 数据结构.md
│ │ └── 算法思想.md
│ ├── docs/
│ │ └── 如何给我的仓库贡献.md
│ ├── docsify/
│ │ ├── about/
│ │ │ ├── author.md
│ │ │ └── donate.md
│ │ ├── coverpage.md
│ │ ├── css/
│ │ │ └── main.css
│ │ ├── index.html
│ │ ├── js/
│ │ │ ├── .eslintrc.js
│ │ │ └── main.js
│ │ ├── navbar.md
│ │ ├── sidebar.md
│ │ └── unpkg/
│ │ ├── docsify/
│ │ │ └── lib/
│ │ │ └── plugins/
│ │ │ ├── emoji.js
│ │ │ └── search.js
│ │ ├── docsify-themeable/
│ │ │ └── dist/
│ │ │ └── css/
│ │ │ ├── theme-defaults.css
│ │ │ ├── theme-simple-dark.css
│ │ │ └── theme-simple.css
│ │ ├── gitalk/
│ │ │ └── dist/
│ │ │ └── gitalk.css
│ │ └── gotop/
│ │ └── jquery-2.1.0.js
│ ├── git-tutorial.md
│ ├── index.html
│ ├── introduction.md
│ ├── my_linux_cmd.md
│ ├── project/
│ │ └── README.md
│ ├── reference.md
│ ├── somecoolblog.md
│ ├── web应用开发标准流程.md
│ ├── 全栈开发神兵利器.md
│ ├── 分布式/
│ │ └── Zookeeper.md
│ ├── 分布式.md
│ ├── 分布式锁/
│ │ └── 分布式锁.md
│ ├── 分布式锁.md
│ ├── 大数据.md
│ ├── 如何选择自己的技术栈.md
│ ├── 开源贡献.md
│ ├── 微服务.md
│ ├── 技术交流群.md
│ ├── 技术点实践.md
│ ├── 持续集成.md
│ ├── 操作系统.md
│ ├── 数据结构.md
│ ├── 数据结构与算法.md
│ ├── 智力题.md
│ ├── 架构师成长之路.md
│ ├── 正则表达式.md
│ ├── 海量数据处理.md
│ ├── 网络安全.md
│ ├── 计算机网络.md
│ ├── 超简版面试清单.md
│ ├── 软件测试.md
│ ├── 面试话术.md
│ └── 项目实践与技术分析.md
└── others/
├── OVERVIEW.md
├── Overview_ulli.md
├── Skill-Tree.md
├── UPLOG.md
├── blog/
│ ├── 20180606 用别名(alias)创建你自己的命令.md
│ ├── 20180609 Spring Boot热部署.md
│ ├── 20180620 JWT API安全.md
│ ├── 20180621 20小时学会任何技能.md
│ └── 20180701 深入理解快速排序.md
├── book/
│ ├── Java程序员面试笔试宝典.md
│ └── 关键20小时,快速学会任何技能!.epub
├── devdoc/
│ ├── IntelliJ IDEA/
│ │ ├── debug技巧.md
│ │ └── lombok插件使用.md
│ ├── Java/
│ │ ├── HTTPS配置.md
│ │ ├── IDEA使用操作.md
│ │ ├── Java环境搭建.md
│ │ └── Spring Boot热部署.md
│ ├── MySQL/
│ │ └── mysql设置远程连接.md
│ ├── redis/
│ │ └── redis安装.md
│ ├── sublime/
│ │ └── sublime右键菜单设置.md
│ └── tools/
│ ├── 01 Navicat 工具破解说明.md
│ └── 02 Idea破解.md
├── emoji.md
├── interview/
│ ├── InterviewOneDay/
│ │ ├── 20180807 阿里云面经.md
│ │ ├── 20180810 招银网络科技.md
│ │ ├── 20180811 蘑菇街.md
│ │ ├── 20180813 京东.md
│ │ ├── 20180820 Java面试不相信眼泪.md
│ │ ├── 20180823 网易游戏2017暑期实习生面经 Java开发.md
│ │ ├── 20180823 网易考拉 java 凉面面经.md
│ │ ├── 20180823 聊聊C10K问题及解决方案.md
│ │ └── README.md
│ ├── Java面试经验贴.md
│ ├── TODOLIST.md
│ ├── interview-daily/
│ │ ├── 20180901 有道简单面经.md
│ │ ├── 20180902 金山云一二三面.md
│ │ └── 20180913 美团三面.md
│ ├── 秋招面经_重口味AC.md
│ └── 面经资源.md
├── pics_tag.md
└── reference/
└── 参考资料.md
SYMBOL INDEX (81 symbols across 3 files)
FILE: notes/docsify/js/main.js
function imgAdd2 (line 25) | function imgAdd2() {
function imgAdd (line 50) | function imgAdd() {
function initStyleSwitcher (line 80) | function initStyleSwitcher() {
FILE: notes/docsify/unpkg/docsify/lib/plugins/search.js
function escapeHtml (line 4) | function escapeHtml(string) {
function getAllPaths (line 17) | function getAllPaths(router) {
function saveData (line 37) | function saveData(maxAge) {
function genIndex (line 42) | function genIndex(path, content, router, depth) {
function search (line 75) | function search(query) {
function init$1 (line 155) | function init$1(config, vm) {
function style (line 188) | function style() {
function tpl (line 194) | function tpl(defaultValue) {
function doSearch (line 206) | function doSearch(value) {
function bindEvents (line 240) | function bindEvents() {
function updatePlaceholder (line 265) | function updatePlaceholder(text, path) {
function updateNoData (line 279) | function updateNoData(text, path) {
function updateOptions (line 288) | function updateOptions(opts) {
function init (line 292) | function init(opts, vm) {
function update (line 302) | function update(opts, vm) {
FILE: notes/docsify/unpkg/gotop/jquery-2.1.0.js
function isArraylike (line 538) | function isArraylike( obj ) {
function Sizzle (line 733) | function Sizzle( selector, context, results, seed ) {
function createCache (line 848) | function createCache() {
function markFunction (line 866) | function markFunction( fn ) {
function assert (line 875) | function assert( fn ) {
function addHandle (line 897) | function addHandle( attrs, handler ) {
function siblingCheck (line 912) | function siblingCheck( a, b ) {
function createInputPseudo (line 939) | function createInputPseudo( type ) {
function createButtonPseudo (line 950) | function createButtonPseudo( type ) {
function createPositionalPseudo (line 961) | function createPositionalPseudo( fn ) {
function testContext (line 984) | function testContext( context ) {
function setFilters (line 1978) | function setFilters() {}
function tokenize (line 1982) | function tokenize( selector, parseOnly ) {
function toSelector (line 2049) | function toSelector( tokens ) {
function addCombinator (line 2059) | function addCombinator( matcher, combinator, base ) {
function elementMatcher (line 2112) | function elementMatcher( matchers ) {
function condense (line 2126) | function condense( unmatched, map, filter, context, xml ) {
function setMatcher (line 2147) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
function matcherFromTokens (line 2240) | function matcherFromTokens( tokens ) {
function matcherFromGroupMatchers (line 2295) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
function multipleContexts (line 2421) | function multipleContexts( selector, contexts, results ) {
function select (line 2430) | function select( selector, context, results, seed ) {
function winnow (line 2582) | function winnow( elements, qualifier, not ) {
function sibling (line 2907) | function sibling( cur, dir ) {
function createOptions (line 2985) | function createOptions( options ) {
function completed (line 3378) | function completed() {
function Data (line 3483) | function Data() {
function dataAttr (line 3675) | function dataAttr( elem, key, data ) {
function returnTrue (line 4003) | function returnTrue() {
function returnFalse (line 4007) | function returnFalse() {
function safeActiveElement (line 4011) | function safeActiveElement() {
function manipulationTarget (line 4874) | function manipulationTarget( elem, content ) {
function disableScript (line 4884) | function disableScript( elem ) {
function restoreScript (line 4888) | function restoreScript( elem ) {
function setGlobalEval (line 4901) | function setGlobalEval( elems, refElements ) {
function cloneCopyEvent (line 4912) | function cloneCopyEvent( src, dest ) {
function getAll (line 4946) | function getAll( context, tag ) {
function fixInput (line 4957) | function fixInput( src, dest ) {
function actualDisplay (line 5415) | function actualDisplay( name, doc ) {
function defaultDisplay (line 5436) | function defaultDisplay( nodeName ) {
function curCSS (line 5476) | function curCSS( elem, name, computed ) {
function addGetHookIf (line 5524) | function addGetHookIf( conditionFn, hookFn ) {
function computePixelPositionAndBoxSizingReliable (line 5563) | function computePixelPositionAndBoxSizingReliable() {
function vendorPropName (line 5658) | function vendorPropName( style, name ) {
function setPositiveNumber (line 5680) | function setPositiveNumber( elem, value, subtract ) {
function augmentWidthOrHeight (line 5688) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
function getWidthOrHeight (line 5727) | function getWidthOrHeight( elem, name, extra ) {
function showHide (line 5771) | function showHide( elements, show ) {
function Tween (line 6074) | function Tween( elem, options, prop, end, easing ) {
function createFxNow (line 6243) | function createFxNow() {
function genFx (line 6251) | function genFx( type, includeWidth ) {
function createTween (line 6271) | function createTween( value, prop, animation ) {
function defaultPrefilter (line 6285) | function defaultPrefilter( elem, props, opts ) {
function propFilter (line 6412) | function propFilter( props, specialEasing ) {
function Animation (line 6449) | function Animation( elem, properties, options ) {
function addToPrefiltersOrTransports (line 7506) | function addToPrefiltersOrTransports( structure ) {
function inspectPrefiltersOrTransports (line 7538) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
function ajaxExtend (line 7565) | function ajaxExtend( target, src ) {
function ajaxHandleResponses (line 7585) | function ajaxHandleResponses( s, jqXHR, responses ) {
function ajaxConvert (line 7641) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
function done (line 8098) | function done( status, nativeStatusText, responses, headers ) {
function buildParams (line 8350) | function buildParams( prefix, obj, traditional, add ) {
function getWindow (line 8828) | function getWindow( elem ) {
Condensed preview — 234 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,081K chars).
[
{
"path": ".gitattributes",
"chars": 87,
"preview": "*.js linguist-language=java\n*.css linguist-language=java\n*.html linguist-language=java\n"
},
{
"path": ".github/FUNDING.yml",
"chars": 736,
"preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
},
{
"path": ".travis.yml",
"chars": 111,
"preview": "sudo: required\nscript: bash ./assets/deploy/deploy.sh\nbranches:\n only:\n - master\nnotifications:\n email: true"
},
{
"path": "README.md",
"chars": 8587,
"preview": "<div align=\"center\"><img src=\"assets/logo-2021.svg\" width=\"80%\"/></div><br/>\n\n| I | "
},
{
"path": "assets/deploy/deploy.sh",
"chars": 592,
"preview": "#!/usr/bin/env sh\n\n# 确保脚本抛出遇到的错误\nset -e\n\n\nrm gh-pages -rf; mkdir gh-pages; cp -r notes/* gh-pages/;\ncd gh-pages;\n\n\n# 将子目"
},
{
"path": "course/01 玩转数据结构.md",
"chars": 6229,
"preview": "## 刘宇波《玩转数据结构》学习记录\n\n| 章节 | 记录 |\n| ------------------------------------------- | -"
},
{
"path": "course/02 玩转算法面试.md",
"chars": 5848,
"preview": "## 刘宇波《玩转算法面试》学习记录\n\n| 章节 | 记录 |\n| ------------------------------"
},
{
"path": "course/03 算法与数据结构.md",
"chars": 3784,
"preview": "## 刘宇波《算法与数据结构》学习记录\n\n| 章节 | 记录 |\n| -----------------------------"
},
{
"path": "course/04 Nginx从入门到实战.md",
"chars": 8764,
"preview": "## 《Nginx从入门到实践》学习记录\n\n\n\nFebruary 2018 Web Server Survey | Netcraft\nhttps://news.netcraft.com/archives/2018/02/13/februar"
},
{
"path": "course/05 Java并发编程与高并发解决方案.md",
"chars": 4889,
"preview": "## 《Java并发编程与高并发解决方案》学习记录\n\n时长:12小时30分钟\n\n| 章节 | 记录 |\n| ----------------------------"
},
{
"path": "course/06 HTTP协议原理+实践 Web开发工程师必学.md",
"chars": 1706,
"preview": "## 《HTTP协议原理+实践 Web开发工程师必学》学习记录\n\n| 章节 | 记录 |\n| ------------------------------------"
},
{
"path": "course/07 SpringBoot微信点餐.md",
"chars": 5390,
"preview": "## 《Spring Boot企业微信点餐系统 》学习记录\n\n| 章节 | 记录 | |\n| ----------------------------------- |"
},
{
"path": "course/08 廖雪峰的Java教程.md",
"chars": 15509,
"preview": "## 《廖雪峰的Java教程》学习记录\n\n| 章节 | 小节 | 记录 |\n| ------------------------ | ---------------"
},
{
"path": "course/09 Spring学习框架.md",
"chars": 1609,
"preview": "Spring框架2016-黑马程序员_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili\nhttps://www.bilibili.com/video/av27640334?from=search&seid=1589834323209213"
},
{
"path": "course/10 Redis.md",
"chars": 4916,
"preview": "## 《一站式学习Redis 从入门到高可用分布式实践》 学习记录\n\n- ##### 第1章 Redis初识\n\n 带领听众进入Redis的世界,了解它的前世今生、众多特性、应用场景、安装配置、简单使用,可以让听众对Redis有一个全面的认"
},
{
"path": "course/11 SpringMVC.md",
"chars": 3093,
"preview": "## 黑马程序员 SpringMVC 学习记录\n\n时长:10小时04分钟\n\n\n| 章节 | 记录 |\n| ------------"
},
{
"path": "course/12 Mybatis.md",
"chars": 2876,
"preview": "## 黑马程序员 Mybatis 学习记录\n\n时长:10小时23分钟\n\n| 章节 | 记录 |\n| -------------------------"
},
{
"path": "course/13 韩立刚计算机网络.md",
"chars": 5985,
"preview": "## 《韩立刚计算机网络》学习记录\n| 章节 | 记录 |\n| -------------------------------------------"
},
{
"path": "course/14 韩立刚计算机网络2.md",
"chars": 9467,
"preview": "## 《韩立刚计算机网络(v2) 》学习记录\n| 章节 | 记录 |\n| --------------------------------------"
},
{
"path": "course/15 咕泡学院-公开课.md",
"chars": 2724,
"preview": "## 咕泡学院 公开课\n\n| 章节 | 记录 |\n| -------------------------------------"
},
{
"path": "course/16 咕泡学院-JAVA开发中的热点技术剖析.md",
"chars": 1448,
"preview": "## 咕泡学院 JAVA开发中的热点技术剖析\n\n| 章节 | 记录 |\n| ---------------------------------------"
},
{
"path": "course/17 咕泡学院-BAT面试课程.md",
"chars": 975,
"preview": "## 咕泡学院 BAT面试课程\n\n| 章节 | 记录 |\n| -------------------------------------"
},
{
"path": "course/18 咕泡学院-性能优化.md",
"chars": 895,
"preview": "## 咕泡学院 性能优化\n\n| 章节 | 记录 |\n| --------------------------------- | ---- |\n| 1.1 性能优化专题-什么是性能优化"
},
{
"path": "course/19 并发编程原理.md",
"chars": 4011,
"preview": "## 《Java并发编程原理与实战》学习记录\n官网:[【龙果学院】Java并发编程原理与实战](https://www.roncoo.com/course/view/b6f89747a8284f44838b2c4da6c8677b)\n\n| "
},
{
"path": "course/20 MySQL性能管理及架构设计.md",
"chars": 7962,
"preview": "## 《MySQL性能管理及架构设计》学习记录\n\n| 章节 | 记录 |\n| -------------------------"
},
{
"path": "course/21 JVM.md",
"chars": 6428,
"preview": "## 《深入理解Java虚拟机》学习记录\n\n[深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)](https://www.roncoo.com/course/view/0ec92a81e8764b838e86c4febe7a5"
},
{
"path": "course/22 白鹤翔_JVM虚拟机优化.md",
"chars": 710,
"preview": "## 尚学堂-白鹤翔_jvm虚拟机优化 学习记录\n| 章节 | 记录 |\n| ------------------------------- | ------------------------------- |\n| 1 jvm_虚拟机概念"
},
{
"path": "course/23 MySQL大型分布式集群.md",
"chars": 4346,
"preview": "## 《MySQL大型分布式集群》 学习记录\n\n官网:[【龙果学院】MySQL大型分布式集群](https://www.roncoo.com/course/view/658088f6e77541f5835b61800314083e)\n\n##"
},
{
"path": "course/24 操作系统(清华大学).md",
"chars": 5309,
"preview": "## 操作系统_清华大学(向勇、陈渝) \n\n| 章节 | 记录 |\n| ------------------------------------------ | -"
},
{
"path": "course/25 Linux达人养成计划 I.md",
"chars": 2260,
"preview": "## 《Linux达人养成计划 I》学习记录\n\n时长:8小时58分钟\n\n| 章节 | 记录 |\n| --------------------------------"
},
{
"path": "course/26 Linux 达人养成计划 II.md",
"chars": 1009,
"preview": "## 《Linux 达人养成计划 II》学习记录\n\n时长:2小时30分 \n\n| 章节 | 记录 |\n| --------------------------------- | ---"
},
{
"path": "course/27 快速上手Linux 玩转典型应用.md",
"chars": 4057,
"preview": "## 快速上手 Linux 玩转典型应用\n\n时长:10小时\n\n| 章节 | 记录 |\n| -------------------------------------"
},
{
"path": "course/28 系统学习Docker 践行DevOps理念.md",
"chars": 6920,
"preview": "## 系统学习Docker 践行DevOps理念\n\n时长:15小时\n\n| 章节 | 记录 |\n| ------------------------"
},
{
"path": "course/30 Python Flask构建可扩展的RESTful API.md",
"chars": 7115,
"preview": "## Python Flask构建可扩展的RESTful API\n\n时长:6小时25分钟\n\n| 章节 | 记录 |\n| ----"
},
{
"path": "course/31 学习Scala 进击大数据Spark生态圈.md",
"chars": 85,
"preview": "学习Scala_进击大数据Spark生态圈-课程章节\nhttps://coding.imooc.com/class/chapter/215.html#Anchor\n\n\n\n"
},
{
"path": "course/32 10小时入门大数据.md",
"chars": 0,
"preview": ""
},
{
"path": "course/Java 架构师成长之路/01 Java 单体应用.md",
"chars": 9024,
"preview": "## Java 单体应用\n\n| **章节** | **记录** |\n| -----------------------------------"
},
{
"path": "course/Java 架构师成长之路/02 Java 微服务架构.md",
"chars": 4953,
"preview": "## Java 微服务架构\n\n| 章节 | 记录 |\n| ------------------------------------------"
},
{
"path": "course/Java 架构师成长之路/03 Java 微服务实战.md",
"chars": 3128,
"preview": "## Java 微服务实战\n| 章节 | 记录 |\n| ------------------------------------------- | ---- |\n"
},
{
"path": "course/Java 架构师成长之路/04 Java 微服务架构 Dubbo 篇.md",
"chars": 3584,
"preview": "## Java 微服务架构 Dubbo 篇\n\n| 章节 | 记录 |\n| ------------------------------------"
},
{
"path": "course/LEARN.md",
"chars": 8472,
"preview": "## PART2:学习记录\n\n\n\n★2018年6月-7月学习计划\n\n【慕课网】玩转数据结构 从入门到进阶\n\n【慕课网】程序员的内功修炼,学好算法与数据结构\n\n【慕课网】玩转算法面试 leetcode题库分门别类详细解析 \n\n【慕课网】HT"
},
{
"path": "course/LEARNLIST.md",
"chars": 2226,
"preview": "# 阅读清单与学习课程\n\n在这部分,我将对阅读书籍和学习课程进程推荐,在课程中我将附带官网链接,图书则附京东的链接。\n\n正在整理,未完待续\n\n\n\n## 一、数据结构与算法\n\n包含数据结构与算法两部分。\n\n### :books:阅读清单\n\n-"
},
{
"path": "course/LEARN_FULL.md",
"chars": 7993,
"preview": "## PART2:学习总览\n\n\n\n### 学习课程总览\n\n| 专题 | 类型 | 课程 |"
},
{
"path": "course/LEARN_RECORD.md",
"chars": 2278,
"preview": "## PART2:学习记录\n\n### 已完成的课程\n\n| 课程 | 进展 |\n| ------------"
},
{
"path": "notes/DeepLearning/README.md",
"chars": 8,
"preview": "深度学习板块\n\n"
},
{
"path": "notes/DeepLearning/assets/README.md",
"chars": 12,
"preview": "深度学习板块-图片文件夹"
},
{
"path": "notes/DeepLearning/深度学习入门课程.md",
"chars": 314,
"preview": "## 入门课程\n\n> 简介:本课程首先介绍机器学习与深度学习,包括机器学习的应用、岗位职责,深度学习的等。然后通过讲解神经元及其衍生模型逻辑斯底回归、目标函数、梯度下降等深度学习基础知识。最后通过Tensorflow来实现课程讲解的模型。\n"
},
{
"path": "notes/DeepLearning/深度学习初识.md",
"chars": 4009,
"preview": "<!-- TOC -->\n\n- [深度学习初识](#深度学习初识)\n - [一、入门基本概念](#一入门基本概念)\n - [机器学习简介](#机器学习简介)\n - [机器学习应用举例](#机器学习应"
},
{
"path": "notes/DistributedSystem/03 分布式通信-序列化.md",
"chars": 1945,
"preview": "# java序列化机制Serialize接口\n\n## java本身的序列化机制存在的问题\n\n1. 序列化数据结果比较大、传输效率比较低\n\n2. 不能跨语言对接\n\n以至于在后来的很长一段时间,基于XML格式编码的对象序列化机制成为了主流,一方"
},
{
"path": "notes/DistributedSystem/04 分布式通信协议-http.md",
"chars": 2968,
"preview": "# HTTP协议的概述\n\n1. 客户端和服务器端\n\n \n\n \n\n2. 资源\n\n html/文本、word、avi电影、其他资源\n\n3. 媒体类型\n\n MIME类型(*MI"
},
{
"path": "notes/Docker.md",
"chars": 27152,
"preview": "<!-- TOC -->\n\n- [前言](#前言)\n- [1. Docker 简介](#1-docker-简介)\n - [1.1 什么是 Docker](#11-什么是-docker)\n - [1.2 为什么要使用 Docker"
},
{
"path": "notes/Docker基础.md",
"chars": 11825,
"preview": "<!-- TOC -->\n\n- [一、Docker 快速入门](#一docker-快速入门)\n - [初探 Docker](#初探-docker)\n - [什么是 Docker](#什么是-docker)\n "
},
{
"path": "notes/Docker实战.md",
"chars": 1045,
"preview": "# Docker实战系列\n\n## Docker搭建自己的Gitlab CI Runner\n\n> 这里主要将采用 docker 镜像方式安装\n>\n\n1. 拉取gitlab-runner镜像\n\n```\ndocker pull gitlab/gi"
},
{
"path": "notes/EalsticSearch/Untitled.md",
"chars": 1029,
"preview": "elasticsearch-head的使用 - 仅此而已-远方 - 博客园\nhttps://www.cnblogs.com/xuwenjin/p/8792919.html\n\n\n\n\n\ntyrival/gitbook: Logstash + E"
},
{
"path": "notes/FastDFS.md",
"chars": 122,
"preview": "# FastDFS\n\n手把手教你搭建分布式文件存储系统\n\n\n\n用FastDFS一步步搭建文件管理系统 - bojiangzhou - 博客园\nhttps://www.cnblogs.com/chiangchou/p/fastdfs.html"
},
{
"path": "notes/Frontend/Angular.md",
"chars": 18486,
"preview": "# Angular\n\n## 1. 框架背景\n\nAngular 是一个由 Google维护的开源JavaScript框架,用于在HTML和JavaScript中构建Web应用程序,是三大框架之首。\n\n不管是1还是2,Angular最显著的特征"
},
{
"path": "notes/Frontend/README.md",
"chars": 13,
"preview": "这里将是前端相关的项目目录"
},
{
"path": "notes/Frontend/assets/README.md",
"chars": 7,
"preview": "这里是图片目录"
},
{
"path": "notes/Frontend/前端知识体系.md",
"chars": 7288,
"preview": "<!-- TOC -->\n\n- [前端知识体系](#前端知识体系)\n - [前端三要素](#前端三要素)\n - [结构层(HTML)](#结构层html)\n - [表现层(CSS)](#表现层css)\n - [什么是"
},
{
"path": "notes/Git.md",
"chars": 7950,
"preview": "<!-- TOC -->\n\n- [前言](#前言)\n- [一、Git 简介](#一git-简介)\n - [什么是版本控制系统](#什么是版本控制系统)\n - [为什么需要版本 控制](#为什么需要版本-控制)\n "
},
{
"path": "notes/Git命令速查.md",
"chars": 8844,
"preview": "# Git 命令速查\n\n> 本文参考极客时间苏玲老师的《玩转Git三剑客》\n\n\n\n## 添加配置\n```bash\ngit config [--local | --global | --system] user.name 'Your name"
},
{
"path": "notes/Git工作流.md",
"chars": 28075,
"preview": "<!-- TOC -->\n\n- [前言](#前言)\n- [一、Git 工作流简介](#一git-工作流简介)\n - [集中式工作流](#集中式工作流)\n - [功能分支工作流](#功能分支工作流)\n - [GitFlow "
},
{
"path": "notes/JavaArchitecture/01-Java基础.md",
"chars": 55093,
"preview": "# 前言\n\n本文主要包含 Java 核心基础知识,主要根据以下部分进行节选,选择了个人认为在面试中最为核心的部分。\n\n- 《Java程序员面试笔试宝典》何昊,薛鹏,叶向阳 著\n- [《阿里面经OneNote》](https://blog.c"
},
{
"path": "notes/JavaArchitecture/02-Java集合框架.md",
"chars": 58483,
"preview": "<!-- TOC -->\n\n- [前言](#前言)\n- [一、概述](#一概述)\n - [集合框架图](#集合框架图)\n - [Collection](#Collection)\n - [Map](#Map)\n - ["
},
{
"path": "notes/JavaArchitecture/03-Java并发编程.md",
"chars": 88083,
"preview": "<!-- TOC -->\n\n- [前言](#前言)\n- [第一部分:并发编程](#第一部分并发编程)\n - [1. 线程状态转换](#1-线程状态转换)\n - [新建(New)](#新建new)\n - [可"
},
{
"path": "notes/JavaArchitecture/04-Java-IO.md",
"chars": 16386,
"preview": "<!-- TOC -->\n\n- [Java IO](#java-io)\n - [1、磁盘操作(File)](#1磁盘操作file)\n - [2、字节操作(*Stream)](#2字节操作stream)\n - [3、字符操作"
},
{
"path": "notes/JavaArchitecture/05-Java虚拟机.md",
"chars": 34938,
"preview": "<!-- TOC -->\n\n- [前言](#前言)\n- [核心知识](#核心知识)\n - [JVM体系结构](#jvm体系结构)\n - [JVM各个模块简介](#jvm各个模块简介)\n - [JVM是如何工"
},
{
"path": "notes/JavaArchitecture/06-Java设计模式.md",
"chars": 6537,
"preview": "<!-- TOC -->\n\n- [一、概述](#一概述)\n - [设计模式怎么分类,每一类都有哪些?【蚂蚁金服内推】](#设计模式怎么分类每一类都有哪些蚂蚁金服内推)\n - [设计模式怎么用到项目中?【阿里面"
},
{
"path": "notes/JavaArchitecture/07-JavaWeb.md",
"chars": 32003,
"preview": "<!-- TOC -->\n\n- [前言](#前言)\n- [一、Servlet / JSP / Web](#一servlet--jsp--web)\n - [1. 什么是Servlet](#1-什么是servlet)\n - [2. "
},
{
"path": "notes/JavaArchitecture/08-系统架构.md",
"chars": 1965,
"preview": "## tomcat集群怎么保证同步 \n\n\n\n\n\n## 布隆过滤器\n\n\n\n\n\n(其他)\n\n\n\n1. 常用的hash算法有哪些? \n\n - 加法Hash;把输入元素一个一个的加起来构成最后的结果 \n - 位运算Hash;这类型Has"
},
{
"path": "notes/JavaArchitecture/Overview.md",
"chars": 521,
"preview": "\n\n## 概述\n\n为了更加系统的学习,参考各类书籍和课程,以下将通过下列8方面展开,对Java技术栈进行总结。\n\n\n\n##### 目录结构\n\n1. ##### Java 基础\n\n - 基本概念\n - 基本类型与运算\n - 字符串"
},
{
"path": "notes/JavaWeb/Hibernate.md",
"chars": 52,
"preview": "> hibernate 美 /'haɪbɚnet/ vi. 过冬;(动物)冬眠;(人等)避寒\n\n\n\n\n\n"
},
{
"path": "notes/JavaWeb/Mybatis.md",
"chars": 180,
"preview": "# 前言\n\n\n\n\n\n参考仓库:\n\n- [springmvc-mybatis-learning](https://github.com/brianway/springmvc-mybatis-learning)\n\n1. Spring、Sprin"
},
{
"path": "notes/JavaWeb/Spring.md",
"chars": 34816,
"preview": "\n\n[TOC]\n\n<!-- TOC -->\n\n- [前言](#前言)\n- [一、基础概念](#一基础概念)\n - [1. JavaBean](#1-javabean)\n - [2. Bean](#2-bean)\n - [3"
},
{
"path": "notes/JavaWeb/深入浅出IOC.md",
"chars": 4285,
"preview": "<!-- TOC -->\n\n- [深入浅出IOC](#深入浅出ioc)\n - [什么是依赖倒置原则](#什么是依赖倒置原则)\n - [控制反转和依赖注入](#控制反转和依赖注入)\n - [控制反转的好处](#控制反转的好处"
},
{
"path": "notes/LEARNLIST.md",
"chars": 12656,
"preview": "# 阅读清单与学习课程\n\n在这部分,我将对阅读书籍和学习课程进程推荐,在课程中我将附带官网链接,图书则附京东和豆瓣链接,PDF 下载我会陆续更新。\n\n如果你有更好的学习资料,可以在 [issue#26](https://github.com"
},
{
"path": "notes/Leetcode题解.md",
"chars": 178083,
"preview": "- <!-- GFM-TOC -->\n\n * [算法思想](#算法思想)\n * [贪心思想](#贪心思想)\n * [双指针](#双指针)\n * [排序](#排序)\n * [快速选择](#快速"
},
{
"path": "notes/Linux.md",
"chars": 43450,
"preview": "<!-- TOC -->\n\n- [前言](#前言)\n- [Linux](#linux)\n - [1. 顶层目录结构](#1-顶层目录结构)\n - [2. 深入理解 inode](#2-深入理解-inode)\n - "
},
{
"path": "notes/Linux实战.md",
"chars": 941,
"preview": "Linux命令之ll命令显示内容日期格式 - 师成 - 关注云计算,关注大数据 - CSDN博客\nhttps://blog.csdn.net/ShrCheng/article/details/80833124\n\n\n\n永久修改时间格式使用以下"
},
{
"path": "notes/MachineLearning/README.md",
"chars": 6,
"preview": "机器学习板块"
},
{
"path": "notes/MachineLearning/assets/README.md",
"chars": 12,
"preview": "机器学习板块-图片文件夹"
},
{
"path": "notes/Memcached.md",
"chars": 94,
"preview": "Memcached集群_布尔教育_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili\nhttps://www.bilibili.com/video/av17984532?p=2\n\n\n\n\n\n"
},
{
"path": "notes/MicroService/kafka/README.md",
"chars": 1486,
"preview": "<div align=\"left\"><img src=\"assets/logo.png\" width=\"250px\"/></div>\r\n\r\n# Kafka Tutorial\r\n\r\n深入浅出 Kafka,将用最极简的语言带你走进 Kafka "
},
{
"path": "notes/MicroService/kafka/kafka-tutorial-1_初识.md",
"chars": 2719,
"preview": "\r\n<!-- TOC -->\r\n\r\n- [深入浅出 Kafka(一)初识](#深入浅出-kafka一初识)\r\n - [一、定义](#一定义)\r\n - [二、消息队列(Message Queue)](#二消息队列message-q"
},
{
"path": "notes/MicroService/kafka/kafka-tutorial-2_单节点部署.md",
"chars": 12723,
"preview": "<!-- TOC -->\r\n\r\n- [深入浅出 Kafka(二)单节点部署](#深入浅出-kafka二单节点部署)\r\n - [系统环境](#系统环境)\r\n - [一、宿主机部署](#一宿主机部署)\r\n - [安装 "
},
{
"path": "notes/MicroService/kafka/kafka-tutorial-3_集群化部署.md",
"chars": 24,
"preview": "# 深入浅出 Kafka(三)集群化部署\r\n\r\n"
},
{
"path": "notes/MicroService/kafka/kafka-tutorial-4_架构深入.md",
"chars": 9830,
"preview": "<!-- TOC -->\r\n\r\n- [深入浅出 Kafka(四)架构深入](#深入浅出-kafka四架构深入)\r\n - [一、Kafka 工作流程及文件存储机制](#一kafka-工作流程及文件存储机制)\r\n - [二、Kafk"
},
{
"path": "notes/MicroService/kafka/kafka-tutorial-5_kafka-api.md",
"chars": 21201,
"preview": "<!-- TOC -->\r\n\r\n- [深入浅出 Kafka(五)Kafka API](#深入浅出-kafka五kafka-api)\r\n - [一、Producer API](#一producer-api)\r\n - [1."
},
{
"path": "notes/MicroService/kafka/kafka-tutorial-6_spring-kafka-api.md",
"chars": 9126,
"preview": "<!-- TOC -->\r\n\r\n- [深入浅出 Kafka(六)Spring Kafka API](#深入浅出-kafka六spring-kafka-api)\r\n - [一、Producer](#一producer)\r\n "
},
{
"path": "notes/MicroService/kafka/kafka-tutorial-7_监控.md",
"chars": 52,
"preview": "# 深入浅出 Kafka(七)监控\r\n\r\nKafka Monitor,Kafka Manager\r\n\r\n"
},
{
"path": "notes/MySQL.md",
"chars": 37709,
"preview": "<!-- TOC -->\n\n- [前言](#前言)\n- [第一部分:MySQL基础](#第一部分mysql基础)\n - [MySQL的多存储引擎架构](#mysql的多存储引擎架构)\n - [1. 什么是事务](#1-什么是事务"
},
{
"path": "notes/Nginx.md",
"chars": 54,
"preview": "# Nginx\n\n### \n\n\n\n\n\n## 负载均衡\n\n\n\n\n\n## 反向代理\n\n\n\n## 配置文件\n\n\n\n"
},
{
"path": "notes/PostgreSQL.md",
"chars": 10610,
"preview": "<!-- TOC -->\n\n- [PostgreSQL](#postgresql)\n - [1. 什么是PostgreSql?](#1-什么是postgresql)\n - [知识点](#知识点)\n - [数"
},
{
"path": "notes/Python/Python安装.md",
"chars": 2857,
"preview": "#### Windows 安装\r\n\r\n---\r\n\r\n> [Python 官网](https://www.python.org/)\r\n\r\n- 打开官网下载安装包\r\n\r\n \r\n\r\n- 安装包"
},
{
"path": "notes/Python/Python简介及基础语法.md",
"chars": 2213,
"preview": "#### Python诞生发展\n\n---\n\n- Python的创始人为吉多·范罗苏姆(Guido van Rossum,江湖人称“龟叔“)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为A"
},
{
"path": "notes/Python/流畅的Python/README.md",
"chars": 2255,
"preview": "# python 学习笔记\n\n\n\n## <i class=\"icon-list\"></i> 目录\n| 章节 | 标题 "
},
{
"path": "notes/Python/流畅的Python/python命名空间.md",
"chars": 3904,
"preview": "# 第24章 python命名空间\n\n<!-- TOC -->\n\n- [第24章 python命名空间](#%e7%ac%ac24%e7%ab%a0-python%e5%91%bd%e5%90%8d%e7%a9%ba%e9%97%b4)\n "
},
{
"path": "notes/Python/流畅的Python/python字节码-补充内容.md",
"chars": 3080,
"preview": "# 第22章 python字节码-补充内容\n\n<!-- TOC -->\n\n- [第22章 python字节码-补充内容](#%e7%ac%ac22%e7%ab%a0-python%e5%ad%97%e8%8a%82%e7%a0%81-%e8"
},
{
"path": "notes/Python/流畅的Python/python时间模块.md",
"chars": 3848,
"preview": "# 第23章 python时间模块\n\n\n<!-- TOC -->\n\n- [第23章 python时间模块](#%e7%ac%ac23%e7%ab%a0-python%e6%97%b6%e9%97%b4%e6%a8%a1%e5%9d%97)\n"
},
{
"path": "notes/Python/流畅的Python/上下文管理器和else块.md",
"chars": 3227,
"preview": "# 第15章 上下文管理器和else块\n\n<!-- TOC -->\n\n- [第15章 上下文管理器和else块](#%e7%ac%ac15%e7%ab%a0-%e4%b8%8a%e4%b8%8b%e6%96%87%e7%ae%a1%e7%9"
},
{
"path": "notes/Python/流畅的Python/使用asyncio包处理并发.md",
"chars": 10931,
"preview": "# 第18章 使用asyncio包处理并发\n\n<!-- TOC -->\n\n- [第18章 使用asyncio包处理并发](#第18章-使用asyncio包处理并发)\n - [主线程与子线程](#主线程与子线程)\n - [守护线程"
},
{
"path": "notes/Python/流畅的Python/使用future处理并发.md",
"chars": 3942,
"preview": "# 第17章 使用future处理并发\n\n<!-- TOC -->\n\n- [第17章 使用future处理并发](#%e7%ac%ac17%e7%ab%a0-%e4%bd%bf%e7%94%a8future%e5%a4%84%e7%90%8"
},
{
"path": "notes/Python/流畅的Python/使用一等函数实现设计模式.md",
"chars": 3623,
"preview": "# 第6章 使用一等函数实现设计模式\n\n<!-- TOC -->\n\n- [第6章 使用一等函数实现设计模式](#第6章-使用一等函数实现设计模式)\n - [单例模式](#单例模式)\n - [为什么](#为什么)\n "
},
{
"path": "notes/Python/流畅的Python/函数.md",
"chars": 5339,
"preview": "# 第5章 函数\n\n<!-- TOC -->\n\n- [第5章 函数](#第5章-函数)\n - [函数](#函数)\n - [高阶函数](#高阶函数)\n - [map函数](#map函数)\n - [fil"
},
{
"path": "notes/Python/流畅的Python/函数装饰器和闭包.md",
"chars": 16196,
"preview": "# 第7章 函数装饰器和闭包\n\n<!-- TOC -->\n\n- [第7章 函数装饰器和闭包](#第7章-函数装饰器和闭包)\n - [装饰器](#装饰器)\n - [基本概念](#基本概念)\n - [优点](#"
},
{
"path": "notes/Python/流畅的Python/动态属性和特性.md",
"chars": 78,
"preview": "# 第19章 动态属性和特性\n\n\n这里主要讲:\n\n`_getattr__方法`\n\n`__new__方法`\n\n`@property`\n\n\n可以查看以前章节内容"
},
{
"path": "notes/Python/流畅的Python/协程-补充内容.md",
"chars": 11147,
"preview": "# 第16章 协程-补充内容\n\n<!-- TOC -->\n\n- [第16章 协程-补充内容](#第16章-协程-补充内容)\n - [多进程VS多线程](#多进程vs多线程)\n - [多进程](#多进程)\n "
},
{
"path": "notes/Python/流畅的Python/协程.md",
"chars": 7610,
"preview": "# 第16章 协程\n\n\n<!-- TOC -->\n\n- [第16章 协程](#第16章-协程)\n - [进程 VS 线程](#进程-vs-线程)\n - [进程](#进程)\n - [堆栈](#堆栈)\n"
},
{
"path": "notes/Python/流畅的Python/可迭代的对象-迭代器和生成器.md",
"chars": 7182,
"preview": "# 第14章 可迭代的对象、迭代器和生成器\n<!-- TOC -->\n\n- [第14章 可迭代的对象、迭代器和生成器](#第14章-可迭代的对象迭代器和生成器)\n - [可迭代对象](#可迭代对象)\n - [迭代器](#迭代器)"
},
{
"path": "notes/Python/流畅的Python/字典和集合.md",
"chars": 7035,
"preview": "# 第3章 字典和集合\n\n<!-- TOC -->\n\n- [第3章 字典和集合](#第3章-字典和集合)\n - [字典推导式](#字典推导式)\n - [setdefault用法](#setdefault用法)\n - [de"
},
{
"path": "notes/Python/流畅的Python/对象引用-可变性和垃圾回收.md",
"chars": 1954,
"preview": "# 第8章-对象引用、可变性和垃圾回收\n\n\n<!-- TOC -->\n\n- [第8章-对象引用、可变性和垃圾回收](#%e7%ac%ac8%e7%ab%a0-%e5%af%b9%e8%b1%a1%e5%bc%95%e7%94%a8%e5%8"
},
{
"path": "notes/Python/流畅的Python/属性描述符.md",
"chars": 14,
"preview": "# 第20章 属性描述符\n\n"
},
{
"path": "notes/Python/流畅的Python/常见问题答疑.md",
"chars": 1073,
"preview": "# 常见问题答疑\n<!-- TOC -->\n\n- [常见问题答疑](#%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98%e7%ad%94%e7%96%91)\n - [1.Python 类self方法](#1pyth"
},
{
"path": "notes/Python/流畅的Python/序列构成的数组.md",
"chars": 12729,
"preview": "# 第2章 序列构成的数组\n\n<!-- TOC -->\n\n- [第2章 序列构成的数组](#第2章-序列构成的数组)\n - [列表推导](#列表推导)\n - [数组与列表效率对比](#数组与列表效率对比)\n - [使用me"
},
{
"path": "notes/Python/流畅的Python/序列的修改-散列和切片.md",
"chars": 2990,
"preview": "# 第10章-序列的修改、散列和切片\n\n<!-- TOC -->\n\n- [第10章-序列的修改、散列和切片](#%e7%ac%ac10%e7%ab%a0-%e5%ba%8f%e5%88%97%e7%9a%84%e4%bf%ae%e6%94%"
},
{
"path": "notes/Python/流畅的Python/序幕.md",
"chars": 6619,
"preview": "# 第1章 序幕\n<!-- TOC -->\n\n- [第1章 序幕](#%e7%ac%ac1%e7%ab%a0-%e5%ba%8f%e5%b9%95)\n - [tuple和nametuple的区别](#tuple%e5%92%8cname"
},
{
"path": "notes/Python/流畅的Python/扩展内容.md",
"chars": 18608,
"preview": "# 第7章-扩展内容\n\n<!-- TOC -->\n\n- [第7章-扩展内容](#第7章-扩展内容)\n - [python面向对象](#python面向对象)\n - [基础篇](#基础篇)\n - [三"
},
{
"path": "notes/Python/流畅的Python/抽象类.md",
"chars": 3016,
"preview": "# 第11章-抽象类\n\n\n<!-- TOC -->\n\n- [第11章-抽象类](#%e7%ac%ac11%e7%ab%a0-%e6%8a%bd%e8%b1%a1%e7%b1%bb)\n - [ABC类](#abc%e7%b1%bb)\n\n<!"
},
{
"path": "notes/Python/流畅的Python/文本和字节序列.md",
"chars": 5699,
"preview": "# 第4章 文本和字节序列\n\n<!-- TOC -->\n\n- [第4章 文本和字节序列](#%e7%ac%ac4%e7%ab%a0-%e6%96%87%e6%9c%ac%e5%92%8c%e5%ad%97%e8%8a%82%e5%ba%8f"
},
{
"path": "notes/Python/流畅的Python/正确重载运算符.md",
"chars": 970,
"preview": "# 第13章 正确重载运算符\n<!-- TOC -->\n\n- [第13章 正确重载运算符](#%e7%ac%ac13%e7%ab%a0-%e6%ad%a3%e7%a1%ae%e9%87%8d%e8%bd%bd%e8%bf%90%e7%ae%"
},
{
"path": "notes/Python/流畅的Python/符合Python风格的对象.md",
"chars": 4612,
"preview": "# 第9章-符合Python风格的对象\n\n<!-- TOC -->\n\n- [第9章-符合Python风格的对象](#%e7%ac%ac9%e7%ab%a0-%e7%ac%a6%e5%90%88python%e9%a3%8e%e6%a0%bc"
},
{
"path": "notes/Python/流畅的Python/类元编程.md",
"chars": 313,
"preview": "# 第21章 类元编程\n\n<!-- TOC -->\n\n- [第21章 类元编程](#%e7%ac%ac21%e7%ab%a0-%e7%b1%bb%e5%85%83%e7%bc%96%e7%a8%8b)\n - [类工厂函数 collecti"
},
{
"path": "notes/Python/流畅的Python/类继承.md",
"chars": 4357,
"preview": "# 第12章-类继承\n\n<!-- TOC -->\n\n- [第12章-类继承](#%e7%ac%ac12%e7%ab%a0-%e7%b1%bb%e7%bb%a7%e6%89%bf)\n - [super函数](#super%e5%87%bd%"
},
{
"path": "notes/RESTful API.md",
"chars": 3618,
"preview": "- [RESTful 架构详解](#restful-架构详解)\n - [1. 什么是REST](#1-什么是rest)\n - [2. RESTful的基本概念](#2-restful的基本概念)\n - [3. 理解REST"
},
{
"path": "notes/Redis.md",
"chars": 6026,
"preview": "# 前言\n\n这里将持续整理一些 Redis 核心笔记\n\n中文社区:[redis.cn](http://redis.cn/)\n\n\n# 一、Redis\n\n## 1. 简介\n\n\n\n单线程为什么这么快?\n\n1. 纯内存\n2. 非阻塞IO\n3. 避免"
},
{
"path": "notes/SQL.md",
"chars": 1895,
"preview": "# 前言\n\n在这部分将整理 SQL 语句的使用\n\n\n\n# SQL基础\n\n## 1. INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN\n\nSQL 中的连接查询有四种方式,它们之间其实并没有太大区别,仅仅是查询"
},
{
"path": "notes/SkillTree/backend-skill.md",
"chars": 141,
"preview": "# 后台开发 技能图谱\n\n> 欢迎在 [issue#25](https://github.com/frank-lam/fullstack-tutorial/issues/25) 中留言,持续更新\n\n\n - [解析极限编程](#解析极限编程)\n - [四大价值观](#四大价值观)\n - [沟通](#沟通)\n - [简"
},
{
"path": "notes/archives/我的秋招之路.md",
"chars": 3981,
"preview": "# 我的秋招之路\n\n## 秋招研磨\n\n 经过了大半年的学习和努力。2018 年 10 月 17 日,我的秋招终于落下帷幕。\n\n 讲讲我的秋招之路吧。大概是 2018 年 2 月底,春节都还没结束,学校的就业群里也开始了阿里内推,2018"
},
{
"path": "notes/archives/手把手教你,搭建内网穿透服务.md",
"chars": 148,
"preview": "## 为了更方便的使用,已创建新的仓库,请移步使用教程!\n\nfrank-lam/lanproxy-nat: 🌍 手把手教你玩转内网穿透,基于 lanproxy 穿透服务,为你定制了一键启动的服务端和客户端镜像。\n\nhttps://githu"
},
{
"path": "notes/data-structures-and-algorithms/LeetCode.md",
"chars": 10,
"preview": "# LeetCode"
},
{
"path": "notes/data-structures-and-algorithms/README.md",
"chars": 2451,
"preview": "# 数据结构与算法\n\n> 欢迎来到数据结构与算法的世界,带你从基础数据结构层层深入。本章以 Java 代码为例,结合 LeetCode 题解示例进行数据结构学习。\n\n\n\n## 学习目录\n\n| 部分 | 章节 "
},
{
"path": "notes/data-structures-and-algorithms/leetcode/Leetcode 307. 区域和检索 - 数组可修改.md",
"chars": 6010,
"preview": "https://leetcode-cn.com/problems/range-sum-query-mutable\n\n## 307. 区域和检索 - 数组可修改\n\n给你一个数组 `nums` ,请你完成两类查询,其中一类查询要求更新数组下标对"
},
{
"path": "notes/data-structures-and-algorithms/数据结构.md",
"chars": 6790,
"preview": "# 数据结构\n\n## 一、基础数据结构\n\n### 字符串\n\n- 标准库,解析,匹配等\n\n### 线性表\n\n- 数组\t\n\n- 动态数组\n\n### 栈和队列\n\n### 链表\n\n### 哈希表\n\n\n\n## 二、高级数据结构\n\n### 1. 线段树"
},
{
"path": "notes/data-structures-and-algorithms/算法思想.md",
"chars": 15163,
"preview": "# 算法思想\n\n## 一、排序算法\n\n### 1. 选择排序(Selection Sort)\n\n选择出数组中的最小元素,将它与数组的第一个元素交换位置。再从剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。不断进行这样的操作,直"
},
{
"path": "notes/docs/如何给我的仓库贡献.md",
"chars": 3316,
"preview": "▲ [GO HOME](https://github.com/frank-lam/2019_campus_apply)\n\n\n\n# 前言\n\n本开源项目还在萌芽起步阶段,在编写的过程中难免遇到错误和不足,非常欢迎大家能够给出自己的意见,成为这个"
},
{
"path": "notes/docsify/about/author.md",
"chars": 1109,
"preview": "# 联系作者\n\n<div align=\"center\"> \n <p>\n 在颠覆世界的同时,也要好好关照自己。\n </p>\n<a target=\"_blank\" href=\"https://zhuanlan.zh"
},
{
"path": "notes/docsify/about/donate.md",
"chars": 183,
"preview": "# 打赏一下\n\n<div align=\"center\">\n<p>\n如果你觉得这个项目帮助到了你,你可以帮作者买一杯果汁🍹表示鼓励\n</p>\n</div><br/>\n\n {\n // Functions\n // =========================================================================\n /**"
},
{
"path": "notes/docsify/navbar.md",
"chars": 238,
"preview": "* Themes\n - <a href=\"#\" data-link-title=\"Simple\">默认</a>\n - <a href=\"#\" data-link-title=\"Defaults\">简约</a> \n - <a href="
},
{
"path": "notes/docsify/sidebar.md",
"chars": 2269,
"preview": "- [Quick Start](introduction)\n- **Java 核心概念**\n- [Java 基础](JavaArchitecture/01-Java基础)\n- [Java 集合框架](JavaArchitecture/02-"
},
{
"path": "notes/docsify/unpkg/docsify/lib/plugins/emoji.js",
"chars": 13725,
"preview": "(function () {\nvar AllGithubEmoji = [\n '+1',\n '100',\n '1234',\n '8ball',\n 'a',\n 'ab',\n 'abc',\n 'abcd',\n 'accept'"
},
{
"path": "notes/docsify/unpkg/docsify/lib/plugins/search.js",
"chars": 10688,
"preview": "(function () {\nvar INDEXS = {};\n\nfunction escapeHtml(string) {\n var entityMap = {\n '&': '&',\n '<': '<',\n "
},
{
"path": "notes/docsify/unpkg/docsify-themeable/dist/css/theme-defaults.css",
"chars": 53819,
"preview": ".github-corner{position:absolute;z-index:40;top:0;right:0;border-bottom:0;text-decoration:none}.github-corner svg{heigh"
},
{
"path": "notes/docsify/unpkg/docsify-themeable/dist/css/theme-simple-dark.css",
"chars": 64991,
"preview": ".github-corner{position:absolute;z-index:40;top:0;right:0;border-bottom:0;text-decoration:none}.github-corner svg{heigh"
},
{
"path": "notes/docsify/unpkg/docsify-themeable/dist/css/theme-simple.css",
"chars": 61486,
"preview": ".github-corner{position:absolute;z-index:40;top:0;right:0;border-bottom:0;text-decoration:none}.github-corner svg{heigh"
},
{
"path": "notes/docsify/unpkg/gitalk/dist/gitalk.css",
"chars": 24007,
"preview": "@font-face {\n font-family: octicons-link;\n src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAA"
},
{
"path": "notes/docsify/unpkg/gotop/jquery-2.1.0.js",
"chars": 244964,
"preview": "/*!\n * jQuery JavaScript Library v2.1.0\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Cop"
},
{
"path": "notes/git-tutorial.md",
"chars": 557,
"preview": "# Git Tutorial\n\n这里 Git 学习指引,包含如下几个模块,将用最极简的语言带你进入 Git 版本控制的世界。\n\n| 部分 | 章节 | 概要 "
},
{
"path": "notes/index.html",
"chars": 5811,
"preview": "<!doctype html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=e"
},
{
"path": "notes/introduction.md",
"chars": 8114,
"preview": "(★★★),可以在上面找到你要查找的linux命令\n- [Linux 命令大全](http://www.runoob"
},
{
"path": "notes/project/README.md",
"chars": 1036,
"preview": "# 面试总结(截止20180921)\n\n## 一、项目技术点深挖\n\n- [x] 单点登录\n\n 共享Redis会话服务器\n\n- [ ] 扫码登录\n\n token\n\n- [ ] 接口验证,涉及到 RESTful API 和 HTTP、HTT"
},
{
"path": "notes/reference.md",
"chars": 1236,
"preview": "▲ [GO HOME](https://github.com/frank-lam/2019_campus_apply)\n\n\n\n# reference\n\n[目录]\n\n- [开源项目推荐](#开源项目推荐)\n- [学习平台推荐](#学习平台推荐"
},
{
"path": "notes/somecoolblog.md",
"chars": 303,
"preview": "## 优质文章\n\n- [聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路 | 阿里中间件团队博客](http://jm.taobao.org/2018/07/09/%E8%81%8A%E8%81%8A%E9%98%BF%E9%87%8"
},
{
"path": "notes/web应用开发标准流程.md",
"chars": 219,
"preview": "# web应用开发标准流程\n\n## 一、产品分析\n\n1. 用户需求\n\n2. 竞品分析\n\n3. 市场调研\n\n\n\n## 二、技术选型\n\n1. 前端技术选型\n\n2. 后端技术选型\n\n3. 数据库\n\n4. 业务框架\n\n\n\n## 三、开发实现\n\n1."
},
{
"path": "notes/全栈开发神兵利器.md",
"chars": 7261,
"preview": "<!-- TOC -->\n\n- [全栈开发神兵利器](#全栈开发神兵利器)\n - [一、团队协作](#一团队协作)\n - [团队协作](#团队协作)\n - [远程](#远程)\n - [笔记备忘"
},
{
"path": "notes/分布式/Zookeeper.md",
"chars": 9937,
"preview": "# Zookeeper\n- [CAP定理](#CAP定理)\n- [Zookeeper概述](#zookeeper概述)\n\t- [Zookeeper特点](#zookeeper特点)\n\t- [Zookeeper使用场景](#zookeeper"
},
{
"path": "notes/分布式.md",
"chars": 12099,
"preview": "# 分布式与微服务\n\n\n\n# 前言\n\n这里将持续拓展增加一些分布式相关的核心要点。\n\n- 消息中间件\n - Kafka\n - RabbitMQ\n\n- 微服务\n - Dubbo\n - Spring Boot\n - Spring Cl"
},
{
"path": "notes/分布式锁/分布式锁.md",
"chars": 42,
"preview": ""
},
{
"path": "notes/分布式锁.md",
"chars": 0,
"preview": ""
},
{
"path": "notes/大数据.md",
"chars": 87,
"preview": "学习Scala_进击大数据Spark生态圈-课程章节\nhttps://coding.imooc.com/class/chapter/215.html#Anchor\n\n\n\n\n\n"
},
{
"path": "notes/如何选择自己的技术栈.md",
"chars": 261,
"preview": "# 如何选择自己的技术栈\n\n在编程的世界里,该如何选择自己的技术栈呢。学前端?学 APP 开发?对于 Java、C++、C#、Python、PHP 又如何选择呢?人工智能现如今这么火,是不是机器学习、深度学习更高级一些呢?那么程序员又如何修"
},
{
"path": "notes/开源贡献.md",
"chars": 639,
"preview": "▲ [GO HOME](https://github.com/frank-lam/2019_campus_apply) | ▲ [开源贡献文档格式说明](https://github.com/frank-lam/fullstack-t"
},
{
"path": "notes/微服务.md",
"chars": 7654,
"preview": "<!-- TOC -->\n\n- [微服务简介](#微服务简介)\n - [微服务四大问题](#微服务四大问题)\n - [简介](#简介)\n - [1. 构建单体应用模型](#1-构建单体应用模型)\n - [2. 走向单"
},
{
"path": "notes/技术交流群.md",
"chars": 678,
"preview": "▲ [GO HOME](https://github.com/frank-lam/2019_campus_apply)\n\n# 技术交流互动\n\n\n\n## 1. 微信交流群\n\n由于微信群二维码只有七天的有效期,大家可加我的微信(**frank_"
},
{
"path": "notes/技术点实践.md",
"chars": 9,
"preview": "# 技术点实践\n\n"
},
{
"path": "notes/持续集成.md",
"chars": 126,
"preview": "\n\nKrishna Venkata's Blog\nhttps://kvenkata986.github.io/\n\n\n- [一、概述](#一概述)\n - [1. 操作系统基本特征](#1-操作系统基本特征)\n - [1. 并发](#1-并发)\n - [2. 共享](#2-"
},
{
"path": "notes/数据结构.md",
"chars": 711,
"preview": "# 数据结构部分\n\n# 一、线性表\n\n- 数组\n- 链表\n\n# 二、栈和队列\n\n\n\n# 三、树和二叉树\n\n## 1. 红黑树\n\n红黑树的特性: \n\n(1)每个节点或者是黑色的,或者是红色的\n\n(2)根节点是黑色的\n\n(3)每个叶子节点(NI"
},
{
"path": "notes/数据结构与算法.md",
"chars": 32714,
"preview": "# 前言\n\n本文将系统总结算法面试和经典数据结构相关知识点,在这里分成 【数据结构】 和 【算法】 两部分展开。这里将展示主要的核心知识点,关于代码面试的 Leetcode 习题请转向代码仓库:[Interview-code](https:"
},
{
"path": "notes/智力题.md",
"chars": 203,
"preview": "1. 给你50个红球和50个黑球,有两个一模一样的桶,往桶里放球,让朋友去随机抽,采用什么策略可以让朋友抽到红球的概率更高? \n2. 称重的方法(从100个硬币中找出最轻的那个假币) \n3. 两个鸡蛋 \n4. 一筐鸡蛋 取 剩2 1,3 0"
},
{
"path": "notes/架构师成长之路.md",
"chars": 846,
"preview": "# 架构师之路\n\n目前在市面上还没有一本能够将全栈技术做一个完整描述的著作,计划半年时间完成《架构师之路》(拟定)一著。个人能力有限,在这里不可能将所有的技术点面面俱到,保持最简洁的解读。可能不能让你学到所有的技能,但我会推荐一些学习的方法"
},
{
"path": "notes/正则表达式.md",
"chars": 3165,
"preview": "# 正则表达式(速查表)\n\n| 符号 | 描述 | 例子 | 能匹配 | 不能匹配 |\n| ---- | ---------------- | ------ | -------- | -------- |\n|"
},
{
"path": "notes/海量数据处理.md",
"chars": 2139,
"preview": "# 前言\n\n这里主要针对案例进行分析讲解,欢迎大家在 issue 或是直接 contribution 更多相关的海量数据相关难题。这里我将持续性的更新一些面试中常见的海量数据案例。\n\n这里我将会持续更新,时间有限不能全面总结,欢迎大家一起完"
},
{
"path": "notes/网络安全.md",
"chars": 9951,
"preview": "# 网络安全\n\n## 1. 怎么知道连接是恶意的呢?可能是正常连接?\n\n1. 验证码(最简单有效的防护),采用点触验证,滑动验证或第三方验证码服务,普通验证码很容易被破解\n2. 频率,限制同设备,同IP等发送次数,单点时间范围可请求时长\n3"
},
{
"path": "notes/计算机网络.md",
"chars": 42297,
"preview": "<!-- TOC -->\n\n- [前言](#前言)\n- [第一部分:传输层](#第一部分传输层)\n - [1. 说一下OSI七层模型 TCP/IP四层模型 五层协议](#1-说一下osi七层模型--tcpip四层模型--五层协议)"
},
{
"path": "notes/超简版面试清单.md",
"chars": 2461,
"preview": "# 前言\n\n 面试必备技能清单,这里不会详细论述,更多的是清单列举,罗列一些关键字和链接注释。\n\n\n\n# 数据结构与算法\n\n- 排序算法\n - 选择排序\n - 冒泡排序\n - 插入排序\n - [快速排序](https://githu"
},
{
"path": "notes/软件测试.md",
"chars": 308,
"preview": "# 软件测试\n\n## 单元测试\n\n- 白盒测试 能看到完整代码的\n- 黑盒测试 没有源码的,功能测试\n- 灰盒测试 介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况"
},
{
"path": "notes/面试话术.md",
"chars": 1010,
"preview": "# 面试话术\n\n一定要有效沟通,不要嬉皮笑脸,不要低人一等,人人平等,双向选择。\n\n一定要记得放慢语速!回答问题前要思考几秒钟!\n\n\n\n## 面试官:你还有什么问题吗?/ 我:我可以问些问题吗?\n\n这里即将进入权利反转阶段,但面对不同的面试"
},
{
"path": "notes/项目实践与技术分析.md",
"chars": 333,
"preview": "# 前言\n\n在这里将罗列一些,项目中常用到的项目技术分析。\n\n切勿夸夸其谈,真诚有理有据。差异化、深入点。\n\n\n\n# 第一部分:项目实践\n\n\n\n\n\n\n\n# 第二部分:技术分析\n\n## 1. ETL数据仓库同步\n\n阿里出品的ETL工具data"
},
{
"path": "others/OVERVIEW.md",
"chars": 4335,
"preview": "# 更新说明\n\n| 目录 | 章节 | 版本 | 说明 | 计划 | 记录 "
},
{
"path": "others/Overview_ulli.md",
"chars": 753,
"preview": "### 一、数据结构与算法\n\n- [数据结构与算法 | v0.5](notes/数据结构与算法.md)\n\n\n\n### 二、Java基础\n\n- [Java基础](notes/JavaArchitecture/01%20Java%20基础.md"
},
{
"path": "others/Skill-Tree.md",
"chars": 509,
"preview": "# Skill-Tree\n\n## Java语言基础\n\n1. Java核心知识(★★★)\n2. 集合框架(★★★)\n3. 并发编程(★★★)\n4. Java虚拟机(★★)\n5. IO(★★)\n6. Java Web(★★)\n - Ser"
},
{
"path": "others/UPLOG.md",
"chars": 156,
"preview": "# 更新日志\n\n- 2018/08/31\n - 更新 “Java - Java 基础知识” v3.0 初稿版\n- 2018/09/01\n - 更新 “Java - Java 集合框架” v3.0 初稿版\n- 2018/09/02\n "
},
{
"path": "others/blog/20180606 用别名(alias)创建你自己的命令.md",
"chars": 2226,
"preview": "### 一、alias初体验\n\n现在是时候,感受第一次编程经历了!我们将用 alias 命令创建我们自己的命令。但在 开始之前,我们需要展示一个命令行小技巧。可以把多个命令放在同一行上,命令之间 用”;”分开。它像这样工作\n\n```\ncom"
},
{
"path": "others/blog/20180609 Spring Boot热部署.md",
"chars": 0,
"preview": ""
},
{
"path": "others/blog/20180620 JWT API安全.md",
"chars": 702,
"preview": "\n\n\n\n\n\n\n\nSpring Boot用3个class轻松实现JWT, 保护你的RESTful API_搜狐科技_搜狐网\nhttps://www.sohu.com/a/163656038_714863\n\n\n\nspring-boot-jwt-"
},
{
"path": "others/blog/20180621 20小时学会任何技能.md",
"chars": 363,
"preview": "The first 20 hours -- how to learn anything | Josh Kaufman | TEDxCSU - YouTube\nhttps://www.youtube.com/watch?v=5MgBikgcW"
},
{
"path": "others/blog/20180701 深入理解快速排序.md",
"chars": 5247,
"preview": "\n\n快速排序可以说是20世纪最伟大的算法之一了。相信都有所耳闻,它的速度也正如它的名字那样,是一个非常快的算法了。当然它也后期经过了不断的改进和优化,才被公认为是一个值得信任的非常优秀的算法。\n\n本文将结合快速排序的三方面进行比较和深入解析"
},
{
"path": "others/book/Java程序员面试笔试宝典.md",
"chars": 18523,
"preview": "## Java程序员面试笔试宝典——学习笔记\n\n\n\n\n\n4.4 基本类型与运算\n\n4.4.1 Java提供了那些基本数据类型\n\n| 目录 "
},
{
"path": "others/devdoc/IntelliJ IDEA/debug技巧.md",
"chars": 112,
"preview": "Intellij IDEA 2017 debug断点调试技巧与总结详解篇 - CSDN博客\nhttps://blog.csdn.net/qq_27093465/article/details/64124330\n\n\n\n\n\n\n\n"
},
{
"path": "others/devdoc/IntelliJ IDEA/lombok插件使用.md",
"chars": 264,
"preview": "## lombok插件使用\n\n1.加载pom.xml中的依赖\n\n```xml\n<!-- 日志、@Data注解 -->\n<dependency>\n <groupId>org.projectlombok</groupId>\n <ar"
},
{
"path": "others/devdoc/Java/HTTPS配置.md",
"chars": 348,
"preview": "网站支持https之二:腾讯云上免费获取SSL证书的步骤 - CSDN博客\nhttps://blog.csdn.net/guoxiaojie_415/article/details/80031909\n\n\n\n```\nserver {\n "
}
]
// ... and 34 more files (download for full content)
About this extraction
This page contains the full source code of the frank-lam/fullstack-tutorial GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 234 files (1.9 MB), approximately 753.4k tokens, and a symbol index with 81 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.