“京工飞鸿”是怎么做出来的?

“京工飞鸿”是学生事务中心最近推出的一项两校区文件快递服务,依托研究生助管团队,为师生、部门在两校区之间传递纸质文件建立了一个平台。简单来说:我们是免费的快递。

“京工飞鸿”这个名字的历史就不赘述了,我们选这个名字一是适合,二是情怀。点子和名字是有情怀的人想到的,事儿也是一队有情怀的人做起来的。但这里不是要说情怀,联盟上有一个帖子:学生事务中心 正式上线,欢迎大家讨论在学校期间办理事务的痛点难点 ,有兴趣可以跟那个楼主讨论情怀。

这里想说的是“京工飞鸿”那个系统的事儿,倒不是说系统做得有多好,而是想说系统是怎么做出来的,说系统怎么做出来的也不是想写一个技术文章,更想说的是通过“京工飞鸿”、“宿舍管理”、“综合管理”等若干小系统的开发,加上之前多年信息化相关的工作经历……

我更加坚定认为学校的信息化建设买是买不来的,南橘北枳,想做好只能自主开发,而且从技术层面来说,这一点都不难,困难在于想好、控制好自己的需求。

那么问题来了,怎么做?下面是我的做法。

得先有一个规划

下面这图是我到学生事务中心后做的一个规划,借用了李凌的模板,把自己要做的几个小系统嵌入在学校的整体框架里面。通过8个相对独立的小系统(或网站)构筑学生事务中心的信息化体系,为学生提供的服务界面包括网站、微信企业号(飞鸿快递已经可以微信下单)、服务大厅、门禁授权(最近更换完门禁控制器即可实现根据宿舍安排自动授权)、各类自助打印。

学生事务中心信息化建设框架

目前看都在按原计划实施中,待明年上半年全部系统都运转起来后,预计会有非常明显的规模效应。

为什么分这么多小系统?推荐李凌的文章:从构筑大系统,到编写小应用

整个规划不算小,但我把它分解成多个小系统之后,每个小系统就变得好操控了,都是我一个人可开发、可维护的级别。每个小系统各司其职,都使用单点登录,部署在一起,相互之间数据共享通畅,成为一个有机整体。

“京工飞鸿”是校园服务系统中的一项。此外最近又推出了“代办服务”,就是我们助管拿着学的一堆资料替其本人在两校区、各部门办理业务,最后把结果返回给申请人,比如良乡校区学生公费医疗报销,比如户籍卡借还……在这个系统里,我把网络中心提供的那些“看不见的基础服务层”能利用的都给利用上了,比如与微信企业号的接口、短信网关、一卡通接口,更不用说必须的单点登录。

而实际上,开发这样一个系统,并不比把大象装进冰箱里需要的步骤多,其中最关键的是确定、一定以及肯定地描述清楚:

我到底需要系统做什么?

你到底需要系统做什么?

这个问题的回答,极有可能是:我需要某某功能……;我需要看到这样那样的统计……;我需要这样那样的一个按钮,点一下,然后系统“咔~”就自动怎么怎么了……

这么说道理上也没错,但若要做好一个系统,不能光这样做需求分析,更不能谁都来提需求。我认为需求分析阶段最重要的是分析好系统内部有哪些数据,然后再考虑对这些数据的操作,并且严格控制需求的规模。

关于需求分析的经典笑话

对于“京工飞鸿”来说,核心数据就一个存储快递单的表,实际这个表里面的内容跟我们发顺丰时要填的内容大同小异,除此核心数据之外再定义好快递的状态字典,比如填写、揽件、出发、到达、派件、签收……以及记录好快递状态改变是谁操作的,什么时候操作的。

所谓系统的功能,不过就是对数据的增删改查,并对重要的操作做好记录。大部分信息系统本质上都是如此,学籍管理是最典型的场景。

数据有无标准?

统一的数据标准是多个系统能够共享数据的前提条件,幸好网络中心这方面也已经做了不少工作。如果我的系统需要获取准实时的学生信息(校园服务不需要,但宿舍系统需要),那么按照他们写好的Domain建好学生基本信息表以及证件类型、校区、学生类别等多个字典表,他们就可以很方便给我的系统做数据同步,让我系统里的学生名单和教务处、研究生院系统同步——当然数据准确与否是另一个与技术无关的话题。

标准是个好东西,更好的是前段时间学校推出的信息系统管理办法,以后不遵守这个游戏规则的系统不让上线运行。这和秦灭六国后统一度量衡、统一货币是一个道理。

你确定吗?

“京工飞鸿”运行起来之后,我们想到应该把它扩展成“代办服务”,这的确是个好主意!但快递是顺序的状态切换,而代办服务是有反复并最终要把资料返回给申请人的,快递正常可不需要返回什么。

代办服务状态切换

在平衡利弊之后,我决定把这两项业务分开,不把他们搅合在一起,以便让两种业务未来还有各自的扩展空间。

一个系统运行起来之后,突然要改变某些根本性的结构,对系统的造成的负面影响会非常大,甚于重做一套。但这种情况实际可能很常见,比如调整培养方案结构,增加模块化等新概念。“杀一个程序员不需要枪,改三次需求就可以了”

开发过程其实相对简单多了

按照上面思路,在确定、一定以及肯定地描述清楚好系统中的数据之后,开发就很容易了。

新建项目,配置好网络中心的各种基础服务插件,在定义Domain即数据表之后,使用脚手架就已经实现了基本的增删改查,整个过程用不了半小时。

在基本增删改查基础上,根据需求,定义好Views和对应的Controllers,把用户和权限管理交给CAS和Shiro……我真正需要做的只是去实现业务逻辑。

最后把代码push到bitbucket上,配置好的jenkins会自动下载打包发布到docker服务器上……

一个这样的系统一两周也就弄出来了。

不需要维护服务器,不需要考虑网络安全问题,这一切都是网络中心提供的基础服务,远比自己做得更好更专业。

最后

把我和李凌导论问题时他经常作为当开场白的那句话作为结尾

“你想要干什么?”
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351

推荐阅读更多精彩内容