代码改变世界

随笔分类 -  软件工程

[转]如何申请和管理一个sourceforge项目

2013-07-21 21:46 by youxin, 578 阅读, 收藏, 编辑
摘要: 假如你没有贡献免费源代码的想法,就不用继续读本文了。:)如果读者的e文不错,作者建议你直接阅读sourceforge的 howto文档,他们整理得非常周到详实。本文只是作者的使用经验,也许可以给与作者一样e文不好的人一点帮助吧。1 为何申请sourceforge项目?一切都从你有了贡献免费源代码的想法开始。(至于你是如何产生这个古怪的念头,估计没有人感兴趣。)你的项 目才刚刚在冒出你的头脑,你希望与人合作开发;或者你已有了可以拿出来的东西,你希望很多人关注它。这时候,需要找到一个集中地,那里人气很高,挤满了寻 找代码和散发代码的人们。Yes,soureforge就是这么个场所,一个没有mone 阅读全文

svn修改log信息

2013-07-21 15:06 by youxin, 4539 阅读, 收藏, 编辑
摘要: 在linux下安装了SVN服务器来做版本控制。有天提交文件忘记了填写SVN提交日志,于是在项目中使用右键,show log,找到我提交的无日志的那条记录,点击右健,选择了“Edit log message",想补充一下日志,结果报了下面的错误。Repository has not been enabled to accept revision propchanges;ask the administrator to create a pre-revprop-change hook意思是要求创建一个pre-revprop-change的钩子文件,写的非常清楚,但由于我不熟悉svn的设置 阅读全文

svn密码问题

2013-07-21 12:27 by youxin, 1309 阅读, 收藏, 编辑
摘要: 官方书籍version control with svn提到了这个问题:Disabling Password CachingWhen you perform a Subversion operation that requires you to authenticate, by default Subversion caches your authentication credentials on disk. This is done for convenience so that you don't have to continually reenter your password 阅读全文

SVN笔记

2013-07-21 08:53 by youxin, 5018 阅读, 收藏, 编辑
摘要: 文件共享的问题所有的版本控制系统都需要解决这样一个基础问题:怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰?版本库里意外覆盖别人的更改非常的容易。考虑图1.2 “需要避免的问题”的情景。假设我们有两个共同工作者,Harry 和 Sally。他们想同时编辑版本库里的同一个文件,如果 Harry 先保存它的修改,(过了一会)Sally 可能凑巧用自己的版本覆盖了这些文件,Harry 的更改不会永远消失(因为系统记录了每次修改),但 Harry 所有的修改不会出现在 Sally 新版本的文件中,因为她没有在开始的时候看到 Harry 的修改。所以 Harry 的工作还是丢失了—至少是从最新 阅读全文

github使用

2013-06-28 02:18 by youxin, 502 阅读, 收藏, 编辑
摘要: 新版本库即是新项目在GitHub,一个项目对应唯一的Git版本库,创建一个新的版本库就是创建一个新的项目。访问仪表板(Dashboard)页面,如图3-1,可以看到关注的版本库中已经有一个,但自己的版本库为零。在显示为零的版本库列表面板中有一个按钮“New Repository”,点击该按钮开始创建新版本库。版本库初始化如果是从头创建版本库,可以采用先克隆,建立提交数据,最后再通过推送完成GitHub版本库的初始化。步骤如下:克隆版本库。克隆过程会显示警告,不过这个警告可以忽略,因为GitHub创建的版本库本来就是一个空白的版本库。(我们在创建版本库时可勾选初始化就不会有了):$ git cl 阅读全文

github的.md格式文件

2013-06-27 23:28 by youxin, 3895 阅读, 收藏, 编辑
摘要: md文件是github改良了markdown的语法,用来显示在项目首页的文件。在官方的网址说的很清楚:GitHub uses what we're calling "GitHub Flavored Markdown" (GFM) for messages, issues, and comments. It differs from standard Markdown (SM) in a few significant ways and adds some additional functionality.https://help.github.com/article 阅读全文

转:GIT GUI使用

