个人知识管理系统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,我们下次见。
个人知识管理系统Version1.0开发记录(08)的更多相关文章
- 个人知识管理系统Version1.0开发记录(09)
MyBatis初试 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索. 运用Mybatis框 ...
- 个人知识管理系统Version1.0开发记录(01)
架 构 描 述 01.数据层,数据源,有形资源入库,无形资源整理,对外搜索引擎,对内平台搜索,数据类型(文字.图片.声音.视频.组合),数据时空优化,数据安全方案(数据进站关卡,数据出战关卡),数据并 ...
- 个人知识管理系统Version1.0开发记录(02)
第 一 步 做 什 么 我们该如何入手呢?先来看看目前常用的三个方法. 1.从事物产生的源头出发,层层推进,步步验证,最后开花结果.这种方法经常用于科研项目,或者三期以后的工程,国家政府项目用的较多. ...
- 个人知识管理系统Version1.0开发记录(12)
最近碰到个问题,在五个工作日内阅读一个百万行左右代码量的新项目集合,如何解决呢? 第一个工作日,环境观察.待在那个项目组,看项目成员们在做些什么事情,开发,测试,聊天,或多或少可以收集到一些项目相关的 ...
- 个人知识管理系统Version1.0开发记录(10)
物理分页 这次我们运用Mybatis拦截器来实现物理分页,后面会运用动态sql来实现,或者运用Map/CollectionUtils/StringUtils编写工具类来实现.oracle是运用的row ...
- 个人知识管理系统Version1.0开发记录(07)
模 块 复 用 原本还要测试一会的,突然出现一连串诡异的问题,比如,编译少加载个类啊,输入地址少个字母啊,改几行代码一改就是半小时啊.这是在提醒我们大脑疲倦了,所以果断小结,下次继续.这一次简单完成了 ...
- 个人知识管理系统Version1.0开发记录(11)
(1)匹配单个属性的关键字:(2)匹配单个对象的关键字:(3)匹配对象集合的关键字:(4)基于事件驱动的:(5)实时搜索,参考win7的搜索功能. 1.备份,java代码,数据库数据. 2.oracl ...
- 个人知识管理系统Version1.0开发记录(05)
demo controller我们从前面的实现过程可以得出三种普遍使用的信息处理方式:1.操作数据库,对数据进行增删改查,比如运用sqldevloper查看数据信息.2.运用计算机程序语言,对数据进行 ...
- 个人知识管理系统Version1.0开发记录(06)
demo view 夜已深,我们先简单演示一下,完成一个小段落了.涉及工具及技术知识:图形处理软件photoshop cs6,js类库ext. 思路如下: 1.下载ps6,有破解版本的,dll文件覆盖 ...
随机推荐
- ETL__pentaho__SPOON_PDI
Pentaho Data Integration (PDI, also called Kettle),是pentaho的etl工具.虽然etl工具一般都用在数据仓库环境中,可是,PDI还是可以做以下事 ...
- Python isdigit() isalnum()
Python isdigit() 方法检测字符串是否只由数字组成. 返回值 如果字符串只包含数字则返回 True 否则返回 False. >>> choice = input(&qu ...
- centos 目录文件管理 mkdir,rm,touch,误删文件extundelete,cp,mv,cat,more,less ,head,tail,chown,chmod ,umask 第四节课
centos 目录文件管理 mkdir,rm,touch,误删文件extundelete,cp,mv,cat,more,less ,head,tail,chown,chmod ,umask 第四节课 ...
- Controller中返回数据总结(ResponseEntity,@ResponseBody,@ResponseStatus)
在传统的开发过程中,我们的控制CONTROLLER层通常需要转向一个JSP视图:但随着WEB2.0相关技术的崛起,我们很多时候只需要返回数据即可,而不是一个JSP页面. ResponseEntity: ...
- Java基础教程:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- uva 1456
这题说的是 给了 n 个 点 然后每个点 都有 相应的概率,你要将这n个点划分成w个集合使得 下面定义的这种算法 得到的 值最小 n1 是集合一的 个数 是 集合一内的每个点的概率和, 下面是分成两 ...
- ng-深度学习-课程笔记-6: 建立你的机器学习应用(Week1)
1 训练/验证/测试集( Train/Dev/test sets ) 构建神经网络的时候有些参数需要选择,比如层数,单元数,学习率,激活函数.这些参数可以通过在验证集上的表现好坏来进行选择. 前几年机 ...
- SQL 处理排序空值
①oracle默认排序空值在后面 如果想要排序空值在前面可用关键字 NULLS FIRST, 排序空值在后面也有关键字NULLS LAST ②sqlserver默认排序空值在前面 如果想要排序时空值在 ...
- C++虚函数分析
1.虚函数(impure virtual) c++虚函数主要是提供“运行时多态”,父类提供虚函数的默认实现,子类可以虚函数进行重写. 2.纯虚函数(pure virtual) c++纯虚函 ...
- Element-UI中Upload上传文件前端缓存处理
Element-UI对于文件上传组件的功能点着重于文件传递到后台处理,所以要求action为必填属性.但是如果需要读取本地文件并在前端直接处理,文件就没有必要传递到后台,比如在本地打开一个JSON文件 ...