- 博客(41)
- 资源 (12)
- 收藏
- 关注
原创 架构师资源汇总 从入门到精通 将近20年的工作经验毫无保留分享
说明笔者参加极客大学架构师训练营,把架构师的方方面面都做了详细笔记。此文为资源的汇总篇。(持续更新中…)讲师 - 现艺龙同程首席架构师 李智慧 (前Intel架构师,阿里巴巴架构师)主课程架构师职责 听课总结 – 第一课架构视图,设计文档 – 第二课编程的本质与未来 第三课 听课总结框架设计、设计原则、设计模式 第四课 听课总结框架开发 设计原则 设计模式 反应式编程框架 上课总结 第五课框架开发 模式与重构 JUnit、Spring、Hive核心源码解析 第6课 听课总结系统架构 高
2020-08-20 11:17:16 3178 11
原创 极客大学架构师训练营 大数据 三驾马车 GFS、MapReduce、BigTable,Hadoop HDFS 第23课 听课总结
说明讲师:首席架构师 李智慧交互方式的趋势:根据大数据分析用户喜好什么,就推荐什么。比如字节跳动推荐新闻,视频;比如淘宝推荐商品给用户。大数据概述大数据技术发展史2004年 三驾马车今天我们常说的大数据技术,其实起源于 Google 在 2004 年前后发表的三篇论文,也就是我们经常听到的大数据 “三驾马车”,分别是分布式文件系统 GFS、大数据分布式计算框架 MapReduce 和 NoSQL 数据库系统 BigTable。搜索引擎主要就做两件事情,一个是网页抓取,一个是索引构建和排序,而在
2020-08-31 18:26:12 2983
原创 算法:指定位置翻转链表 rotate-list
题目61. Rotate ListGiven a linked list, rotate the list to the right by k places, where k is non-negative.Example 1:Input: 1->2->3->4->5->NULL, k = 2Output: 4->5->1->2->3->NULLExplanation:rotate 1 steps to the right: 5-&g
2020-08-30 22:18:56 258
原创 《影响力》- 作者 Robert B. Cialdini 罗伯特·西奥迪尼 读后感
说明《影响力》- 作者 Robert B. Cialdini 罗伯特·西奥迪尼斯坦福大学权威教材。有史以来全球发行量最高的教科书。业界大神对此书的评价:如果在谈判中碰到了棘手的大麻烦,我一定会找罗伯特·西奥迪尼咨询,在这方面没有人比他更合适了。 – 汤姆·彼得斯 (著名管理学大师,”商界教皇“)。在影响力这一主题上,罗伯特·西奥迪尼博士对我看法的影响远远超过了其他科学家。 – 查理·芒格 (巴菲特的精神导师)本书是学习说服心里的实际标准。要是你不读读看,那就等着以后追悔莫及吧! – 盖伊·川崎
2020-08-29 11:33:44 1662
原创 在线图片压缩png 和 gif,docsmall.com
在线图片压缩png 和 gifhttps://docsmall.com/gif-compress
2020-08-28 17:30:38 933
原创 推荐两款iOS手机debug工具 Flex 和 啄木鸟(阿里巴巴开源)
说明记录两款iOS 在手机端debugging 工具, 可以查看日志,UI控件查看,调试等。 Flex(开源), 啄木鸟(阿里巴巴开源)FlexFLEX(Flipboard Explorer)是用于iOS开发的一组应用程序内调试和探索工具。出现时,FLEX显示一个工具栏,该工具栏位于应用程序上方的窗口中。通过此工具栏,您可以查看和修改正在运行的应用程序中的几乎每个状态。功能简介检查和修改层次结构中的视图。查看任何对象的属性和错误。动态修改许多属性和错误。动态调用实例和类方法。查看详细的
2020-08-28 17:05:47 3654
原创 【翻译】您需要了解的有关使用Python的Robot Framework框架的所有信息, Appium
说明Python编程语言具有一个Robot Framework框架,该框架可以使用外部库(例如selenium)进行Web测试。在本文中,我们将学习测试案例和与python中的机器人框架相关的各种其他术语,以及使用Selenium库进行Web测试的用例。什么是机器人框架?机器人框架是用于验收测试,验收测试驱动的开发和机器人流程自动化的通用开源自动化框架。它使用关键字驱动的测试技术方法。可以通过可以由Java或Python实现的测试库来扩展该功能。验收测试这是一种测试技术,其中测试了系统的功能。验
2020-08-28 16:40:37 359
原创 极客大学架构师训练营 系统安全架构 系统稳定高可用 PBKDF2加密算法 第11次作业
1. 导致系统不可用的原因有哪些?保障系统稳定高可用的方案有哪些?请分别列举并简述。引起故障的原因硬件故障软件 bug系统发布并发压力网络攻击外部灾害解决方案如下:解耦高内聚、低耦合的组件设计原则面向对象基本设计原则面向对象设计模式领域驱动设计建模隔离业务与子系统隔离微服务与中台架构生产者消费者隔离虚拟机与容器隔离异步多线程编程反应式编程异步通信网络编程事件驱动异步架构备份集群设计数据库复制:CAP原理任何情况下都不能只用一台服务器
2020-08-26 22:36:23 762 2
原创 获取最顶层的ViewController top ViewController swift
说明获取最顶层的ViewController解决为UIApplication写个扩展// MARK: UIApplication extensionsextension UIApplication { class func getTopViewController(base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {
2020-08-26 12:48:33 2510
原创 【翻译】在5分钟内了解HTTP3,同时补课HTTP 1.1, HTTP 2.0
说明您尚未完全了解HTTP2,但您已经开始对谈论HTTP3的人感到恼火。但这是有原因的:HTTP3速度很快。我打赌你五分钟后你会同意我的。很久以前 HTTP 1.1我不能不告诉你关于未来的事情。您知道HTTP吗?在1991年定义,它是管理网络的协议。这意味着超文本传输协议,它使您可以从网页获取资源。从Web服务器到浏览器。它基于较低级别的协议-TCP:它将变得很重要-而且它是无状态的。这意味着每个请求都是完全独立的。此页面上显示的每个GIF都是自豪的独立于互联网的GIF。这对他和他作为GIF的生
2020-08-26 12:42:27 269
原创 极客大学架构师训练营 加密技术 高可用系统的度量 高可用系统的架构 高可用系统的运维 第22课 听课总结
说明首席架构师:李智慧信息加密技术及秘钥安全管理2011 年 12月被曝 CSDN 密码泄露事故中,网站安全措施不力,导致用户数据库被黑客“拖库” 并不稀奇,令人惊愕的是数据库中的用户密码居然是明文保存,导致密码泄露,成为地下黑市交易的商品。通常,为了保护网站的敏感数据,应用需要对这些信息进行加密处理,信息加密技术可以分为三类:单向散列加密,对称加密,非对称加密。如果跟金融、交易有关的产品,出事后第一嫌疑人就是开发加解密算法的工程师,第二嫌疑人就是数据库DBA。如果真遇上了,就像:拿着卖白菜的工资
2020-08-26 11:49:02 1091 2
原创 React Native之原理浅析, iOS原理分析与实践解析、Android原理分析与实践解析
一、JavaScriptCore讲React Native之前,了解JavaScriptCore会有帮助,也是必要的。React Native的核心驱动力就来自于JS Engine. 你写的所有JS和JSX代码都会被JS Engine来执行, 没有JS Engine的参与,你是无法享受ReactJS给原生应用开发带来的便利的。在iOS上,默认的就是JavaScriptCore, iOS 7之后的设备都支持. iOS 不允许用自己的JS Engine. JavaScriptCore来自于WebKit,
2020-08-23 22:29:01 666
原创 算法:顺时针遍历矩阵 螺旋矩阵转换为顺时针列表spiral matrix
题目54. Spiral MatrixGiven a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.Example 1:Input:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]Output: [1,2,3,6,9,8,7,4,5]Example 2:Input:[ [1, 2, 3, 4],
2020-08-23 22:13:04 375
原创 易实战Spring Boot 2 资源汇总 从入门到精通 内含实战github代码 毫无保留分享
说明易实战Spring Boot 2 资源汇总 从入门到精通 内涵实战github代码 毫无保留分享。 此文为教程汇总篇。(持续更新中…)课程第一篇:构建第一个SpringBoot工程第二篇:Spring Boot配置文件详解第三篇:RestTemplate请求HTTP(1)第四篇:RestTemplate方法详解(2)第五篇:RestTemplate请求https(3)第六篇:JdbcTemplate访问MySQL第七篇:JPA访问MySQL第八篇:Mybatis访问MySQL第九
2020-08-20 11:35:54 297
原创 如何设计实现一个证书加密签名工具包-极客大学架构师训练营(架构师 黄燧)
说明分享者:架构师 黄燧主要内容有:算法介绍,签名验签,程序设计,OpenSSL证书生成、代码实现算法介绍这里主要用到两类算法,一个是加解密的,一个是消息摘要算法加密算法加密算法可分为对接加密和非对称加密算法。对称加密,加解密都使用同一个密钥,运算速度快,比如AES。非对称加密,加密和解密使用的不同的密钥(公钥和私钥),运算速度比较慢,比如RSA。消息摘要算法单向不可逆,生成特定长度的固定消息,比如MD5、SHA256。签名和验签主要就基于这两种算法。后面简单介绍下签名和验签,图片是
2020-08-16 23:28:57 614
原创 算法:螺旋矩阵算出N行N列的数组Spiral Matrix II
题目59. Spiral Matrix IIGiven a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.Example:Input: 3Output:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]解答思路:数字从0一直递增到n*n, 顺序是顺时针先转完外层,接着再转内层。类似于海螺????的结构。明
2020-08-16 17:18:13 292
原创 Aibaba Dubbo 的前世今生以及黑历史 主程序员梁飞 阿里P9(2016年查看)
DubboApache Dubbo is a high-performance, Java based open source RPC framework. Please visit official site for quick start and documentations, as well as Wiki for news, FAQ, and release notes.Apache Dubbo是一个基于Java的高性能开源RPC框架。 请访问官方网站以获取快速入门和文档,以及访问Wiki以获得
2020-08-14 21:01:28 3646 1
原创 Java中的【锁】事 - 极客大学架构师训练营 架构师 Albert 分享
说明分享架构师: Albert1. 为什么要使用锁?首先,还是从问题出发,操作系统为什么要设计锁?锁用来解决什么问题?这里就要先看看并发编程带来的问题;1-1、原子性问题加法问题先来看以下代码,这段代码在单线程环境下,累加多少次都会和我们预想的一致,但是在多线程环境下,这段代码计算结果也许会和预期的不一样;当有两个线程同时执行上面的代码时,很可能会出现下图中的情况,预期count的值等于2,很有可能出现为1的情况;可以看看下图具体会产生上面的原因,因为count++【并不是一个原子操作
2020-08-13 22:44:17 318
原创 极客大学架构师训练营 组件设计原则 安全架构 防火墙ModSecurity 第21课 听课总结
说明讲师:李智慧组件设计原则在没有编程语言的时候就已经有了软件组件。软件的复杂度和它的规模成指数关系一个复杂度为 100 的软件系统,如果能拆分成两个互不相关、同等规模的子系统,那么每个子系统的复杂度应该是25,而不是50.软件开发这个行业很久之前就形成了一个共识,应该将复杂的软件系统进行拆分,拆成多个更低复杂度的子系统,子系统还可以继续拆分成更小粒度的组件。也就是说,软件需要进行模块化、组件化设计。组件内聚原则组件内聚原则主要讨论哪些类应该聚合在同一个组件中,以便组件既能提供相对完整的功能
2020-08-13 22:12:23 434
原创 极客大学架构师训练营 微服务网关 领域驱动设计 DDD OAuth 2.0 中台架构 第20课 听课总结
说明讲师:李智慧微服务网关基于网关的微服务架构网关作用微服务网关网关管道技术网关本身没有什么业务,主要职责是各种校验与拦截,这些职责可以通过管道技术连接起来。实现管道技术的责任链设计模式Flower 异步网关与异步微服务框架开源地址:https://github.com/zhihuili/flower利用Servlet3 实现异步网关开放平台网关API 接口:是开放平台暴露给合作者使用的一组API, 其形式可以是 Restful、WebService、RPC 等各
2020-08-13 00:20:31 962
原创 极客大学架构师训练营 微服务架构 领域驱动设计DDD 中台架构、组件设计原则 第十次作业
1. 根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图组件图如下:时序图:说明:客户端请求服务端的服务,服务端获取到服务程序以后,逐层按照请求顺序返回;客户端内部组件也是按照顺序逐层返回到服务框架客户端,服务框架客户端最后执行获取到的服务代码。简化的描述如下:服务提供者 注册到 服务注册中心,把服务映射到服务提供者列表;服务消费者程序,调用服务接口;接口访问代理获取到服务消费者调用的接口;服务框架客户端,调用服务提供者列表找到服务提供者;负载均衡策略
2020-08-12 23:11:28 511
原创 收到控制台警告:当我在iOS13.2中加载WKWebView时,[Process] kill() returned unexpected error 1
问题自从我安装了iOS 13.2 beta以来,我一直收到调试控制台错误消息。每当我在情节提要中加载带有WKWebView对象的ViewController时,就会发生这种情况。然后在显示Web视图时连续显示以下消息…2019-10-10 12:10:47.867830+0200 (...) [Process] kill() returned unexpected error 1 2019-10-10 12:10:47.908698+0200 (...) [Process] kill() retu
2020-08-12 18:40:18 1800
原创 图灵完备的定义 以及 历史
图灵完备 – 维基百科在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟任何图灵机,那么它是图灵完备的。这意味着这个系统也可以识别其他数据处理规则集,图灵完备性被用作表达这种数据处理规则集的一种属性。如今,几乎所有编程语言都是具有图灵完备性的。这个词以引入图灵机概念的数学家艾伦·图灵命名。还有一个相关概念是图灵等价 – 如果P可以模拟Q并且Q可以模拟P,则两台计算机P和Q称为等效计算机。 邱奇-图灵论题认为任可以通过算法计算其值的函数都可以由图灵机计算,因此,如果任
2020-08-12 09:43:12 1323
原创 iOS app 启动 crash XCode 11 NSPOSIXErrorDomain Code=2 “No such file or directory“
问题iOS app 启动 crash XCode 11connection to host has failed: Error Domain=NSPOSIXErrorDomain Code=2 “No such file or directory”2017-11-10 14:00:37.119701+0000 XXX[768:176399] [DYGLInitPlatform] connection to host has failed: Error Domain=NSPOSIXErrorDoma
2020-08-11 18:35:59 6466
原创 手动安装.app到模拟器simulator, iOS XCode 11
说明iOS开发同学,有时候需要给h5同学,提供模拟器simulator的安装包,调试h5.具体步骤如下:生产.app 压缩包的命令先在任意模拟器运行app,用下面的命令打包最近一次成功运行的app。ditto -ck --sequesterRsrc --keepParent `ls -1 -d -t ~/Library/Developer/Xcode/DerivedData/*/Build/Products/*-iphonesimulator/*.app | head -n 1` ~/Deskto
2020-08-11 11:31:48 9148
原创 解决XCode 11 build error 编译错误 image not found
问题描述XCode 11,build app的时候,编译错误 image not found。解决[Xcode 11+]Root Cause 在于framework的Embed选项要选择为 Embed & Sign。 路径如下:Target -> General->Frameworks, Libraries And Embedded Content section.确定有图片资源的framework选择 ‘Embed & Sign’, 默认的是 Do Not Emb
2020-08-10 17:02:25 1669
原创 算法:求刚好大于当前数组组合31. Next Permutation
题目31. Next PermutationImplement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.If such arrangement is not possible, it must rearrange it as the lowest possible order (ie, sorted in ascending ord
2020-08-09 21:52:19 204
原创 极客大学架构师训练营 微服务架构 Service Mesh 服务网格 RPC 协议实现原理 Dubbo 通讯协议 第19课 听课总结
说明讲师:李智慧阿里早期微服务架构重构单体应用,所有的服务都在一个War包里面发布,体积大约1.2G。巨无霸应用系统带来的问题编译、部署困难:对于网站开发工程师而言,打包构建一个巨型应用是一件痛苦的事情。也许只是修改了一行代码,输入 build 命令后,抽完一支烟,回来一看,还在 building;又去喝了一杯水,回来一看,还在building;又去了一次厕所,回来一看,还在building;好不容易build 结束,一看编译失败,还得重来…想砸了显示器有木有?代码分支管理困难
2020-08-06 22:38:50 654
原创 iOS swift当app从后台切换到前台,或者锁屏后开启唤醒,app收到通知,didBecomeActiveNotification
说明iOS swift当app从后台切换到前台,或者锁屏后开启,app收到通知。根据单一职责原则,所以在需要该方法的ViewController中加入监听就好。代码实现 for swift 5class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the
2020-08-06 10:24:10 5872
原创 Mac 命令行 Terminal 安装My Zsh,替换默认的Bash
打开Terminal,输入以下命令$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"My Zsh 笔者的命令行,主题可以设置。后续的配置文件为.zshrc 中加入如下配置(Bash的配置文件为 .bashrc):$ cd $home$ vim .zshrc$ source .zshrcInstall oh-my-zsh now 官方文档https://ohmyz.s
2020-08-06 01:40:28 630
原创 极客大学架构师训练营 JVM虚拟机原理 JVM垃圾回收原理 Java编程优化 秒杀 第九次作业
请简述 JVM 垃圾回收原理。JVM 的垃圾回收JVM 垃圾回收即使将 JVM 堆中的已经不再被使用的对象清理掉,释放宝贵的内存资源。JVM 通过一种可达性分析算法进行垃圾对象的标识。具体过程是:从线程栈帧中的局部变量,或者方法区的静态变量出发,将这个变量引用的对象进行标记;然后看这些被标记的对象是否引用了其它对象,继续进行标记;所有被标记过的对象都是被使用的对象,而那些没有被标记的对象就是可回收的垃圾对象了。进行完标记以后,JVM 就会对垃圾对象占用的内存进行回收,回收主要有三种方法:
2020-08-06 01:32:34 710
原创 极客大学架构师训练营 秒杀 搜索引擎 爬虫 Lucene Elastic Search 第18课 听课总结
说明讲师:李智慧架构师要站顶层高度思考问题:Linux、JVM为啥这么做架构设计,这么做的好处是什么?任何系统,都是软件,跟普通的软件没有什么区别,要找到架构设计的美。互联网最主要解决大量流量访问的场景下,解决系统高性能的问题。这就是为什么需要这么多方法去解决遇到的高性能问题。秒杀秒杀:有限的商品,很多人过来购买。秒杀本身就是一种营销活动。2009年左右,淘宝搞过1元秒杀买宝马汽车。低配的宝马20万左右,吸引上百万的用户过来抢,平均下来每个用户的广告成本也就几毛钱甚至几分钱,是相当划算的。案例
2020-08-06 01:28:24 712
原创 极客大学架构师训练营 JVM虚拟机原理 JVM垃圾回收原理 Java编程优化 第17课 听课总结
说明讲师:李智慧JVM虚拟机原理JVM 组成架构Java 是一种跨平台的语言,JVM 屏蔽了底层系统的不同,为Java 字节码文件构造了一个统一的运行环境。Windows, Mac OS, Android OS每个不同的环境下,执行引擎会不一样, 实现跨平台。Tomcat 启动命令java org.apache.catalina.startup.Bootstrap "@" start当启动Tomcat之前,先会初始化JVM 虚拟机,Java虚拟机会启动一个主线程,Bootstrap会执
2020-08-06 00:19:46 1274 1
原创 Mac OS开启黑暗模式
Mac OS开启黑暗模式选择Apple菜单>“系统偏好设置”,单击“常规”,然后选择窗口顶部的“外观”选项之一:灯光:使用灯光外观。深色:使用深色外观。自动(在macOS Catalina中可用):白天自动使用浅色外观,晚上自动使用暗色外观。...
2020-08-04 10:50:42 486
原创 Git Push,Pull,Clone出现SSL certificate problem: unable to get local issuer certificate
使用Git进行Clone或者Pull, Push程序的时候会提示,SSL certificate problem: unable to get local issuer certificate这个是由于Git默认开启了SSL验证,关闭即可;解决方式:git config --global http.sslVerify false执行以上git命令,关闭ssl验证。终极解决方案请参考https://confluence.atlassian.com/bitbucketserverkb/ssl-
2020-08-03 16:04:34 776
原创 命令行Terminal增加proxy开关
在文件.zshrc 中加入如下配置:$ cd $home$ vim .zshrc添加如下,然后保存:wq# proxy listalias proxy='export all_proxy=socks5://127.0.0.1:1086'alias unproxy='unset all_proxy'加载配置文件source .zshrc开启代理$ proxy# test google.com, get content of the website page$ curl www.g
2020-08-03 14:27:28 1660 3
原创 如何解决类似 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 的问题 #10
背景笔者发现,安装my-zsh的时候报如下错误sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused笔者最近发现 github 的用户头像和自己文章中的图片显示不出来了。然后今天发现安装 homeBrew 和 nvm
2020-08-03 12:03:07 2283 1
原创 SwitchyOmega规则列表地址
说明SwitchyOmega 配置1. 导入备份导入备份下载地址:bak下载, 内容如下,也可以通过保存下面的内容为文本, 导入即可。{"+GFWed":{"bypassList":[{"conditionType":"BypassCondition","pattern":"<local>"}],"color":"#99ccee","fallbackProxy":{"host":"127.0.0.1","port":1080,"scheme":"socks5"},"name":"GFWe
2020-08-03 08:46:32 51125 7
原创 算法: 用队列Queue实现栈Stack
题目Implement Stack using QueuesImplement the following operations of a stack using queues.push(x) – Push element x onto stack.pop() – Removes the element on top of the stack.top() – Get the top element.empty() – Return whether the stack is empty.Exa
2020-08-02 22:19:47 389
原创 【翻译】iOS Swift Moya从入门到精通,优雅、安全的Alamofire
说明Moya是一个网络库,其灵感来自以类型安全的方式封装网络请求(通常使用枚举)的概念,该概念为使用网络层提供了信心。成为Moya的网络超级英雄!注意:本教程使用Xcode 10和Swift 4.2。它依赖的库尚未针对Swift 4.2进行更新,但可以正常使用。您需要忽略单个警告,告诉您Swift 4.2转换可用。制作精美而高性能的iOS应用程序涉及许多动人的事。其中最重要的部分,如果不是最适合现代应用重要,是网络。作为iOS开发人员,您可以采用许多不同的方式来构建网络层-无论是使用URLSess
2020-08-02 17:57:45 8126
注意力 > 时间 > 金钱 用于谋生的知识,学生主要工作是学习,成年人的工作是养家糊口, 这是基本的要求,在这之上,才能有
2023-10-04
注意力 > 时间 > 金钱 用于谋生的知识,学生主要工作是学习,成年人的工作是养家糊口, 这是基本
2023-10-04
Amazon Neptune Workshop-Fundamental-V1.0.pdf
2020-10-31
利用 Auto Scaling 实现 弹性高可用.pdf
2020-10-20
架构师图谱-大作业二.png
2020-09-17
给初中生分享社会需要的人才.pptx
2020-09-16
价值过亿的架构师训练营课面试题和答案.pptx
2020-09-10
ImageAlpha.zip
2020-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人