Posts
小于 1 分钟
目录
Android开发高手课
- 01 _ 崩溃优化(上):关于“崩溃”那些事儿02 _ 崩溃优化(下):应用崩溃了,你应该如何去分析?03 _ 内存优化(上):4GB内存时代,再谈内存优化04 _ 内存优化(下):内存优化这件事,应该从哪里着手?05 _ 卡顿优化(上):你要掌握的卡顿分析方法06 _ 卡顿优化(下):如何监控应用卡顿?06补充篇 _ 卡顿优化:卡顿现场与卡顿分析07 _ 启动优化(上):从启动过程看启动速度优化08 _ 启动优化(下):优化启动速度的进阶方法09 _ I_O优化(上):开发工程师必备的I_O优化知识10 _ I_O优化(中):不同I_O方式的使用场景是什么?11 _ I_O优化(下):如何监控线上I_O操作?12 _ 存储优化(上):常见的数据存储方法有哪些?13 _ 存储优化(中):如何优化数据存储?14 _ 存储优化(下):数据库SQLite的使用和优化15 _ 网络优化(上):移动开发工程师必备的网络优化知识16 _ 网络优化(中):复杂多变的移动网络该如何优化?17 _ 网络优化(下):大数据下网络该如何监控?18 _ 耗电优化(上):从电量优化的演进看耗电分析19 _ 耗电优化(下):耗电的优化方法与线上监控20 _ UI 优化(上):UI 渲染的几个关键概念21 _ UI 优化(下):如何优化 UI 渲染?22 _ 包体积优化(上):如何减少安装包大小?23 _ 包体积优化(下):资源优化的进阶实践24 _ 想成为Android高手,你需要先搞定这三个问题
Flutter核心技术与实战
- 09 _ Widget,构建Flutter界面的基石10 _ Widget中的State到底是什么?11 _ 提到生命周期,我们是在说什么?12 _ 经典控件(一):文本、图片和按钮在Flutter中怎么用?13 _ 经典控件(二):UITableView_ListView在Flutter中是什么?14 _ 经典布局:如何定义子控件在父容器中排版的位置?15 _ 组合与自绘,我该选用何种方式自定义Widget?16 _ 从夜间模式说起,如何定制不同风格的App主题?17 _ 依赖管理(一):图片、配置和字体在Flutter中怎么用?18 _ 依赖管理(二):第三方组件库在Flutter中要如何管理?19 _ 用户交互事件该如何响应?20 _ 关于跨组件传递数据,你只需要记住这三招21 _ 路由与导航,Flutter是这样实现页面切换的
- 22 _ 如何构造炫酷的动画效果?23 _ 单线程模型怎么保证UI运行流畅?24 _ HTTP网络编程与JSON解析25 _ 本地存储与数据库的使用和优化26 _ 如何在Dart层兼容Android_iOS平台特定实现?(一)27 _ 如何在Dart层兼容Android_iOS平台特定实现?(二)28 _ 如何在原生应用中混编Flutter工程?29 _ 混合开发,该用何种方案管理导航栈?30 _ 为什么需要做状态管理,怎么做?31 _ 如何实现原生推送能力?32 _ 适配国际化,除了多语言我们还需要注意什么_33 _ 如何适配不同分辨率的手机屏幕?34 _ 如何理解Flutter的编译模式?35 _ Hot Reload是怎么做到的?36 _ 如何通过工具链优化开发调试效率?37 _ 如何检测并优化Flutter App的整体性能表现?38 _ 如何通过自动化测试提高交付质量?
Go语言核心36讲
- 23 _ 测试的基本规则和流程 (上)24 _ 测试的基本规则和流程(下)25 _ 更多的测试手法26 _ sync.Mutex与sync.RWMutex27 _ 条件变量sync.Cond (上)28 _ 条件变量sync.Cond (下)29 _ 原子操作(上)30 _ 原子操作(下)31 _ sync.WaitGroup和sync.Once32 _ context.Context类型33 _ 临时对象池sync.Pool34 _ 并发安全字典sync.Map (上)35 _ 并发安全字典sync.Map (下)36 _ unicode与字符编码37 _ strings包与字符串操作38 _ bytes包与字节串操作(上)39 _ bytes包与字节串操作(下)40 _ io包中的接口和工具 (上)41 _ io包中的接口和工具 (下)42 _ bufio包中的数据类型 (上)43 _ bufio包中的数据类型(下)44 _ 使用os包中的API (上)45 _ 使用os包中的API (下)46 _ 访问网络服务47 _ 基于HTTP协议的网络服务48 _ 程序性能分析基础(上)49 _ 程序性能分析基础(下)
I OS开发高手课
- 01 _ 建立你自己的iOS开发知识体系02 _ App 启动速度怎么做优化与监控?03 _ Auto Layout 是怎么进行自动布局的,性能如何?04 _ 项目大了人员多了,架构怎么设计更合理?05 _ 链接器:符号是怎么绑定到地址上的?06 _ App 如何通过注入动态库的方式实现极速编译调试?07 _ Clang、Infer 和 OCLint ,我们应该使用谁来做静态分析?08 _ 如何利用 Clang 为 App 提质?09 _ 无侵入的埋点方案如何实现?10 _ 包大小:如何从资源和代码层面实现全方位瘦身?11 _ 热点问题答疑(一):基础模块问题答疑12 _ iOS 崩溃千奇百怪,如何全面监控?13 _ 如何利用 RunLoop 原理去监控卡顿?14 _ 临近 OOM,如何获取详细内存分配信息,分析内存问题?15 _ 日志监控:怎样获取 App 中的全量日志?16 _ 性能监控:衡量 App 质量的那把尺17 _ 远超你想象的多线程的那些坑18 _ 怎么减少 App 电量消耗?19 _ 热点问题答疑(二):基础模块问题答疑20 _ iOS开发的最佳学习路径是什么?
- 21 _ 除了 Cocoa,iOS还可以用哪些 GUI 框架开发?22 _ 细说 iOS 响应式框架变迁,哪些思想可以为我所用?23 _ 如何构造酷炫的物理效果和过场动画效果?24 _ A_B 测试:验证决策效果的利器25 _ 怎样构建底层的发布和订阅事件总线?26 _ 如何提高 JSON 解析的性能?27 _ 如何用 Flexbox 思路开发?跟自动布局比,Flexbox 好在哪?28 _ 怎么应对各种富文本表现需求?29 _ 如何在 iOS 中进行面向测试驱动开发和面向行为驱动开发?30 _ 如何制定一套适合自己团队的 iOS 编码规范?31 _ iOS 开发学习资料和书单推荐32 _ 热点问题答疑(三)
Java Script核心原理解析
Java业务开发常见错误100例
- 01 _ 使用了并发工具类库,线程安全就高枕无忧了吗?02 _ 代码加锁:不要让“锁”事成为烦心事03 _ 线程池:业务代码最常用也最容易犯错的组件04 _ 连接池:别让连接池帮了倒忙05 _ HTTP调用:你考虑到超时、重试、并发了吗?06 _ 20%的业务代码的Spring声明式事务,可能都没处理正确07 _ 数据库索引:索引并不是万能药08 _ 判等问题:程序里如何确定你就是你?09 _ 数值计算:注意精度、舍入和溢出问题10 _ 集合类:坑满地的List列表操作11 _ 空值处理:分不清楚的null和恼人的空指针12 _ 异常处理:别让自己在出问题的时候变为瞎子13 _ 日志:日志记录真没你想象的那么简单14 _ 文件IO:实现高效正确的文件读写并非易事15 _ 序列化:一来一回你还是原来的你吗?16 _ 用好Java 8的日期时间类,少踩一些“老三样”的坑17 _ 别以为“自动挡”就不可能出现OOM18 _ 当反射、注解和泛型遇到OOP时,会有哪些坑?19 _ Spring框架:IoC和AOP是扩展的核心20 _ Spring框架:框架帮我们做了很多工作也带来了复杂度答疑篇:代码篇思考题集锦(一)答疑篇:代码篇思考题集锦(三)答疑篇:代码篇思考题集锦(二)
Java并发编程实战
- 14 _ Lock和Condition(上):隐藏在并发包中的管程15 _ Lock和Condition(下):Dubbo如何用管程实现异步转同步?16 _ Semaphore:如何快速实现一个限流器?17 _ ReadWriteLock:如何快速实现一个完备的缓存?18 _ StampedLock:有没有比读写锁更快的锁?19 _ CountDownLatch和CyclicBarrier:如何让多线程步调一致?20 _ 并发容器:都有哪些“坑”需要我们填?21 _ 原子类:无锁工具类的典范22 _ Executor与线程池:如何创建正确的线程池?23 _ Future:如何用多线程实现最优的“烧水泡茶”程序?24 _ CompletableFuture:异步编程没那么难25 _ CompletionService:如何批量执行异步任务?26 _ Fork_Join:单机版的MapReduce27 _ 并发工具类模块热点问题答疑
Java性能调优实战
Java核心技术面试精讲
- 第10讲 _ 如何保证集合是线程安全的_ ConcurrentHashMap如何实现高效地线程安全?第11讲 _ Java提供了哪些IO方式? NIO如何实现多路复用?第12讲 _ Java有几种文件拷贝方式?哪一种最高效?第13讲 _ 谈谈接口和抽象类有什么区别?第14讲 _ 谈谈你知道的设计模式?第1讲 _ 谈谈你对Java平台的理解?第2讲 _ Exception和Error有什么区别?第3讲 _ 谈谈final、finally、 finalize有什么不同?第4讲 _ 强引用、软引用、弱引用、幻象引用有什么区别?第5讲 _ String、StringBuffer、StringBuilder有什么区别?第6讲 _ 动态代理是基于什么原理?第7讲 _ int和Integer有什么区别?第8讲 _ 对比Vector、ArrayList、LinkedList有何区别?第9讲 _ 对比Hashtable、HashMap、TreeMap有什么不同?
- 第15讲 _ synchronized和ReentrantLock有什么区别呢?第16讲 _ synchronized底层如何实现?什么是锁的升级、降级?第17讲 _ 一个线程两次调用start()方法会出现什么情况?第18讲 _ 什么情况下Java程序会产生死锁?如何定位、修复?第19讲 _ Java并发包提供了哪些并发工具类?第20讲 _ 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?第21讲 _ Java并发类库提供的线程池有哪几种? 分别有什么特点?第22讲 _ AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?第23讲 _ 请介绍类加载过程,什么是双亲委派模型?第24讲 _ 有哪些方法可以在运行时动态生成一个Java类?第25讲 _ 谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError_第26讲 _ 如何监控和诊断JVM堆内和堆外内存使用?第27讲 _ Java常见的垃圾收集器有哪些?第28讲 _ 谈谈你的GC调优思路_第29讲 _ Java内存模型中的happen-before是什么?第30讲 _ Java程序运行在Docker等容器环境有哪些新问题?
Python核心技术与实战
Python自动化办公实战课
Spring编程常见错误50例
Web Assembly入门课
从0开始学游戏开发
从0打造音视频直播系统
- 01 _ 原来通过浏览器访问摄像头这么容易02 _ 如何通过WebRTC进行音视频设备检测呢?03 _ 如何使用浏览器给自己拍照呢?04 _ 可以把采集到的音视频数据录制下来吗?05 _ 原来浏览器还能抓取桌面?06 _ WebRTC中的RTP及RTCP详解07 _ 你竟然不知道SDP?它可是WebRTC的驱动核心!08 _ 有话好商量,论媒体协商09 _ 让我们揭开WebRTC建立连接的神秘面纱10 _ WebRTC NAT穿越原理11 _ 如何通过Node.js实现一套最简单的信令系统?12 _ RTCPeerConnection:音视频实时通讯的核心13 _ 在WebRTC中如何控制传输速率呢?14 _ 如何打开_关闭音视频?15 _ WebRTC中的数据统计原来这么强大(上)16 _ WebRTC中的数据统计原来这么强大(下)17 _ 如何使用Canvas绘制统计图表(上)?18 _ 如何使用Canvas绘制统计图表(下)?19 _ WebRTC能不能进行文本聊天呢?20 _ 原来WebRTC还可以实时传输文件?21 _ 如何保证数据传输的安全(上)?22 _ 如何保证数据传输的安全(下)?23 _ 实战演练:通过WebRTC实现一个1对1音视频实时直播系统
代码之丑
- 01 _ 缺乏业务含义的命名:如何精准命名?02 _ 乱用英语:站在中国人的视角来看英文命名03 _ 重复代码:简单需求到处修改,怎么办?04 _ 长函数:为什么你总是不可避免地写出长函数?05 _ 大类:如何避免写出难以理解的大类?06 _ 长参数列表:如何处理不同类型的长参数?07 _ 滥用控制语句:出现控制结构,多半是错误的提示08 _ 缺乏封装:如何应对火车代码和基本类型偏执问题?09 _ 可变的数据:不要让你的代码“失控”10 _ 变量声明与赋值分离:普通的变量声明,怎么也有坏味道?11 _ 依赖混乱:你可能还没发现问题,代码就已经无法挽救了12 _ 不一致的代码:为什么你的代码总被吐槽难懂?13 _ 落后的代码风格:使用“新”的语言特性和程序库升级你的代码
代码精进之路
全栈工程师修炼指南
接口测试入门课
正则表达式入门课
深入拆解 Java虚拟机
现代 C 实战30讲
程序员的数学基础课
- 01 _ 二进制:不了解计算机的源头,你学什么编程02 _ 余数:原来取余操作本身就是个哈希函数03 _ 迭代法:不用编程语言的自带函数,你会如何计算平方根?04 _ 数学归纳法:如何用数学归纳提升代码的运行效率?05 _ 递归(上):泛化数学归纳,如何将复杂问题简单化?06 _ 递归(下):分而治之,从归并排序到MapReduce07 _ 排列:如何让计算机学会“田忌赛马”?08 _ 组合:如何让计算机安排世界杯的赛程?09 _ 动态规划(上):如何实现基于编辑距离的查询推荐?10 _ 动态规划(下):如何求得状态转移方程并进行编程实现?11 _ 树的深度优先搜索(上):如何才能高效率地查字典?12 _ 树的深度优先搜索(下):如何才能高效率地查字典?13 _ 树的广度优先搜索(上):人际关系的六度理论是真的吗?14 _ 树的广度优先搜索(下):为什么双向广度优先搜索的效率更高?15 _ 从树到图:如何让计算机学会看地图?16 _ 时间和空间复杂度(上):优化性能是否只是“纸上谈兵”?17 _ 时间和空间复杂度(下):如何使用六个法则进行复杂度分析?18 _ 总结课:数据结构、编程语句和基础算法体现了哪些数学思想?
- 19 _ 概率和统计:编程为什么需要概率和统计?20 _ 概率基础(上):一篇文章帮你理解随机变量、概率分布和期望值21 _ 概率基础(下):联合概率、条件概率和贝叶斯法则,这些概率公式究竟能做什么?22 _ 朴素贝叶斯:如何让计算机学会自动分类?23 _ 文本分类:如何区分特定类型的新闻?24 _ 语言模型:如何使用链式法则和马尔科夫假设简化概率模型?25 _ 马尔科夫模型:从PageRank到语音识别,背后是什么模型在支撑?26 _ 信息熵:如何通过几个问题,测出你对应的武侠人物?27 _ 决策树:信息增益、增益比率和基尼指数的运用28 _ 熵、信息增益和卡方:如何寻找关键特征?29 _ 归一化和标准化:各种特征如何综合才是最合理的?30 _ 统计意义(上):如何通过显著性检验,判断你的A_B测试结果是不是巧合?31 _ 统计意义(下):如何通过显著性检验,判断你的A_B测试结果是不是巧合?32 _ 概率统计篇答疑和总结:为什么会有欠拟合和过拟合?
- 33 _ 线性代数:线性代数到底都讲了些什么?34 _ 向量空间模型:如何让计算机理解现实事物之间的关系?35 _ 文本检索:如何让计算机处理自然语言?36 _ 文本聚类:如何过滤冗余的新闻?37 _ 矩阵(上):如何使用矩阵操作进行PageRank计算?38 _ 矩阵(下):如何使用矩阵操作进行协同过滤推荐?39 _ 线性回归(上):如何使用高斯消元求解线性方程组?40 _ 线性回归(中):如何使用最小二乘法进行直线拟合?41 _ 线性回归(下):如何使用最小二乘法进行效果验证?42 _ PCA主成分分析(上):如何利用协方差矩阵来降维?43 _ PCA主成分分析(下):为什么要计算协方差矩阵的特征值和特征向量?44 _ 奇异值分解:如何挖掘潜在的语义关系?45 _ 线性代数篇答疑和总结:矩阵乘法的几何意义是什么?
编译原理之美
- 01 _ 理解代码:编译器的前端技术02 _ 正则文法和有限自动机:纯手工打造词法分析器03 _ 语法分析(一):纯手工打造公式计算器04 _ 语法分析(二):解决二元表达式中的难点05 _ 语法分析(三):实现一门简单的脚本语言06 _ 编译器前端工具(一):用Antlr生成词法、语法分析器07 _ 编译器前端工具(二):用Antlr重构脚本语言08 _ 作用域和生存期:实现块作用域和函数09 _ 面向对象:实现数据和方法的封装10 _ 闭包: 理解了原理,它就不反直觉了11 _ 语义分析(上):如何建立一个完善的类型系统?12 _ 语义分析(下):如何做上下文相关情况的处理?13 _ 继承和多态:面向对象运行期的动态特性
编译原理实战课
- 27 _ 课前导读:学习现代语言设计的正确姿势28 _ 前端总结:语言设计也有人机工程学29 _ 中端总结:不遗余力地进行代码优化30 _ 后端总结:充分发挥硬件的能力31 _ 运行时(一):从0到语言级的虚拟化32 _ 运行时(二):垃圾收集与语言的特性有关吗?33 _ 并发中的编译技术(一):如何从语言层面支持线程?34 _ 并发中的编译技术(二):如何从语言层面支持协程?35 _ 并发中的编译技术(三):Erlang语言厉害在哪里?36 _ 高级特性(一):揭秘元编程的实现机制37 _ 高级特性(二):揭秘泛型编程的实现机制38 _ 综合实现(一):如何实现面向对象编程?39 _ 综合实现(二):如何实现函数式编程?40 _ 成果检验:方舟编译器的优势在哪里?期末答疑与总结 _ 再次审视学习编译原理的作用
- 09 _ Java编译器(一):手写的编译器有什么优势?10 _ Java编译器(二):语法分析之后,还要做些什么?11 _ Java编译器(三):属性分析和数据流分析12 _ Java编译器(四):去除语法糖和生成字节码13 _ Java JIT编译器(一):动手修改Graal编译器14 _ Java JIT编译器(二):Sea of Nodes为何如此强大?15 _ Java JIT编译器(三):探究内联和逃逸分析的算法原理16 _ Java JIT编译器(四):Graal的后端是如何工作的?17 _ Python编译器(一):如何用工具生成编译器?18 _ Python编译器(二):从AST到字节码19 _ Python编译器(三):运行时机制20 _ JavaScript编译器(一):V8的解析和编译过程21 _ JavaScript编译器(二):V8的解释器和优化编译器22 _ Julia编译器(一):如何让动态语言性能很高?23 _ Julia编译器(二):如何利用LLVM的优化和后端功能?24 _ Go语言编译器:把它当作教科书吧25 _ MySQL编译器(一):解析一条SQL语句的执行过程26 _ MySQL编译器(二):编译技术如何帮你提升数据库性能?热点问题答疑 _ 如何吃透7种真实的编译器?
编辑训练营
网络编程实战
罗剑锋的 C 实战笔记
设计模式之美
- 加餐一 _ 用一篇文章带你了解专栏中用到的所有Java语法加餐七 _ 基础学科的知识如何转化成实际的技术生产力?加餐三 _ 聊一聊Google是如何做Code Review的加餐九 _ 作为面试官或候选人,如何面试或回答设计模式问题?加餐二 _ 设计模式、重构、编程规范等相关书籍推荐加餐五 _ 听一听小争哥对Google工程师文化的解读加餐八 _ 程序员怎么才能让自己走得更高、更远?加餐六 _ 什么才是所谓的编程能力?如何考察一个人的编程能力?加餐十 _ 如何接手一坨烂业务代码?如何在烂业务代码中成长?加餐四 _ 聊一聊Google那些让我快速成长的地方春节特别加餐 _ 王争:如何学习《设计模式之美》专栏?
- 76 _ 开源实战一(上):通过剖析Java JDK源码学习灵活应用设计模式77 _ 开源实战一(下):通过剖析Java JDK源码学习灵活应用设计模式78 _ 开源实战二(上):从Unix开源开发学习应对大型复杂项目开发79 _ 开源实战二(中):从Unix开源开发学习应对大型复杂项目开发80 _ 开源实战二(下):从Unix开源开发学习应对大型复杂项目开发81 _ 开源实战三(上):借Google Guava学习发现和开发通用功能模块82 _ 开源实战三(中):剖析Google Guava中用到的几种设计模式83 _ 开源实战三(下):借Google Guava学习三大编程范式中的函数式编程84 _ 开源实战四(上):剖析Spring框架中蕴含的经典设计思想或原则85 _ 开源实战四(中):剖析Spring框架中用来支持扩展的两种设计模式86 _ 开源实战四(下):总结Spring框架用到的11种设计模式87 _ 开源实战五(上):MyBatis如何权衡易用性、性能和灵活性?88 _ 开源实战五(中):如何利用职责链与代理模式实现MyBatis Plugin?89 _ 开源实战五(下):总结MyBatis框架中用到的10种设计模式
- 27 _ 理论一:什么情况下要重构?到底重构什么?又该如何重构?28 _ 理论二:为了保证重构不出错,有哪些非常能落地的技术手段?29 _ 理论三:什么是代码的可测试性?如何写出可测试性好的代码?30 _ 理论四:如何通过封装、抽象、模块化、中间层等解耦代码?31 _ 理论五:让你最快速地改善代码质量的20条编程规范(上)32 _ 理论五:让你最快速地改善代码质量的20条编程规范(中)33 _ 理论五:让你最快速地改善代码质量的20条编程规范(下)34 _ 实战一(上):通过一段ID生成器代码,学习如何发现代码质量问题35 _ 实战一(下):手把手带你将ID生成器代码从“能用”重构为“好用”36 _ 实战二(上):程序出错该返回啥?NULL、异常、错误码、空对象?37 _ 实战二(下):重构ID生成器项目中各函数的异常处理代码
- 15 _ 理论一:对于单一职责原则,如何判定某个类的职责是否够“单一”?16 _ 理论二:如何做到“对扩展开放、修改关闭”?扩展和修改各指什么?17 _ 理论三:里式替换(LSP)跟多态有何区别?哪些代码违背了LSP?18 _ 理论四:接口隔离原则有哪三种应用?原则中的“接口”该如何理解?19 _ 理论五:控制反转、依赖反转、依赖注入,这三者有何区别和联系?20 _ 理论六:我为何说KISS、YAGNI原则看似简单,却经常被用错?21 _ 理论七:重复的代码就一定违背DRY吗?如何提高代码的复用性?22 _ 理论八:如何用迪米特法则(LOD)实现“高内聚、松耦合”?23 _ 实战一(上):针对业务系统的开发,如何做需求分析和设计?24 _ 实战一(下):如何实现一个遵从设计原则的积分兑换系统?25 _ 实战二(上):针对非业务的通用框架开发,如何做需求分析和设计?26 _ 实战二(下):如何实现一个支持各种统计规则的性能计数器?
- 04 _ 理论一:当谈论面向对象的时候,我们到底在谈论什么?05 _ 理论二:封装、抽象、继承、多态分别可以解决哪些编程问题?06 _ 理论三:面向对象相比面向过程有哪些优势?面向过程真的过时了吗?07 _ 理论四:哪些代码设计看似是面向对象,实际是面向过程的?08 _ 理论五:接口vs抽象类的区别?如何用普通的类模拟抽象类和接口?09 _ 理论六:为什么基于接口而非实现编程?有必要为每个类都定义接口吗?10 _ 理论七:为何说要多用组合少用继承?如何决定该用组合还是继承?11 _ 实战一(上):业务开发常用的基于贫血模型的MVC架构违背OOP吗?12 _ 实战一(下):如何利用基于充血模型的DDD开发一个虚拟钱包系统?13 _ 实战二(上):如何对接口鉴权这样一个功能开发做面向对象分析?14 _ 实战二(下):如何利用面向对象设计和编程开发接口鉴权功能?
- 56 _ 观察者模式(上):详解各种应用场景下观察者模式的不同实现方式57 _ 观察者模式(下):如何实现一个异步非阻塞的EventBus框架?58 _ 模板模式(上):剖析模板模式在JDK、Servlet、JUnit等中的应用59 _ 模板模式(下):模板模式与Callback回调函数有何区别和联系?60 _ 策略模式(上):如何避免冗长的if-else_switch分支判断代码?61 _ 策略模式(下):如何实现一个支持给不同大小文件排序的小程序?62 _ 职责链模式(上):如何实现可灵活扩展算法的敏感信息过滤框架?63 _ 职责链模式(下):框架中常用的过滤器、拦截器是如何实现的?64 _ 状态模式:游戏、工作流引擎中常用的状态机是如何实现的?65 _ 迭代器模式(上):相比直接遍历集合数据,使用迭代器有哪些优势?66 _ 迭代器模式(中):遍历集合的同时,为什么不能增删集合元素?67 _ 迭代器模式(下):如何设计实现一个支持“快照”功能的iterator?68 _ 访问者模式(上):手把手带你还原访问者模式诞生的思维过程69 _ 访问者模式(下):为什么支持双分派的语言不需要访问者模式?70 _ 备忘录模式:对于大对象的备份和恢复,如何优化内存和时间的消耗?71 _ 命令模式:如何利用命令模式实现一个手游后端架构?72 _ 解释器模式:如何设计实现一个自定义接口告警规则功能?73 _ 中介模式:什么时候用中介模式?什么时候用观察者模式?
软件测试52讲
软件设计之美
重学前端
- (小实验)理解编译原理:一个四则运算的解释器JavaScript对象:你知道全部的对象分类吗?JavaScript对象:我们真的需要模拟类吗?JavaScript对象:面向对象还是基于对象?JavaScript执行(一):Promise里的代码为什么比setTimeout先执行?JavaScript执行(三):你知道现在有多少种函数吗?JavaScript执行(二):闭包和执行上下文到底是怎么回事?JavaScript执行(四):try里面放return,finally还会执行吗?JavaScript类型:关于类型,有哪些你不知道的细节?JavaScript词法:为什么12.toString会报错?JavaScript语法(一):在script标签写export为什么会抛错?JavaScript语法(三):什么是表达式语句?JavaScript语法(二):你知道哪些JavaScript语句?JavaScript语法(四):新加入的__运算符,哪里有些不一样呢?JavaScript语法(预备篇):到底要不要写分号呢?
- CSS Flex排版:为什么垂直居中这么难?CSS 选择器:如何选中svg里的a元素?CSS动画与交互:为什么动画要用贝塞尔曲线这么奇怪的东西?CSS小实验:动手做,用代码挖掘CSS属性CSS排版:从毕升开始,我们就开始用正常流了CSS渲染:CSS是如何绘制颜色的?CSS语法:除了属性和选择器,你还需要知道这些带@的规则CSS选择器:伪元素是怎么回事儿?HTML·ARIA:可访问性是只给盲人用的特性么?HTML元信息类标签:你知道head里一共能写哪几种标签吗?HTML小实验:用代码分析HTML标准HTML替换型元素:为什么link一个CSS要用href,而引入js要用src呢?HTML语义:div和span不是够用了吗?HTML语义:如何运用语义类标签来呈现Wiki网页?HTML语言:DTD到底是什么?HTML链接:除了a标签,还有哪些标签叫链接?
重学线性代数
- 01 _ 导读:如何在机器学习中运用线性代数工具?02 _ 基本概念:线性代数研究的到底是什么问题?03 _ 矩阵:为什么说矩阵是线性方程组的另一种表达?04 _ 解线性方程组:为什么用矩阵求解的效率这么高?05 _ 线性空间:如何通过向量的结构化空间在机器学习中做降维处理?06 _ 线性无关:如何理解向量在N维空间的几何意义?07 _ 基和秩:为什么说它表达了向量空间中“有用”的向量个数?08 _ 线性映射:如何从坐标系角度理解两个向量空间之间的函数?09 _ 仿射空间:如何在图形的平移操作中大显身手?10 _ 解析几何:为什么说它是向量从抽象到具象的表达?基础通关 _ 线性代数5道典型例题及解析