栋的月结 | 第三回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)[含泪总结.. 憋泪分享!]

开篇词

大家好!以下是我在 2020 年 3 月 1 日至 30 日的所见、所闻、所学和所悟。

现在,我把它们安利给你们。

 

已完结

  • Linux 管理员手册:既简单又深刻
  • Spring 入门指南
     

定期更新

  • 原创专栏:
    • 栋的周评
    • 一文搞定
  • 官方授权:
    • Baeldung Java 周评
  • 符合官方许可:
    • Spring 主题相关指南
    • Kubernetes 指南
       

动态

从我的英文博客翻译并迁移了一些原创文章到《Linux 管理员手册:既简单又深刻》专栏里,并分别命名为

  • 62. RAID - 独立磁盘冗余矩阵
  • 63. LVM - 逻辑卷管理
  • 64. 进程管理 - pgrep、pkill 和 pidof
  • 65. 进程管理 - ps 进程快照管理
  • 66. 进程管理 - top 和 htop 交互式查看进程动态信息
  • 67. 进程管理 - &、bg、fg、jobs 和 nohup 管理后台进程
  • 68. 进程管理 - dstat 统计系统资源使用率
  • 69. 进程管理 - glances 统计系统资源使用率,支持跨平台监控
  • 70. 进程管理 - iostat 显示 CPU 报告、磁盘/分区输入及输出统计数据
  • 71. 进程管理 - kill 和 killall 终止进程及其相关的进程
  • 72. 进程管理 - nice 和 renice 调整进程优先级
  • 73. 进程管理 - pmap 和 pstree 查看进程内存映射或进程树
  • 74. 进程管理 - sar 收集、报告,或存储系统行为信息
  • 75. 进程管理 - vmstat 统计虚拟内存信息
  • 76. 作业调度 - at 列入、检查,或删除需要被执行的调度作业
  • 77. 作业调度 - crontab 配置调度任务并维护每个用户自身的调度配置文件
  • 78. 作业调度 - anacron 周期性执行命令或脚本
  • 79. 守护进程管理 - systemd 和 systemctl 管理 systemd 系统及其服务
  • 80. 包管理 - rpm(RPM 包管理器)查找、验证、安装、更新及删除应用
  • 81. 包管理 - yum(Yellowdog 更新器)交互式操作 rpm 包
  • 82. 系统日志管理 - rsyslogd 收集本地及远程服务器日志

帮尤金大神从他的 Baeldung Java Weekly 里翻译了一些文章到《Baeldung Java 周评》专栏里,并分别命名为

  • Baeldung Java 周评 | 第六十一弹(关键词:可移植并支持云的 HTTP 会话、Java 一流的 Money 及 Currency 支持、Java 8 内存管理改进、HTTP 2 客户端)
  • Baeldung Java 周评 | 第六十二弹(关键词:Hibernate 加锁陷阱、Guava 测试集合、Spring Boot 的 DevOps、Petabyte JVM、与 SLF4J 兼容)
  • Baeldung Java 周评 | 第六十三弹(关键词:Hibernate 批量写操作、翻版猫王运算符、Jackson 多态反序列化、Spring MVC 响应式流、异步主流:七种反应式编程工具)
  • Baeldung Java 周评 | 第六十四弹(关键词:Spring Data 发布链 GA、多 UI 单网关应用、Google 协议缓冲区与 Spring MVC 服务、HashMap 深入研究)
  • Baeldung Java 周评 | 第六十五弹(关键词:编写干净的测试、Hibernate SELECT 批量读取、Java 性能调优、JHipster、通配符重构 Java 泛型、全栈开发神话)
  • Baeldung Java 周评 | 第六十六弹(关键词:Spring 与各大 Java 版本的兼容性实现、战壕里的 Spring bean 注入、结果集映射、Hibernate 二级缓存条目存储)
  • Baeldung Java 周评 | 第六十七弹(关键词:Java 版本统计、ModelMapper 域映射、Maven 集成测试、Git 提交信息 JSON 响应、缓存同步策略、函数风格回调)
  • Baeldung Java 周评 | 第六十八弹(关键词:Hibernate 只读缓存并发策略工作原理、调查 JVM 奔溃根本原因、Eclipse 性能改进、Java 8 并发同步和锁、反模式的技术)
  • Baeldung Java 周评 | 第六十九弹(关键词:Gradle 集成测试、Java 和 Scala 的前八门 Coursera 课、优化 Hibernate 语句、性能测试速成课、出色的后端)
  • Baeldung Java 周评 | 第七十弹(关键词:JDeps Maven 插件发布版本、动态加载对 Java 性能的影响、Java 开发角度的 JavaScript 对象、Spring 分布式)
  • Baeldung Java 周评 | 第七十一弹(关键词:将软件工件发布到 Maven Central、Hibernate 非限制读写缓存并发策略、IntStream 循环、原子变量与并发映射)
  • Baeldung Java 周评 | 第七十二弹(关键词:清理 ThreadLocal、集合转换、终极 JSON 库、Hibernate 读写缓存并发策略工作原理、JPA 原生 API 类型安全检查)
  • Baeldung Java 周评 | 第七十三弹(关键词:Spring Data JPA 教程、Java 的二十年、了解垃圾收集日志、Hibernate 事物缓存并发策略工作原理、JVM 的反应式流)
  • Baeldung Java 周评 | 第七十四弹(关键词:Spring 框架对 CORS 的支持、编写单元/集成测试的十二种工具、Spring 5 系统要求、Hibernate 查询缓存工作原理)
  • Baeldung Java 周评 | 第七十五弹(关键词:Java 9 默认垃圾收集器、顶级 Eclipse Mars 功能、Spring Boot 缓存自动配置、Java 8 Spring 指南)
  • Baeldung Java 周评 | 第七十六弹(关键词:Eclipse 第十次年度发布链及酷点、使用 API 网关构建微服务、编写下载服务器、单库蓝绿部署、高性能 Java 持久化、无服务器更新)
  • Baeldung Java 周评 | 第七十七弹(关键词:Jigsaw 引入 Java 9 的功能、toString 性能、字符串的子字符串、更紧凑的 Mockito、Linux 上的火星开发工具)
  • Baeldung Java 周评 | 第七十八弹(关键词:Java 8 类型转换、Spring Data JPA 教程、Java 垃圾收集迷你书、程序员的潜能、Java 9 抢先体验、LDAP 闪电)
  • Baeldung Java 周评 | 第七十九弹(关键词:Spring 微服务、OpenJDK Java 9、Spring Data JPA 教程、Java 8 编写干净的测试、Tomcat 连接器)
  • Baeldung Java 周评 | 第八十弹(关键词:Spring Data JPA 教程、JOOQ Redis 缓存、Spring Cloud 及 Docker 构建微服务、JCache 怎么用)
  • Baeldung Java 周评 | 第八十一弹(关键词:Spring Data JPA 教程第二部分、Akka 地图、Liquibase 迁移持续集成测试、高性能 JVM 微服务、视觉回归测试方案)
  • Baeldung Java 周评 | 第八十二弹(关键词:低延迟 Java、软件架构视频、Spring Data 发布链、Unix 分布式数据哲学、战壕中的微服务、分而治之编程概念、容器视觉回归测试)
  • Baeldung Java 周评 | 第八十三弹(关键词:Java SE 8 Optional 务实方法、性能大师反思 RebelLabs 性能调查结果、Java 繁重计算最快的垃圾收集器、加快构建)
  • Baeldung Java 周评 | 第八十四弹(关键词:Spring JUnit 参数化集成测试、Spring MVC 迁移 JSP 至 AngularJS、Java 风格指南、DevOps 应用)
  • Baeldung Java 周评 | 第八十五弹(关键词:十二因子应用、状态机类型检测、Spring Cloud、Docker 构建多语言持久性微服务、Spock 框架单元测试、Java 测试断言)
  • Baeldung Java 周评 | 第八十六弹(关键词:Web 显示 Spring 应用启动的进度、Java EE 8 MVC、Spring Boot 静态 Web 资源处理、JVM 混合模式焰图)
  • Baeldung Java 周评 | 第八十七弹(关键词:流性能、Java 8 函数式编程生成字母序列、事件溯源和命令查询责任隔离、七种 Java 性能指标、微服务 REST 客户端调用)
  • Baeldung Java 周评 | 第八十八弹(关键词:JPA 静态元模型类型安全查询、Stream 性能、优化哈希策略、JDK 9 模块系统状态要点、MoreUnit 自动化测试、命令式功能算法)
  • Baeldung Java 周评 | 第八十九弹(关键词:JEP 269 集合工厂方法、Spring MVC 资源版本控制、Spring Loaded 及 Gradle 连续构建、集合的自定义运算符)
  • Baeldung Java 周评 | 第九十弹(关键词:从请求参数解析日期和时间、Spring 注解驱动的事件侦听、Spring @Value 支持的占位符、ELK 及 Docker 的应用)

