type
status
date
slug
summary
tags
category
icon
password
笔记框架
我不是计算机专业出身,只是体系化的研究过该领域的培养方式和课程,研究过不少项目和框架。所以这个知识图谱的组织方式更多是基于我自身对知识和项目的理解。
数学上研究某一对象的思路,往往是先研究某一具体的代数结构的性质,然后抽象定义其主要特点,再推广到其他具有相似特点的代数结构。
计算机上也差不多,所以我打算将该部分的笔记拆分为“内功”和“外功”两个部分:
- “内功”是指脱离于具体应用,脱离于语言,脱离于具体实现大的“泛化”的设计思想。
- “外功”是指“具象”的工具。
根据我研究过的一些项目和框架,感觉对于一个项目的组织方式逻辑上基本上是固定的:
- 首先是构建用于组件间数据交互的核心通信框架,比如像分布式系统的消息中间件 Kafka、ROS、FastDDS、ZeroMQ 等,也可以通过观察者模式实现,比如 Qt。一般 C++ 和 Java 用的比较多,Spring。
- 然后围绕这个核心通信架构搭建实现具体功能的模块,比如可能会用 Python 来抓去数据、实现某些算法;可能会用 Java 进行一些数据库的操作
- 这些模块中有一部分与底层的硬件
- 由于分立的模块使用起来较为复杂,工具
“内功”知识框架
“外功”知识框架
工具层
Python
Shell
Perl
Ruby
模块层
Java
C++
通信层
驱动层