2013-05-22 11:31 by youxin, 1402 阅读, 收藏, 编辑
摘要: 前段时间跟着Ruby On Rails的toturial玩了一把Git,今天再回过头来,觉得这个版本控制工具真的很不错。下面来讲一下,在windows下如何通过git gui来管理代码。 首先,要在http://github.com上注册一个帐号吧。对于git,它的描述是:Git is an extremely fast, efficient, distributed version control system ideal for the collaborative development of software.Git是一个极其快速、高效、分布式版本控制系统,完美的协同开发软件。git.h 阅读全文

转:Git使用详细介绍

2013-05-22 11:24 by youxin, 253 阅读, 收藏, 编辑
摘要: 1. Git概念1.1. Git库中由三部分组成 Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。1) 工作目录:用户本地的目录;2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域为索引。3) 仓库:将索引通过commit命令提交至仓库中,每一次提交都意味着版本在进行一次更新。1.2. 使用Git时的初始化事项1.2.1. Git初始化配置1) 配置使用git仓库的人员姓名 git config -- 阅读全文

最佳实践:测试驱动开发全功略

2013-05-16 18:14 by youxin, 465 阅读, 收藏, 编辑
摘要: 测试驱动开发/Test Driven Development/TDD测试用例/TestCase/TC设计/Design重构/Refactoring{TDD的目标}Clean Code That Works这句话的含义是,事实上我们只做两件事情:让代码奏效(Work)和让代码洁净(Clean),前者是把事情做对,后者是把事情做好。想想看,其实我们平时所做的所有工作,除去无用的工作和错误的工作以外,真正正确的工作,并且是真正有意义的工作,其实也就只有两大类:增加功能和提升设计,而TDD 正是在这个原则上产生的。如果您的工作并非我们想象的这样,(这意味着您还存在第三类正确有意义的工作,或者您所要做的 阅读全文

EasyMock使用

2013-05-16 10:57 by youxin, 200 阅读, 收藏, 编辑
摘要: http://www.ibm.com/developerworks/cn/java/j-easymock.htmlhttp://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/ 阅读全文

Eclipse使用Junit

2013-05-16 10:51 by youxin, 302 阅读, 收藏, 编辑
摘要: 当我们新建一个java project后,默认有一个src(类型为source folder)。我们创建test类的时候不要把它放入src中,应该新建一个测试的源代码folder,新建一个source folder,命名unit_test.然后我们选中要测试的类,右键,会有一个junit test case我们更改source folder,选中我们之间创建的unit_test。Class under test默认是我们选中的类,表面对哪个类进行测试。我们不要点击finish,点击next,会出现相关的方法,我们选中我们想要测试的方法,然后确定,系统会生成相关的测试代码。可以参考视频:http 阅读全文

转:测试驱动开发With JUnit(二)

2013-05-16 09:55 by youxin, 272 阅读, 收藏, 编辑
摘要: 第二章:JUnit测试套件: 在第一节中简单的介绍了JUnit的使用,但是每次运行测试类时,该测试类的所有方法全部都被测试一遍,如果想单独测试某个方法还是比较麻烦的。但是可以利用测试套件来解决这个问题。 下面我们先更改CalculateUtilTest向里面增加一个构造方法importjunit.framework.TestCase; publicclassCalculateUtilTestextendsTestCase { publicCalculateUtilTest(Stringname)//1行{ super(name); } ……其余方法省略 } 代码解释:1行:自定义构造方法,.. 阅读全文

转:测试驱动开发With JUnit(一)

2013-05-16 09:52 by youxin, 318 阅读, 收藏, 编辑
摘要: 试驱动开发(TDD)是极限编程(XP)的重要特点,它是以持续性的测试来推动代码的开发,即可以简化代码,又可以保证质量。它改变了先编写代码,后编写测试,而是先编写测试,然后在编写代码来满足测试的方法。这样使得测试工作不仅仅是单纯的测试,而成为了设计的一部分。对于刚入门的编程者来说,也许觉得非常地别扭,但是当你习惯了这种编程方式之后,你会发现,TDD会成为你的得力助手。 下面的内容就以学习JUnit这个测试工具来简单的介绍TDD。(注:本文主要内容是介绍JUnit的使用,顺便抛砖引玉介绍TDD的开发过程。想了解更多关于TDD,可以参考其他的一些专业书籍)。 开发环境是:Eclipse3.2,已经集 阅读全文

转:JUnit中assertEquals和assertSame方法的不同

2013-05-16 09:29 by youxin, 291 阅读, 收藏, 编辑
摘要: 1)提供的接口数量不完全相同。assertEquals支持boolean,long,int等等java primitiveType变量。assertSame只支持Object。2)比较的逻辑不同,结果可能不同。assertSame是对象直接比较。assertEquals能利用被比较对象提供的比较逻辑来进行比较。使得同样的条件下,两者的运行结果不一定相同。简单解释如下:assertEquals(Object A, Object B) 的比较逻辑:如果 A,B都是Null,返回true。否则调用 A.equals(B)来判断。assertSame(Object A, Object B)的比较逻辑: 阅读全文

