编程语言:
- C++ 20
- Python 3.10
- Go 1.18
- Java 8
- Rust
- Scala
日常工具:
- linux bash shell 命令: ip, netstat, tcpdump iptables ssh
- gdb dlv
- pprof grpof
- fiddler postman charles wireshark
代码管理:
- git
- gitlab
- github
- gitee
开发工具:
- vim
- vscode
- idea
- goland
- pycharm
编译器:
- gcc
- g++
- clang
- go build
- javac
包管理:
- maven
- gradle
- make
- cmake
- bazel
- blade
- conda
- go mod
软件架构:
- 分层
- 模块
- 设计模式 SOLID
- MVC
- AOP
- IOC
- TDD
- DDD
- 事件/消息中心
软件线程模型:
- 单线程
- 多线程 pthread
- 轮询
- 事件,消息驱动
- 单线程,协程, 生成器(generator) python
- 多线程,go routines, bthread
线程同步与竞争:
- 锁:lock mutex
- 读写锁
- 可重入锁
- 条件变量condition
- 信号量sema
服务器必须:
- 日志
- 监控打点
- 命令行参数
- 静态配置文件:python, lua, yaml, json, ini
- 动态配置下发
服务器架构:
- 微服务
- 单体
服务器框架:
- dubbo
- spring
- gin
- beego
- flask
- django
- grpc
服务器通信:
- 同一机器:共享内存,unix socket
- RPC
- grpc
- brpc
- HTTP
- HTTP/2.0
- TCP
- UDP
- 可靠UDP
通信协议报文格式:
- protobuf
- json
服务发现:
- ZK
- etcd
- consul
服务发布:
- gitlab CICD devops
- k8s
- docker
负载均衡:
4层: LVS
7层: NGINX
算法:
- random
- hash
- 一致hash
高可用:
- 主备,选主
- 集群对等无状态
数据高可靠:
- 复制集
- 同步、异步 binlog, WAL
- raft paxos
强一致:
- etcd
- zookeeper
- braft
数据库:
- mysql
- rocksdb
- tidb
- tikv
- tsdb
- mongodb
- redis
- postgreSQL
事务:
- 悲观锁
- 乐观锁mvcc
- 分布式事务,两阶段提交, 阿里TCC
消息队列:
- kafka
- rocketmq
安全认证:
- RBAC
- jwt
- https
- kerberos
- oauth2
日志收集:
- flume
- ES(elasticsearch)
监控告警:
- grafana
- tsdb
- prometheus
大数据:
- hadoop生态:
- hdfs
- hive
- hbase
- Oozie
- Azkaban
- spark
- flink
- clickhouse
游戏引擎:
- unreal
- unity
AI框架:
- tensorflow
- pytorch
编译:
编译前后端:
- flex/bison
- boost sprit
- antlr4
- LLVM
语言内嵌:
- C++中嵌入: python, java, lua
前端:
- HTML
- CSS/LESS
- JavaScript/TypeScript
- NodeJS
- VUE
- React
go:被称为现代C语言,原生支持协程,适合服务器端编程,性能也很好。结合GRPC,构建微服务
python:灵活的脚本语言,更高的维度思考与解决问题。
redis:高速缓存,支持灵活的数据结构:List, Hash表,Set, ZSet。加上可持久化,分片,高可用。特别适合如活动业短期业务或者秒杀类业务
mongodb: 文档数据库,json/bson, schema free, 4.0以后支持事务。
etcd: 基于RAFT的强一致kv. 可做服务发现,分布式锁等等.用起来比zk、consul要简单。
此技术栈将会大大减小开发工作量,几乎覆盖了互联网领域的大部分应用。开发效率极高。
此外,c/c++可用于扩展go和python,
mysql可用户强一致如支付领域。
rocketmq可用于复杂队列。
大数据领域:kafka,flink,spark,clickhouse
人工智能领域:tensorflow pytorch
c++领域,brpc, braft, rocksdb结合,可构建独立封闭的应用。
TiDB/TiKV是不错的分布式数据库,支持分布式事务,还能用SQL
游戏领域:C++/lua,C#. 典型如Unity, unreal引擎
客户端与服务端网络交互:
tcp, http, udp, http2.0/rpc
客户端:android/ios/web
javascript, java, C#, ts, vue, react