移动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,致我们终将逝去的青春(程序员版)[转]的更多相关文章

  1. chrome常用扩展程序汇总(程序员版)

    chrome常用扩展程序之程序员版 1.chrome扩展程序 Chrome插件是一个由Web技术开发.用来增强浏览器功能的小程序,其实就是一个由HTML.CSS.JS.图片等静态资源组成的一个.crx ...

  2. 可视化工作流程设计开发OA系统,一两个程序员就搞定!

    随着信息化的发展,越来越多的公司老板要求实现企业审批流程化.一个公司在初期,人员少,流程简单,员工也会经常不按工作流程来走,甚至有些跨部门的工作因为关系原因,没有走工作流程就实施,导致后期出现问题或者 ...

  3. 聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

    引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...

  4. 程序员"青春饭"问题之我见

      程序员"青春饭"问题之我见 声明:转载请注明出处.http://www.cnblogs.com/hzg1981/ 1. 问题描述 问题1: 什么是程序员? 在本文中程序员的定义 ...

  5. 致Java星球程序员兄弟们的一封信

    致Java星球程序员兄弟们的一封信 亲爱的Java星球的程序员兄弟们: 你们好!我是来自地球的一名Java程序员,首先我代表地球人对贵星球的高司令来到地球传授Java语言,造福了全人类,造福了整个地球 ...

  6. 【转】程序员"青春饭"问题之我见

    1. 问题描述问题1: 什么是程序员?在本文中程序员的定义为: 拥有编程技能,在IT.互联网公司打工的IT从业人员.程序员与很多行业最大的不同是该行业的形成时间短:1954年第一台计算机才诞生,而中医 ...

  7. SQL Server 致程序员(容易忽略的错误)

    标签:SQL SERVER/MSSQL/DBA/T-SQL好习惯/数据库/需要注意的地方/程序员/容易犯的错误/遇到的问题 概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见 ...

  8. 致诸位新程序员:来自Chuck Jazdzewski慈父般的忠告

    记住这几句话,学无止境.(Never stop learning.)沟通至关重要.(Communication is critical.)履行承诺,胜过交付.(Under promise, over ...

  9. (转)致Java程序员:你离架构师还差多远?

    转至:https://blog.csdn.net/ityouknow/article/details/82782965 几乎每个Java程序员心中,都有着成为架构师的技术追求.那么,成为Java架构师 ...

随机推荐

  1. 尝试一下sql server2016里面的json功能

    前2天下载了一个2016的rc版本来玩一下,首先感觉是~开发者版本免费啦!!撒花!!!另外一个东西,sql server 2016能支持json 的解析和应用啦,虽然我不知道它的性能如何,先来一发测试 ...

  2. 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式

    在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式 转载自:http://blog.163.com/smhily_min/blog/static/75206226201092011 ...

  3. android setLayoutParams 问题,出错

    LinearLayout layt = (LinearLayout) rootView.findViewById(R.id.llt_2); FrameLayout.LayoutParams layou ...

  4. android WebView网页浏览器

    组件位置:composite>WebView .xml <WebView android:id="@+id/webview_pipeweb" android:layou ...

  5. 谈谈Lucene和Solr索引存目录

    在Lucene中,有几种索引存放模式呢?用过的人可能记得SimpleFSDirectory.MMapDirectory.NIOFSDirectory.RAMDirectory这四种.新版本的通过FSD ...

  6. MMORPG大型游戏设计与开发(游戏服务器 游戏场景 概述 updated)

    我们在玩游戏的时候,我们进入游戏后第一眼往往都是看到游戏世界中的场景,当然除了个别例外,因为那些游戏将游戏场景隐藏了起来,如文字游戏中的地点一样.既然我们接触了游戏世界的核心,那么作为核心的场景又包括 ...

  7. Android View和ViewGroup

    View和ViewGroup Android的UI界面都是由View和ViewGroup及其派生类组合而成的. 其中,View是所有UI组件的基类,而 ViewGroup是容纳这些组件的容器,其本身也 ...

  8. LCIS(最长公共上升子序列)Vijos1264神秘的咒语

    描述 身为拜月教的高级间谍,你的任务总是逼迫你出生入死.比如这一次,拜月教主就派你跟踪赵灵儿一行,潜入试炼窟底. 据说试炼窟底藏着五行法术的最高法术:风神,雷神,雪妖,火神,山神的咒语.为了习得这些法 ...

  9. 第26章 创建型模式大PK

    26.1 工厂方法模式 VS 建造者模式 26.1.1 按工厂方法建造超人 (1)产品:两类超人,成年超人和未成年超人. (2)工厂:这里选择简单工厂 [编程实验]工厂方法建造超人 //创建型模式大P ...

  10. DOM、Window操作

    一.DOM的基本概念 DOM是文档对象模型,这种模型为树模型:文档是指标签文档:对象是指文档中每个元素:模型是指抽象化的东西. 一.基本语法: 数据类型(字符串,小数,整数,布尔,时间) var, v ...