在符合许可的前提下从 Spring 官方指南里翻译了一些文章到《Spring 官方指南》,并分别命名为:

  • SpringBoot 2 结合 Docker 容器
  • IntelliJ IDEA 操作入门指南
  • SpringBoot 2 使用 SpringCloud Netflix Eureka 实现服务注册与发现
  • SpringBoot 2 使用 Vaadin 创建 CRUD UI
  • SpringBoot 2 使用 SpringCloud Config 实现中心化配置管理
  • SpringBoot 2 使用 SpringCloud Netflix Zuul 实现路由与过滤
  • SpringBoot 2 使用 SpringCloud Netflix Hystrix 实现断路器(服务降级)
  • SpringBoot 2 使用 SpringCloud Netflix Ribbon 实现客户端负载均衡
  • SpringBoot 2 使用 JUnit 和 MockMvc 来测试 Web 层
  • SpringBoot 2 访问 MySQL 数据
  • SpringBoot 2 构建多模块项目
  • SpringBoot 2 使用 Restdocs 创建 API 文档
  • SpringBoot 2 使用 SpringIntegration 与 Google Cloud Pub/Sub 进行消息传输
  • SpringBoot 2 使用 WebFlux 构建响应式 RESTful Web 服务
  • SpringBoot 2 使用 Spring Cloud Contract 实现消费者驱动协议
  • SpringBoot 2 使用 SpringVault 配置来访问 HashiCorp Vault
  • SpringBoot 2 使用 SpringCloud Vault 配置来访问 HashiCorp Vault
  • SpringBoot 2 反应式访问 Redis 数据
  • SpringBoot 2 应用部署至 Azure 云服务
  • SpringBoot 2 使用 SpringCloud Gateway 构建网关
  • SpringBoot 2 使用 SpringCloud LoadBalancer 实现客户端负载均衡
  • SpringBoot 2 使用 SpringCloud Stream 创建事件驱动流应用
  • SpringBoot 2 介绍 SpringCloud Data Flow 编排事件驱动流以及临时批数据处理过程
  • SpringBoot 2 介绍 SpringCloud Task 构建并启动临时批处理应用的过程
  • SpringBoot 2 应用部署至 Kubernetes
  • SpringBoot 2 使用 R2DBC 来并发访问关系型数据库
  • SpringBoot 2 使用 Spring Cloud Circuit Breaker 实现断路器
  • SpringBoot 2 与 Docker - 性能调优

在符合许可的前提下从 Kubernetes 官方指南里翻译了一些文章到《Kubernetes 指南》,并分别命名为:

  • 概念 - Kubernetes 是什么?

 

架构

MySQL 实战 | 如何判断一个数据库是不是出问题了?
收获:MySQL 实例健康状态检测的几种方法、各种检测方法存在的问题和演进的逻辑、非常广泛的主高可用(MHA)默认使用 select 1 方法、MHA 中的另一个可选方法是只做连接检测,但比较冷门、每个改进的方案都会增加额外损耗、比较推荐 update 系统表配合增加检测 performance_schema 的信息。
评分:10
MySQL 实战 | 误删数据后除了跑路,还能怎么办?
收获:误删后的处理方法、预防远比处理的意义大、用备份来恢复实例以定期检查备份的有效性、数据和服务的可靠性是各个环节一起保障的结果。
评分:10
MySQL 实战 | 为什么还有kill不掉的语句?
收获:有些语句和连接 “kill 不掉” 的情况、发送 kill 命令的客户端只是给目标线程设置了状态、被 kill 的线程执行到判断状态的 “埋点” 时进入终止逻辑阶段、终止逻辑本身也耗时。
评分:10
查看《MySQL 实战》原文
 

云技术

