抉择与权衡
——政务信息系统实战决策
在约束中做决策,在取舍中找答案
许彰午 著
目 录
第一部分:思考方法
第一章 政务场景下的架构决策——不是选最好的,是选最合适的
第二章 跨语言平移——让C#和Java代码长得一模一样
第三章 框架全貌——一个自洽的技术体系
第四章 政策驱动开发——需求锁下的生存法则
第二部分:框架内核
第五章 一切从那个决定开始——为什么手写IOC
第六章 前后端解耦——让前端只管发JSON
第七章 轻量AOP——一个jar搞定事务、日志、监控
第八章 框架基础设施——上下文管理与定时任务
第九章 数据层的基因——不用Hibernate,状态机追踪字段变更
第十章 数据层优化——MongoDB混合存储与MyBatis分页改造
第三部分:安全管道
第十一章 政务安全管道——不靠安全框架,靠管道设计
第四部分:工作流实战
第十二章 Activiti任意流转——在别人的框架里找"洞"
第十三章 流程图追踪与外挂会签——自己画图、自己挂流程
第五部分:极限生存
第十四章 大数据导出OOM——绕开MyBatis,JDBC游标逐行写文件
第十五章 信创改造——注解驱动SM4加解密,前端一行代码不用改
第十六章 一个DLL适配几十家医院——工期倒逼出的全局开关设计
第十七章 排错实录——环境锁下的排查生存术
第十八章 政务运维实战——运维锁下的系统可观测性
第十九章 买不起就自己搓——政务远程帮办的自主实现
第六部分:跨界与新局
第二十章 Excel模板驱动报表——业务人员改格式,零开发
第二十一章 智能客服RAG实战——从传统系统到AI的务实落地
第七部分:方法论——十四年沉淀的思考框架
第二十二章 回顾与总结——做技术决策的底层逻辑
前言
有人问我:"你们不用Spring,是不是因为不会?"
不是。Spring的技术水平毫无疑问比我自己的高。但在政务信息化这个战场,技术好不等于方案好。这套框架跑了十四年,不是因为它先进,是因为它刚好够用、出了问题能快速定位、改起来不心疼。
政务信息化和互联网公司不一样。不一样在哪?五把锁卡着你:
• 环境锁——老旧服务器、指定中间件、网闸隔离,你控制不了运行环境
• 需求锁——政策文件就是需求文档,改不改不是你说了算,截止日期也不是你说了算
• 安全锁——数据关乎真金白银,等保、密评、国产化,哪条都是红线
• 运维锁——凌晨三点出了问题,甲方技术力量有限,你得远程定位
• 资源锁——预算固定、工期固定、人就那么几个,买不起商业方案
五把锁同时锁死的时候,"最佳实践"往往水土不服。不是Spring不好,是对两三个人的团队来说,长依赖链是实实在在的负担——出了问题必须快速定位快速修复,翻别人的源码不如翻自己的。
这五把锁逼出了一个原则:适配场景,不追最佳实践。 本书二十二章,就是二十二个在锁链下做决策的记录。
全书分七个部分:
• 第一部分:思考方法(Ch1-4)——五把锁框架、跨语言平移、框架全貌、政策驱动开发
• 第二部分:框架内核(Ch5-10)——自写IOC、新老共存、前后端解耦、轻量AOP、字节码与上下文、数据层状态机、MongoDB与分页
• 第三部分:安全管道(Ch11)——六道防线,不靠安全框架靠管道设计
• 第四部分:工作流实战(Ch11-13)——Activiti任意流转、流程图追踪与外挂会签
• 第五部分:极限生存(Ch14-18)——OOM、信创改造、DLL全局开关、排错实录、运维实战
• 第六部分:跨界与新局(Ch19-21)——远程帮办、Excel模板报表、RAG智能客服
• 第七部分:方法论(Ch22)——二十一个决策回顾,三个核心思维
不是框架教程,不是技术炫耀。每章都是真实场景:遇到了什么问题,想了什么办法,代价是什么。代码来自生产环境,经受了十余年业务锤炼。
政务信息系统是本书的战场,但书中的决策思维不受场景限制——任何资源有限、需求多变、环境受限的软件开发,都面临类似的抉择与权衡。若你身处政务、国企或传统企业开发一线,每日与老系统、硬需求、烂环境周旋——此书或为你参考。不敢妄言助你速成架构师,惟愿少些弯路,多份从容。
关于代码中的变量命名:书中保留了原始变量名,如mothodmap(少了个e)、praserHandler(parser拼成了praser)、isModefiy(modify拼成了modefiy)、MethodNmae(Name拼成了Nmae)等。这些命名不规范,但它们是当年的真实面貌——保留是为了还原历史现场感,绝非提倡这种风格。请严格遵守命名规范。
AI使用声明:本书所有核心观点、架构设计及全部代码均由作者独立完成。AI仅用于检查文字逻辑,未参与任何技术内容的生成。
许彰午
2026年春