kiral的执着之道
一个有故事的人
posts - 10,comments - 0,trackbacks - 0

安装步骤

1: 安装数据库,mingle只支持两种数据库,postgresql8.3/8.4和Oracle。

2: 在数据库里建一个数据库,名称叫“mingle”

3: 安装mingle。安装完毕之后mingle会给出一个访问地址。 (没有安装成功会看不见这个访问地址)

4:访问mingle提供的地址,进行相关配置。

5: 安装完成之后注册mingle。

6: 注册码为

 

--- License key starts below this line--- XX05IkcLVx8D4lzyxbO/AoNcsOsJEA0fvRqH/74kSmAyPRCjTQhIcX9ki+n6 rXxe2Cc0TOQLNuVW5IkZ61KUNRf5lClm/0Y2L7Rx4PsDZNMKDBPKRhgc+d4k /oGwcJpUj46txnkKFARKQwkeBcR8MAZyNnliTjKot+IOs3QnrwciMbmgbHsc qCQpJedF0ukX+mXX+/PtWerw8pRozFVpKm1zEkqLXSNrimeJJxdhgkNpvvt5 Kvip1Fi5PHpXCDRa3FjsQT9+wsY+3OPjPCDAXCSaC/a39VGZhmMkPXLnNsVj z7sUDHKNJcs3rq7fyemutVFqDfIbi4pPdMTgOlnhQw== --- License key ends above this line--- 

This License is valid for the following terms: 

* Licensee = tengfei fang

 

其他说明

1:mingle3.2不支持IE8

2:mingle3.2对中文支持不理想,如不能上传中文附件。

3:硬件环境要求为:内存2G



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



posted @ 2011-02-05 21:50 方腾飞 阅读(452) | 评论 (0)编辑 收藏

总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充!

 

测试需要注意的问题

1:测试需要涵盖所有的业务逻辑: 自动化测试不需要覆盖所有的代码,但需要覆盖所有的业务逻辑,因为一处的修改可能造成其他业务逻辑的不可用。考虑所有情况如单个删除,批量删除。一对一移动,多对多移动。
2:浏览器:测试产品支持的浏览器,具体到浏览器版本号,如支持IE6,IE7和IE8。
3:分辨率:测试产品支持的分辨率,如支持1024X768以上的分辨率。
4:现场环境测试:一部分功能出现问题,可能是现场环境导致,所以必须在现场环境进行严格测试,如现场网络问题,数据库所在硬盘满了。
5:原则上测试代码应该覆盖所有的业务逻辑,但是基于投入产出比的考虑(所有的代码都写测试,代价太大,效果不一定更好),可以只在核心和你需要验证的业务逻辑上写测试代码。 测试主要是验证各种输入是否得到预期的输出,那么只需要提供几种常见的输出进行验证就可以,注意测试的输入是无限的,所以就算做了自动化测试,也不能完全保证程序没有问题。
6:建议使用TDD按照业务场景来进行测试,用户如何使用我们的功能,我们就写哪些测试代码,这样能够帮助我们按需开发代码和做有效的测试。 TDD只需覆盖所有的业务代码,并不需要覆盖所有的代码,所以建议在服务层做TDD。
 
使用SVN:
1:提交注释:提交代码需要提交注释。注释主要是方便团队成员知道你提交了什么和代码回滚,如当出现重大错误的时候能回退到某一版本。
2:代码提交和更新:为了减少冲突,建议每天上班之后更新程序,下班之前必须将稳定的程序提交,最好是做整体提交,有时候就是因为少提交了一个类导致编码错误。
3:少做全文格式化:全部格式化是最容易造成冲突的,所以假如当前类还有其他人在维护,建议不要做全文格式化,可以选中你自己的代码,做局部格式化。
 
编写代码:
1。警告:警告有时候也是很有用的,为了避免有用的警告被人忽略,代码里不允许出现警告。有警告的地方注释掉。
2:编码:先理清需求再写代码,可以先写注释再写代码,也可以用TDD的方式。
3:TODO:可以在未完成和存在坏味道的代码里加上TODO注释,以便下次解决。
4:多用快捷键,少用鼠标: 如Eclipse自动填充geter和seter的快捷键是alt+shirft+s后点r。
 
