个人知识管理系统Version1.0开发记录(08)
切入点
前面,我们已经搭建好了web端的一种基本结构,需要进一步定位的主要问题有三点:
1、界面的选择和确定,用extjs做的初步样式,进一步改动为jqueryUI/html,再进一步改变为HTML5等。我们思考一种用户思维,只要有一个地方让用户不喜欢,用户就会全盘否定该款软件;所以,软件界面一定要简单、精致、能引起用户的兴趣、符合用户习惯和用户思维。
2、框架的选择和确定,struts2,hibernate/mybatis,spring等,在编写知识体核心功能模块前,需要完成选择和改写。
3、方向的选择和确定,每个人的时间、精力都是一定的,选择一件事情,就需要先放弃其他很多事情;识时务者为俊杰,方向的选择上,可以参考社会背景和商业需求、工作相关内容、个人成长情况等。方向的选择至关重要,若是什么都想学什么都想做,只会迷失在知识的汪海大海之中,以致迷失自我、蹉跎岁月。学会专注,学会合作,学会沟通,自己不会的事务,不在自己知识体系主干上的事务,找专业人士合作才是上策。建议常用纸笔:
(1)列举出需要在做的功能模板,然后根据她们需要的知识来分析她们,哪些我们能做,我们需要学习去做,哪些需要我们做精做细;
(2)列举模块优先级,模块关联,哪些需要先做,哪些可以建立关联;
(3)哪些可以做个架子,然后找更专业的合作伙伴来做。
接下来,我们需要花费一段时间来做一个“连接功能模块”,以便切入到移动端,搭建移动端的一种基本结构。我们可以从以下几方面来考虑:
(1)切入点,简单、实用,是web端上的一个功能模块到app端上的一个功能模块的连接。
(2)数据可以互通,不论是界面不同还是数据库不同,可以建立关联,进行CRM管理。
(3)符合用户习惯,具有商业价值。
只有想不到,没有做不到。多看看广告,电梯、地铁、媒体新闻、车载电视、广场广告等,看看别人在做什么,用户群体在看什么。先不考虑能否实现,我们来模拟一个场景:
(1)我们在web界面加入一个功能模块,“联系我们”,有一些联系方式和一个微信二维码;
(2)用户关注我们的微信号,我们通过微信公众号获取用户基本信息、地理位置等;
(3)进行CRM管理,把用户基本信息和本系统用户基本信息形成关联,用这个应用切入到移动端,开发各自独立的(数据库和软件界面)、三者互相关联的移动端软件。
不论对错,日后再说。时间如梭,赶紧动手。思路如下:
1、在微信公众平台查看API和一些帮助信息,大致看看怎么玩的,需要什么条件,需要注意什么,可能用到什么知识。是基于微信服务器的数据传输和处理。
2、编写控制层。(1)用户界面是微信,(2)用户发送信息到微信服务器,(3)微信服务器把信息发送到我们编写的控制层,(4)控制层接收信息、处理信息、发送处理信息到微信服务器,(5)微信服务器把信息发送给用户。
3、用户发送到微信服务器的信息,有文本、图片、链接、地理位置、声音、视频;服务号发送到微信服务器的信息,有文本、图片、链接、声音、视频。按照API上的信息参数说明
,把她们封装成对象。
4、数据交换格式是xml。控制层接收消息,是把微信服务器发送过来的xml转换成java对象;控制层发送消息,是把java转换成xml发送到微信服务器。使用dom和xstream。
5、打开服务号“获取用户地理位置”,编写一些业务处理逻辑,比如接收消息、处理消息、发送消息。我们获取用户地理位置,并把这些数据原样发送给用户。
6、服务号自定义菜单,根据API编写菜单对象,根据开发者凭据生成自定义菜单。按钮有两种,click和view。
7、数据存储。若只是即时处理信息,可以把数据暂时保存在内存;若是需要做CRM管理,并实现一些追溯功能,则要考虑使用数据库。
8、不想用手机,不想让服务号知道我们真实的地理位置,怎么玩?那么就要考虑,移动端地理位置数据来自哪里?移动端系统。OK,下载android模拟器、GPS功能软件、微信,设置地理位置为北京天安门。用模拟器登录微信,服务号向我们发送的是北京天安门的地理位置,因为她接收到的是这个地理位置。
我们后面需要完成,(1)生成带参二维码,或者类似功能,(2)完善自定义菜单,(3)编写能和用户做一些基本互动的智能机器人,(4)追溯功能的实现,(5)数据互通的实现,为移动端的编写开路搭桥。
最近观天下时事,冥冥中似乎察觉到了一丝命运的轨迹,其实,她一直都在我们的眼前,当我们开始懂她的时候,我们才看见她的存在,才发现她早已经等待了我们很久很久。OK,我们下次见。