1.项目是什么，解决什么问题？
该项目类似 Radarcape，是一个基于 ADS-B/Mode-S 信号的飞机态势实时数据处理平台。同时支持多种数据源接入，并将解析后的航空态势数据通过多种方式进行转发。
同时支持多种数据源，数据转发。
2.整体架构（前端、后端、数据库、通信？
整体采用前后端分离架构。前端 React + Ant Design + Leaflet 负责地图态势展示。后端基于 C++20 开发，采用 Drogon 提供 Web 服务能力，
结合 Asio coroutine 实现异步 IO，多数据源通过统一适配层接入。
3.遇到的最大技术挑战？
3.1 高并发 IO难点 1：高并发 IO
为了避免一个数据源数据馈送点开一个线程，和减少多个线程的锁争用带来的问题。因此采用 Asio 协程模型， IO 操作通过 coroutine
异步调度，
避免大量连接创建线程；CPU 密集型解析任务通过线程池执行，实现 IO 和计算分离，避免cpu耗时操作阻塞流程。
3.2 Mode-S解析
Mode-S 报文格式复杂，需要根据英文协议文档实现不同类型报文解析，并处理 CRC 校验以及奇偶校验定位。
3.3 实时地图刷新
飞机位置更新频率高，如果每次数据变化都刷新 React 全组件，会导致性能下降，因此优化状态更新粒度。比如轨迹 网页会缓存状态增量获取新的轨迹点
3.4
底层数据经常出问题，需要良好的可观测结构，来排除底层数据的各种问题。我在网页上每一种报文都带有自己的状态，每一个飞机所有状态都能看到，
各个数据源内部自己协程的状态机当前状态，历史状态切换，当前数据的单包大小平均值 数据速度。以及解析位置的CPR状态，每一个轨迹点的解析速度判断流程
都可以观测，tcp服务端连接了几个客户端都可以看到
4.你的职责？
我负责前端和后端

TCP、UDP、串口、文件、DLL 这些输入方式差异很大，你是怎么设计统一接口的？
我的设计思路是将数据接入层和数据解析层解耦。解析模块只关心统一的数据流，不关心数据来自 TCP、UDP、串口还是文件。
我设计了一个抽象的数据源接口，例如定义初始化、启动、停止、读取数据等基础生命周期接口。
不同数据源分别实现这个接口
数据源最终是把二进制流封装成消息对象，传递给消息处理线程池，处理完成后，根据与数据转发的连接关系，传递给数据转发。