AWS | 方案架构助理 | AWS 良好框架的五大支柱
收获:可靠性、性能效益、成本优化。
评分:9
AWS | 方案架构助理 | 架构 AWS 最佳实践
收获:伸缩性、一次性资源而非固定服务器、自动化、解耦、服务而非服务器、数据库、移除单点故障、优化成本、缓存、安全性。
评分:10
AWS | 方案架构助理 | AWS 持续集成及持续交付实践
收获:持续交付不是持续部署、DevOps 团队、CI/CD 道路、部署方式(一次性完整部署、回滚/金丝雀、不可变及蓝绿)。
评分:9
AWS | 方案架构助理 | AWS 微服务
收获:架构复杂度、运维复杂度、无服务器微服务架构、跨服务挑战。
评分:9
AWS | 方案架构助理 | AWS Lambda 无服务器架构
收获:Lambda(FaaS、Lambda Function、Event Source)、Lambda 函数(函数代码包、句柄、事件对象、上下文对象、无状态及重用、Lambda 函数事件溯源、调用模式、调用类型、推模式事件溯源、拉模式事件溯源)、Lambda 函数配置、无服务器安全性最佳实践。
评分:8
AWS | 方案架构助理 | 无服务器架构优化企业经济
收获:无服务器应用使用案例、无服务器方式的应用领域、评估云供应商无服务器平台。
评分:8
AWS | 方案架构助理 | AWS 运行容器化微服务
收获:服务组件化、微服务架构特征、12 因子最佳实践、组织业务逻辑能力、产品而非项目、智慧端点及蠢管道、去中心化管理、去中心化数据管理、基础设施自动化、为失败而设计、演进式设计。
评分:9
AWS | 方案架构助理 | AWS 蓝绿部署
收获:方法论、环境边界、启用蓝绿部署的工具及服务、技巧。
评分:8
AWS | 方案架构助理 | X-Ray
收获:区隔、子区隔、服务图、跟踪、样例、跟踪标头、过滤表达式、注解及元数据、错误/故障及异常。
评分:9
AWS | 方案架构助理 | CodeCommit
收获:可控、安全,及可伸缩的私有 Git 仓库源控制服务。
评分:8
AWS | 方案架构助理 | CodeBuild
收获:构建项目、构建环境、构建配置。
评分:9
AWS | 方案架构助理 | CodeDeploy
收获:部署类型、AppSpec 文件、生命周期钩子。
评分:8
AWS | 方案架构助理 | CodePipeline
收获:管道、工件、阶段、行为、转换。
评分:9
AWS | 方案架构助理 | CodeStar
收获:可与 CodeCommit、CodeBuild、CodeDeploy、CodePipeline、CloudWatch 等 AWS 服务集成。
评分:9
AWS | 系统运维助理 | 共享责任模型
AWS | 系统运维助理 | IAM 用户及组
AWS | 系统运维助理 | IAM 策略
AWS | 系统运维助理 | IAM 角色
AWS | 系统运维助理 | IAM 多因子鉴权(MFA)
AWS | 系统运维助理 | S3 桶策略
AWS | 系统运维助理 | S3 数据完整性
AWS | 系统运维助理 | VPC 安全组及网络访问控制列表
AWS | 系统运维助理 | STS 同盟身份识别(Federation)
AWS | 系统运维助理 | 安全评估(Inspector)
AWS | 系统运维助理 | 密钥管理服务(KMS)基础
AWS | 系统运维助理 | 证书管理器
AWS | 系统运维助理 | Web 应用防火墙(WAF)
AWS | 系统运维助理 | 信誉顾问
AWS | 系统运维助理 | EC2 状态检查
AWS | 系统运维助理 | EC2 实例类型及性能
AWS | 系统运维助理 | EC2 水平或垂直扩展
AWS | 系统运维助理 | EC2 网络地址转换网关(NAT Gateway)与堡垒机(Bastion Host)
AWS | 系统运维助理 | EC2 预留实例
AWS | 系统运维助理 | EC2 初始化容量
AWS | 系统运维助理 | EC2 自动伸缩问题故障排除
AWS | 系统运维助理 | Lightsail 及 Batch
AWS | 系统运维助理 | S3 跨域复制
AWS | 系统运维助理 | S3 存储分类
AWS | 系统运维助理 | 存储网关
AWS | 系统运维助理 | 雪球存储
AWS | 系统运维助理 | EBS 基础
AWS | 系统运维助理 | EBS 性能
AWS | 系统运维助理 | EBS 指标
AWS | 系统运维助理 | EBS 大小变更或根卷变更
AWS | 系统运维助理 | EBS 确保数据持续性
AWS | 系统运维助理 | EFS 部署及供给
AWS | 系统运维助理 | EFS 性能及可用性监控
AWS | 系统运维助理 | RDS 性能伸缩
AWS | 系统运维助理 | VPC 基础
AWS | 系统运维助理 | VPC 流日志
AWS | 系统运维助理 | VPC 对等连接
AWS | 系统运维助理 | AWS VPN
AWS | 系统运维助理 | AWS 专线网络服务
AWS | 系统运维助理 | EC2 弹性 IP(EIP)及弹性网络接口(ENI)
AWS | 系统运维助理 | ELB 性能及可用性监控
AWS | 系统运维助理 | ELB 高可用性
AWS | 系统运维助理 | ELB SSL 分流
AWS | 系统运维助理 | 网络瓶颈
AWS | 系统运维助理 | CloudFront
AWS | 系统运维助理 | RDS 了解多空间部署
AWS | 系统运维助理 | RDS 性能及可用性监控
AWS | 系统运维助理 | ElastiCache 性能及可用性监控
AWS | 系统运维助理 | DynamoDB 概念
AWS | 系统运维助理 | Redshift 数据仓库
AWS | 系统运维助理 | Aurora 高可用数据库引擎
AWS | 系统运维助理 | Elastic Beanstalk
AWS | 系统运维助理 | 弹性容器服务(ECS)
AWS | 系统运维助理 | AWS 系统管理器
AWS | 系统运维助理 | OpsWorks 自动化运维
AWS | 系统运维助理 | 灾难恢复
AWS | 系统运维助理 | SQS 及 SNS 伸缩性
AWS | 系统运维助理 | AWS Lambda 无服务器服务
AWS | 系统运维助理 | CloudWatch 监控基础
AWS | 系统运维助理 | CloudWatch 监控告警
AWS | 系统运维助理 | CloudWatch 监控日志
AWS | 系统运维助理 | CloudWatch 监控事件
AWS | 系统运维助理 | CloudTrail 请求追踪
AWS | 系统运维助理 | AWS Config 管理
AWS | 系统运维助理 | 健康仪表盘
AWS | 系统运维助理 | AWS 账单及机构
AWS | 系统运维助理 | AWS 成本管理
AWS | 系统运维助理 | 成本优化
AWS | 方案架构专员 | 服务目录
AWS | 方案架构专员 | 资源账单模式:按需、预留,以及发现实例
AWS | 方案架构专员 | 同盟身份识别
AWS | 方案架构专员 | IAM 权限边界
AWS | 方案架构专员 | 策略评估逻辑
AWS | 方案架构专员 | VPC 基础
AWS | 方案架构专员 | 跨账户资源共享(RAM)
AWS | 方案架构专员 | VPC 路由
AWS | 方案架构专员 | 网络访问控制列表(NACL)
AWS | 方案架构专员 | 安全组(SG)
AWS | 方案架构专员 | 公有子网对比私有子网、网关,及 IP 寻址
AWS | 方案架构专员 | 仅输出网关
AWS | 方案架构专员 | VPC 里的 DNS
AWS | 方案架构专员 | VPC 流量日志
AWS | 方案架构专员 | 使用 VPC 端点
AWS | 方案架构专员 | VPC 对等连接
AWS | 方案架构专员 | 点对点 VPN
AWS | 方案架构专员 | AWS 专线连接架构
AWS | 方案架构专员 | AWS 传输网关
AWS | 方案架构专员 | 密钥管理服务(KMS)
AWS | 方案架构专员 | CloudHSM
AWS | 方案架构专员 | AWS 证书管理器(ACM)
AWS | 方案架构专员 | AWS 目录服务
AWS | 方案架构专员 | AWS Web 防火墙(WAF)及安全防护(Shield)
AWS | 方案架构专员 | AWS 智能账户安全检测(GuardDuty)
AWS | 方案架构专员 | 创建并使用 AMI
AWS | 方案架构专员 | 深入研究虚拟化及 EC2 实例类型
AWS | 方案架构专员 | EC2 存储及快照
AWS | 方案架构专员 | EC2 实例配置文件及角色
AWS | 方案架构专员 | 高性能计算(HPC)及置放群组
AWS | 方案架构专员 | 容器技术初识
AWS | 方案架构专员 | ECS 架构
AWS | 方案架构专员 | Lambda 架构
AWS | 方案架构专员 | Lambda 层
AWS | 方案架构专员 | 服务弹性
AWS | 方案架构专员 | 无状态架构
AWS | 方案架构专员 | 实现自伸缩组(ASG)
AWS | 方案架构专员 | 多空间实现
AWS | 方案架构专员 | 弹性负载均衡基础
收获:多台服务器间分发入站流量的常见方法。跨空间负载均衡。内部负载均衡。自动停止将流量导向不健康的实例。
评分:10
AWS | 方案架构专员 | 弹性负载均衡:经典负载均衡
收获:已经不推荐使用了。
评分:7
AWS | 方案架构专员 | 弹性负载均衡:应用负载均衡
收获:基于主机的规则。基于路径的规则。支持 ECS、EKS、HTTPS、HTTP/2、WebSockets、访问日志、粘滞会话及 WAF。
评分:9
AWS | 方案架构专员 | 弹性负载均衡:网络负载均衡
收获:监听器、目标组、目标。
评分:8
AWS | 方案架构专员 | CloudFront 安全
收获:重定向 S3 至 CloudFront。签名地址及 Cookie。不限于会话、Cookie、内容、浏览器等等。
评分:8
AWS | 方案架构专员 | Route 53 架构
收获:公有托管空间。私有托管空间。Route 53 记录集。常见记录类型。别名记录集。安全检查及故障转移
评分:9
AWS | 方案架构专员 | S3 架构
收获:S3 基础。重要的 S3 真相。S3 读一致性规则。桶名称。S3 静态 Web 托管。跨域资源共享。S3 对象。
评分:8
AWS | 方案架构专员 | S3 存储类型、智能存储类型及生命周期策略
收获:生命周期。所有存储类型提供了十一个九的对象持久性。标准、不常访问、单空间不常访问、冰河、冰河深备。智能套餐。S3 对象生命周期管理。对象归档。
评分:9
AWS | 方案架构专员 | S3 版本控制及锁定
收获:S3 版本管控。
评分:8
AWS | 方案架构专员 | S3 桶访问控制
收获:S3 权限。
评分:9
AWS | 方案架构专员 | 跨域复制
收获:桶级别配置。
评分:8
AWS | 方案架构专员 | S3 对象加密
收获:SSE-S3、SSE-C、SSE-KMS。
评分:8
AWS | 方案架构专员 | 优化 S3 性能
收获:标准与多部分上传。传输加速。分区与对象命名。
评分:8
AWS | 方案架构专员 | Glacier 架构
收获:冰河:预期、标准、批量。
评分:9
AWS | 方案架构专员 | EC2 自管理数据库
收获:风险与限制。
评分:8
AWS | 方案架构专员 | 数据库数据模型及引擎
收获:关系型数据库。键值对数据库(DynamoDB)。文档式数据库(MongoDB)。列式数据库(Redshift)。图数据库(Neo4j)。
评分:8
AWS | 方案架构专员 | 亚马逊数据库服务
收获:每日一次快照及事务日志。
评分:9
AWS | 方案架构专员 | 亚马逊 Aurora 架构
收获:兼容 MySQL 及 PostgreSQL。
评分:9
AWS | 方案架构专员 | Aurora 无服务器
收获:可通过传统的 mysql 或新的数据 API 进行数据库的连接。
评分:8
AWS | 方案架构专员 | 亚马逊 Athena
收获:查询 S3 中的多结构化、半结构化及非结构化数据格式。
评分:8
AWS | 方案架构专员 | 亚马逊 Neptune
收获:完全可控的 NoSQL 图数据库。
评分:8
AWS | 方案架构专员 | 亚马逊量子总账数据库(QLDB)
收获:完全不可变的数据库。
评分:9
AWS | 方案架构专员 | Amazon 文档数据库(兼容 MongoDB)
收获:SQL 与文档数据库。
评分:8
AWS | 方案架构专员 | ElastiCache 架构
收获:Memcached、Redis(非集群模式)、Redis(集群模式)。
评分:9
AWS | 方案架构专员 | MapReduce 基础
收获:并行处理大量数据的数据库分析架构。
评分:9
 

