标题是为了通用;其实今天我想说的是我司的产品化!
产品化的好处不言而喻了,就是开发一套能满足特定用户需求的软件产品;到处卖赚钱!比如ERP、CRM、CMS啊等等;这样就可以多赚钱。
可是我司处于电信行业,这个行业的公司都非常尴尬;基本上的模式是甲方是上帝;而且每个上帝的需求都是不一样的;你必须要一一满足;没得商量!不像腾讯、百度、阿里巴巴等等这些互联网公司他们的产品不必去满足每个用户的需求;他们先是按照自己的思路去创造一款产品出来;然后根据市场的反馈,用户的需求的收集找出有利于产品发展的路子走下去。而且只要满足大部分用户就好了;其实对于用户来说你只是被动的接受;所以要么用要么你卸载了不用!好比微信,早期的微信我感觉真的很垃圾速度慢、界面丑;尽管他现在还是这样,但是别人都在用你被迫也要用;其实比微信做的好看好用的APP多的去了……
话题转回我司的产品化;其实在我看来我司很多东西都不具备产品化的条件。无奈BOSS说了; 公司必须产品化;于是乎就是各种往产品化上去靠;就好比这几年流行云和大数据一样;什么玩意要吸引眼球都要往上沾点边;好比云笔记(其实就是尼玛以前的在线笔记啊)、云单车、云青菜炒肉丝、云公交车、云电视、云厕所、云卫生纸等等等。例如我们公司的CRM系统不同的行业:联通、电信、移动 业务不同;相同的行业不同的省份业务不同;CRM确实是一个产品;但是这个产品不是类似微信了一个统一的版本来满足大家的要求;而是五花八门的各种版本;我感觉他们更多是底层业务模型和概念意义上的产品。
最近我们大数据产品线承接了IFRS财务系统的开发;这个是我看来这几年碰到的最容易产品化的系统了。可是我们在实时工程中也是遇到了不同省份数据的差异;好在我们已经做到了前台门户及展示层的产品化;后台大数据核心计算引擎的产品化;在不同的省份我们只是个性化的处理接口层以外的适配。
产品化往大可以吹的很大;今天我只想结合我们前台来说说产品化之路上的一些感受:
1、重视前期的技术选型。
在开发IFRS系统应用程序和底层门户框架的时候我们的着眼点是产品化的。所以我们在做ORM框架选项的时候毫不犹豫的使用了Hibernate。事实证明这个选择是明智的;因为在安徽移动使用的是MySQL数据库、在黑龙江移动和四川移动使用的就是Oracle试想如果当初用的是MyBatis那就尼玛就坑了; 需要做的东西太多了!整个Dao层你需要做两份!
其实我个人推崇hibernate的原因就是快速开发的能力;用户需求的变动以及系统框架功能的升级;急速响应!开发效率非常非常高!可惜的就是Hibernate的学习曲线陡!不像Mybatis整个玩意一周的时间足够把他玩到烂!但Hibernate你用个几年而且深入研究一些特性你根本玩不转;玩到最后往往关系映射、级联、session关闭、缓存等问题把你套进去!
2、编码注重通用性。
这块主要是一些编程技巧的;这是我最近把IFRS系统从struts2+spring4+hibernate4 改成 springmvc4+spring4+hibernate4 的一些感悟;由于Spring这个框架的强势和几乎不可替代性;我们在编码时能从Spring获取的东西;尽量不要从其他框架获取;比如在普通的JAVA类中获取ServletContext;你可以走struts2也可以走Spring;那么最好还是后者。其次代码的向下兼容性一定要考虑!这也是我们在不同省份部署时遇到的坑!我个人的癖好就是喜欢用最新的稳定版的框架或者JDK。所以在开发的时候我用的是Tomcat8、JDK1.8、hibernate和spring都是最新版本;在安徽移动部署软件是我们自己提的因为负责平台的也是我公司的人。但是到了四川成都和黑龙江这些都变了;用户安装的是JDK1.6、服务器分别是BES(国产小厂家的web server仅支持JEE5.0)和WEBLOGIC。而且局方很强势;就是这些东西必须这样;特别是BES和weblogic10没得商量,你必须将就他;于是老子就开始把程序降级!所有的框架和JEE标准全部往下降,因此也去除了很多功能最实用的功能就是WebSocket了;我用在任务下载的实时通知上。
所以代码的通用就是尽量和平台无关、尽量用低版本的老老实实的语法;如果你大量使用了JDK8的lambda那么你就哭吧...
关于产品化的东西暂且说到这吧。我只是结合我司的现状扯点心得和看法;都是后很肤浅的东西;再扯点其他的:某省部署的时候他们坚决不用TOMCAT;说开源的漏洞多不安全;这个我不否认;但是他们在评估上线标准的时使用了开源的东西比如tomcat之类的服务器直接否决不准上线。真是懵逼了;JAVA这个行当有多少东西不是开源的?你们有必要这么神经质吗?你这么不把服务器给关了;尼玛因为Linux也是开源的;怎么不把所有的应用给停了;因为几乎每个java项目都会或多或少的用到开源项目。
……
本文由 huzd 创作,采用 知识共享署名4.0 国际许可协议进行许可本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名最后编辑时间
为:
2017/07/14 23:03