icon

All Posts

  • Published on
    Go语言代码生成主要还是用来解决编程泛型的问题,泛型编程主要解决的问题是因为静态类型语言有类型,所以,相关的算法或是对数据处理的程序会因为类型不同而需要复制一份,这样导致数据类型和算法功能耦合的问题。泛型编程可以解决这样的问题,就是说,在写代码的时候,不用关心处理数据的类型,只需要关心相当处理逻辑。泛型编程是静态语言中非常非常重要的特征,如果没有泛型,我们很难做到多态,也很难完成抽象,会导致我们的代码冗余量很大。
  • Published on
    之前写过一篇《Python修饰器的函数式编程》,这种模式很容易的可以把一些函数装配到另外一些函数上,可以让你的代码更为的简单,也可以让一些“小功能型”的代码复用性更高,让代码中的函数可以像乐高玩具那样自由地拼装。所以,一直以来,我对修饰器decoration这种编程模式情有独钟,这里写一篇Go语言相关的文章。
  • Published on
    本篇文章,我们着重介绍Go编程中的Pipeline模式。对于Pipeline用过Unix/Linux命令行的人都不会陌生,他是一种把各种命令拼接起来完成一个更强功能的技术方法。在今天,流式处理,函数式编程,以及应用网关对微服务进行简单的API编排,其实都是受pipeline这种技术方式的影响,Pipeline这种技术在可以很容易的把代码按单一职责的原则拆分成多个高内聚低耦合的小模块,然后可以很方便地拼装起来去完成比较复杂的功能。
  • Published on
    本篇文章主要想讨论一下,Kubernetes 的 kubectl 命令中的使用到到的一个编程模式 – Visitor。本来,Visitor 是面向对象设计模英中一个很重要的设计模款,这个模式是一种将算法与操作对象的结构分离的一种方法。这种分离的实际结果是能够在不修改结构的情况下向现有对象结构添加新操作,是遵循开放/封闭原则的一种方法。这篇文章我们重点看一下 kubelet 中是怎么使用函数式的方法来实现这个模式的。
  • Published on
    Uber has one of the largest deployments of Apache Kafka in the world, processing trillions of messages and multiple petabytes of data per day. As Figure 1 shows, today we position Apache Kafka as a cornerstone to Uber’s technology stack and build a complex ecosystem on top of it to empower a large number of different workflows. These include a pub/sub message bus to pass event data from the rider and driver apps, enabling a streaming analytics platform (e.g. Apache Samza, Apache Flink), streaming database changelogs to the downstream subscribers, and ingesting all sorts of data into Uber’s Apache Hadoop data lake.
  • Published on
    时间戳(timestamp)是分布式事务中绕不开的重要概念,有意思的是,现在主流的几个分布式数据库对它的实现都不尽相同,甚至是主要区分点之一。本文聊一聊时间戳的前世今生,为了把讨论集中在主题上,假设读者已经对数据库的 MVCC、2PC、一致性、隔离级别等概念有个基本的了解。
  • Published on
    本书从计算机的内部结构开始讲起,以图配文的形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,目的是让读者了解从用户双击程序图标到程序开始运行之间到底发生了什么。同时专设了“如果是你,你会怎样介绍?”专栏,以小学生、老奶奶为对象讲解程序的运行原理,颇为有趣。本书图文并茂,通俗易懂,非常适合计算机爱好者及相关从业人员阅读
  • Published on
    Apple的M1芯片可能会给你的多线程序带来一些bug,因为ARM芯片不像X86的芯片会保证内存访问顺的一致性。(当然,如果高级语方处理了则不会有问题)
  • Published on
    👉 Become A VS Code SuperHero Today: https://vsCodeHero.com 🚢 Deploy for FREE on Vercel: https://vercel.com/ambassadors/codestackr.
  • Published on
    “一个知识越贫乏的人,越是拥有一种莫名奇怪的勇气和一种莫名奇怪的自豪感,因为知识越贫乏,所相信的东西就越绝对,夜郎自大是好辩者的天性。”
  • Published on
  • Published on
    Refactoring is a controllable process of improving code without creating new functionality. Design Patterns are typical solutions to the commonly occurring problems in software design.
  • Published on
    著名物理学家、《一种新科学》作者、Mathematica 设计师 Stephen Wolfram 于近日发表了近四万字的博文,在文中他详细的阐出了一套能够阐述宇宙基本物理理论的模型框架。 集智俱乐部组织翻译了全文。
  • Published on
    上周六做了个关于Rust语言编程范式的直播,然后大家问了我很多编程语言的问题,我就即兴地写了一个PPT,事后我又精修了一下这个PPT,现在分享出来(免攻击声明:纯粹是我个人主观观点,欢迎喷观点,但不要对我进行人身攻击)
  • Published on
    给大家推荐一篇罗素的In Praise of Idleness,我们并没必要不停的工作,把写程序当作众多技能中的一种也许会更轻松。不去接盘房子就不会有太大债务,利用空闲时间学习一点其它实用技能,养好身体,慢慢寻找机会。
  • Published on
    出版商 Springer 放出了四百多本书的免费下载链接,主要是计算机科学、数学、物理学、工程学、商业管理方面的书。 有兴趣的可以看看。