• ruby 小众,但是国内基本上都集中在 ruby china ,像 go 都不知道有多少个社区,而你提到的社区都是一个大杂烩,并没有特色。

  • HTTP 缓存 at 2019年01月10日
  • 👍

  • Ant Design 错了吗? at 2018年12月26日

    Ant Design 的问题是跳过了开发者,将“彩蛋”直接呈现给最终用户。

    彩蛋通常在用户进行了某些特定的操作时出现,而 Ant Design 这个是时间触发,并不是用户去触发的。

  • Ruby 2.6.0 已发布 at 2018年12月25日

    👍

  • 拼写检查的四种实现 at 2018年12月23日

    对 我理解错了 B树也是多叉树 它更接近B+树 B树和B+树,本质上都是一样的,只是B+树所有的根节点和枝节点上只保存关键字索引和其子节点指针,所有的数据信息都被保存到了叶子节点,这样每个枝节点可以存储更多的数据,从而降低树的层级高度,并且所有的叶子节像是一个链表一样,指向右边的叶子节点,从而可以有效加快检索效率,如果需要遍历所有的数据,只需要遍历叶子节点链式结构即可,方便且高效。

  • 拼写检查的四种实现 at 2018年12月23日
  • 拼写检查的四种实现 at 2018年12月23日

    叫作 Trie 的多叉树其实就是实现数据库索引用到的 B+ 树(多叉树),查询的时间复杂度是 O(log n),它的优势是范围查询(比如楼上提到的拼写建议)。

    为什么不用查找效率最好二叉树?因为在硬盘上顺序读比随机读快,并且 B+ 树深度比二叉树少的多,在查询的时候执行的顺序读比随机读多,所以 B+ 树更适合。

    拼写检查的实际需求是 KV 查询, B+ 树并不合适。哈希表(Hash Table) 的 KV 查询时间复杂度是 O(1) ,它才是最好的选择。

    Bloom Filter 是在哈希表的基础上,压缩信息,加速查询。这种压缩是有损数据压缩,丢失了一些信息,所以带来了可能出错的问题。

  • Nginx 进程和信号 at 2018年12月20日

    thx 已修改

  • Erlang 源码阅读 -- scheduler at 2018年12月01日

    这些机制都是类似的 背后的原理是 CPU 的进程上下文切换 比如进程数和 CPU 逻辑核数1:1 、利用切换上下午的逻辑让空闲进程使用 sheep 主动挂起