About Computer Science

It is a yearly “divide major” season, and now I am looking back at the series of computer science questions and answers I have browsed in Zhihu during my freshman year, and I feel a lot of emotions. I have been thinking about it for a long time, and this is the first time I have seen such numerous questions and discussions about computer science, hence I write about this

Compilers

1. Overview 2. Language Grammar 字母表(Alphabet):$\sum$是一个有穷符号集合,包括字母、数字、标点等。 乘积(product):字母表$\sum_1$

Software Engineering

Overview Software is more than just a program code. It is considered to be collection of executable programming code, associated libraries and documentations. Engineering on the other hand, is all about developing products, using well-defined, scientific principles and methods. IEEE Definition (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in the above statement.

Advanced MySQL

1. Query Engine 1.1. Relational Model 关系型数据库是建模现实世界的关联数据的有组织的集合。最早期数据库难于构建,逻辑与物理层强耦合。 查询流程 SQL(Parser):词

TCP Congestion Control

1. Overview 最初的TCP因为不支持拥塞控制而频繁被丢弃数据包,协议栈被投入使用8年后,Van Jacobson在1988年将 TCP 拥塞控制引入网络。 IP层

Distributed Transaction

The Eight Fallacies of Distributed Computing by Peter Deutsch. Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences. The network is reliable Latency is zero Bandwidth is infinite The network is secure Topology doesn’t change There is one administrator Transport cost is zero The network is homogeneous

Network Security

1. Definition of security confidentiality: only sender, intended receiver should “understand” message contents sender encrypts message receiver decrypts message authentication: sender, receiver want to confirm identity of each other message integrity: sender, receiver want to ensure message not altered (in transit, or afterwards) without detection access and availability: services must be accessible and available to users. Access is the basis of availability. Without network security, the intruder can eavesdrop, insert messages, impersonation, hijacking(taking over ongoing connection), denial of service and so on.

AKF Availability Cube

AKF Availability Cube 随着业务规模增长,拆解单体应用(monolith),设计成为面向服务架构(Service-oriented architectutre)