Programming
Testing
keyword: Unit Tests, Benchmark Tests, Integration Tests, Test Coverage, Test-Driven Development (TDD),
Automatic testcases make life easer for developers. After adding a new feature, the programmer shall add new cases to the pool of the existing testcases. And then run related cases to avoid any new bugs.
Automated Docs
The libary (or package) document helps its users quickly get its usage. And the docs should be generated automatically from the source code.
Golang and Rust have their own commands to extract docs from the doc comment inside the source code. doxygen is a tool that can generate docs from kinds of source files: c, c++, c#, object-c, python and so on.
Security
| topic | contents |
|---|---|
| Concepts | Confidentiality, Integrity, and Authentication |
| Tools | ssh, https |
Basics
| topic | contents |
|---|---|
| Standards | Unicode |
| Language | Integer Overflow, Sign Extention |
| Concepts | Async, Functional, RAII |
| Networks | socket |
| Algorithms | Data Structure and Algorithms |
| Compliants | FFI - Foreign Function Interface, ABI - Application Binary Interface, |
| Development | BDD, TDD, CDD, CI/CD |
| Other | Panicking, Compile-time checks |
Performance
Benchmark Testing measures the performance by running a series of standardized tests
Profiling helps to analyze run-time performance of a program
Atomic helps to avoid contention issue with a “lock” in CPU instruction level
Deferment helps to avoid unnecessary expense
Allocation
Multicore