商业公司的业务同质化很高,市场如战场,谁能快一步应变,谁能给客户提供个性化,谁就得到了业务,谁就能生存。特别是象中国这样各地的经济、文化、政治极其不平均的国家,中央与地方的差异鸿沟巨大,地方特色必然需要。
但是站在总公司的管理角度上来考虑,当然是希望业务流程越规范越好,新花样总是意味着管理上的潜在危险。而对于总部信息技术部门的角度来看,个性化的新花样则是开发工作量的剧增、无止无尽的新需求。
管理与市场、领导与客户、全局与局部、总公司与分公司之间,这个思路方向性的矛盾是现实存在,而且不可避免的。
当然,最后项目还是要按上级的管理意图来实施,于是我们得到了一个全国一致的系统,一个唯一可用的UI,一本统一印发的操作手册。对于常规的业务,按着系统的要求操作就可以满足需要了。但是这个系统不再给机会进行业务、技术的创新,一切新的想法只能做为新需求向上级提出,然后由情绪恶劣的IT人员在程序里加入一个个 “if(strncmp(deptno, “BEJ”, 3) == 0)…” 这样丑陋到暴的代码来完成流程定制化。
其实要在同一个系统里同时满足总分公司双方的诉求,并不是不可能,就是把应用系统分为两层:业务逻辑与UI层,业务逻辑层是对业务逻辑的原子化,以实时服务的形式提供。在此业务逻辑服务的基础上,构建界面展现。
这里的关键点在于业务逻辑服务的提供,不仅可以是标准UI对其的进程内调用,也同时需要能够通过webserivce等协议提供进程外服务。对于标准流程,可以由总部来做“典型实现”,而对于有特别需要的分部,则可以方便在业务服务的基础构建业务系统的其他前端外延。
这样,从管理的角度上来讲,业务数据的进出都是通过标准服务来进行的,业务数据质量、业务一致性、合规性都可以通过统一的业务逻辑来得到保证,而分支机构则有机会为不同的业务开发不同的前端接口,以根据市场要求灵活创新。
这种模式特别适合于有外部合作机构的公司采用,如金融企业、电子商务企业等。如果业务系统只有一个UI的IO方式,一切数据进出都要通过操作员来进行,那么与其他合作方进行自动化的数据对接就很难实现,一但有这样的需求,只能由交由掌握了底层逻辑的总公司IT从头开发。
现在我们的系统已经上线,可惜的是,系统采用了最简单最直觉的思路开发,几乎要把业务逻辑写在界面里了。事已至此,也不可能有什么改变了,这里只是我有过的想法分享出来,作为讨论。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2005-08-31 大公司IT项目大腕版