金融系统IT系统的架构前端体系特点 (二)
文:一苇渡江
面对前一篇列举的问题,我们的解决方案:
1、对于机构个性化,渠道个性化,系统个性化的组合维度的解决方案:
A、 类似设计模式中适配器的模式,解决个性化组合问题。针对特定的机构,渠道,系统都是适配,按需加载对应公共模块,组合模块,个性化模块。一个模块一般包括HTML与CSS,还有JS逻辑部分。个性化HTML部分需要在某些特定公共的节点,插入某些个性化节点的前后位置。CSS样式部分,使用“基础,组合,个性化”类的结构。而JS的模块使用异步数组的方式,按公共,组合,个性化三个维度压入,顺序执行。
B、在前端架构上,实现模块划分,模块的划分有利于维护与查找问题的范围,提示重用度。以分目录的形式,将不同的模块分到不同的目录,以减少以IF ELSE作为逻辑分支处理。我们总是希望将最简单的技术发挥得最好,以减少复杂逻辑带来的维护困难。金融系统的特点,不像互联网公司,以快,异,新作为追求,更多希望将系统或者网站能够给以最平衡的成本进行维护或者保存系统或者在IT的中的领先水平。模块化的划分,更有利于“高内聚低耦合”的要求,对后续前端的性能调优更有好处。后续由文章专门提及前端的性能调优。
c、前端的动静隔离,按需加载控制。对于性能要求要求,通常整个业务流程下来,整个DOM节点数据是非常庞大,对一些比较老的机器,如XP的机器,性能问题一直会困扰。金融企业通常存在新老系统并存的情况比较普遍,新系统可以使用一些版本较高的IE或者谷歌,火狐等解决,但是对接老系统,那只能乖乖地回到IE中,起码要兼容主流的IE8+浏览器。另外,金融企业受监管等要求,需要接入各种硬件类Active控件插件浏览器支持,例如身份证读卡器,高拍仪,二维码扫描枪,U盾类读卡器等,所以对性能有问题,只能IE专门进行优化,然后IE的JS解析能力又比较弱(相比IE9+,chrome而言),特别是IE8的性能。后续写专门文章介绍,这个IE8前端性能优化方案。
D、对于查问题,那就需要有资深业务知识以及对技术把控能力的要求。金融企业,往往有不少的外包。外包的流动性以及内部员工的流动性,也导致很多技术型把控不到位,前端代码的规范不到位。金融系统的业务规则,往往又是专业性的,新来的人往往不知道很多业务规则,导致在开发过程埋下不少的坑或者地雷。
金融企业的前端难招,一是技术型的前端往往不愿意在业务规则中沉淀,懂业务规则往往对技术理解不深。对业务理解深入,对技术把握等比较好的人才,薪资又受金融企业的人事体制层层限制,所以最终还是留不住这种比较急需的人才。当然,这里也扯远了,对于有经验的全局把控人才,还是非常有价值的。对于生产问题,特别是紧急度比较高,故障类的,有经验的优秀前端,可以凭现象就能猜测出问题所在,直接修改,能直接修复。因为对金融系统而言,时间也是金钱,而且稳定性也是金融系统的一个重要指标。
E、设计上,优秀开发人员的把控到位,对前端代码的复审起到质量保证的前提。所谓前端的设计,更多是理解业务背景的基础上,对前端的修改,以及模块之间的联动等一个方案,以及修改前做成方案再进行。因为一些关联影响,在金融系统的错综复杂,新进入的人往往不了解背景,而修改一些不清晰的逻辑,而且造成一些原本不该改动的逻辑,若测试没有测试到,就会产生各种的生产问题,问题严重者甚至开除。
设计者除了把握自己的需求,还要保证自己手下的开发人员能够正常把需求做得漂亮。当然设计者也必须具备大需求,大项目来临的把握能力,往往核心的性的改动,都是需要这类设计者亲自操刀。这样保证,核心类需求改动能够在领导心理上可以安全有把握性上线。还有,设计人员把握到位,哪怕外包离职 ,也能很清楚逻辑的来龙去脉。有突发的生产紧急问题,设计人员能够马上定位出原因,立即制定出修复方案进行修复等。
F、代码规范上把控。前端代码的规范性把控,也是体现一个前端架构师的水平与能力。一般一个庞大的金融核心系统,需要一个前端架构师,下面带这三四个前端设计师,前端开发若干,包括手机端等。JS代码的规范,CSS样式代码规范,模块代码规范等,直接影响代码的可维护性。模块之间的关系逻辑,也是考验一个前端架构师对业务发展,对系统的未来扩展性一个考虑。
代码的复审,设计的复审,也是很重要把握前端质量重要方案。复审,也是对前端代码规范性一个重要考虑,既保证前端的代码质量,又保证代码规范性。当然前端架构师算是部门的资源,往往兼顾部门前端框架维护职责,对于公共性问题,应该在框架级别考虑解决。
上面谈都是些前端经验型总结,没有太多具体的实例,后续写一些文章,专门探讨具前端优化过程体实例中具体的解决方案。
祝大家生活,工作愉快!