前端开放:
1:尽量用百分比:窗口和表格的宽度和长度尽量用百分比定义,而不用像素,用以在不同的分辨率下达到同样的效果。
2:使用FireBug和HTTPwatch调式样式和脚本
3:使用Fontpage做一些前端测试。如Flash遮住Iframe的问题。
 
Flex工程编译缓慢的解决方法:
1:将Flex工程按照模块拆分为多个工程。
2:AS文件不要经常修改。因为编译as文件很慢,但编译mxml还是很快的。
 
Flex模拟数据测试
我们可以在不启动服务器的情况下就对Flex程序进行测试。方法是是首先新建一个文件,名字叫XX.action,里面存放JSON数据或者XML数据,让Flex程序直接与这个XX.action进行通讯。可以在公共通讯方法上做一个开关,可以随时切换模拟数据和真实数据,用于客户演示和现场使用两种场景。
 
调式Flex 
调试的时候可以直接在URL后面加上?debug=true#
 
Flex的性能调优
我觉得Flex的垃圾回收不是很好,内存很难被回收掉,所以自己做了下Flex的性能监控,发现性能主要消耗在表格里带图片的渲染器,每当我滚动表格的时候,Flash会重新渲染图片生成新的对象,而旧的对象没有这么快被回收,内存会直线上升。
Flex IDE提供Flex profile插件进行性能监控,性能监控分为内存监控CPU监控。 进入Eclipse的“Flex Profile”视图,点击“Profile”。 新建一个监控的swf,然后双击这个SWF。 系统会自动弹出IE,访问你所监控的SWF。


已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



posted @ 2011-02-04 01:13 方腾飞 阅读(141) | 评论 (0)编辑 收藏

名词解释:

  • Junit:众所周知的单元测试。 官方网址:http://junit.sourceforge.net/。Junit从4.0开始提供基于注解的配置方式。
  • Dbunit: 一个针对数据库测试的框架,通过Excel准备数据并插入数据库。官方地址:http://www.dbunit.org/
  • TestNG:从字面上可以理解为下一代单元测试,和Junit的功能有一部分重叠和区别。TestNG也有Eclipse插件,官方地址http://testng.org/doc/index.html
  • Unitiles: 让单元测试变得更加容易和可维护,Unitils构建在DBUnit之上并与JUnit和TestNG相结合。官方地址:http://www.unitils.org
  • Jmock:JMock是一个JAVA开发包,它支持Mock(模拟)对象机制的TDD(测试驱动开发),官方地址:http://www.jmock.org/


什么是Jtester?
jTester是一个基于java的单元测试框架。开源地址:http://code.google.com/p/java-tester/

为什么要用Jtester?

JTester是站在众多巨人肩膀上的单元测试框架,集成了Junit4.5,dbunit2.4.3,unitils2.2,JMOCK2.5和TestNg5.1这些优秀的开源框架,并在这些框架上做了扩展,使得单元测试更加方便和强大。

Jtester带给了我们什么?

1、在unitils的基础,集成了jmock功能
2、在hamcrest断言的基础上,实现了fluent interface断言
3、改造了jmock expectation参数断言为fluent interface形式
4、录制对象:提供了将普通的pojo对象序列化到文件,然后再从文件中反序列化回来的功能,用于在对象复杂的情况下,直接录制接口(远程接口)调用返回的对象,以供下次测试或调试使用。
5、数据测试:使用wiki代替xml来准备测试数据。比dbunit更快准备数据。
6、实现了更加丰富的断言。比junit的断言多。
7、提供了hibernate annotation环境下,直接使用内存数据库进行db测试。
8、提供了hibernate annotation环境下,Open Test in Session的实现。
以上8大特性来自于官方,我稍加了点说明和整理。 

 
七步进入Jtester世界。 下面让我们花一个泡面的时间来学习下Jtester吧。

import mockit.NonStrict;

import org.jtester.testng.JTester;
import org.jtester.unitils.jmockit.MockedBean;
import org.testng.annotations.Test;
import org.unitils.spring.annotation.SpringApplicationContext;
import org.unitils.spring.annotation.SpringBean;

/**
 * Jtester测试例子,按照注释顺序学习
 * 
 * @author tengfei.fangtf
 */
