• code123
    一个故事帮你理解线程和线程池

    一个故事帮你理解线程和线程池

    我是一个线程, 我一出生就被编了个号: 0x3704,  然后被领到一个昏暗的屋子里,  这里我发现了很多和我一模一样的同伴。 我身边的同伴0……
  • 编程的宗派

    总是有人喜欢争论这类问题,到底是“函数式编程”(FP)好,还是“面向对象编程”(OOP)好。既然出了两个帮派,就有人积极地做它们的帮众,互相唾骂和鄙视。然后呢又出了一个“好好先生帮”,这个帮的人喜欢说,管它什么范式呢,能解决问题的工具就是好工具!我个人其实不属于这三帮人中的任何一个。 面向对象编程(Object-Oriented Programming) 如果你看透了表面现象就会发现,其实“面向对象编程”本身没有引入很多新东西。所谓“面向对象语言”,其实就是经典的“过程式语言”(比如Pascal),加上一点抽象能力。所谓“类”和“对象”,基本是过程……
  • code123
    OAuth 认证流程详解

    OAuth 认证流程详解

    很多网站、APP 弱化甚至没有搭建自己的账号体系,而是直接使用社会化登录的方式,这样不仅免去了用户注册账号的麻烦、还可以获取用户的好……
  • code123
    进程与线程的一个简单解释

    进程与线程的一个简单解释

    进程 (process)和 线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇 材料 ,发现有一个很……
  • code123
    自己动手制作一台四位计算机

    自己动手制作一台四位计算机

    你是否想过,计算机为什么会加减乘除?或者更直接一点,计算机的原理到底是什么? Waitingforfriday 有一篇详细的教程,讲解了如何自己……
  • code123
    计算机是如何启动的?

    计算机是如何启动的?

    从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示....……
  • code123
    Linux 的启动流程

    Linux 的启动流程

    半年前,我写了 《计算机是如何启动的?》 ,探讨BIOS和主引导记录的作用。 那篇文章不涉及操作系统,只与主板的板载程序有关。今天,我……
  • code123
    数据压缩与信息熵

    数据压缩与信息熵

    1992年,美国佐治亚州的WEB Technology公司,宣布做出了重大的技术突破。 该公司的DataFiles/16软件,号称可以将任意大于64KB的文件,压……
  • code123
    编译器的工作过程

    编译器的工作过程

    源码要运行,必须先转成二进制的机器码。这是编译器的任务。 比如,下面这段源码(假定文件名叫做test.c)。 #include ……
  • code123
    数据库的最简单实现

    数据库的最简单实现

    所有应用软件之中,数据库可能是最复杂的。 MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。 ……
  • code123
    图解 Monad

    图解 Monad

    函数式编程有一个重要概念,叫做 Monad 。 网上有很多解释( 这里 和 这里),但都很抽象,不容易看懂。我尝试了好多次,还是不明白……
  • code123
    编译器是如何将高级语言转化成汇编语言的?

    编译器是如何将高级语言转化成汇编语言的?

    对于每天奋斗在一线,用Java,C++,C#,Python等高级编程语言写程序的程序员们来说,理解编译器是如何将高级语言编译成汇编语言,有助于……