谈谈这几年做过的项目和遇过的坑(二)
<h1 style="text-align: center">关于政务平台技术选型的讨论</h1><p> 上一篇大致介绍了初入公司后参与的第一个项目原委始末,其实这几年都把时间耗这个事情上面了。为了方便各位看官理解,下面我先上一张系统设计的大概框图吧。</p>
<p><img style="display: block; margin-left: auto; margin-right: auto" src="https://images2015.cnblogs.com/blog/50949/201511/50949-20151119203514030-731647824.png" alt="" width="585" height="402"></p>
<p><strong><span style="color: rgba(255, 0, 0, 1)"> 标红的</span></strong>是我<strong>当时参与</strong>的项目(ps:后来项目不可控了,公司无奈又招兵买马重新构架了一套公司自主研发的政务平台,总算挽回了部分局面,后面章节细说吧)。公司原来就有一套VB.Net开发的办公自动化系统,我的任务就是帮助将现有办公系统整合到平台中,说白了就是把部门和用户整合到Java开发的新平台中,提供入口从而实现所谓的单点登录功能,<strong>后来发现单点登录根本就不是那么回事!</strong>而药店监管这一块主要包含了平台监管端和客户端。客户端主要满足零售企业的日常进销存业务的需要,同时将业务数据通过API接口发送给平台端供政府相关部门实时监控企业的业务数据,上文说了我和本公司同事一起负责客户端的开发。</p>
<p> 有点跑题了,现在来说说技术选型吧。由于办公系统和客户端都要和平台发生关系,我也有幸参与了公司的技术选型的讨论会,呵呵…这次讨论会也让我增长了不少见识。讨论会是在南京研发公司那边开的。当时我们公司去了6个人,老板(<strong><span style="color: rgba(255, 0, 0, 1)">ps:老板其实不懂IT,是个地道的IT门外汉!这么跟你说吧,平时打字都是用汉王的</span></strong>)、部门经理、技术顾问和加我一起的3个研发人员。南京那边1个技术总监(上文提到的Java大神),1个项目经经理和1个高级攻城狮。</p>
<p> 讨论的主题先从系统设计层面入手,然后再讨论了开发框架的选择,最后讨论到了数据库的选择问题(<strong>客户端数据库选择这块狗血了!</strong>)。上面那张设计图是项目经理画的,然后分别跟我们解释了各个模块设计的用意,还提到了一大堆我当时闻所未闻的架构术语,如企业服务总线(ESB)、企业数据总线(EDB),面向切面服务(SOA)、软件即服务(Saas),平台即服务(Pass)、基础设施即服务(Iass)。艾玛,听的我真是云里雾里,不明觉厉!</p>
<p> 开发框架如何选择这块是技术总监负责,不用我细说大家估计也猜出个大概,有点Java方面开发经验的同学都知道,用的是传统的SSH(spring+struts+Hibernate)开发框架,<strong>前端框架当时没有选择jeasyui、extjs、kendoui、bootstrap这种现在相对比较流行的框架</strong>,南京公司没有前端web开发人员,也别说美工了,所以程序员同时要兼顾美工和页面设计的活。另外还用到了一堆java web开发常用的第三方开源框架(不得不说java世界里真是一大片开源……),如:著名的工作流框架jBPM,操作pdf的iText,传统的日志记录框架log4j等等。</p>
<p> 在数据库选择这块,客户为了缩减预算,事先已经声明不用Oracle,那数据库自然选择好用又免费的mysql,如果到这里数据库选择就结束的话,剧情就没这么狗血了,因为平台里涉及到客户端进销存系统(<strong>C/S结构</strong>)这块,当时两公司领导决定将大平台提升一个档次,给平台加了点“既响亮又文雅”的特效——<span style="color: rgba(255, 0, 0, 1)">云计算,云服务!从此政务平台就称为”政务云服务平台“了!</span>既然牵涉到云,那总要用点云相关的技术吧,听说当时mongoDB表现不错,技术总监决定在客户端尝试一番(ps:除了总监之前玩过mongoDB之外,其他人都没碰过这东西)。进销存系统数据库就使用mongoDB吧,你看!这样就能实现<span style="color: rgba(255, 0, 0, 1)"><strong>云存储</strong></span>了!将客户端的数据都放到服务器上用mongoDB存储,后来我们大家回到公司,通过网上查询相关mongoDB的资料之后,都提出了反对意见。<span style="color: rgba(255, 0, 0, 1)"><strong>很大原因是:</strong></span></p>
<blockquote>
<p><span style="color: rgba(255, 0, 0, 1)"><strong><strong>1,首先对于进销存系统而言,很注重数据的关联关系。</strong></strong></span></p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong><strong>2,mongodb是非关系的文档型数据库,不支持事务操作</strong><span style="color: rgba(0, 0, 0, 1)">(</span></strong><span style="color: rgba(0, 0, 0, 1)">ps:现在虽然说可以采用两段式操作,勉强算是支持了事务,但可操作性不是太方便,很多事务逻辑都需要人工处理并严格封装</span><strong><span style="color: rgba(0, 0, 0, 1)">)。</span></strong></span></p>
</blockquote>
<p>大家都反驳mongoDB是不适合进销存系统的,并不是说mongoDB不好,而是不适合。为此当时我还在园子里写过一篇文章征求大家意见,有兴趣的朋友可以看看。可是总监给出案例说,国内著名的网站视觉中国就在用mongoDB,大家都说好!为此我也写了封邮件给视觉中国的老大潘凡。给的答复是这样:</p>
<p> <img style="display: block; margin-left: auto; margin-right: auto" src="https://images2015.cnblogs.com/blog/50949/201511/50949-20151121135424546-803448941.png" alt="" width="780" height="513"></p>
<p> 总监看完回复之后说,不是mongoDB不适合,而是我们不会用!然后又给我们吃了定心丸,说今后开发会辅助我们的,有问题就跟他请教就行了。当时我不是决策者,只能硬着头皮上吧!后来除了客户端数据库使用MongoDB之外,政务平台中负责接收客户端数据的业务监管系统也使用了MongoDB,相关企业档案信息也一并存入MongoDB。这样平台就“名副其实”的成为云服务平台了!也就在这一刻埋下了失败的种子。未完待续……</p>
<p> <strong>下一篇:项目开发之需求调研——净扯皮了!</strong></p>
<p> </p>
<p> <strong> ps:文笔不好,写的思路可能有点乱,也是想到哪写到哪,望各位看官轻喷,谢谢……</strong></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
<div id="Signature"> <div>作者:JaryLeely</div> <div>出处:http://www.cnblogs.com/Jaryleely/</div> <div style="font-size:14px">让我们一起站在中场,看清未来的变量!</div> </div><br><br>
来源:https://www.cnblogs.com/Jaryleely/p/careertwo.html
頁:
[1]