个人知识管理系统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文件覆盖 ...
随机推荐
- Create an Index
db.collection.createIndex( { name: -1 } ) Indexes — MongoDB Manual https://docs.mongodb.com/manual/i ...
- Database Sharding, The “Shared-Nothing” Approach DATABASE SHARDING
w将单个服务器上的单个数据库打碎为多个服务器上的单个数据库 http://www.agildata.com/database-sharding/ Database Sharding provides ...
- 利用Qt开发跨平台APP(二)(iOS,使用Qt5.9,很详细,有截图)
本文将手把手教你如何使用Qt编译出iOS应用程序. Qt是一个优秀的跨平台开发工具.我们利用Qt可以很方便地将一次编写的应用,多次编译到不同平台上,如Windows.Linux.MAC.Android ...
- jQuery.outerWidth() 函数具体解释
outerWidth()函数用于设置或返回当前匹配元素的外宽度.外宽度默认包含元素的内边距(padding).边框(border),但不包含外边距(margin)部分的宽度.你也能够指定參数为true ...
- java-mybaits-00102-mybatis框架原理
1.mybatis是什么? mybatis是一个持久层的框架,是apache下的顶级项目.是一个不完全的ORM框架. mybatis托管到goolecode下,再后来托管到github下(https: ...
- 使用distcp并行拷贝大数据文件
以前我们介绍的访问HDFS的方法都是单线程的,Hadoop中有一个工具可以让我们并行的拷贝大量数据文件,这个工具就是distcp. distcp的典型应用就是在两个HDFS集群中拷贝文件,如果两个集群 ...
- ADB 清除Android手机缓存区域日志
原文地址http://blog.csdn.net/u013166958/article/details/79096221 Android系统的不同部分提供了四个不同log缓存区: /dev/log/m ...
- Cannot find entry file index.android.js in any of the roots:[ Android ]
Changed the version of react project to a lower one from here npm install -g rninit rninit init [Pro ...
- ng-深度学习-课程笔记-8: 超参数调试,Batch正则(Week3)
1 调试处理( tuning process ) 如下图所示,ng认为学习速率α是需要调试的最重要的超参数. 其次重要的是momentum算法的β参数(一般设为0.9),隐藏单元数和mini-batc ...
- 20165207 学习基础与C语言基础调查反馈
文章阅读体会与学习调查反馈 文章阅读体会 我在娄老师的文章里了解到了"做中学"的概念.并且通过娄老师慷慨地分享的相关经验,我对于它有了进一步的理解以及体会.以下是我收获以及我的感想 ...