灵感点亮生活

写程序不仅仅只是工作,在我看来他更是一种生活方式

从一场监考到代码重构

 从一场监考到代码重构

今天在监考中看着监考的学生,以及监考过程中遇到的问题,进行了一些思考,由于思考的比较发散,全都付之于文字,会显得非常乱,而容易跑题,让我们MindMap一下:)


1.1 MindMap是什么

MindMap是什么呢?其实是英国人托尼·巴赞创造的一种提出笔记方法,和传统的直线记录方法完全不同,它以直观形象的图示建立起各个概念之间的联系。在国内,MindMap又被称为脑图或思维导图。

思维导图(Mind Mapping)以放射性思考(Radiant Thinking)为基础的收放自如方式,除了提供一个正确而快速的学习方法与工具外,运用在创意的发想与收敛、项目企划、问题解决与分析、会议管理等方面,往往产生令人惊喜的效果。它是一种展现个人智力潜能极至的方法,将可提升思考技巧,大幅增进记忆力、组织力与创造力。它与传统笔记法和学习法有量子跳跃式的差异


我采用了FreeMind 0.7.2来表现这次的发散思维过程,如下图:
png.gif此主题相关图片
005537.png


OK,通过这次发散思维描述,也找到了文章要写的重点:
1,界面重构
由于需求有变更,那么不能单一的只是分析考卷号来进行考试科目的判断,所以需要让用户自行选择,界面重构如下:

gif.gif此主题相关图片
004227.gif


gif.gif此主题相关图片
004241.gif

2,代码重构
原先点击打分按钮,假设执行如下函数

def 打分(考卷号):
  k = 分析考卷号得到考试科目(考卷号)
  根据考试科目保存入库(k)

重构方案一:
此方案够用

def 打分(考卷号,用户选择的判分方式)
  if(用户选择的判分方式=自动):
    k = 分析考卷号得到考试科目(考卷号)
  else:
    k = 用户选择的判分方式#相当于考试科目
   根据考试科目保存入库(k)

重构方案二:
为了扩展性,将判分的逻辑存入一个外部文件,XML也可,DB里也可,用来标识不同的考试科目的不同判分方法,将来如果某门考试判分方法发生改变只需改变外部文件的逻辑即可。

def 打分(考卷号,用户选择的判分方式)
   k = 判卷策略(用户选择的判分方式)
   根据考试科目保存入库(k)

OK,发散思维结束,就当是一次头脑之旅吧
阅读更多
上一篇继续尝试PygreSQL的pgdb
下一篇又大一岁
想对作者说点什么? 我来说一句

培训对象重构设计PPT

2012年08月02日 109KB 下载

没有更多推荐了,返回首页

关闭
关闭