算法

当周无
 

后端

当周无
 

前端

当周无
 

收听/收看

卖桃者说第 65 期 | 点外卖的过程原来这么复杂
收获:对称加密、非对称加密、数字证书、HTTPS 的工作模式、重放与篡改。
评分:10
卖桃者说第 66 期 | TypeScript 的崛起
收获:1. 与 JavaScript 之间的互操作性极强、2. 提高了代码的准确性/安全性和健壮性,更适合大型项目。
评分:9
卖桃者说第 67 期 | 拼多多现象:快是一种能力
收获:拼多多通过创新的商业模式核技术应用,对现有商品流通环节进行重构,持续降低社会资源的损耗,为用户创造价值的同时,有效推动了农业和制造业的发展。
评分:9
卖桃者说第 68 期 | 不用强求自己工作快乐
收获:1. 保持思考(思考的要诀:幸福工作术)、2. 将行动与你的目标对其。
评分:10
卖桃者说第 69 期 | 工资到底该占你收入的多少比例?
收获:可能的收入构成包括股权收入、创业收入、投资理财收入。
评分:8
卖桃者说第 70 期 | 编程语言漫谈
收获:一、初学者不要纠结 “先学哪种语言”。二、如果你不能用一种编程语言的基本特性写出好代码,那换成另外一种语言也无济于事,你会写出同样差的代码。三、很多人觉得不要用脚本语言入门,我觉得不一定,尤其现在就着人工智能浪潮搞机器学习的人,用 Python 入门就很好。四、后端工程师要熟练掌握一门前端语言,前端工程师也要熟练掌握一门后端语言。五、SQL 是一门非常非常重要并且应该熟练掌握的语言(虽然它不能被称为程序语言)。六、无论使用什么语言,工程师都应该能够基于这种语言搭建测试框架,写好测试代码和写业务代码一样重要,甚至更重要。七、最后的,也是最重要的是:在任何时候都要用并发的、分布式的思维去看待你的程序。
评分:9
卖桃者说第 71 期 | 保持质疑的能力
收获:真正具备质疑精神的人,是能走的更远的。
评分:8
卖桃者说第 72 期 | 完美主义害死人
收获:思想上的完美主义者,大多是思想上的巨人,行动上的矮子,如果你是个完美主义者,至少要先跨出第一步。
评分:9
卖桃者说第 73 期 | 成事的五步流程法
收获:第一步:有明确的目标。第二步:找到阻碍你实现这些目标的问题,并且不去容忍问题。第三步:准确诊断问题,找到问题的根源。第四步:规划可以解决问题的方案。第五步:做一切必要的事来践行这些方案,实现成果。
评分:10
卖桃者说第 74 期 | 一个没有“浪费”过时间的人终将一事无成
收获:1. 社会的人群符合正态分布,顶端的永远是少数人。2. 很少有人能够按照柳比歇夫那样的时间统计法去高效的生活。3. 学习新技能总是艰难的,不让人开心的,需要坚持,别拿游戏做类比。4. 学东西就是这样,有的人学得快,有的人学的慢,我属于学的慢的,但也不是完全学不会。
评分:10
卖桃者说第 75 期 | 怎么编写可持续发展的代码?
收获:两种规模扩张方式(垂直扩张 scale in/out、水平扩张 scale up/down)、麻烦的状态数据、无状态数据、分离无状态数据、使用用户资源。
评分:9
卖桃者说第 76 期 | 我是否该加入创业公司?
收获:1. 自省,自己是否适合为创业公司工作。2. 判断,创业公司能否具备长期的生命力。
评分:10
卖桃者说第 77 期 | 如何评估一份工作的成长潜力?
收获:1. 公司对这个职位未来的发展规划是什么样的?2. 这个职位对这家创业公司的核心业务有所影响吗?3. 你能在这个岗位上学到新的技能和技术吗?4. 你对将要做的事是否有兴趣或热情?
评分:10
卖桃者说第 78 期 | 程序员需要知道的 C10K 问题
收获:一台服务器同时应付超过一万个(或者更多)并发连接的情况,哪怕只有一个要素没有考虑到超过一万个客户端的情况,这个要素就会成为 “最弱连接”,从而导致问题的发生。
评分:9
卖桃者说第 79 期 | 像程序员一样思考:解决问题四步法
收获:理解、计划、分解、卡壳、最后是练习。
评分:9
卖桃者说第 80 期 | 揭秘 Python 协程
收获:从一个爬虫说起、解密协程运行时、实战(豆瓣近日推荐电影爬虫)。
评分:9
卖桃者说第 81 期 | 还在 996?说白了就是能力问题
收获:当一个公司的研发效率、组织结构、员工能力无法支撑起有效率的研发和产品工作的时候,996 这种畸形的东西就会自然而然的出现了。
评分:9
卖桃者说第 82 期 | 十步学习法
收获:第一步、了解全局。第二步、确定范围。第三步、定义目标。第四步、寻找资源。第五步、创建学习计划。第六步、筛选资源。第七步、开始学习,浅尝辄止。第八步、动手操作,边玩边学。第九步、全面掌握,学以致用。第十步、乐为人师,融会贯通。
评分:8
卖桃者说第 83 期 | 字节跳动的工厂化思维
收获:1. 你能不能把要做的事情结构化出来?没有结构化,那文档就失去了核心价值。2. 你能不能定义好这件事情的边界?能不能把重点列出来。3. 你能不能定义好这件事情的内在逻辑?能不能直戳痛点。
评分:9
卖桃者说第 84 期 | 坚持才会有回报么?是的
收获:很多伟大的作品,起因都微不足道。
评分:10
卖桃者说第 85 期 | Chrome架构:仅仅打开了1个页面,为什么有4个进程?
收获:浏览器进程、渲染进程、GPU 进程、网络进程、插件进程。
评分:9
卖桃者说第 86 期 | 讨厌编程的 PHP 之父
收获:他希望 PHP 的代码能够足够简单,同时在遇到问题时,不需要话费太多时间在写代码这个动作本身上,就能解决问题。而这恰恰是 PHP 吸引开发人员的一大法宝,为什么大家吐槽 PHP 吐槽得那么厉害,还是会选择它来开发程序呢,就是因为它写起来实在是太快了,真是唯快不破。
评分:8
卖桃者说第 87 期 | 人不要总是重复自己
收获:1. 找到自己的高效时段,也就是说,找到你能够保持集中力的事件,很多人都是上午工作、学习、写作效率高,我自己是夜里更为高效。2. 远离干扰,如果你想静下心来集中精力处理问题和创作,最好把能够打扰你的东西拿走或关闭。3. 明确当下的任务目标。4. 丰富时间经历,这一点最重要,如果你在流水线上一直重复同样的事情,那么哪怕你把时间利用效率调整得再高,也不是赚到了时间。
评分:10
卖桃者说第 88 期 | 先算是非,后算得失
收获:做企业永远会碰到 “利益得失” 与 “道德是非” 两大问题,而如果你想把企业长久地做下去,那 “道德是非” 一定是排在 “利益得失” 之前的。
评分:10
卖桃者说第 89 期 | 一千万是难以企及的财富吗?
收获:第一个层次:对现状不满,或者有了新的目标,开始采取行动改变现状。第二个层次:开始行动了,但变化并未如期而至,这一点和做产品很类似,大部分的产品都不会成为爆款。第三个层次:你学习到东西和行动开始有效果了,但是很慢,其他成功人士似乎随随便便取得的成就,你得费尽九牛二虎之力才行。第四个层次:思考自己的世界观,不要用有色眼镜看待世界,世界上不存在孤立的现实,只有我们自己感受到的现实,多维度的思考事物,比如,金钱可以做恶,也可以为善。第五个层次:改变自身的认知。
评分:10
卖桃者说第 90 期 | 写文档也是一种学习方式
收获:知识输出、金字塔原理、无他,唯手熟尔。
评分:10
卖桃者说第 91 期 | 如何做好带人这件事
收获:第一:把行动计划拆解成具体步骤,不止告诉对方你要什么,初期还要告诉对方怎么做。第二:你需要列出一份品控文档。第三:提供反复实践的机会。最后:为了不浪费你自己的心里和时间,每说完一件事,一定要确认对方是真的懂了、理解了。
评分:9
卖桃者说第 92 期 | 数据工程师是个有前途的职业么?
收获:1、要有数据,而且得大,没数据都是扯闲篇的。2、进行数据分析是一件困难的事。3、有价值的数据只能提供参考,并不能完全指导工作。
评分:8
卖桃者说第 93 期 | 想的太多,做的太少
收获:未来永远比我们想象中来得更快,未来属于勇于尝试和大胆行动的人。
评分:10
卖桃者说第 94 期 | 谷歌如何做代码评审
收获:做好代码评审的具体建议(代码评审标准、代码评审时该查看什么、评审中如何查看一个 CL、代码评审的速度、如何写审核评论、如何处理审核后程序员拒绝修改的情况)。快速通过代码评审的建议(写一个好的 CL 描述、提交小一点的 CL,意思就是不要改到翻天覆地了才提交代码评审、如何处理代码评审者的评论)。评审要点(设计、功能、复杂性、测试、命名、注释、风格、文档)。
评分:10

