Tag: programming

Subscribe to Feed of articles under programming

  1. 从 HTTP 0.9 到 QUIC

    1989 年 WWW 诞生之后,HTTP 和 HTML 迅速成为主导世界的应用层协议。在今天,几乎任何场景的应用都或多或少地使用 HTTP(就像 JavaScript 一样)。HTTP 本身也不仅仅用于网页、浏览器,各式各样的 API,移动应用同样使用这个原本为 HTML 设计的协议。80 和 443 端口成了网络上最重要的端口。

    在近 30 年的历史中,HTTP 协议本身有比较大的发展,同时,还有一些重大的变动也在酝酿之中。这些演化使得这个协议的表现力更强,性能更好,更能满足日新月异的应用需求。这里就来回顾和展望一下 HTTP 的历史和未来。

    HTTP 0.9

    历史上第一个有记载的 HTTP 版本是 0.9,它诞生在 1991 年 …

  2. 衡量可扩展性的立方体模型

    最近看《架构即未来》(The Art of Scalability),结合自己目前的工作,发现比很多年前看第一版的 时候有更多切身的体会。很一般的博客、新闻介绍扩展性的结构不同,这本书2/3的篇幅并非教读者如何切分、 如何拆分,水平还是垂直等等,而是再说组织架构,怎样设置团队,怎样规范架构的流程,各个部门的责任等。 在看第一版的那个时候,这部分我可能就直接忽略了,但是现在有了亲身体会之后,发现大部分的问题,即使 表现为技术问题,甚至是低级失误,其实根源都是管理方面的问题:责任分配不清晰,资源不足,决策草率缺 乏长远考虑,等等等等。这些问题,如果没有经验,在解决了我们熟悉的基本的扩展性问题之后就会慢慢遇到, 从宏观角度看这些恰恰是真正制约扩展性的关键因素。

    不过今天并不是想写这个。书中后半部分介绍了一个衡量扩展性的 AKF 立方体模型,把关于扩展性的问题抽象 得很精致。这个模型用 X/Y/Z 三个轴表示扩展的三个不同方向。其中

    • X 轴表示同等职责 …
  3. "Smoothing Your Rust Crates Release With Cargo-release"

    Cargo-release is a cargo subcommand that automates your libraries release process. The idea was inspired by Clojure's leiningen, which has a release command does exact same thing.

    Typically, when you decide to release a library to crates.io, you need to go through following steps at least:

    • bump version in …

Page 1 / 4 »