移动OA,致我们终将逝去的青春(程序员版)[转]
移动OA和致青春有什么关系,难道说赵薇也来做手机应用了?为什么不行,当年小燕子代言的打印机可是红火的很,现在再秀一把时尚手机办公也未必不可啊。言归正转,本文还是以点代面阐述移动OA开发过程,但是,它的确会是我们终将逝去的青春。
都说程序员是也是吃青春饭的,我也算是老程序员了,最近被集团公司派到下属集成公司负责移动项目的开发。接手的第一个项目就是移动OA,政企部门分配过来的单子,现在要先尽快出一个演示DEMO给客户。第一次负责此类项目,对于新领域、根据以往的经验先找一下有什么开源的库好用。唉,咱们的程序员都是吃开源饭的!大名鼎鼎的phoneGap因为开源首先被选中啊,据说做web app的首选。兴奋、赶紧让手下小弟开始捣鼓,果然没几天DEMO页面出来了。接下来就开始深入开发了,随着需求的发展恶梦开始了。首先为了显示效果和图片的高像素(三星的大屏机器),美工做了很多样式和高精度图片,整个系统立刻变得迟钝了,明显的感觉到上色的延时。其次莫名的奔溃和错误让小弟们加了无数的夜晚,最后糊出来给用户的程序仿佛做的夹生饭一样,用也不好、不用也不好!
唉,青春就这样给浪费了,原因在于phoneGap虽然开源但是其设计并无规则可寻,无法彻底掌握和进行单步跟踪调试,其次phoneGap为了兼容性做了很多无用功使得性能大打折扣,与其使用phoneGap那还不如直接原生开发来的方便,能够自主掌握。最后总结了一下,为这样的项目费这么多青春不合算。相信程序员同志们应该有同感,每当项目使用一个无规可寻的第三方系统的时候,无法彻底掌握就浪费了大量的时间在猜测上和深夜一遍又一遍的测试上,最后能解决的仿佛都是中彩一样兴奋。
有一次在集团交流会议上看到同行的移动OA产品,据说是采用移动中间件实现的,想起前次的经历还历历在目,不能掉以轻心。网上搜索一下“移动中间件”,发现还是有不少类似的产品,先找了一家号称上万用户的产品,就算全年无休也要1天做5家用户啊,神了,又是一个过抗日神剧。不管,先试试吧。由于其提供了很多系统封装好的组件,小弟们拷贝过来堆砌一下就出界面了还算不错,程序开发变成了查配置手册。随着开发深入恶梦又来了,系统提供的组件功能太单一、组件之间没有逻辑控制和关联关系。比如常用的待办列表显示功能,客户要求在列表上滑动后弹出选项标注“已看”、“先放着”、“不清楚”状态,然后以不同的颜色显示在列表上,系统提供的组件就立刻歇菜了,个性化太强的功能实现不了,就先算了吧。可是更大的问题来了,集团发的手机型号很多,同样的程序有的机器就奔溃、有的机器就能运行。这样系统组件的奔溃就无语了、爱莫能助,没办法调试只能求助厂家。
青春再次被浪费了,原因在于别人提供封装好的组件一旦有问题就无法解决,发现移动中间件的跨平台适应性是比传统程序难度更加高些。相信程序员同志们都有类似的经历,用了别人的固化组件结果在这个上面被折腾的有种打不着力的感觉、有力无处使啊。不断发现问题,然后就等厂家升级改动。
又过了段时间,政企的一个大客户用了Lotus OA系统,原来的开发商没有了,现在需要装到手机上来用。这下傻眼了,貌似只能用移动中间件了,再次百度一下“移动中间件”,关注到一家公司提供的产品介绍为“MAStudio移动中间件,不需要原有厂家、即可延生固网系统”好像比较合适。硬着头皮也要上啊,带着前两次的问题开始考察MAStudio产品,看官方mastudio.org上的介绍,系统提供了一种mas框架的结构体系实现了移动OA的开发。而框架本省是简单的对象组件形式、和具体开发UI功能无直接关系,UI开发可以完全自主去实现,系统也提供了各种成品的UI组件,但是它们是可以被修改和改造的。框架的源代码竟然也是开源的,这在国内是不多见的。
从这个原理分析上来看,这个中间件可以让小弟们挽回青春,于是开始深入尝试开发。首先在mas框架下实现各种个性的自定义功能界面非常方便,没有任何系统提供固化组件的约束,框架只是一个运行容器,对于开发UI的干预程度非常少,这样的设计理念还是比较独特的。框架会不会也有问题哩,带着着个疑问我们打开了MAStudio的源代码,从MAStudio提供的代码看出层次结构非常合理,特别是针对手机硬件功能扩展部分,源代码特别提供了标准的扩展接口,这就大大方便了特殊行业的扩展需求。在这个平台上终于可以自主掌握了,像以前即使个别手机有问题也可以用源代码进行进行跟踪调试了。
当我们没有选对平台的时候,大量的时间不是在开发和生产,而是在一直处于测试、调试反馈等待的状态。所以说程序员开发前期线路和技术方案的是很重要的,关系到我们的青春啊。这也就是为什么很多人多年后回头一看,什么累积也没有,高智商的程序开发硬是变成了青春饭!
移动OA,致我们终将逝去的青春(程序员版)[转]的更多相关文章
- chrome常用扩展程序汇总(程序员版)
chrome常用扩展程序之程序员版 1.chrome扩展程序 Chrome插件是一个由Web技术开发.用来增强浏览器功能的小程序,其实就是一个由HTML.CSS.JS.图片等静态资源组成的一个.crx ...
- 可视化工作流程设计开发OA系统,一两个程序员就搞定!
随着信息化的发展,越来越多的公司老板要求实现企业审批流程化.一个公司在初期,人员少,流程简单,员工也会经常不按工作流程来走,甚至有些跨部门的工作因为关系原因,没有走工作流程就实施,导致后期出现问题或者 ...
- 聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路
引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...
- 程序员"青春饭"问题之我见
程序员"青春饭"问题之我见 声明:转载请注明出处.http://www.cnblogs.com/hzg1981/ 1. 问题描述 问题1: 什么是程序员? 在本文中程序员的定义 ...
- 致Java星球程序员兄弟们的一封信
致Java星球程序员兄弟们的一封信 亲爱的Java星球的程序员兄弟们: 你们好!我是来自地球的一名Java程序员,首先我代表地球人对贵星球的高司令来到地球传授Java语言,造福了全人类,造福了整个地球 ...
- 【转】程序员"青春饭"问题之我见
1. 问题描述问题1: 什么是程序员?在本文中程序员的定义为: 拥有编程技能,在IT.互联网公司打工的IT从业人员.程序员与很多行业最大的不同是该行业的形成时间短:1954年第一台计算机才诞生,而中医 ...
- SQL Server 致程序员(容易忽略的错误)
标签:SQL SERVER/MSSQL/DBA/T-SQL好习惯/数据库/需要注意的地方/程序员/容易犯的错误/遇到的问题 概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见 ...
- 致诸位新程序员:来自Chuck Jazdzewski慈父般的忠告
记住这几句话,学无止境.(Never stop learning.)沟通至关重要.(Communication is critical.)履行承诺,胜过交付.(Under promise, over ...
- (转)致Java程序员:你离架构师还差多远?
转至:https://blog.csdn.net/ityouknow/article/details/82782965 几乎每个Java程序员心中,都有着成为架构师的技术追求.那么,成为Java架构师 ...
随机推荐
- RTP、RTCP协议学习-2015.04.15
最近做视频编解码部分,传输采用RTP协议.对学习做个记录 1.简介 实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工 ...
- mongo 主从数据不同步
在从库上执行如下命令: repset:SECONDARY> rs.slaveOk()repset:SECONDARY> db.runCommand({"resync": ...
- Webview加载本地js、图片的方法
在项目开发中经常会将比较大的js.图片.css等放到app中,而html放服务器,这样在使用时流量较少,加载也比都放服务器上快,其实方法也比较多,网上搜了很久都没结果. 一种是获取服务器返回的html ...
- mysql workbench EER model 乱码
如图所示: 解决办法: Edit-->perference...-->Apperance 如下图
- Java—Lambda基础
虽然JVM有着Scala .Groovy .Clojure 等依赖于JVM的函数语式语言,但直到Java8才算是java正式支持函数式编程: Java8中加入了Lambda的支持标志着Java正式加入 ...
- iOS解决隐藏导航栏后,打开照片选择器后导航栏不显示的问题以及更换导航栏背景色
问题描述: 遇到一种情况,在一个控制器上(隐藏了导航栏),打开照片选择器 UIImagePickerController后,照片选择器头部一片空白,且上滑相册时,信息会有错乱效果. 原因分析: 通过查 ...
- ELK日志解决方案安装配置与使用
官方网站:https://www.elastic.co/products/elasticsearch logstash,elasticsearch,kibana作用如下: logstash:分布在每一 ...
- selenium结合sikuliX操作Flash网页
sikuli的官网地址:http://www.sikuli.org 首先下载sikuliX的jar包:https://launchpad.net/sikuli/sikulix/1.1.0 java-d ...
- AC日记——阶乘和 openjudge 1.6 15
15:阶乘和 总时间限制: 1000ms 内存限制: 65536kB 描述 用高精度计算出S=1!+2!+3!+…+n!(n≤50) 其中“!”表示阶乘,例如:5!=5*4*3*2*1. 输入正整 ...
- No2. S2错题本
---恢复内容开始--- 正确答案:D,因为isFormField()是FileItem类的方法 正确答案:C,因为当//1处代码执行后,第0项就删除了,那么list.Add(1)内的对象就会自动补位 ...