极客新闻 | 2017Q3 全球应用下载量及收入均创历史新高
收获:全球应用下载量将接近 2400 亿,应用开支将超过 1000 亿美元。
评分:7
极客新闻 | Kafka 的真正定位并不是消息系统
收获:Kafka 和 RabbitMQ 等消息系统的三个关键区别:1. Kafka 之久化日志,这些日志可以被重复读取和无限保留;2. Kafka 是一个分布式系统,它以集群的方式运行,可以灵活伸缩,在内部通过复制数据提升容错能力和高可用性;3. Kafka 支持实时的流式处理。
评分:10
极客新闻 | 谷歌推出 Android Studio 3.0
收获:改进了布局编辑器,新版本的布局编辑器中添加了很多新的增强功能,如更新的组件树能更好地拖放和插入视图;增加了新的错误面板;支持创建视图障碍和组,并增强了链创建等等。
评分:7
极客新闻 | 谷歌 CEO:谷歌最大的威胁就是自身的成功
收获:当抵达颠峰时,往往就意味着有走下坡路的可能,所以要时刻提醒自己,“在硅谷的某个车库里,某些人正在研发某样比你更好的产品。”
评分:9
极客新闻 | 洪小文:真正的 AI 需从小数据、零数据着手
收获:现在已经进入持续学习的时代,相比 “无所不知”,人们更需要 “无所不学”。
评分:9
极客新闻 | GitHub 使用 Spokes 进行跨数据中心复制
收获:在应用层面透明地执行复制任务。哈格蒂说,以前只有距离很近的代码仓库之间才能进行复制作业,后来通过降低延迟和优化参考更新性能等方式解决了这个问题。
评分:7
极客新闻 | NASA 顶级程序员的 10 条重要编程原则
收获:一、限制所有代码为极为简单的控制流结构。二、所有循环必须又一个固定的上限值。三、在初始化后不要使用动态内存分配。四、函数代码行不能超过 60。五、代码中断言的密度平均低至每个函数两个断言。六、必须在最小的范围内声明数据对象。七、非 void 函数的返回值在每次函数调用时都必须检查。八、预处理器的使用仅限于包含头文件和简单的宏定义。九、应该限制指针的使用。十、代码必须利用源代码静态分析工具每天至少检查一次或更多次,且零警告通过。
评分:10
极客新闻 | 与 David Blevins 聊 Java EE 的未来
收获:考虑到 EE4J 和 MicroProfile 两个社区的大部分人都是同一批人,未来,它们很有可能会发展到一起,MicroProfile 规范将会被用到 EE4J 当中。
评分:8
极客新闻 | IT 安全漏洞警报速度中国领先美国
收获:NVD 应纳入 CNNVD 的内容,改善其表现。
评分:8
极客新闻 | Firebug 的寿命即将结束
收获:Direbug 3 也已经不再是一个单独的工具,而是 DevTools 之上的一个外壳。Firebug 停更,相当于去掉了 DevTools 的一层外壳。
评分:7
极客新闻 | 谷歌推出人类动作识别数据集 AVA
收获:1. 以人类为中心的标注(Person-centric annotation)。2. 原子视觉动作(Atomic visual actions)。3. 真实的视频材料。
评分:10
极客新闻 | 英特尔联合 Facebook 发布深度学习系列处理器 NNP
收获:他们的目标是培育一类新的 AI 产品,其可能性只受限于开发者的想象力。
评分:8
极客新闻 | 为什么 Instagram 要选择使用 Python 语言?
收获:方便快捷,适合快速迭代,所以可以很好的帮助提高 Instagram 的开发效率。
评分:8
极客新闻 | AWS 掌门人畅谈云计算、Alexa 和经营战略
收获:亚马逊之所以能够以非常快的速度开发产品,很重要的一个原因就是它使用了 AWS。
评分:8
极客新闻 | 深度学习库大排名:TensorFlow 排名第一
收获:1. TensorFlow 凭借最大、最活跃的社区一路领跑。2. Caffe 已经被 Caffe2 取代。3. Keras 是最流行的深度学习前端。4. 即使没有发公司的支持,Theano 依然实力强大。5. Python 是深度学习接口的主要语言。
评分:7
极客新闻 | 前 IBM 沃森首席科学家周伯文入职京东
收获:将进一步提升京东在 AI 领域的技术创新能力,并有望在技术层面推动京东 “第四次零售革命” 的落地。
评分:8
极客新闻 | 谷歌发布 Android 8.1 开发者预览版
收获:1. Android Go 内存优化。2. 神经网络 API(NNAPI)。3. 更新自动填充框架。4. 共享内存 API。5. 程式安全浏览操作。
评分:7
极客新闻 | 百度已经在生产环境使用 CockroachDB
收获:百度 DBA 团队现在对原先的一些手动执行工作进行了自动化,包括数据库复制、均衡管理和失效备援。
评分:7
极客新闻 | 甲骨文开源 Fn,加入 Serverless 之争
收获:四个主要组件:Fn 服务器、Fn FDK、Fn Flow 及 Fn 负载均衡器。
评分:7
极客新闻 | 硅谷 AI 人才竞争白热化,年薪 50 万美元起跳
收获:谷歌、Facebook 等科技巨头也拥有大量的资金投资 AI,他们认为 AI 可以协助解决一些问题,例如为智能机和智能家居开发数字助手,并发现攻击性内容。
评分:8
极客新闻 | 迈克尔·乔丹:AI 智能有限,人类暂不必焦虑
收获:在越来越多的功能参与、投资者加入后,十年之后人工智能可能会在计算机视觉、语音识别、自然语言处理等领域取得理想成绩。而他最看好的领域是游戏、娱乐以及金融。
评分:9
极客新闻 | Herb Sutter 访谈:C++17 尘埃落定
收获:日常编程中最受开发人员青睐的还是那些让语言更为 “简洁易用” 的特性,如结构化绑定(Structured Binding)、类模版参数规约(Class Template Argument Deduction)、与 for 循环体中一样,在 if 和 switch 语句内也可以初始化变量等等。
评分:8
极客新闻 | 为什么 Kubernetes 项目要选择 Go 语言?
收获:如果用两个字来总结 Kubernetes 项目选择 Go 语言的原因,那就是 “社区”。
评分:8
极客新闻 | 如何选取 Linux 容器镜像
收获:第一个原则是容器镜像的大小。第二个原则是容器中的安全漏洞问题。第三个原则是镜像中的软件包情况。
评分:8
极客新闻 | 李飞飞:图像识别技术已达认知心理学水平
收获:目前绝大多数算法,在搜索图像时还是使用物体本身的信息,只是简单了解图片中有什么物体。如果加入更多的属性,那么结果就会更好。李飞飞透漏,他们正在探索新方法,比如一个长句,把它放到数据库中,与图像进行对比,通过这种算法可以得到更好更精准的结果。
评分:8
极客新闻 | 从成本角度看 Java 微服务
收获:如果使用 Go 语言替代 Java 开发微服务会怎样呢?每个微服务的内存可以从 1G 降到 64MB,那么之前那个部署了 12 个实例的微服务总共只需要 768M 内存,这比之前的单个 Java 微服务实例用的内存还要少。
评分:9
极客新闻 | Spring 5.0 新功能:反应式 Web 框架
收获:从编写命令式风格的逻辑转移到使用声明式、异步的 API 时,有一个很大的学习曲线。另外,由于调用栈不再唯一,异步和非阻塞的代码会更难调试。
评分:9
极客新闻 | 苹果或将放弃高通芯片,转用英特尔和联发科
收获:苹果近年来的确在不断增强自己对核心零部件的管控,这显示了苹果想掌握自主权的决心。在完全打造出属于自己的产品前,供应商伙伴的抉择还是苹果在考虑的问题。
评分:7
极客新闻 | Chrome 团队宣布将停止支持 HPKP 公钥固定
收获:由于很多网站使用 CDN 或者如 CloudFlare 类的 DDoS 防护,该类服务本身就不准备支持 HPKP 公钥固定。
评分:7
极客新闻 | iOS11.1 正式版发布更新:修复 WiFi 漏洞
收获:苹果从根本上修复了这个漏洞。
评分:7

