个人知识管理系统Version1.0开发记录(02)
第 一 步 做 什 么
我们该如何入手呢?先来看看目前常用的三个方法。
1、从事物产生的源头出发,层层推进,步步验证,最后开花结果。这种方法经常用于科研项目,或者三期以后的工程,国家政府项目用的较多。
2、以结果为导向的方法,我们需要什么结果,逆向推论出我们该如何进行工作。这种方法常用于盈利性比较强的短期项目,或者就是为了赶工的。
3、大项目分解成中项目,中项目分解成小项目。每个项目单位功能齐全,小项目组合成大项目,功能运行正常,也就是常用的敏捷开发方式。
考虑到实际工作生活情况,和我们的出发点,也就是软件定位,个人知识管理系统的本质目的是为了完善我们的知识体系。所以,我们采取以下方式:以方法3为主要方法,一个小功能一个小功能的来做;以方法1为重要方法,当遇见自己感兴趣或者觉得有必要专研一下的时候;以方法2为次要方法,当我们遇见难点思维困乏找不到突破口和连接点的时候,看看结果,逆向尝试。
现在,我们用级别来分解项目,下级取上级第一个对象。
1级(完整项目),站内知识管理(比如查询,整理,更新),站外知识管理(比如收集,整理,入站),站内站外互动,站外搜索,等。
2级(站内知识),学习管理,时间管理,健康管理,财富管理,目标管理,方法管理,人脉管理,商业管理,站内互动,站内搜素,等。
3级(学习管理),专业知识(比如计算机软件),横向知识(硬件,网络,系统),纵向知识(比如数学,英语,行业知识),生活知识,健康知识,孩子教育,等。
4级(专业知识),程序设计发展路径(比如Java语言—>android—>C语言—>C++语言),程序语言,数据库,UI/UE/WEB/WAP/APP,框架,等。
5级(Java语言),Java基础,数据库设计,WEB开发,SSH框架,等。
我们只是对知识层面做了一个大概级别分解,这对科班出身的朋友们都比较好理解,这种分解只是静态层面的。当我们熟悉后,会用动态层面的方式来分解,比如说按照功能模块分解,按照数学模型分解,按照逻辑概念(比如生命周期)分解。按照上面的分解方式,我们得出了一个小小的功能模块,静态知识的储存、查询、修改、显示等。时间紧迫,直接动手吧。
1、工具,Eclipse,tomcat。创造前先仿造。熟练理解后,可以使用axurerppro等网页原型设计工具自己设计。
做一个显示界面UI,我们可以在这个界面,实现对一些知识的普遍操作行为。我们仿造现在流行的chm格式,做了一个简单的html页面。这个页面是一个知识面,这个知识面里包含了很多知识点,以左边菜单的格式来跳转到每个具体的知识点。如下图:
2、工具:Eclipse。
设计javaBean。这个思路是有很多种的,看个人喜欢把知识整理成什么样子,比如有些朋友喜欢整理成文字、图片、声音、视频,有些朋友喜欢按照生命周期(比如儿童期,青年期,成年期,中年期等)来整理,等。我们这里尝试用数学模型来描述知识体系,比如知识点,知识面,知识体,知识时空等,不论对错,日后再说。写出来如下图:
3、工具:Oracle,plsqldev。
每个实体类,对应数据库中的一张表,所以,我们可以先尝试建立几张简单的表,并建一些关联。比如知识面中,有些知识面包含的知识点比较多,有些却少许多,知识面的图形就可以分解成三个知识点的三角形,四个知识点的四边形,以此类推,数据库也就建立类似的关联。我们先用一个Java语言的基础知识面来做尝试,方便以后做复制工作。
我们下次要做一个简单的尝试:完成数据库的一个简单知识面的录入工作(create知识点表,知识面表,insert一些数据),然后通过jdbc读取数据库数据,进行一些简单的数据处理后,发送到web页面,呈现在我们的用户界面,在界面上做一些简单的操作,与数据库完成一次互动。OK,下次见。