@SpringApplicationContext( { "applicationContext.xml" })
// 1.@SpringApplicationContext:加载Spring 配置文件,所有测试相关的bean都在这个容器中;
public class BusinessTestCase extends JTester// 2.JTester:要使用JTester
// 提供的功能,需要继承此基类;
{

	@SpringBean("businessService")
	// 3.@SpringBean:从容器中取出指定id 的bean 并注入到测试类中
	private AppInternalService businessService;

	@MockedBean
	@NonStrict
	// 4.@Mocked @MockedBean:mock 出一个对象,并将该对象与Spring 容器结合,实现Autowired;
	private OneHessianServiceClient hessianClient;

	@Test(groups = { "FirstTestGroup" })
	// 5.@Test;TestNG 的注解;指明此方法为一个TestCase;
	public void testBusinessNormal() {
		new Expectations() {// 6.设置mock 对象的期望返回值
			{
				hessianClient.hessianServiceInvorke(anyString);
				result = "HH";// 那么执行这个方法,永远都返回HH
			}
		};

		String returnResult = businessService
				.bussinessService("Sample Business!");
		System.out.println("\n ---> " + returnResult);// 输出HH
		want.string(returnResult).notNull();// want:JTester 框架提供的强大的断言;
	}

}

 



已有 8 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



posted @ 2011-02-04 00:31 方腾飞 阅读(1333) | 评论 (0)编辑 收藏

作者:kiral  链接地址:http://kiral.javaeye.com/blog/899243

 

自己曾经带过一个6人左右的团队,经历了一些事情之后,才发现自己的管理能力非常差。虽然个人能力在持续提升,但团队能力却增长不大。究其原因我觉得是自己对管理的理解不到位。很欣赏马总说的一句话:"你从开始当管理者这一天起,别人的成功是你的成功。你通过一件事情的完成,去成就他人的成功,这就是当管理者"。

 

   我觉得最好的团队应该是自管理的团队,一群志同道合的同学都朝一个目标,持续改进和进步。而管理者就是这个团队的润滑剂和催化剂。目前在BOSS的带领下,我们团队做的非常不错,所以自己想从下面从几点谈谈自己的体会。

 

团队文化
我觉得一个团队首先需要定义团队的文化,团队的文化是建立在公司的文化之上,有了团队文化才能凝聚一群志同道合的同学一起工作,有了一群志同道合的同学我们的工作效率才会非常高。如果有不符合团队味道的同学,我们会请出去。比如我们团队的文化是信任开心,说到做到和敏捷响应。这些就会成为我们平时的行为准则,拿说到做到举例子,我们说12月31日发布版本,那么我们团队通宵也要在这一天发布版本。

 

团队的梦想

我认为梦想是团队的源动力,在团队遇到挫折的时候,我们需要始终坚持自己的梦想,永不放弃,如让商人没有难管的询盘。

团队的梦想需要体现团队的价值。

 

团队沟通
我觉得首先团队全体成员要一起维护一个沟通的氛围,大家畅所欲言,减少团队成员之间的隔阂。大家像哥们和同学一样,想说什么说什么。大家都应该尽量做到沟通L5级别。

【团队沟通的5个等级】
L5:我会畅所欲言,充分表达自己的意见和看法
L4:我会主动说出自己的意见,但会回避某些问题
L3:问到我,我再说
L2:我不会说太多,主要让别人提意见和建议
L1:我会点头微笑,并表示一切都好

如果我们上班不能说工作无关的事情,发邮件必须很正式(XX,您好!我冒昧的向您咨询一个问题),说话必须很严谨(这件事情我们得回去研究一下),同事之间的称呼必须很讲究等等这些非常职业化的行为,往往是在抑制大家沟通的欲望,往往是在人与人之间增加更多的隔阂,带来很多的隐患。我觉得一个团队的BOSS采取什么样的形式进行沟通,会直接影响到整个团队采取什么样的形式进行沟通。我希望团队成员能够畅所欲言,在畅所欲言的基础上提高沟通效率

    在沟通中要把握好定期沟通和随时沟通的度。定期沟通:组员可以在收集一些问题后,定期想其他同事咨询,从而降低沟通成本,提高工作效率。BOSS可以定期找组员沟通,关心下他的生活和工作,帮助他解决一些难题,从而降低项目风险。随时沟通:我觉得随时沟通可以促进团队进步,降低项目风险和提高产品质量。比如你做得不好的地方,同事会随时和你沟通。项目中存在风险,成员会随时和BOSS沟通。如果BOSS太忙或者不那么平易近人,那么团队成员发现问题,就很难找你沟通。

 

