代码改变世界

8月27培训日记

2006-08-27 22:07  java ee spring  阅读(154)  评论(0编辑  收藏  举报

今天我只是后来去听了一会课,学员感觉梁老师今天讲得好多了,看来,梁老师已经适应了给技术比他低很多的学员们讲课了。学员们今天基本了解了工作流的应用,了解了工作流系统的模型,以及如何对工作流系统进行建模。下面是我个人的听课收获和自己的感想:
1.工作流的应用
一个电子政务系统中报文审批这一工作流程中的每个环节就组成了一个工作流,网上购物系统中从下定单到发货也是一系列的工作流程(其中包括用户取消定货和缺货等诸多环节),ERP系统中的工作流应用就更多了,从一个生产计划的下达、到供应科供应原材料、到车间生产、到产品进库等等诸多环节就是非常典型的工作流应用,可见,工作流的应用非常之广泛!
2.工作流系统的基本应用形式
工作流中的任务分为:human task和auto task,human task是需要用户干预的任务,auto task是由软件系统自己就可以完成的任务。对于human task,相关用户登录后,可以看到要归自己处理的任务。这些任务是何时和如何分配给相关用户的呢?这是由工作流引擎依据工作流的任务进行到了什么环节,然后查看这个任务由谁负责处理,再将任务分配给相关用户的。王涛引出的比喻,他将公司月报交给公司领导查看,公司领导通过后,再报交给上级单位,否则,打回到初始撰稿人重写撰写。工作流引擎相当于传递这个月报的秘书,这个秘书会从上一个环节取走月报,将它传递到下一个环节。
3.梁老师要讲的工作流系统不是一个简单的具体应用系统,而是一个工作流中间件,一个工作流框架。各种与工作流相关的应用都可以使用这个框架开快速开发出自己的最终工作流系统。这个框架中有一个WorkFlow类代表一个工作流,有多种形式Activity共同组合成一个工作流,Activity的具体形式包括:Start,End,Decision,Join,Split,Task,其中,Task是最重要的Activity,它代表工作流中具体要执行的任务,其他的Activity则是起辅助作用的,用于辅助实现工作流中的流程控制。
4.一个具体的工作流不是硬编码写出来的,而是通过Designer动态设计和配置出来的,Designer设计出一个工作流后,将这个工作流的各个环节以xml配置文件的形式存储起来,工作流引擎日后根据这个xml文件内容,就可以创建出一个具体的工作流系统。配置出的工作流就相当于一个模板,引擎依据模板启动的一个工作流是这个模板的实例,这有点类似java中的Class和Object的概念哦!
5.完全采用面向对象的方式来抽象和建模整个工作流系统,对学员们学习面向对象的设计有着很大帮助,这是一个非常成功的真实项目,真正让学员们开了眼界。
6.了解了Eclipse的Add jar和Add External jar的区别,以前不愿花时间去了解,今天随耳一听,倒是得来全不费功夫,哈哈。最后,我帮学员解决了一个小问题,如何让eclipse支持jdk1.5的语法(设置compiler即可)。

昨天开始梁老师不了解学员的水平,讲课方式有点让学员们不好接收,但其超高的技术实力让学员们心服口服,顶礼膜拜。学员对他充满崇拜,充满期待,可又听不太懂他的课,这着实让我着急,没想到梁今天调整得这么好,呵呵!下面是梁老师第一次讲课,昨天学员们听后一些反馈:
学员1:(我觉得这是极个别案例,但我们会注意和加以改进)
 来这上课5天里最晕的一天,虽然已经很努力去跟老师的思路了,但是始终还是昏昏沉沉的过了,感觉什么都没听懂,虽然班上同学中有一些能听懂一部分,但估计不懂的人更多,工作流这个概念以前也没听说过,老师一上来就是一大堆原理性的东西讲了一阵,头都大了.一天下来连工作流是什么都不知道.更别说怎么应用了.一个本来就很抽象的东西,老师这么一个讲法更抽象了.象这种概念应该多举例才能听明白,我感觉今天梁老师的水平是太高了.以致于把这个班的同学的基础看的太高.象工作流,UML这些东西还有很多人都没听过.这种讲法就算是天才如果没接触过也很难听懂的.
今天不懂的问题太多了:
1,什么是工作流,
2.为什么要用工作流.
3.工作流在实际项目中的作用,
4.希望梁老师把今天的课再多举例讲解一下.
5.希望接下来的课都能多讲些实例讲解.

在这需要补充一点的是:张老师虽然课讲的非常精彩,以前很多感觉很模糊的东西都搞懂了很多.但是有些问题还是很多人不明白的.我感觉是这样的,张老师把课堂上的气氛搞的太紧张了.导致很多同学对不懂的问题都不敢提出来,假如一个比较简单的基础问题提出来的话,张老师动不动就来一句"这么差的基础"怎么怎么的,大家都怕了.问了一次不敢问二次.

 总之在这五天学习的效果看来.如果继续这样下去的话,这个java精英班毕业后真正能成为精英的不会超过10个,讲的东西本来就是一些比较复杂的东西,加上那么快,不懂的也没人敢提问,那那么少数几个能听懂.
学员2:
今天梁老师的课总得来说是不错,就是有些知识点讲得快了点。
下面是我个人的小建议:
 1. 把一个知识点的难度压缩之后讲给我们。
 2.讲课的时候把操作主要的步骤讲得慢一些,还有把类之间的关系说透明了。
 3.讲完课有一个总结。
学员3:
听得有点晕,很多忘了,相信很多人都是这样,在写BOLG时没有头绪。
老师没必要开始就来大量的理论讲解,这个和学校的老师讲课方式一样了。但也不能一来就进行例子的讲解,可以先进行一个初步的理论介绍,然后在通过一个例子,一个比较简单的例子进行进一步的讲解。
内容不能一下讲太多,就像张老师说的那样,内容不再多,关键是是否能够掌握住。
在讲解的同时,速度不能太快,不然当前面一个问题还没理解个过来时下一个问题又来了,头就晕了,兴趣也就没了。
在讲解的同时,可以采用渐进式,适当的停顿,与以消化!
让学生提意见的方式不可行,大部分学生都不意思提出来或者不根本不知道怎么提问,因为他就根本没听懂,这就和梁老师说的一样,我很占同。老师应该主动的观察学生的表情,看学生的反映,观察学生的一些很细微的表现,从而判断是不是学生真的懂了还是还有问题。比如,当学生没听懂时,表情一般都是傻的,脸色暗淡,坐那一动不动;听懂的同学就会表情丰富,积极和老师回应。
如果在讲课钱能将要讲课的内容进行预习一遍,学习起来肯定就事半功倍了!但是……没有一个很好的预习的资料,老师说让我们自己去看要讲的内容,可是往往是因为没有一手的资料而或许没有去预习,或许效果很差,最后也没达到好的效果!这个问题看能否有效的解决,相信老师讲起课来也不在头疼!学生听起来也轻松许多!
在学校里老师都有课件,先发给学生让学生先去自学,这次学习班的学习气氛很浓厚,大家的学习动力很大,学习积极性是不容质疑的,因此这就在于一个学习方法和学习方式的问题上了。
学员3:
今天接触了听说已久的uml(统一建模语言),讲课的老师是资历很深而且很有实践经验的专家,可是我却有点腾云驾雾的感觉!总结一下今天学到的知识:
1、建模的必要性:要生产合格的软件就要有一套关于体系结构、过程和工具的规范,而建模就是用类似ER图的模式表现这种规范。
2、建模要达到的目的:模型能够约束系统的结构,使开发者和使用者能够明白做什么和怎么做。
3、建模能够将整个软件的流程及各个类之间的调用关系用直观的方法表现出来,能够对软件的内部实现和外部功能有大体的了解。(应该是在写代码前就做好建模工作?!)
4、建模要用到工具有Rose和Eclipse。
5、蓝线和白线有区别吗?(聚合 继承)
6、是不是可以把工作流理解成像开发程序时做的流程图?!
更多的关于建模和工作流的知识将在后续的学习和实践中总结。
学员4:
补充:依据程序讲类图的画法及工作原理
    感觉今天的讲课方式还能听懂,上午的、下午的都可以,用哪一种方式都可以。
    从个人角度讲,我更喜欢老师先讲理论的东西。这样在有了理论基础后,带着自己对设计的思考观看老师的演示,可以提出更多的疑问,进而加深、完善自己对设计思想的理解。
    学习新知识总会有痛苦阶段,熬过去就豁然开朗了。
学员5:
1, 希望能带出更贴近产品的代码,最后能指导有兴趣的同学研究工作流的深入系统知识。
2, 为了增大教学内容和取得好效果,每天课后布置可以通过网络搜索到的不难自学的知识作为第二天讲课知识的铺垫。
3, 就象软件开发需要控制进度和质量一样的道理,布置的作业以及每天讲解的操作知识,在第二天讲课前,是否可以检查下同学们的完成情况。我在以前公司学到的最重要的学习方法之一就是要有一定强度的压力下的学习才能有好效果。通过检查昨天的知识点和操作,这样的压力会“逼迫“学习自学、思考、总结,让学生知识缺陷“原形毕露“,也让学生不成为软件理论工程师,而是实战工程师。不但是对学生负责,也是为老师以后的讲课的广度和深度打下好基础。
学员6:
    听了梁老师一天的课,感觉早上的讲课方式,有点难接受
张老师说的好,与其去对一个人面前去描述辣椒是怎样
的红,怎样的辣,怎样的形状,还不如叫他先尝一个辣椒,
过后他自然而然的认识到辣椒的这些性质,然后再给他'
总结一下辣椒的这些性质,而加深理解的记忆,我觉得这
样的学习方式效率比较高!
   再说说下午,感觉下午梁老师的讲课方式能接受,感觉自己也
吸收的多!
学员7:
今天学习效果不好的原因主要是因为,一方面学员的基础差别较大,老师之间有些分歧,另一方面软件工程UML这些本身就很抽象,和开发代码不同,开发代码比较具体容易实现,能较快得到结果,而架构则是事物的抽象理解,要看到结果就要写代码才能实现,所以我觉得两者不属于同一范畴不能用相同的方法进行讲解,就象盖房子建筑工人和设计师对建筑的理解都不同,他们的视角不同所以认识也不同,不能用培养建筑工人的方法来培养设计师,反过来也是同样的道理。教程序设计可能很快就能让学员写出hello world这类的程序,但教软件工程就很难在短时间让学员理解软件的整个开发过程这是学科本身的差异造成的。既然开了这门课就要按照这门课本身的特点来开展教学。刚开始学习一个新事物毕竟会有很大的困难,这既需要老师找到一种容易理解的教育方式也要让学员明白学科的本质特点,软件工程与程序设计是两个领域学员不能拿学习程序设计的方法来看待软件工程,既然这是门抽象的课程就不要太关注代码,能把握整体的架构比会使用工具更重要。培养一个建筑工人几天就能上岗,但培养一个设计师则要相对较长的时间和系统的教育,对于程序员理解软件工程的思想要比掌握一种建模工具更有意义。虽然我今天也没学懂但我认为还要遵循学科的特点来开展教学,学了软件架构不一定就能让一个程序员成为一个优秀的软件设计师,但有了软件架构的思想能让一个程序员做得更优秀,毕竟软件设计师是在项目中磨练出来的不是短期培训就可以达到的,还有就是老师应考虑到学员的基础,尽量讲得细一些,讲一些考虑问题的方法。
学员8:
总体上对老师还满意,尤其是对老师的水平,很是佩服
但,对于新手,我觉得还是要讲究点讲课技巧的
1。在讲解技术点前,最好让大家对一个大的知识背景和框架有一个总体上的了解,这样做起来更容易
2。操作稍微慢些,包括一些操作上的小技巧,可以向我们传授一下,看老师写程序的速度,清晰的思路,很是惊讶:)
学员9:
今天梁老师讲的课的总体来说还很不错,感觉梁老师功底的确很深.
不过老师在上课的时候讲得有些快,而且有不少新的领域新的名词,对于那些了解这些人来说学起来比较容易也有兴趣,但对于初学者来说真的是有点太吃力了,感觉老师讲课的时候可以讲的慢一些,操作的时候有一个讲解,假如遇到一个新的名词能稍微解释一下,这样大家学习起来会相对容易一些吧.
学员10:
我觉得今天下午梁老师那样讲还可以,讲出了一些设计思想。
学员11:
我觉得梁老师一开始讲的内容很抽象,并不具体,而且在一分钟之内出现了n个新名词,这对初学者来说非常吃力,
如果一些知识及它的背景能够随着实践慢慢了解得到的话,对我而言会比较容易吸收吧,学起来也会比较踏实。
下午梁老师讲课就比早上讲的容易理解多了。我比较喜欢实际敲写代码,但是也很注重编程算法的实现及
编程思想,一开始光讲这些内容而没有一些具体的例子,印象就不会深刻。我觉得跟张老师一样一边讲解知识,
一边举出实际例子并操作,练习后纠正错误的学习效率会比较高点。 
学员12:
嘿嘿,上了不到10几年的学,终于轮到我来评论老师了,哈哈 ~~爽。。。      
张老师:王涛,严肃点~!      哦 。。。~~   汗。。。
今天梁老师给我的第一印象就是这个人好深奥啊,知识渊博,我从心眼里想把他懂的技术学到手,学到手我就利害了,
嘿嘿 ,今天我感觉是我们大家(学生们和梁老师)在隔着一堵墙互相找,我也想看见你,你也想看见我,就是谁也看不见谁(绕口令),
此时当务之急应该赶紧寻找突破口,否则大家对一门知识的感兴趣程度会下降的,大家会觉得这门知识好深奥啊,是不是自己能力差学不会啊?
老师呢,自己的积极性也会减退,古代就有“一鼓作气,再而衰,三而竭”的名人名言 ^_^ 怎么来解决呢?我个人简单分析了一下,大致有以下几点:
第一、老师的专业术语简直是太专业了。    我们不是理解能力差,其实我们理解能力都相当好,就是听不懂术语,
打个比方:我们北方人管贝壳上的一小挫肉,叫“鲜贝”,可是到了粤菜里面同样的东西就叫成了“瑶柱”,没听过的根本就不知道他在说什么啊~!
其实就是那个“鲜贝”。
第二、简明扼要直奔主题。 几句话形容一个知识点,大家不明白没事,来我给演示一个“Hello world” ,这时老师的比喻很重要
第三、不要一味的讲。  个人对此深有感触,机关每年都培训,上面一通讲下面都睡觉,机关无所谓,可是咱们这可不行啊,我想了一个办法
讲个大概20分钟左右给大家一点时间10分钟让大家自己也动手实际操作操作,这样又调动了积极性,又加深了记忆。
小弟不才,信手胡写,请莫深究。。。
学员13:
  今天上午很是难熬,晕了半天。
   虽然没学到什么东西,但他的知识很感兴趣。梁老师的水平实在诱人,要努力啊。
   导致这种结果低的原因,有可能是授课方式,也可能是因为我的基础太差了,还是两中都有。现在我们深究原因了,我现在把我能接受的方式给你,你看能否找到最好的方法。
我希望操作时候多加点解释,把操作了流程说一下。
学员14:
今天上了uml的第一节课,感觉一般。由于对讲课的方法的不同意见,最后搞得是有些一知半解,我想还倒不如讲一天的课或半天的课最后依据这些做一些完善。
由于我没有学习过uml,对其还没有感性认识和理性认识,要是先讲解上些成功和失败的案例,再加以某个具体的实例概述,这样就可以产生个入门。这样可能就好一些吧,上来就是生疏的概念性的东西好像在课上有限时间内不能很好的理解。今天的课,我学到了一些有关工作流图和类图的一些概念了解了工具软件eclipse的初步使用。uml好在哪里呢?在什么情况下使用呢?
学员15:
个人觉得梁老师的课讲得不错,只是我们初次接触这方面的知识所以听起来会很吃力.
理论结合实践举例法,既不是只说理论也不能上来就讲单刀直入的讲用法,那样的话就显得太浮躁了不能真正掌握其精髓.
还有一些学员没有提交反馈,在这里不点名批评一下!