JUnit Assert方法总结

2013-05-16 09:28 by youxin, 276 阅读, 收藏, 编辑
摘要: junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类。1.assertTrue/False([String message,]boolean condition); 判断一个条件是true还是false。感觉这个最好用了,不用记下来那么多的方法名。2.fail([String message,]); 失败,可以有消息,也可以没有消息。3.assertEquals([String message,]Object expected,Object actual); 判断是否相等,可以指定输出错误信息。 第一个参数是期望值,第二个参数是实际的值。 这个方 阅读全文

驱动开发TDD介绍

2013-05-16 08:54 by youxin, 412 阅读, 收藏, 编辑
摘要: 测试驱动开发(Test-Driven Development,TDD)是通过测试定义所要开发的功能的接口,然后实现功能的开发过程。 Test-Driven Development(TDD),是Extreme Programming(XP)--极限编程的一个重要组成部分。在上面的图中,列出的的是XP的12个团队实践。Test-Driven Development是其中之一。 Kent Beck 的著作TDD(Test Driven Development) 中详细讲述了测试驱动开发。 当你使用TDD的时候一定要说明是测试驱动开发还是测试驱动设计。这两者是有区别的。测试驱动开发,是通过测试定义所要 阅读全文

转:敏捷的文档

2013-04-24 11:07 by youxin, 298 阅读, 收藏, 编辑
摘要: 软件项目中有很多种文档,包括需求文档、设计文档、API文档、缺陷报告、进度报告、移交文档、验收文档等等。在传统的软件项目开发中,每个团队成员都要花费很多时间和精力去维护文档及填写各种表格和报告。第二条敏捷宣言是"可工作的软件胜于详尽的文档",据此很多人想当然认为敏捷开发不重视文档。更有甚者,有人为逃避写文档而借口敏捷开发不需要文档,成为所谓的PAP(Pretty Adventuresome Programming)。其实这些人忽略了敏捷开发中有很多实践(比如坐在一起、现场客户、测试驱动开发、客户测试、结对编程、信息化工作间等等),敏捷借助这些实践进行信息交流,起到了文档在传 阅读全文

各个软件开发模型

2013-04-24 11:03 by youxin, 284 阅读, 收藏, 编辑
摘要: 软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。最早出现的软件开发模型是1970年W·Royce提出的瀑布模型。该模型给出了固定的顺序,将生存期活动从上一个阶段向下一个阶段逐级过渡,如同流水下泻,最终得到所开发的软件产品,投入使用。但计算拓广到统计分析、商业事务等领域时,大多数程序采用高级语言(如FORTRAN、COBOL等)编写。瀑布模式模型也存在着缺 阅读全文

如何做好项目管理

2013-04-18 13:47 by youxin, 268 阅读, 收藏, 编辑
摘要: 如何做好项目管理推荐答案在项目管理中,存在一个钻石五角,包含了一个项目所需考虑的五大要素,分别包括:成本,质量,进度,功能,持续发展力,一个好的管理者,应该要综合这五个要素,全面规划项目,带领项目组弟兄做好计划,需求,设计和编码,测试和发布几个阶段的工作。一、在成本方面,分为人工成本,差旅成本,采购成本,其中最主要的还是人工成本的控制,一个好的项目规划,必定要在项目确定之前,分析规划好人工成本,而这跟用户的需求是息息相关的,有了对用户需求的正确全面的判断,以及有效的用户需求管理,才能有效控制好成本支出,不因为不必要的需求变更导致成本的成倍增加,因此,要想做好该阶段的工作,除了用经验和能力做好成 阅读全文

scrum管理工具versionone

2013-04-18 12:47 by youxin, 10 阅读, 收藏, 编辑
只有注册用户登录后才能阅读该文。 阅读全文