Skip to content

Master Repository for Telerik's KPK Team Project Labyrinth-7 Game

Notifications You must be signed in to change notification settings

Labyrinth7/Labyrinth7Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Labyrinth7

КПК, Telerik Academy, 2013/2014

Team Labyrinth-7:

Задание: Рефакториране на конзолна игра и създаване на unit tests.

Задължително:

  1. Използването на Git като хранилище за кода и използването на GitHub за хостване на проекта и като среда за сътрудничество между членовете на екипа.

  2. Всеки член на екипа трябва да е допринесъл за проекта и да е изпращал код в хранилището поне в 3 различни дни. Признаваме, че тези изисквания изглеждат малко неестествени, но искаме да проследим как екипът си сътрудничи във времето и как проектът се развива постепенно, а не в "последната минута".

  3. Цялостно рефакториране: структура на директориите, промяна на проектните файлове, на кода, класовете, интерфейсите, методите, свойствата, полетата и др. членове на класа или на програмата, както и промени на програмната логика. strong cohesion на всички нива (модули, класове, методи и др.); loose coupling между модули, класове, методи и др. 1.1. Цел 1: Лесен за четене, разбиране и поддържане 1.2. Цел 2: Правилно поведение - кодът трябва да изпълнява всички изисквания и всички бъгове или проблеми в кода трябва да бъдат поправени (в т.ч. проблеми с performance и usability). Всяка недовършена или липсваща функционалност трябва да бъде завършена.

  4. Имплементиране на поне 6 шаблона за дизаин. 2.1. Structural - най-малко 2 от adapter, aggregate, bridge, composite, decorator, extensibility, facade 2.2. Behavior - най-малко 2 от chain of responsibility, command, interpreter, iterator, mediator, observer 2.3. Creational - най-малко 2 от abstract factory, builder, factory method, singleton, prototype

  5. Всеки от следните принципи трябва да се използва поне веднъж: 3.1. SOLID (Single responsibility; open for extending - closed for modification; Liskov substitution; Interface segregation; Dependency Inversion) 3.2. DRY (Don't Repeat Yourself).

  6. Създаване на unit tests върху цялата функционалност на проекта за проверка на коректното поведение на кода във всички възможни случаи (при правилни и неправилни данни, гранични случаи). Ако е нужно, променете първо логиката на приложението, за да направите кода тестваем. Да се покрият поне 80%. 4.1. Използвайте по ваш избор фреймърк за тестовете: Visual Studio Team Test, NUnit, MbUnit или др.

  7. Документирайте рефакторирането.

Накрая:

  1. Всички членове на екипа трябва да изпратят еднакъв .ZIP файл (до 8MB), съдържащ: 1.1. The original source code (project files, .cs files) without executables. 1.2. The refactored source code (project files, .cs files) without executables. 1.3. The unit tests – source code (project files, .cs files) without executables. 1.4. The refactoring documentation.

  2. Защита - обяснение на рефакторирането (с помощта на документацията) и представяне на unit тестовете. Показване на логовете от качването на код в GitHub.

About

Master Repository for Telerik's KPK Team Project Labyrinth-7 Game

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages