`

TopCoder组件开发 C#

阅读更多

http://xy.scau.edu.cn/info/studentunion/bbsxp/ShowPost.asp?ThreadID=345 Ryan Bay翻译地很好,http://www.topcoder.com/wiki/display/tc/Component+Development+Tutorial 这是TopCoder源址。

这里,是我-iJuliet对Topcoder组件开发的理解哦,菜菜们一起来学习吧!

1. 只能使用C#和Java两种语言,我选择C#.

2. 所需软件

Microsoft .NET Framework v1.1: 开发平台可以自由选择,但之后提交的代码会在这个框架下测试哦。

NAnt: 执行可定制、可扩展的构建脚本的工具。我需要用它编译工程,并向TC提交代码。

NUnit: 一个框架,用它可以快速简洁地测试我的代码。

TC Code Documenter: 一个命令行工具,用来写API文档。

3. 选题并下载资料

http://www.topcoder.com/tc?module=ViewActiveContests&ph=113 从时间、难度、技术上看看有没适合的,找到后注册一下哦。注册就意味着你有权利去访问其他人提交的程序(当然是比赛结束后),并且可以加入组件开发人员论坛(绝大部分关于项目的交流和讨论都在此进行)。

在论坛里的开发阶段文档中,找到需要的开发包(.zip文件),里边有

/conf: 如果有的话,它包含的是组件的配置文件,有时还会包含所依赖组件的配置文件,或组件设计者写好的配置文件的例子。如果没有这个文件夹,而你的组件又用到了配置文件,你自己生成这个目录吧。

/docs: 包含组件当前的所有文档。有.zargo或.zuml格式的UML设计说明,需求和组件说明书等。

.zuml /.zargo 在doc 目录下,应该有一份UML 文档。它包含了组件中所有类和接口的定义。它将定义组件的所有、包括异常行为。
.pdf /.rtf 在doc 目录下,应该有一份组件说明书和需求说明书。组件说明书是UML 文档的更具可读性的版本。它包含组件常规设计,所需的标准和算法。它非常简明的定义了异常类和其它所需的信息。你应该用不着需求说明书。它定义了组件的需求,而所有这些需求应该已经满足。
.gif /.png 这些文档都是由UML 文档生成的,可以不去管它们。其中所有信息都可以通过UML 文档轻松得到

/lib: 包含所依赖的所有组件级别的库文件,不包括系统级别的哦。依赖的所有TCS组件也在这个目录下。

/src:包含所有源文件,也包括测试代码哦!

/test_files: 包括组件测试过程中用到的全部文件。有测试所需的特殊配置文件、输入/输出样例、数据库方案和其它任何非编译文件。这个文件夹通常会包含设计者创建的样本测试数据。

/default.build: C#专有的,它是一个缺省的,可能未加配置的构建脚本。

4. 建好目录,配置构建脚本

建好目录哈,建议是proj/tc/proj_name

在default.build里修改NUnit的安装路径和库文件引用(如果你的项目需要额外库文件)就好。

<property name="Nunit" value="D:\Program Files\NUnit V2.0\bin\nunit.framework.dll"/>
<property value="${tcs_bin}\generic_parser\1.0\TopCoder.Util.GenericParser.dll"
name="generic_parser.dll"/>

5. 开发开始喽!

盯住/docs文件夹,尤其是类图和组件说明文档。

step1: 生成stubs并放在合适位置。

它是可编译的代码框架(各function body)。这些个占位程序刻画了组件的全部API,但并没有实现其内部逻辑哦。占位程序不是生出来(用Poseidon生成,找不着就跟PM索要)就能成功编译地,需要你核实并整理。组件代码都放在/src/csharp/main/目录下,我需要根据包名来组织我的源代码,如我的组件是Topcoder.Util.Tutorial.dll,那么我的源码路径就是/src/csharp/main/TopCoer/Util/Tutorial/..

step2: 通过构建脚本来构建我的组件。从命令行里运行构建工具,常用命令有。

compile: 把工程编译成一个功能完全的二进制单元(假设你的代码是正确的)

compile_tests: 编译我的tests,依赖于compile的成功执行。

test: 执行tests,取决于成功的compile_tests. 执行完后,结果放在/log

clean:删除/build内容,将所有编译过的代码和中间文件删掉

dev_submission: 打包。

如果组件占位程序编译不成功,可能是API或库文件的配置问题,应尽快修正。

step3: 文档,对于可用性、可维护性至关重要。编码同时就添加注释是好习惯哦!

API文档:我需要对UML文档自动生成的API文档进行修改,C#是通过XML文档来注释的。所有的类、接口、方法和变量都必须具备文档。.NET会自动生成大部分XML文档,只需在声明前面键入///即可。而且,C#中不会对throws语句进行检查,但在API文档中注明该方法可能产生的异常是好习惯哦!

文档内容:解释组件的行为,非法输入及相应的异常行为。务必注明方法返回值,可能抛出的异常和所有参数。此外,每个类和接口都需要个概括性文档以解释其作用。

文档要求:

每个文件必须包含TopCoder 版权声明。
所有的public API
元素必须有详细的文档注释(参数,返回值,异常),注意:包括单元测试。
任何复杂或比较大的程序段必须包含内嵌式文档以解释其目的和功能。
Ø
文档必须具备专业的口吻和质量。

step4: 单元测试。

非private的方法和构造函数都要测,在合法状态和输入下的行为(包括极限情况),及在所有可测的出错情形下的异常行为。/src/tests。注意最后清空测试环境哦,让系统保持在测试前的状态!因它测试类和被测组件位于同一包或namespace下,单元测试可以访问具备包访问属性或者protected访问属性的类及其成员。

 

step5: 提交啦

 

执行dev_submission,生成压缩文件。除了组件,还需要包含单元测试成功执行的日志文件,conf/目录下的所有文件,test_files/目录下的所有文件。

6. 等着评审团打分并给出建议吧,不服可以申诉。。。

分享到:
评论

相关推荐

    TopCoder_组件开发指南

    TopCoder_组件开发指南,Topcoder是一个商业网站,外包各种软件,有组件制作,算法,和成品制作的竞赛和兼职,可以收到现金

    TOPCODER 算法PPT1

    TopCoder采用了一种基于组件的软件开发模型,将大型客户端项目分解成可管理的小块,由TopCoder的架构师进行拆分。这种模式使得应用更易于维护,因为每个小部分都可以独立修复,同时,通过复用已构建的通用组件,可以...

    Topcoder入门

    总的来说,"Topcoder入门"资源包为那些希望在编程竞赛和软件开发领域提升自己能力的人提供了宝贵的资料。通过深入学习和实践,你可以逐步提高自己的编程效率和问题解决能力,为未来的编程生涯打下坚实基础。

    topcoder客户端及相关插件

    总的来说,topcoder arena通过提供一个集成的环境,使参赛者能够参与到实时编程比赛中,而这些核心组件则确保了比赛过程的顺利进行。从编写代码到测试,再到最后的评估,每一个环节都得到了精心设计和实现,这正是...

    TopCoder注册指南

    注册并参与TopCoder的比赛,不仅能提高自己的编程能力,还能有机会接触到实际项目开发的问题,为职业发展积累宝贵经验。下面我们将详细介绍如何注册成为TopCoder的成员。 1. **访问TopCoder网站** 首先,你需要...

    TopCoder竞赛资料

    3. **开发指南V1.0.pdf**:这很可能是TopCoder平台的开发者指南,详细阐述了如何在TopCoder上开发和测试代码,包括API使用、编码规范以及平台功能的介绍。 4. **Competition.ppt**:这可能是一个关于竞赛的...

    TopCoder入门相关介绍

    Topcoder软件比赛注册方法和平台使用 Topcoder算法大赛客户端安装流程 Topcoder算法大赛客户端登陆及使用 Topcoder算法大赛注册流程 Topcoder图形比赛注册方法和平台使用

    Topcoder介绍及Arena使用方法

    适合topcoder新手

    TOPCODER算法ppt2

    TOPCODER算法讲座ppt是一个关于TopCoder算法竞赛的讲座ppt,涵盖了TopCoder竞赛的概述、Component Based Methodology、组件目录、软件需求等内容。 在Component Based Methodology中,讲座强调了组件的可重用性,...

    TopCoder新手指南

    算法竞赛和高中组竞赛都使用TopCoder开发的专用竞赛软件Arena进行,这是一个Java应用程序,要求参赛者的计算机上安装有Java运行环境(JRE) 1.4或更高版本。在Arena的登录界面,新用户可以找到注册入口,注册时至少...

    TopCoder比赛登录客户端

    TopCoder比赛登录使用的客户端,需要配置Java环境

    TopCoder注册及入门介绍

    比赛主要分为算法比赛和组件开发比赛,这里我们关注的是算法比赛。年度赛事中,参赛者会被分为Div1和Div2两组,每个组别又分为多个房间进行SRM(Single Round Matches)。每个SRM包含三个难度不同的问题,参赛者需在...

    topcoder

    3. **FileEdit.jar**:这可能是一个Java可执行文件,可能是一个代码编辑器或者与topcoder平台集成的代码编辑组件,允许用户编辑和运行代码。 4. **CodeProcessor.jar**:同样是一个Java可执行文件,这个名字暗示它...

    TopCoder中文指导

    【TopCoder中文指导】是一份综合性的资源集合,旨在帮助用户了解并参与TopCoder平台的各种竞赛活动。TopCoder是一个全球知名的在线编程竞赛平台,它提供了多种类型的比赛,包括SRM(Single Round Matches)算法竞赛...

    Topcoder 客户端

    Topcoder的Java客户端,安装前确定已经安装了JRE

    TOPCODER比赛作品

    【标题】"TOPCODER比赛作品"所涉及的知识点主要围绕编程竞赛,特别是与TOPOCODER这个全球知名的在线编程竞技平台相关。TopCoder是一个聚集了世界各地程序员的社区,它组织了一系列的算法竞赛,旨在提升参赛者的编程...

    TopCoder3rdEditor::KawigiEdit

    用于topcoder的第3方编辑器插件。

    Topcoder SRM 499 的第一道题,如果对topcoder还不是很了解的可以拿来看看

    "Topcoder SRM 499 第一题详解" Topcoder SRM 499 的第一题是一道简单的 Addition Game 题目,旨在考察程序员对问题的理解和算法设计能力。本文将详细讲解该题目的知识点和解题思路。 题目分析 该题目中,Fox ...

Global site tag (gtag.js) - Google Analytics