重逢的创建初衷是提供一个平台,为用户维护个人的半熟社交人际关系,辅助用户整合非日常交流好友资源,以此为用户提供可能需要的人际关系价值。项目的主要通过iOS和Android两个主流平台APP提供服务,后端通过ECS中PHP提供平台服务,并通过Python提供一定的数据分析服务。
项目涉及技术:
- iOS / Android
- HTML + CSS + JavaScript
- PHP / MySQL
- Python
- Docker
- Apache / Nginx
- HTTP/2
项目整体架构:
由于项目整体预算有限,无法支撑全量设备的原生应用开发,因此前端我采用了 WebView(iOS 为 WKWebView)全屏嵌套方案,加载一套统一的 HTML 前端界面,实现类原生 H5 应用设计。同时,利用原生与 JavaScript 的互通信机制,实现对设备硬件(如相机、相册、通讯录等)的调用。在原生层,我们将 HTML 界面打包至应用本地资源中,以最大化界面加载与渲染效率,并严格遵循 iOS 平台的版本更新审核规则中针对需要有效的更新内容的要求,确保产品后续迭代能够持续满足平台要求。考虑到产品对前端代码的源码安全需求,所有 JavaScript 均采用纯 ES4+ 原生语法编写,未引用任何开源第三方库。
服务端涵盖服务器操作系统、运行环境及 PHP 业务系统的开发。开发阶段,我使用 Docker 搭建了准生产、开发、数据、认证、监控五个独立的 Linux 容器,分别部署 Apache、PHP、MySQL 等组件,为服务端提供运行环境。这种设计便于产品上线时将各功能模块从 Docker 子系统直接迁移至实际生产操作系统。服务端采用 PHP 开发,通过 Apache 的 Rewrite 规则配合 PHP 路径解析,将实际接口文件进行重写隐藏,并利用多级路径将请求拆分为独立模块,系统自动解析路径并导向对应模块,实现模块间的功能隔离,便于开发、扩展与维护。MySQL 数据库运行在独立的 Docker 容器中,可根据需要快速扩展为主备架构,搭建灾备方案,同时也便于交付时平滑迁移至实际生产数据环境。
此外,我在系统中部署了 Python,针对人际关系资源匹配的需求,使用 jieba 对中文的支持与 BM25 匹配算法实现基础资源数据分析,并通过 Flask 框架提供独立于 PHP 服务的 API 接口(由 Nginx 反向代理将 Flask 服务路由至外部访问)。
另外,在监控系统中还实现了一套简易的数据统计埋点监控模块,用于统计前后端访问日志,辅助日常运维与问题排查。