Blog

Thinking will not overcome fear but action will.

c基础

一、基本语法 预处理器 #include xxx #define xxx: #define GET_USER_LIST(type) (&g_pstApexUserList->astUserList[type]) 1. 数据类型 表 2. 关键字 extern: static: enum: 枚举,自增。 enum DAY { MON=1; TUE; ...

微服务

一、 理论基础-康威定律 Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. - Melvin Conway(1967) 1. 沟通方式决定系统设计 Ad...

go语言精华

一、规范 行长一般不超过80个字符 package的命名和目录一致 变量命名用驼峰, 首字母大写包外可见,小写包内可见 import: 标准库, 项目包, 第三方包的包顺序, 空行隔开; 路径用绝对路径 struct申明和初始化格式采用多行 二、语法 常量: iota 自增常量 基础类型: 可以以自己数组下标的方式去获取一个字符串的指定字符 数组:n...

网络

一、协议 1. TCP/IP 协议 应用层:http/ftp/DNS/Telnet/.. 传输层:TCP/UDP.. 网络层:IP… 链路层: 二、TCP三次握手、四次挥手 1. 三次握手 c请求链接; s接受链接,并回复ack报文, 分配资源; c接受到ack报文后,也向s发ack报文,并分配资源, 连接建立 2. 四次挥手 s请求断开...

数据库

一、三大范式 第一范式:每个字段是不可拆分的 第二范式:所有字段依赖于主键,一个表只描述一件事 第三范式:每个字段不能间接依赖主键,比如用户名称不能出现在订单表中 二、MySQL 1. InnoDB和MyISAM的区别   事务 速度 外键 行级锁 I...

并发

一、多线程 1. 好处 充分利用多核cpu 防止阻塞 2. 线程安全 也叫并发安全 在多线程和单线程下,执行的结果一致,则是安全 golang措施:channel队列 和 加锁 Channel: 线程安全队列, 在c++中有BlockingQueue 该加锁就加锁,性能消耗没那么大 3. 线程池 3.1. Why 对创建的线程进行复用, 避免频繁的创...

专题汇集

一、 安全 1. web安全 1.1. CSRF Refer 加token 1.2. XSS 用户输入的内容原封不动的通过服务器程序渲染在页面上。比如cookie 不能相信用户的输入, xss过滤 1.3. SQL注入 不能相信用户有的输入, 避免直接用用户输入的数据, 过滤函数等 2. 脚本注入 上传一个文件, 然后外网直接访问。。 程序和文件不放一起 ...

分布式理论、设计

一、理论 1. CAP定理 一个分布式系统中, 一致性, 可用性,和分区容错性这个三个基本要素,只能满足其中两个 https://juejin.im/post/5b26634b6fb9a00e765e75d1 2. BASE理论 BASE理论是Basically Available(基本可用),Soft State(软状态)和Eventually Consistent(最终一致性)三个短语的...

git代码管理实践

本文分两部分,【快速上手】和【深入学习】 【快速上手】部分,旨在让未接触过git的同学,能迅速掌握基本git使用 【深入学习】部分,整合自己学习的总结心得, 最后罗列了个人觉得学习git比较好的资料、文章 一、快速上手 1.1. git介绍 git是分布式的代码版本控制软件。 1.1.1. 特点 本地提交、分支创建和切换简便、多人并行开发等(详见后续【为什么要用git】) 1.1.2...

常用算法

一、排序算法 直接插入排序:O(n2) for i:=1; i<len; i++ { //两段, i之前排好序的, i之后未排好序 for j:=i; j>0 && arr[j]<arr[j-1]; j-- { arr[j], arr[j-1] = arr[j-1], arr[j] } } 希尔排序:O(nl...