谈谈这几年做过的项目和遇过的坑(二)

关于政务平台技术选型的讨论

  上一篇大致介绍了初入公司后参与的第一个项目原委始末,其实这几年都把时间耗这个事情上面了。为了方便各位看官理解,下面我先上一张系统设计的大概框图吧。

  标红的是我当时参与的项目(ps:后来项目不可控了,公司无奈又招兵买马重新构架了一套公司自主研发的政务平台,总算挽回了部分局面,后面章节细说吧)。公司原来就有一套VB.Net开发的办公自动化系统,我的任务就是帮助将现有办公系统整合到平台中,说白了就是把部门和用户整合到Java开发的新平台中,提供入口从而实现所谓的单点登录功能,后来发现单点登录根本就不是那么回事!而药店监管这一块主要包含了平台监管端和客户端。客户端主要满足零售企业的日常进销存业务的需要,同时将业务数据通过API接口发送给平台端供政府相关部门实时监控企业的业务数据,上文说了我和本公司同事一起负责客户端的开发。

有点跑题了,现在来说说技术选型吧。由于办公系统和客户端都要和平台发生关系,我也有幸参与了公司的技术选型的讨论会,呵呵…这次讨论会也让我增长了不少见识。讨论会是在南京研发公司那边开的。当时我们公司去了6个人,老板(ps:老板其实不懂IT,是个地道的IT门外汉!这么跟你说吧,平时打字都是用汉王的)、部门经理、技术顾问和加我一起的3个研发人员。南京那边1个技术总监(上文提到的Java大神),1个项目经经理和1个高级攻城狮。

  讨论的主题先从系统设计层面入手,然后再讨论了开发框架的选择,最后讨论到了数据库的选择问题(客户端数据库选择这块狗血了!)。上面那张设计图是项目经理画的,然后分别跟我们解释了各个模块设计的用意,还提到了一大堆我当时闻所未闻的架构术语,如企业服务总线(ESB)、企业数据总线(EDB),面向切面服务(SOA)、软件即服务(Saas),平台即服务(Pass)、基础设施即服务(Iass)。艾玛,听的我真是云里雾里,不明觉厉!

  开发框架如何选择这块是技术总监负责,不用我细说大家估计也猜出个大概,有点Java方面开发经验的同学都知道,用的是传统的SSH(spring+struts+Hibernate)开发框架,前端框架当时没有选择jeasyui、extjs、kendoui、bootstrap这种现在相对比较流行的框架,南京公司没有前端web开发人员,也别说美工了,所以程序员同时要兼顾美工和页面设计的活。另外还用到了一堆java web开发常用的第三方开源框架(不得不说java世界里真是一大片开源……),如:著名的工作流框架jBPM,操作pdf的iText,传统的日志记录框架log4j等等。

  在数据库选择这块,客户为了缩减预算,事先已经声明不用Oracle,那数据库自然选择好用又免费的mysql,如果到这里数据库选择就结束的话,剧情就没这么狗血了,因为平台里涉及到客户端进销存系统(C/S结构)这块,当时两公司领导决定将大平台提升一个档次,给平台加了点“既响亮又文雅”的特效——云计算,云服务!从此政务平台就称为”政务云服务平台“了!既然牵涉到云,那总要用点云相关的技术吧,听说当时mongoDB表现不错,技术总监决定在客户端尝试一番(ps:除了总监之前玩过mongoDB之外,其他人都没碰过这东西)。进销存系统数据库就使用mongoDB吧,你看!这样就能实现云存储了!将客户端的数据都放到服务器上用mongoDB存储,后来我们大家回到公司,通过网上查询相关mongoDB的资料之后,都提出了反对意见。很大原因是:

1,首先对于进销存系统而言,很注重数据的关联关系。

2,mongodb是非关系的文档型数据库,不支持事务操作ps:现在虽然说可以采用两段式操作,勉强算是支持了事务,但可操作性不是太方便,很多事务逻辑都需要人工处理并严格封装)。

大家都反驳mongoDB是不适合进销存系统的,并不是说mongoDB不好,而是不适合。为此当时我还在园子里写过一篇文章征求大家意见,有兴趣的朋友可以看看。可是总监给出案例说,国内著名的网站视觉中国就在用mongoDB,大家都说好!为此我也写了封邮件给视觉中国的老大潘凡。给的答复是这样:

 

 总监看完回复之后说,不是mongoDB不适合,而是我们不会用!然后又给我们吃了定心丸,说今后开发会辅助我们的,有问题就跟他请教就行了。当时我不是决策者,只能硬着头皮上吧!后来除了客户端数据库使用MongoDB之外,政务平台中负责接收客户端数据的业务监管系统也使用了MongoDB,相关企业档案信息也一并存入MongoDB。这样平台就“名副其实”的成为云服务平台了!也就在这一刻埋下了失败的种子。未完待续……

  下一篇:项目开发之需求调研——净扯皮了!

  ps:文笔不好,写的思路可能有点乱,也是想到哪写到哪,望各位看官轻喷,谢谢……

  

 

时间: 2024-11-17 09:46:32

谈谈这几年做过的项目和遇过的坑(二)的相关文章

10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下-------------答题者:徐潇瑞

