Skip to content

Commit

Permalink
Merge pull request xingshaocheng#1 from xingshaocheng/master
Browse files Browse the repository at this point in the history
更新技术图谱
  • Loading branch information
BeoneMan authored May 16, 2018
2 parents dc8bca8 + fd4ac4e commit f340d70
Showing 1 changed file with 71 additions and 16 deletions.
87 changes: 71 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
[![GitHub forks](https://img.shields.io/github/forks/xingshaocheng/architect-awesome.svg?style=flat&label=Fork)](https://github.com/xingshaocheng/architect-awesome/fork)
[![GitHub watchers](https://img.shields.io/github/watchers/xingshaocheng/architect-awesome.svg?style=flat&label=Watch)](https://github.com/xingshaocheng/architect-awesome/watchers)

**最后更新于20180502**
**更新于20180513**
* [数据结构](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#数据结构)
* [队列](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#队列)
* [集合](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#集合)
Expand Down Expand Up @@ -38,7 +38,7 @@
* [Java 中的排序工具](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#java-中的排序工具)
* [布隆过滤器](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#布隆过滤器)
* [字符串比较](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#字符串比较)
* [KPM 算法](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#kpm-算法)
* [KMP 算法](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#kmp-算法)
* [深度优先、广度优先](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#深度优先广度优先)
* [贪心算法](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#贪心算法)
* [回溯算法](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#回溯算法)
Expand Down Expand Up @@ -126,6 +126,7 @@
* [本地缓存](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#本地缓存)
* [客户端缓存](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#客户端缓存)
* [服务端缓存](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#服务端缓存)
* [Web缓存](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#web缓存)
* [Memcached](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#memcached)
* [Redis](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#redis)
* [架构](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#架构)
Expand Down Expand Up @@ -341,6 +342,7 @@
* [代码托管](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#代码托管)
* [文件服务](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#文件服务)
* [综合云服务商](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#综合云服务商)
* [VPS](https://github.com/xingshaocheng/architect-awesome/blob/master/README.md#vps)


**(Toc generated by [simple-php-github-toc](https://github.com/xingshaocheng/simple-php-github-toc)**
Expand Down Expand Up @@ -402,7 +404,7 @@ MySQL是基于B+树聚集索引组织表

* [《B-树,B+树,B\*树详解》](https://blog.csdn.net/aqzwss/article/details/53074186)
* [《B-树,B+树与B\*树的优缺点比较》](https://blog.csdn.net/bigtree_3721/article/details/73632405)
* B+ 数的叶子节点链表结构相比于 B- 数便于扫库,和范围检索。
* B+ 树的叶子节点链表结构相比于 B- 树便于扫库,和范围检索。
### LSM 树

LSM(Log-Structured Merge-Trees)和 B+ 树相比,是牺牲了部分读的性能来换取写的性能(通过批量写入),实现读写之间的。
Expand Down Expand Up @@ -466,7 +468,7 @@ TODO
* [《【啊哈!算法】最快最简单的排序——桶排序》](http://blog.51cto.com/ahalei/1362789)
* [《排序算法(三):计数排序与桶排序》](https://blog.csdn.net/sunjinshengli/article/details/70738527)
* 桶排序将[0,1)区间划分为n个相同的大小的子区间,这些子区间被称为桶。
* 每个通单独进行排序,然后再遍历每个桶。
* 每个桶单独进行排序,然后再遍历每个桶。

### 基数排序

Expand Down Expand Up @@ -504,8 +506,8 @@ TODO

## 字符串比较

### KPM 算法
KPM:Knuth-Morris-Pratt算法(简称KMP)
### KMP 算法
KMP:Knuth-Morris-Pratt算法(简称KMP)
核心原理是利用一个“部分匹配表”,跳过已经匹配过的元素。
* [《字符串匹配的KMP算法》](http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html)

Expand Down Expand Up @@ -548,6 +550,11 @@ KPM:Knuth-Morris-Pratt算法(简称KMP)

# 并发

## Java 并发

* [Java 并发知识合集](https://github.com/CL0610/Java-concurrency)
* [JAVA并发知识图谱](https://github.com/CL0610/Java-concurrency/blob/master/Java并发知识图谱.png)

## 多线程

* [《40个Java多线程问题总结》](http://www.importnew.com/18459.html)
Expand Down Expand Up @@ -694,7 +701,7 @@ KPM:Knuth-Morris-Pratt算法(简称KMP)
## CPU

### 多级缓存
典型的 CPU 有三级缓存,举例核心越近,速度越快,空间越小。L1 一般 32k,L2 一般 256k,L3 一般12M。内存速度需要200个 CPU 周期,CPU 缓存需要1个CPU周期。
典型的 CPU 有三级缓存,距离核心越近,速度越快,空间越小。L1 一般 32k,L2 一般 256k,L3 一般12M。内存速度需要200个 CPU 周期,CPU 缓存需要1个CPU周期。

* [《从Java视角理解CPU缓存和伪共享》](https://blog.csdn.net/zero__007/article/details/54089730)

Expand All @@ -710,7 +717,7 @@ TODO

* [《终结python协程----从yield到actor模型的实现》](https://www.thinksaas.cn/group/topic/839375/)
* 线程的调度是由操作系统负责,协程调度是程序自行负责
* 与线程相比,协程减少了无畏的操作系统切换.
* 与线程相比,协程减少了无谓的操作系统切换.
* 实际上当遇到IO操作时做切换才更有意义,(因为IO操作不用占用CPU),如果没遇到IO操作,按照时间片切换.

## Linux
Expand All @@ -726,7 +733,7 @@ TODO
* 依赖倒转原则:要依赖于抽象,不要依赖于具体,针对接口编程,不针对实现编程。
* 接口隔离原则:使用多个隔离的接口,比使用单个接口好,建立最小的接口。
* 迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用,通过中间类建立联系。
* 合成复用原则:尽量使用合成/聚合,而不是使用继承,尽量使用合成/聚合,而不是使用继承
* 合成复用原则:尽量使用合成/聚合,而不是使用继承。

## 23种常见设计模式
* [《设计模式》](http://www.runoob.com/design-pattern/design-pattern-tutorial.html)
Expand Down Expand Up @@ -1047,6 +1054,13 @@ APM — Application Performance Management
* [《H5 和移动端 WebView 缓存机制解析与实战》](https://mp.weixin.qq.com/s/qHm_dJBhVbv0pJs8Crp77w)

## 服务端缓存

### Web缓存

* [nuster](https://github.com/jiangwenyuan/nuster) - nuster cache
* [varnish](https://github.com/varnishcache/varnish-cache) - varnish cache
* [squid](https://github.com/squid-cache/squid) - squid cache

### Memcached
* [《Memcached 教程》](http://www.runoob.com/Memcached/Memcached-tutorial.html)
* [《深入理解Memcached原理》](https://blog.csdn.net/chenleixing/article/details/47035453)
Expand Down Expand Up @@ -1124,13 +1138,14 @@ APM — Application Performance Management
### RocketMQ
Java实现,推拉模式都是支持,吞吐量逊于Kafka。可以保证消息顺序。
* [《RocketMQ 实战之快速入门》](https://www.jianshu.com/p/824066d70da8)
* [《RocketMQ 源码解析》](http://www.iocoder.cn/categories/RocketMQ/?vip&architect-awesome)

### ActiveMQ
纯Java实现,兼容JMS,可以内嵌于Java应用中。
* [《ActiveMQ消息队列介绍》](https://www.cnblogs.com/wintersun/p/3962302.html)

### Kafka
高吞吐量、采用拉模式。适合搞IO场景,比如日志同步。
高吞吐量、采用拉模式。适合高IO场景,比如日志同步。

* [官方网站](http://kafka.apache.org/)
* [《各消息队列对比,Kafka深度解析,众人推荐,精彩好文!》](https://blog.csdn.net/allthesametome/article/details/47362451)
Expand Down Expand Up @@ -1322,8 +1337,10 @@ Binary-RPC;不仅仅是序列化
* [《Protobuf协议的Java应用例子》](https://blog.csdn.net/antgan/article/details/52103966)
Goolge出品、占用空间和效率完胜其他序列化类库,如Hessian;需要编写 .proto 文件。
* [《Protocol Buffers序列化协议及应用》](https://worktile.com/tech/share/prototol-buffers)
关于协议的解释;缺点:可读性差;
* 关于协议的解释;缺点:可读性差;

* [《简单的使用 protobuf 和 protostuff》](https://blog.csdn.net/eric520zenobia/article/details/53766571)
* protostuff 的好处是不用写 .proto 文件,Java 对象直接就可以序列化。

# 数据库
## 基础理论
Expand Down Expand Up @@ -1435,6 +1452,8 @@ MyISAM 是非聚集,InnoDB 是聚集

## 容量评估
* [《联网性能与容量评估的方法论和典型案例》](https://blog.csdn.net/u012528360/article/details/70054156)
* [《互联网架构,如何进行容量设计?》](https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651959542&idx=1&sn=2494bbea9a855e0e1c3ccd6d2562a600&scene=21#wechat_redirect)
* 评估总访问量、评估平均访问量QPS、评估高峰QPS、评估系统、单机极限QPS

## CDN 网络

Expand Down Expand Up @@ -1538,7 +1557,7 @@ MyISAM 是非聚集,InnoDB 是聚集

## 用户隐私信息保护

1. 用户密码非明文保存,加动态slat
1. 用户密码非明文保存,加动态salt
2. 身份证号,手机号如果要显示,用 “\*” 替代部分字符。
3. 联系方式在的显示与否由用户自己控制。
4. TODO
Expand Down Expand Up @@ -1603,6 +1622,7 @@ TODO

### OAuth2.0
* [《理解OAuth 2.0》](http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html)
* [《一张图搞定OAuth2.0》](https://www.cnblogs.com/flashsun/p/7424071.html)

### 双因素认证(2FA)

Expand All @@ -1624,6 +1644,8 @@ TODO

* [《开源协议的选择》](https://coderxing.gitbooks.io/architecture-evolution/chapter1/di-yi-zhang-ff1a-zhun-bei-qi-cheng/12-guan-yu-kai-yuan/123-kai-yuan-xie-yi-de-xuan-ze.html)

* [如何选择一个开源软件协议](http://choosealicense.online/)

## 日志框架

### Log4j、Log4j2
Expand Down Expand Up @@ -2001,11 +2023,22 @@ TODO

## Serverless

TODO
无需过多关系服务器的服务架构理念。

* [《什么是Serverless无服务器架构?》](http://www.jdon.com/soa/serverless.html)
* Serverless 不代表出去服务器,而是去除对服务器运行状态的关心。
* Serverless 代表一思维方式的转变,从“构建一套服务在一台服务器上,对对个事件进行响应转变为构建一个为服务器,来响应一个事件”。
* Serverless 不代表某个具体的框架。

* [《如何理解Serverless?》](http://www.infoq.com/cn/news/2017/10/how-to-understand-serverless)
* 依赖于 Baas ((Mobile) Backend as a Service) 和 Faas (Functions as a service)



## Service Mesh

TODO
* [《什么是Service Mesh?》](https://time.geekbang.org/article/2355)
* [《初识 Service Mesh》](https://www.jianshu.com/p/e23e3e74538e)

* [《什么是Service Mesh?》](https://time.geekbang.org/article/2355)

Expand Down Expand Up @@ -2083,6 +2116,12 @@ XP - eXtreme Programming

* [《结对编程》](http://www.baike.com/wiki/%E7%BB%93%E5%AF%B9%E7%BC%96%E7%A8%8B)

## PDCA 循环质量管理

P——PLAN 策划,D——DO 实施,C——CHECK 检查,A——ACT 改进

* [《PDCA》](http://www.baike.com/wiki/PDCA)

## FMEA管理模式

TODO
Expand Down Expand Up @@ -2123,15 +2162,15 @@ TODO
* 权衡:权衡投入产出比;优先级和节奏控制;

* [《关于架构优化和设计,架构师必须知道的事情》](http://www.infoq.com/cn/articles/architecture-optimization-and-design-the-architect-must-know)
* 要去考虑的细节:模块化、轻耦合、无共享架构;减少各个组件之前的依懒、注意服务之间依懒所有造成的链式失败及影响等
* 要去考虑的细节:模块化、轻耦合、无共享架构;减少各个组件之前的依赖、注意服务之间依赖所有造成的链式失败及影响等
* 基础设施、配置、测试、开发、运维综合考虑。
* 考虑人、团队、和组织的影响。

* [《如何才能真正的提高自己,成为一名出色的架构师?》](https://www.zhihu.com/question/19841397)

* [《架构师的必备素质和成长途径》](https://blog.csdn.net/sanbingyutuoniao123/article/details/54144129)
* 素质:业务理解、技术广度、技术深度、丰富经验、沟通能力、动手能力、美学素养。
* 成长路径:2年积累知识、4年积累技能和祖内影响力、7年积累部门内影响力、7年以上积累跨部门影响力。
* 成长路径:2年积累知识、4年积累技能和组内影响力、7年积累部门内影响力、7年以上积累跨部门影响力。

* [《架构设计师—你在哪层楼?》](http://blog.51cto.com/frankfan/1248401)
* 第一层的架构师看到的只是产品本身
Expand Down Expand Up @@ -2210,6 +2249,8 @@ TODO
* [艾瑞网](http://report.iresearch.cn/)
* [QUEST MOBILE](https://www.questmobile.com.cn)

* [国家数据](http://data.stats.gov.cn/)

## 专项网站

* 测试:
Expand Down Expand Up @@ -2259,6 +2300,8 @@ TODO

* [InfoQ《架构师》月刊](http://www.infoq.com/cn/architect/)

* [《架构师之路》](https://www.w3cschool.cn/architectroad/)

### 纸质书

#### 开发方面
Expand All @@ -2275,6 +2318,8 @@ TODO
* 《淘宝技术这十年》[京东](https://union-click.jd.com/jdc?d=LwrDfD) [淘宝](https://s.taobao.com/search?q=淘宝技术这十年)
* 《企业IT架构转型之道-中台战略思想与架构实战》 [京东](https://union-click.jd.com/jdc?d=89pAEm) [淘宝](https://s.taobao.com/search?q=企业IT架构转型之道)

* 《高可用架构(第1卷)》[京东](https://item.jd.com/12195481.html) [淘宝](https://s.taobao.com/search?q=高可用架构)

#### 技术管理方面
* 《CTO说》[京东](https://union-click.jd.com/jdc?d=zhTZyr) [淘宝](https://s.taobao.com/search?q=CTO说)
* 《技术管理之巅》[京东](https://union-click.jd.com/jdc?d=LgRBUW) [淘宝](https://s.taobao.com/search?q=技术管理之巅)
Expand Down Expand Up @@ -2318,6 +2363,8 @@ TODO
* 有部分中文电子书。
* [Cheatography](https://www.cheatography.com/)
* Cheat Sheets 大全,单页文档网站。
* [Tutorialspoint](https://www.tutorialspoint.com/index.htm)
* 知名教程网站,提供Java、Python、JS、SQL、大数据等高质量入门教程。


## 在线课堂
Expand Down Expand Up @@ -2370,3 +2417,11 @@ TODO
* 百度云
* 新浪云
* 金山云
* [亚马逊云(AWS)](https://amazonaws-china.com/cn/)
* [谷歌云](https://cloud.google.com/?hl=zh-cn)
* [微软云](https://azure.microsoft.com/zh-cn/)

### VPS
* [Linode](http://linode.com)


0 comments on commit f340d70

Please sign in to comment.