OOD:SOLID设计原则

SRP:单一职责原则(Single Responsibility Principle)

任何一个软件模块都应该有且仅由一个被修改的理由

"There should never be more than one reason for a class to change."

classDiagram
    class Employee{
    +calculatePay
    +reportHours
    +save
    }

例如有一个员工类,包含由CFO需要的calculatePay(),COO需要的reportHours,CTO需要的save()。由于在一个类中,绝大多数程序猿会为避免代码重复,单独实现一个regularHours()函数。

阅读全文 »

I/O复用

概述

I/O复用即可以同时监视多个I/O状态的能力,例如stdin,stdout,tcp等。

I/O模型

阻塞式I/O

阅读全文 »

atomic

原子操作:不会被线程调度机制打断的操作,原子操作基于处理器支持

原子操作的实现

原子锁:使用原子操作实现的锁

原子操作可以大幅减少互斥锁的时间开销,但也会带来调试困难。

阅读全文 »

尝试多种方法后,依旧对于一些复杂公式处理存在问题,marked和kramed都不能顺利解决,即使改了部分js文件。

解决方法

直接换用pandoc解决

1
2
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-pandoc --save

pandoc的markdown规范

阅读全文 »

特殊关系

等价关系

Definition

设R是非空集合A上的关系,如果R是自反的、对称的、传递的,则称R为A上的等价关系(equivalent relation).

以n为模的同余关系

在Z上以n为模的同余关系R中,一般记xRy为\(x\equiv y(mod n)\)(即同余式)或\(Res_n(x)=Rex_n(y)\).其中\(Res_n(x)\)表示x除以n的余数;

阅读全文 »

函数

函数的定义

Definition

设f是集合A到B的关系,如果对每个\(x\in A\),都存在唯一的\(y\in B\),使得\(<x,y>\in f\),则称关系f是A到B的函数或映射,记为\(f:A\rightarrow B\).A为函数的定义域,记为\(domf=A\);f(A)为函数f的值域,记为ranf.

Definition

所有从A到B的一切函数构成的集合记为\(B^A\): \[ B^A=\{f|f:A\rightarrow B\} \]

函数的类型

阅读全文 »

C++

mysql库

1
sudo apt-get install libmysqlclient-dev
1
#include <mysql/mysql.h>

libcurl库

阅读全文 »

\[ L{\sideset{^1_2}{^3_4}\bigotimes} \\ \frac{1}{3} \\ 4 \over 3 \\ \sqrt{6} \\ \sqrt[7]{49} \\ f(x_1,x_2,\ldots,x_n)=x_1^2+x_2^2+\cdots+x_n^2 \\ \vec{a} \cdot \vec{b}=0 \\ \int_0^1 x^2 {\rm d}x \\ \lim_{n \rightarrow +\infty} \frac{1}{n(n+1)} \\ \sum_{i=0}^n \frac{1}{i^2} \\ \alpha \beta \gamma \Gamma \delta \Delta \epsilon \Epsilon \\ \pm \times \div \mid \nmid \cdot \circ \ast \bigodot \bigotimes \leq \geq \neq \approx \equiv \sum \prod \coprod \\ \emptyset \in \notin\subset \supset \subseteq \supseteq \bigcap \bigcup \bigvee \bigwedge \biguplus \bigsqcup \\ \bot \angle 30^\circ \sin \cos \tan \cot \sec \csc \\ \prime \int \iint \iiint \iiiint \lim \infty \nabla \\ \because \therefore \forall \exists \not= \not> \not\subset \\ \hat{y} \check{y} \breve{y} \\ \overline{a+b+c+d} \\ \underline{a+b+c+d} \\ \overbrace{a+\underbrace{b+c}_{1.0}+d}^{2.0} \\ \uparrow \downarrow \Uparrow \Downarrow \rightarrow \leftarrow \Rightarrow \Leftarrow \longrightarrow \longleftarrow \Longleftarrow \Longrightarrow \\ \begin{cases} a_1x+b_1y+c_1z=d_1\\ a_2x+b_2y+c_2z=d_2\\ a_3x+b_3y+c_3z=d_3\\ \end{cases}\\ \begin{matrix} 1&0&0\\ 0&1&0\\ 0&0&1\\ \end{matrix} \]

\[ \wedge 合取 \\ \vee 析取 \\ \neg 否定 \\ \rightarrow 蕴含\\ \leftrightarrow 双条件 \\ \Rightarrow 推出 \\ \Leftrightarrow 等价 \\ \forall 任意 \\ \exists 存在 \\ \]

两个quad空格 a b a b 两个m的宽度
quad空格 a b a b 一个m的宽度
大空格 a b a b 1/3m宽度
中等空格 a;b a;b 2/7m宽度
小空格 a,b a,b 1/6m宽度
没有空格 ab ab,
紧贴 a!b a!b 缩进1/6m宽度
0%