经过前面几个阶段的准备,终于进入了实际开发阶段。
一、开发顺序
我按照模块的依赖关系确定了开发顺序:先搭建基础框架(路由、数据库连接、会话管理),再开发用户认证模块,然后开发组织架构模块,接着开发业务模块(考勤、请假、报销、资产等),最后开发辅助模块(公告、日志等)。
二、开发中的挑战
- SQLite并发写入:SQLite在并发写入时会出现锁定问题。解决方案是使用WAL模式,允许多个读操作与一个写操作同时进行。
- 权限控制:需要区分管理员和普通用户的权限,每个页面都要做权限验证。
- 表单验证:前后端都需要做表单验证,前端验证提升用户体验,后端验证保证数据安全。
- 数据关联:员工请假需要关联部门信息,资产需要关联使用人,报销需要关联审批人。
三、开发效率
PHP原生开发的效率其实很高,因为不需要处理框架的配置和约定,直接写业务逻辑即可。每个模块的开发时间大约在2-4小时。
四、测试与调试
由于没有自动化测试框架,我采用手动测试的方式。每开发完一个模块,就模拟各种场景进行测试,包括正常流程、异常流程、边界情况等。
五、部署上线
开发完成后,部署非常简单:将代码上传到服务器,配置Nginx站点,设置数据库文件权限,访问域名即可使用。整个过程不到10分钟。
六、后续规划
OA系统上线后,根据用户反馈持续迭代。后续计划增加更多功能,如流程审批引擎、数据报表、消息通知等。
从想法到实现,整个过程大约花了两周时间。虽然过程辛苦,但看到自己开发的系统被团队使用,解决实际问题,那种成就感是无法替代的。