10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下 - 当时的项目有多少用户,给用户多少价值? 现在还有人用吗? - 这个项目能否给我们团队继续开发,源代码/文档还有么? - 项目开发有什么经验和教训 - 对学好软件工程有什么建议 写成一个博客   #团队博客作业2 根据老师的作业要求,我们采访了以前本科认识的一个同学,他在读本科的时候出去实习,参与了一些项目.他参与了手机外卖app的开发,根据他的回答,当时用户有1

Atitit.为什么小公司也要做高大上开源项目

1. 为什么手头有很多加急的事情还要做高大上开源项目??1 2. 从长远看,发展 高大上开源项目计划对于解决我们在应急项目正面临着的种种严峻问题也大有裨益,1 3. 但是,我们不能仅靠搁置高大上开源项目之旅,就能实现应急项目2 4. 我们在高大上开源项目计划上所作出的努力,会有助缓解甚至最终解决 严峻问题2 5. 刺激技术发展和酝酿科学知识2 6. 高大上技术不能为直接提供资助,但它会为我们带来许多新技术.新技能2 7. 高大上技术他们的研究将会为我们带来累累硕果.3 8. 就推动新技术发展及基

用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。

最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量.<s:iterator>标签有一个value属性,用来存放在Action类的方法中存数据的list集合,还有一个id,好像是说指定集合的索引的意思,就是给list集合遍历出来的每个对象加上一个数字标签,反正我是这么理解的,没用过.还有一个很重要,就是var变量,我在s:iterator按ctr

手把手教你做关键词匹配项目(搜索引擎)---- 第三天

第三天 小王(运营总监)看到小丁丁整天都在淘宝.百度.魔方.拍拍上面淘关键词,每天花费的时间好长,工作效率又低,拿着这个借口来找到我. 说到:小帅帅,你看小丁丁每天都在淘宝.百度.魔方.拍拍上面淘关键词花费的时间好长,你能不能帮帮忙,看看能不能让系统自己做啦,这样可以节省好多人力,带来的效益多高.(0 其实就是为了掩饰他们懒惰 0) 小帅帅一听到可以带来的效益好高,王总还求着我呢 ,马上 两眼冒着星光,是该好好体现, 解决这个问题就可以体现出我的价值. 小帅帅拍着胸膛保证到:王总,这个小KS啦,

那些年,做过的项目 (上)

进入IT这个坑转眼快10年了,从开发到运维到DBA,一直做着最底层的工作,干些琐碎的事情,今天来巴拉巴拉那些年做过的项目,告慰一下失去的青春岁月!小项目就不提了,讲几个拿得出手的. 第一个拿的出手的项目是广东移动的多媒体痤席项习,时间大概是2007年十月.十一月左右吧,多媒体坐席是个什么东西呢,它不是东西,它其实是广东移动网页版的10086系统(类似于QQ),是广东移动布局互联网服务的一个入口,也是为了在不方便打电话的情况下,还可以通过网络来解决服务问题,不至于出现服务肓区.项目的系统架构:终端

那些年,做过的项目 (下)

2009到2011年的重点项目是广东移动NGCC项目,NGCC就是下一代呼叫中心的简称,类似的还有NGBOSS.NGCRM(下一代BOSS系统,下一代 客户关系管理系统).这个项目是为3G网络而建立的,目地就是整合资源.发挥优势.更好的为用户服务.项目分四期,广东移动投资好几个亿, 建设方.承建方.监理方一应俱全. 系统架构:终端(桌面云)+ 集群应用服务器 + 集群中间件 + 分布式集群数据库,负载均衡是F5.软件架构:Struct2 + Spring + DAS.在800多台服务器中,大规模

那些年,做过的项目 (完)

2010年12月底项目实施过程中, NGCC系统发生了一次重大的故障,当时的处理过程和上月底支付宝故障的处理过程有点相似,在这里来说说吧.故障的原因是一台数据库主机的交换分区耗完了(是P595主机的配32个CPU 96G内存),但是主机并没有宕掉,导致服务不能自动切换到另一台主机上,当时的影响是广东移动半个省的10086电话受到影响,而时间大概11点多,已经进入了业务的高峰期.这是个非常严重的故障立刻上报省公司.分析故障最后给出的解决方案是关掉监听,让应用自动切换另一台主机.把方案上报后,等待省

跟着视频做的SSH项目总结

一直没做过SSH(Struts2+Spring+Hibernate)的实际项目,只是三个框架学的还熟练,但整合起来使用就不知道了.所以前段时间在网上找了一套SSH实际项目的视频来学习(确切的说是买的...),一直没时间来总结,得到的经验主要是SSH的整合及配置,更多的则是SSH之外的一些经验,比如代码的书写及规范上就给了我很大的启发,很多经验只有从实际项目中才能得到.总体来说,SSH整合起来使用不是很难,配置文件也基本是固定的模式. 先看下项目截图 1.首页 2.商品详细 3.购物车 4.订单管

【0】分享一个正在做的SSM项目

正在做一个外包项目,虽然老板百般让我复制别人写好的代码(普通jsp跟servlet做的,一个字:乱). 但是!!我怎么可能这么没有追求,学了一段时间的SSM框架后,果断用SSM改装了,当然咯,前端的版式和模样都一样,所以看着没区别.可以后期维护肯定不一样的.维护起来一定会越来越深刻.按照我想法,用jsp跟servlet直接干的,维护起来只能让自己的思路越来越乱,这样是做不了大项目的. 有需求项目经验,但是找不到合适项目的,我可以共享给你(一起交流,一起做,please留言),当然了,项目用的数据