团队成长

  1. 团队需要建立技术能力模型,让团队成员有奋斗的目标。能力模型包含对初级,中级,高级技术人员各方面的要求,推荐书籍。每位同事可以按照能力模型来安排自己的学习时间。
  2. 团队目标:制定团队的季度目标和年度目标并完成。
  3. 团队分享:鼓励团队成员进行分享(发邮件,写博客,培训),从而促进团队整体能力的提升。
  4. 个人目标:希望团队的每一个成员都有月目标,季度目标和年度目标,并且拿出相应的成果和大家分享。
  5. 锻炼组员:给组员更多的机会进行锻炼,如让组员做PM,让组员代替自己管理某项事务。

 

团队激励

  1. 学会欣赏每一位组员。找出他们的优点,加以表扬和肯定,让其他组员意识到这是优点,从而形成整个团队的优点。
  2. 学会表扬组员,让组员动力更足。
  3. 随时肯定组员的一些积极的行为。
  4. 表现好的时候,给组员一些物质上的奖励,留作纪念。

团队合作
做任何事情优先考虑团队合作,要英雄,主动帮团队成员解决问题,但不要英雄主义,不顾团队的处理事情。比如团队成员想做一个开源项目,可以考虑团队一起做这个开源项目。比如你想到一个很好的方案促进团队发展,可以约团队一起来解决。

团队成员可以经常做一些非零和博弈活动来增加团队合作能力,提高团队氛围。比如一起聚餐,中午晚上一起吃饭,一起打球,一起唱歌,一起三国杀。这个时候其实最忌讳BOSS不来。 

 



已有 17 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



posted @ 2011-01-28 22:41 方腾飞 阅读(161) | 评论 (0)编辑 收藏

作者:kiral 原文地址:http://kiral.javaeye.com/blog/891850

 

“Don‘t make me think!"

 

由于最近看到BOSS分享了一篇PPT《有效沟通》,在沟通方面也得到大飞的指导,在工作和生活中越来越感觉到沟通的重要性。在项目管理中沟通也起着至关重要的地步,所以在此小结一下。

 

什么是沟通?
卡内基说“所谓沟通就是同步。每个人都有他独特的地方,而与人交际则要求他与别人一致。”我也认为沟通就是信息的同步

 

如何有效沟通?
沟通的关键是同理心。学会站在对方的立场进行沟通。其次是减少沟通壁垒,在表述者和聆听者之间存在两道沟通壁垒。信息的传递,表述者应该尽量站在聆听者的知识背景上去清楚的表达内容。信息的理解,聆听者应该怀着一个开放和尊重的心态,去聆听表述者传达的信息,不要在没完全听明白表述者传达的信息之前,就用惯性思维去抵触信息接收。两者都应该做到用心沟通,最终才能保证信息有效同步。在沟通的过程中,我们一定要清楚咱们沟通的目的是要解决事情和问题,而不是争论谁对谁错这种没有价值的事情。德鲁克说:"人无法只靠一句话来沟通,总是得靠整个人来沟通"。

 

沟通三要素:关系,准备,沟通技巧。关系:把握你和沟通者的关系。不同的关系说不同的话,熟悉的人可以直接点,不熟悉的人委婉点。比如同事穿着不得体,你可以直接一点,说你今天怎么穿得这么难看,或者委婉点,说你今天穿得很有个性。准备:为了达到沟通的目标做的一系列准备工作。沟通技巧:掌握各种沟通技巧。

 

提高沟通技巧?沟通的最高境界就是从别人的口里说出你想说的话

 

1:先肯定别人,再说自己的看法
很多时候我们通过沟通是想证明自己的存在,所以人很需要被别人肯定,你肯定了他,他就会觉得被尊重,就会肯定你,这是同理心。开会或培训的过程中,当领导或者同事发言之后,如何点评和反馈?对于领导,仔细聆听,对领导在讲话过程中有感触的几个点,谈谈自己的心得和体会。对于同事,首先是肯定同事,帮同事总结一下,谈谈自己的想法。或者同上。

 