每日一课 | SSR 、CSR、预渲染、同构等首屏优化技术要如何选择?
收获:SSR、CSR、Prerender、Isomorphism、TTFB、FP、FCP、TTI、服务器渲染、静态渲染、客户端渲染、通用渲染(Rehydration)、三方同构渲染(TrisomorphicRendering)。
评分:9
每日一课 | 如何深入理解分布式事务 TCC 实现原理?
收获:缺点、步骤、伪代码示范(第一步:检测是否满足条件、第二步:子事务 try 方法)。
评分:8
每日一课 | 微服务框架 Apache ServiceComb 的设计思想有哪些?
收获:基于 Vert.x 构建通信能力(业务线程中处理的部分、网络线程中处理的部分)、Provider 端、Consumer 端、同步模式、异步模式、基于 OpenAPI 来管理契约的微服务框架、两个 ServiceComb 设计思想。
评分:9
每日一课 | ZooKeepe r的 ZAB 算法与 Paxos 的本质区别是什么?
收获:ZAB(Zookeeper Atomic Broadcast)、两个算法的重要概念(角色、事务操作、ZXID)、其他保证一致性的算法(Hash 路由算法、一致性 Hash 算法、Gossip 闲话算法、Raft 选举算法)、一致性算法的区别及选型。
评分:9
每日一课 | 如何设计并实现一个高可用的订单系统?
收获:几个在设计订单系统时避免丢单的要点、日万级订单系统的重构优化、日万级订单系统的问题、日千万级订单系统设计。
评分:10
每日一课 | 如何更轻松简单地从源码编译部署 Kubernetes?
收获:静态 Pod 和 Docker 两种部署方式:基于Docker 运行的 Kubernetes 集群(不需要初始化 manifest;需要登录到 Master 所在节点才能看到。)、静态 Pod 模式(需要先将组件的 yaml 文件放到相应的 staticPodPath 配置的路径下;直接通过 kubectl logs 的方式来获取 kube-apiserver 的运行日志)。
评分:8
每日一课 | 如何从 CRD 扩展开发切入 Kubernetes 源码学习?
收获:用户自定义资源对象扩展:API 资源对象(Pod 对象、Deployment、StatefulSet)、API 资源对象组成部分(分组、版本、类型)。
评分:8
每日一课 | 如何实现数据异构的多级缓存策略?
收获:数据异构的实现:订单下单场景(异构订单到缓存中的三种方式:通过双写、通过 MQ 消息、通过 MySQL 的 Binlog 日志)。
评分:9
每日一课 | 一个 1000 万资金重复支付的代码剖析
收获:代码没有处理好并发防重导致的资金损失问题、海恩法则、优化方案(防重处理、重试原则、将防重部分改造成乐观锁加有限状态机)。
评分:10
每日一课 | 如何使用和优化 iOS 中的 WebView?
收获:各 WebView 区别、WebKit 核心组成、Safari 和 Chrome 比较、白屏检测、离线包作为资源动态更新的一个方式。
评分:8
每日一课 | 如何深入理解 Kubernetes 架构?
收获:Kubernetes 关键组件的作用(Etcd、API Server、Scheduler、Controller Manager、Kubelet、Container Runtime、Kube-Proxy、Pod、Container)。
评分:10
每日一课 | 如何深入理解 Kube-Proxy?
收获:Kube-Proxy 选型建议(Iptables 模式、IPVS 模式)。
评分:10
每日一课 | 教你 10 分钟玩转 Gradle plugin
收获:如何使用 buildSrc、debug 插件用的 gradle 命令及 remote target、Extension 的定义和使用、plugin 如何发布到自己的 maven 仓库。
评分:9
每日一课 | Spring Boot 中如何使用 HTTP/2?
收获:Spring Boot 提供 HTTP/2 服务:Tomcat、Undertow 1.4.0、Jetty 9.4.8。
评分:9
每日一课 | 如何基于 Netty 构建一个简单的 RPC 服务?
收获:RPC 服务组成:RPC Provider 服务提供方、RPC Consumer 服务消费方、ConfigServer 地址注册中心。
评分:9
每日一课 | 如何全面地改造 Robust?
收获:Robust 的几个缺点、解决问题的核心关键点、围绕 Robust 改造的几点内容。
评分:9
每日一课 | 如何通过代码技巧提升内存使用效率?
收获:虚拟机参数设置。
评分:9
每日一课 | 如何设计一个高可用的配置中心?
收获:配置变更的三种实现方案、基于 MySQL 做配置中心的注意事项、Zookeeper 的优点。
评分:9
每日一课 | 为什么 React 不推荐使用 Mixin?
收获:被混入的 Mixin 与 React 组件之间的依赖关系、HOC 的又是以及该如何选择、在大多数情况下,Hooks 都是可以取代 HOC 和 Mixin 的。
评分:8
每日一课 | 为什么 React 组件要声明 key?
收获:数组索引可以作为 Key 属性的值的三个条件。
评分:8
每日一课 | 高并发场景下锁的使用技巧(悲观锁/乐观锁/分布式锁)
收获:有哪些锁可以使用、为什么要使用锁?、演变场景中锁的分类、乐观锁、synchronize 同步排他锁方案、数据库行锁 select for update、redis 分布式锁。
评分:9
每日一课 | 未来的编程语言长什么样?
收获:Kotlin、Swift、Python、Rust。
评分:7
每日一课 | Spring Data JPA 如何实现动态部分更新?
收获:并非对数据记录的所有字段整体更新;而是知道运行时才确定哪个或者哪些字段会被更新;
使用 Spring Data JPA,当更新 Entity 的时候,是对数据表中 Entity 对应的数据记录的(除主键外)所有字段,进行全量更新;repository.save() 的逻辑是,如果不存在 Entity 对应的数据记录则执行插入操作,否则执行更新操作,并且在更新操作之前,还会执行一步查询操作;通过 @Query 注解可以实现部分更新,但无法很好地实现动态部分更新;通过 @DynamicUpdate 注解可以实现动态部分更新,但无法处理忽略 NULL 值的情况;通过定义的一个 JPA 工具类方法,我们可以最终实现动态部分更新,并且不会将 NULL 值覆盖到数据记录的对应字段中。
评分:8
每日一课 | Spring Data JPA 如何进行复杂动态查询?
收获:什么是动态查询?、MyBatis 适用场景、Spring Data JPA 适用场景、优雅解决方案、Querydsl 官网。
评分:9
每日一课 | 如何透彻理解 Selenium 和 WebDriver?
收获:Selenium RC:早期版本,Selenium 1.0;Selenium WebDriver:目前版本,Selenium 2.0;Selenium Grid:分布式测试;Selenium IDE:测试的录制和脚本的导出。。
评分:8
每日一课 | 如何让你的 Robot Framework 飞起来?
收获:Python 与 RF 相似之处。
评分:9
每日一课 | 如何用 Spark 实现一个通用大数据计算引擎?
收获:常见的 Source 插件、常见的 Transform 插件、常见的 Sink 插件、打造通用计算引擎的优势。
评分:9
每日一课 | 给你点 “颜色” 瞧瞧
收获:HSV、RGB、CMYK、镜面反射、漫反射。
评分:9
每日一课 | 如何使用 Postman 做接口自动化测试?
收获:Postman 流程控制、Postman 集成 Jenkins。
评分:10
每日一课 | C++ 中为什么 move constructor 需要加 noexcept?
收获:使用关键字的两种方式、希望析构函数执行结果的两种状态。
评分:8
查看《每日一课》原文
 

英文

当周无
 

书籍

当周无
 

影视

当周无

 

好歌

Cool Again - Shoffy, Prince Fox
Don’t Call Me Angel - Ariana Grande, Miley Cyrus, Lana Del Rey
Talk- Khalid, Disclosure
Last Christmas - Ariana Grande
Paris in the Rain - Lauv
Formation - Beyoncé
 

新奇

当周无

 

末了

希望你在吸收了这些精华之后,能与我一起,茁壮成长…

英雄,我们下期,不见不散!

你可能感兴趣的:(栋的月结)