欢迎阅读 技术分享 ,这里记录分享我过去一周看过的感觉还不错的内容。

文章

如何设计一个复杂的 Web 表格

理想中的表格跟现实中的表格设计天差地别,一个复杂的 Web 表格在设计上要考虑很多,比如不同类型的组件(文本、数字、日期、下拉框等)在不同状态下的样式(聚焦、错误、输入等)等,文章给出了许多参考。

深入理解 Java 锁与线程阻塞

老生常谈,温故知新。

Event Sourcing is Hard

熟悉 DDD 的朋友肯定听过 Event Sourcing 的概念,作者用自己血泪的教训告诉你实施 Event Sourcing 会面临的问题以及 Event Sourcing 本身的缺陷。

了解数据库分片

近年来,Sharding 一直受到很多关注,但许多人并没有清楚地了解它是什么,或者对数据库进行分片可能有意义的场景。本文将讨论分片是什么,它的一些主要优点和缺点,以及一些常见的分片方法。

为何 CockroachDB 是基于 RocksDB 的?

CockroachDB 是一个分布式数据库,底层的存储引擎采用了 RocksDB —— 一个功能丰富的 KV 存储,文章说明了采用 RocksDB 的理由(如果你也打算编写自己的分布式系统本文可以作为很好的参考)。

POLARDB · 理论基础 · 数据库故障恢复机制的前世今生

文章将首先描述故障恢复问题本身;然后按照基本的时间顺序介绍传统数据库中故障恢复机制的演进及优化;之后思考新硬件带来的机遇与挑战;并引出围绕新硬件的两个不同方向的研究成果;最后进行总结。另外参考部分也很精彩,请注意阅读。

Database · 原理介绍 · 数据库的事务与复制

文章说明了容错事务的几种实现模式与对比(其实就是 Spanner 等分布式数据库、TiKV/Percolator 等分布式 KV 以及 MySQL 等数据库在实现上的区别 ),需要读者对共识算法、数据库并发控制等概念有一定的了解。

探索Flutter中的Stack和IndexedStack组件

该文章是系列文章(主要讲解 Flutter 中常用组件的使用方法)中的一篇。本文介绍了 Stack 和 IndexedStack ,Stack 是一个容器组件,用于层叠展现子组件,可用于实现常见的分层堆叠的效果。IndexedStack 与 Stack 类似,不同的地方在于 :它只展现一个子组件。

WebAssembly Troubles part 1

系列文章说明了 WebAssembly 现有的设计问题以及采用了那些 proposal 去修复(有的并没有但作者解释了为何没有修复),需要懂一些编译器、虚拟机和 WebAssembly 等语言设计与底层的知识,看看挺好的,了解一下在语言设计中的思考。

亲自动手写虚拟机

亲手撸一个简单的虚拟机,C++ 实现,可以运行 LC-3(一个用于教学的汇编语言)编写的程序,有打算了解虚拟机的可以作为入门。

AoC 的 Python 实现

Advent of Code (AoC) 是针对各种技能和技能水平的小编程难题,可以用您喜欢的任何编程语言来解决。人们将它们用作速度竞赛,面试准备,公司培训,大学课程,练习问题或相互挑战。

文章作者给出了 Python 的实现并详细解释了解决思路。

这里还有一篇 Rust 的实现

关于证书和PKI(公钥基础设施)你应该知道的的一切

现在大部分的网站都使用 HTTPS 了,这其中就涉及到了证书和PKI,然而大多数人只是听过或是大概了解,并不完全知晓其中的原理,这篇文章很好地解释了与此相关的很多概念。

资源

HTTP/3详解

HTTP/2 刚用上,HTTP/3的规范就出来了,本书提供HTTP/3以及其底层协议QUIC的文档,介绍它们的目的、原理、协议细节以及实现等。

深入理解 ECMAScript 2019

ECMAScript 2018 刚出来不久,2019 又跟上了 😂😂,关于 2018 和 2019 的所有特性和示例请参考作者的新书:Exploring ES2018 and ES2019

《Swift 编程语言》—— 可能是最用心的官方翻译

《Swift 编程语言》是苹果官方对 Swift 语言做的权威指南,很遗憾苹果公司并没有进行多语言支持。所以这个独立发起的手册的翻译工作——与其他现存翻译不同的是:它同步更新苹果官方的 Swift 开发者预览版 !

Google 编程技能提升指南

Google 编程技能提升指南

由 Google 收集,大部分资源是网上已有。涉及各种编程语言,内容包括 Google 面试题、在线课程、视频、教育网站等等资源(如 Codebat、Leecode、Coursera)。

对不同受众还提供了三条学习路线:

  • Foundations of Programming:面向比较喜欢基础内容的开发者。
  • Advanced Programming:面向高级、有较多经验的开发者。
  • Machine Learning:学习掌握机器学习技能。
  • Cloud Computing: 云、基础架构、数据科学相关

大概看了下,许多资源还是不错的,如果不想按路线学习,可以直接查看 Resource Library 寻找自己感兴趣的内容学习。

工具

gotop 2.0

gotop

gotop是一个基于终端的图形活动监视器,可以监视进程的CPU和内存使用情况等。最新版本增加了电池监控,文档更新和错误修复。

fx 10.0

fx 是一个方便的命令行工具,可以帮助探索和操作JSON数据,很酷炫。

配色利器 ColorHexa

ColorHexa 是一个免费的颜色工具,提供有关任何颜色的信息,并为您的设计生成匹配的调色板(如互补,类似,三元,四元或单色配色方案)。

滴滴开源跨平台统一MVVM框架Chameleon

滴滴在 GitHub 上开源了跨端解决方案 Chameleon,简写 CML,中文名卡梅龙;中文意思变色龙,意味着就像变色龙一样能适应不同环境的跨端整体解决方案,具有易用、开发快、高性能等特点。

TypeIt 6.0——打字特效的 JS 库

TypeIt

其他

上海超级全景

上海超级全景

上海市政府新闻办公室出品的上海全景图,在东方明珠上拍摄,高达 1950 亿像素,据说是亚洲最大的360°全景图,不断放大后甚至可以看清路上行人的表情😲😲。

每周一图

后记

因为关注了很多周刊日报类的技术栏目,写这个就是帮助归纳整理看过的文章,同时强迫自己养成每周写点东西的习惯。文章的原文使用 Hugo 生成并使用 Github 提供的免费服务托管,之后会专门写一下本站的搭建过程。

本文会同步更新到公众号(程序员私塾)中,欢迎订阅。