2:学会用表扬的方式进行沟通
我们部门希望用兄弟部门的产品,需要和兄弟部门沟通,因为兄弟部门没有义务帮我们,并且他们也很忙,所以这事一直没办成。
于是我们部门的领导让我发封邮件给兄弟部门的领导表扬一下他们并抄送给他,回去之后想了各种措辞表扬了下兄弟部门的产品如何如何牛,咱部门迫不及待想使用一下。
果然第二天他们就派人来帮我们装上了产品。

 

3:让别人成为沟通的主动方,我们站在沟通的支持方。
之前某位同事负责处理某件事情,我给出了这件事情的实施方案建议,但是他觉得这么做没有必要,但是他也没提出具体的实施方案,结果这个事情就不了了之。那么问题在哪里呢?我觉得他是一位很有主见的人,而我将自己的想法强加于他,所以他一开始就有抵触倾向。
那么换一个思路我想会更好,针对这个问题我去向他咨询比较好的方案,让他说出来,然后我对他的方法表示肯定和支持,然后在这个基础上谈谈自己的建议,那么这样他就更容易接受。

 

4:学会聆听,边听边猜

学会集中精力先听明白别人说什么,别人可能因为表达能力不好或者说话音量比较小,导致你当时很难理解他说的话,但这个时候如果你不停的反问对方,沟通体验就会非常差,所以要学会边听边猜

 

5:描述事情,从结论说起

向别人描述事情的时候,先从结论说起,这样便于听众理解,说完结论后再对分析自己为什么得出这个结论。聆听也是一样,如果别人没有一开始告诉你结论的话,你需要聆听别人到底是要表述一个什么结论。

 

6:说服别人,用演绎法

演绎法是从事实逐渐推倒出结论,这样很适合说服听众。演绎法的流程为陈述事实-分析原因-推倒结论-建议方案。如果你的观点具有排他性,一开始就说出来,那么观众可能会有抵触心理,在你描述的过程中,他可能会在想如何反驳你,这样你的信息就很难传递给他。

 

PS:第5点和第6点的描述方式刚好完全相反(一个先得出结论,一个后得出结论)。凡事没有绝对,这两种描述方式,都存在一定的合理性,针对不同的听众(固执的人或者易被接受的人),描述不同的事情,应该选择不同方法。



已有 17 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



posted @ 2011-01-23 14:12 方腾飞 阅读(145) | 评论 (0)编辑 收藏

作者:kiral  原文链接: http://kiral.javaeye.com/blog/890367

 

今天参加培训,听公司的技术大牛分享了些经验,在此记录下。

 

搞技术人员必须具备的特质

  1. 逻辑思维能力
  2. 执着:对技术问题的执着,虽然容易钻牛角尖,但是不要选择逃避,一定要想着把问题解决,可以列计划以后解决。
  3. 目标明确(长期目标和短期目标),坚持走一条路,不要一会做管理一会搞技术。
  4. 求甚解
  5. 学习能力:以结果为导向。
  6. 让自己难受:不停的打破舒适圈,不停的挑战更高的技术问题。
  7. 有责任心

提高技术能力,广度和深度如何选择?

 

   无论是选择深度还是广度,其实我们的目标是一样,提高自己的技术能力。技术做到最后是全面的能力,包括协调能力和沟通能力。那么那一种更快能达到目标呢?我觉得是深度,因为当学习一项技术深入到一定程度的时候,就会有触类旁通的感觉。当我们技术的学习深入到硬件的时候,我不认为这是广度,而是深度的延申。

 

我还听过另外一位同事的回答,和之上的选择相反

  优先选择宽度,因为当你选择某一个点深入下去的时候,你的知识面就受到限制。除非你打算一直在这项技术上深入下去。公司更需要全面的人才,当你具备综合能力的话,对于你的发展是有好处的。但是不要每项能力都是50%的水平,公司愿意给你时间提高,但是你必须达到更高的水平。

 

  我觉得不同的场景选择应该不一样,不过目前我选择先走深度

 



已有 8 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



posted @ 2011-01-20 21:27 方腾飞 阅读(289) | 评论 (0)编辑 收藏