diff --git a/README.md b/README.md index 41dd251..36a4b74 100644 --- a/README.md +++ b/README.md @@ -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#集合) @@ -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#架构) @@ -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) )** @@ -466,7 +468,7 @@ TODO * [《【啊哈!算法】最快最简单的排序——桶排序》](http://blog.51cto.com/ahalei/1362789) * [《排序算法(三):计数排序与桶排序》](https://blog.csdn.net/sunjinshengli/article/details/70738527) * 桶排序将[0,1)区间划分为n个相同的大小的子区间,这些子区间被称为桶。 - * 每个通单独进行排序,然后再遍历每个桶。 + * 每个桶单独进行排序,然后再遍历每个桶。 ### 基数排序 @@ -548,6 +550,11 @@ KMP: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) @@ -678,7 +685,7 @@ KMP:Knuth-Morris-Pratt算法(简称KMP) ### 死锁 * [《“死锁”四个必要条件的合理解释》](https://blog.csdn.net/yunfenglw/article/details/45950305) - * 互斥、持有、不可剥夺、不可剥夺。 + * 互斥、持有、不可剥夺、环形等待。 * [Java如何查看死锁?](https://blog.csdn.net/u014039577/article/details/52351626) * JConsole 可以识别死锁。 @@ -722,7 +729,7 @@ TODO ## 设计模式的六大原则 * [《设计模式的六大原则》](https://blog.csdn.net/q291611265/article/details/48465113) * 开闭原则:对扩展开放,对修改关闭,多使用抽象类和接口。 - * 里氏代换原则:基类可以被子类替换,使用抽象类继承,不使用具体类继承。 + * 里氏替换原则:基类可以被子类替换,使用抽象类继承,不使用具体类继承。 * 依赖倒转原则:要依赖于抽象,不要依赖于具体,针对接口编程,不针对实现编程。 * 接口隔离原则:使用多个隔离的接口,比使用单个接口好,建立最小的接口。 * 迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用,通过中间类建立联系。 @@ -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) @@ -1124,6 +1138,7 @@ 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应用中。 @@ -1168,6 +1183,8 @@ Java实现,推拉模式都是支持,吞吐量逊于Kafka。可以保证消 * [《Quartz任务调度的基本实现原理》](https://www.cnblogs.com/zhenyuyaodidiao/p/4755649.html) * Quartz集群中,独立的Quartz节点并不与另一其的节点或是管理节点通信,而是通过相同的数据库表来感知到另一Quartz应用的 +* [《Elastic-Job-Lite 源码解析》](http://www.iocoder.cn/categories/Elastic-Job-Lite/?vip&architect-awesome) +* [《Elastic-Job-Cloud 源码解析》](http://www.iocoder.cn/categories/Elastic-Job-Cloud/?vip&architect-awesome) ## RPC @@ -1233,6 +1250,7 @@ servlet 3.0 异步特性可用于配置中心的客户端 * [《谈API网关的背景、架构以及落地方案》](http://www.infoq.com/cn/news/2016/07/API-background-architecture-floo) * [《使用Zuul构建API Gateway》](https://blog.csdn.net/zhanglh046/article/details/78651993) +* [《Spring Cloud Gateway 源码解析》](http://www.iocoder.cn/categories/Spring-Cloud-Gateway/?vip&architect-awesome) * [《HTTP API网关选择之一Kong介绍》](https://mp.weixin.qq.com/s/LIq2CiXJQmmjBC0yvYLY5A) # 网络 @@ -1542,7 +1560,7 @@ MyISAM 是非聚集,InnoDB 是聚集 ## 用户隐私信息保护 -1. 用户密码非明文保存,加动态slat。 +1. 用户密码非明文保存,加动态salt。 2. 身份证号,手机号如果要显示,用 “\*” 替代部分字符。 3. 联系方式在的显示与否由用户自己控制。 4. TODO @@ -1607,6 +1625,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) @@ -2007,11 +2026,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) @@ -2027,7 +2057,7 @@ TODO ## 代码规范 -TODO +* [《阿里巴巴Java开发手册》](https://github.com/alibaba/p3c) ## 代码 Review @@ -2089,6 +2119,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 @@ -2129,7 +2165,7 @@ TODO * 权衡:权衡投入产出比;优先级和节奏控制; * [《关于架构优化和设计,架构师必须知道的事情》](http://www.infoq.com/cn/articles/architecture-optimization-and-design-the-architect-must-know) - * 要去考虑的细节:模块化、轻耦合、无共享架构;减少各个组件之前的依懒、注意服务之间依懒所有造成的链式失败及影响等。 + * 要去考虑的细节:模块化、轻耦合、无共享架构;减少各个组件之前的依赖、注意服务之间依赖所有造成的链式失败及影响等。 * 基础设施、配置、测试、开发、运维综合考虑。 * 考虑人、团队、和组织的影响。 @@ -2218,6 +2254,8 @@ TODO * [国家数据](http://data.stats.gov.cn/) +* [TalkingData](http://www.talkingdata.com/) + ## 专项网站 * 测试: @@ -2285,6 +2323,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=技术管理之巅) @@ -2328,6 +2368,8 @@ TODO * 有部分中文电子书。 * [Cheatography](https://www.cheatography.com/) * Cheat Sheets 大全,单页文档网站。 +* [Tutorialspoint](https://www.tutorialspoint.com/index.htm) + * 知名教程网站,提供Java、Python、JS、SQL、大数据等高质量入门教程。 ## 在线课堂 @@ -2376,7 +2418,7 @@ TODO ## 综合云服务商 * 阿里云 -* 腾讯云 +* [腾讯云](https://cloud.tencent.com/redirect.php?redirect=1012&cps_key=c2665015d90871c0cb20fef91b7afc3c) * 百度云 * 新浪云 * 金山云 @@ -2386,3 +2428,5 @@ TODO ### VPS * [Linode](http://linode.com) + +