文章目录
这里整理了一些个人以往工作中曾涉及的技术栈,方便后续回顾。
【语言】
- C/C++,主要用于嵌入式、底层、跨平台
- Go,主要用于开发高性能分布式系统领域的服务器
- Java,主要用于Android
- JavaScript,主要用于web前端、H5游戏
- Python,主要用于开发工具
- Lua,主要用于游戏逻辑
【数据库】
链接
【包管理】
【构建管理】
【版本管理】
- svn,开源的集中式版本控制系统。
- git,开源的分布式版本控制系统。
- GitLab,是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。
- gogs,一款极易搭建的自助Git服务。
【设计模式】
- 单例模式
- 观察者模式
- 工厂模式
- 策略模式
- 组合模式
【设计工具】
UML
- plantuml,类图、时序图、状态图、流程图、活动图、组件图。
- C4-PlantUml
推荐的架构图画图方法:
- 语境图(System Context Diagram)
- 容器图(Container Diagram)
- 组件图(Component Diagram)
- 类图(Code/Class Diagram)
脑图
- XMind,用于场景发散,主要在于前期场景设计,以及后期补充遗漏
【企业项目管理与协同工具】
- Confluence,一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。
- jira,是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。
【C++移动跨平台解决方案】
【3rdparty】
boost
- boost,C++
filesystem、fiber、signals2、asio(steady_timer、system_timer、buffer、ip/tcp、ssl)、noncopyable、uuid
加解密
- openssl,C/C++
解压缩
- zlib,C/C++
http
- libcurl,C/C++
网络请求、文件上传/下载、curl_easy_xxx
、curl_multi_xxx
(多路复用只支持HTTP 2.0)
tcp/ip/ssl
- boost.asio,C/C++
tcp:boost::asio::ip::tcp::socket
、boost::asio::ip::tcp::endpoint
、boost::asio::buffer
、boost::asio::const_buffer
、boost::asio::mutable_buffer
、boost::system::error_code
、boost::system::errc::make_error_code
tls:boost::asio::ssl::stream<boost::asio::ip::tcp::socket>
、boost::asio::ssl::context
、boost::asio::ssl::stream_base::handshake_type
json
- nlohmann,C++
xml
- pugixml,C++
格式化
- fmt,C++
日志
- spdlog,C++
【杂项】
C++
- 智能指针,
std::shared_ptr
,std::weak_ptr
,std::unique_ptr
,std::make_shared
、std::dynamic_pointer_cast
、std::enable_shared_from_this
、shared_from_this
(不能在构造函数中调用),std::make_unique
必须使用C++14
以上版本才可以 - 多线程,
std::thread
,std::mutex
,std::recursive_mutex
,std::lock_guard
,std::unique_lock
- lambda,auto
- 协程,boost::fiber(纤程)
- 信号(同步/异步),
boost::signals2::signal
,boost::signals2::connection
- 定时器(指定特定时间触发/固定时间间隔触发),DeadlingTimer,SteadyTimer
- 模块管理器,Module,ModuleManager
clang-format
【链接】
UML
- 阿里巴巴的技术专家,是如何画好架构图的?
- 使用C4-PlantUML来快速的描述软件架构
- 使用VSCode+PlantUML+C4-Model快速画架构图
- 类的关系(泛化, 实现,关联,聚合,组合,依赖)
- 状态图和活动图
IM
- 即时通讯网
- 微信Mars:客户端跨平台组件的开发经验
- 微信终端跨平台组件 mars 系列(一)- 高性能日志模块xlog
- 微信终端跨平台组件 mars 系列(二)- 信令传输超时设计
- 微信开源C++Libco介绍与应用(一)
- https://github.com/Tencent/mars
- https://github.com/Tencent/matrix#matrix_cn