Софтуерно Инженерство
Loading...
+ Нов въпрос
KatyaMarincheva avatar KatyaMarincheva 572 Точки

[Homework] КПК - High Quality Methods 2015

Здравейте колеги,

Пускам тука моята идея за решаването на това домашно:

в class Student метода IsOlderThan го разделих на IsOlderThan, public DateTime GetDateOfBirth(string info), и отделно private static bool IsValidBulgarianFormatDate(string dateInfo) - не знам дали това е добър вариант, но когато опитвах в един и същ метод да валидирам датата и да й присвоявам стойност - при невалиден input string получавах side effect - ако не й присвоя стойност, датата оставаше равна на DateTime.MinValue per default. Ако някой има по-добра идея - моля да каже.

Другите методи от Methods класа ги поразхвърлях в статични класове Formatting и Calculations.

Направих UnitTests за всички методи - в ClassStudentTests и MethodsUnitTests (не знам защо VS отдели това в отделна папка????).

Имам и пълна Sandcastle XML документация в папка Documentation.

6
C# OOP Advanced 22/07/2015 23:24:29
DHristoskov avatar DHristoskov 211 Точки

Страхотна работя Катя, моите са малко по – орязани от към коментари, и малко съм си преправил клас "Студент", така че да ми е по - удобен, но все пак ето я и моята домашна работа:  High Quality Methods

а ето и следващата:High Quality Classes

Успех!

3
22/07/2015 23:26:20
VladimirVidenov avatar VladimirVidenov 5 Точки

Да не отварям нова тема, но все пак искам да попитам дали тези решения са ок и ако не са, моля за съвети Домашно

0
23/01/2016 22:14:21
Alex_29 avatar Alex_29 5 Точки

В клас Calculator

-  метод CalculateTriangleArea - трябва още една проверка, дали накоя стране е  >= на сбора от др. две.

- мевтод FindMax - не трябва да се променят елементи в масива (elements[0] = elements[i];), максималната стойност се пази в отделна променлива => maxValue = elements[i];.

- метод CalculateDistance не би трябвало да прави проверки дали правате е хоризонтална или вертикална, това може да се изнесе в два отделни метода.

За клас Student не съм сигурен дали трябва да се хващат exception-ите и да се пише по конзолата.

1
mbencheva avatar mbencheva 55 Точки

Аз мисля, че доста от коментарите са малко излишни и дори затрудняват четенето на код-а:

например:

/// <summary>
/// The Student first name.
/// </summary>
private string firstName;

Класът се казва Student. firstName, очевидно е пъровто име на студента:-)

Колкото до датата на раждане, аз съм преработила код-а и изрично я подавам като стринг от входните параметри => валидирам дали подадения стринг е валидна дата, след което я запазвам като DateTime. Сигурно има и по-добри варианти.

Ето как изглежда "моя student":-)   http://pastebin.com/ug9Q9v53

0
13/01/2016 18:54:13
bacuty avatar bacuty 55 Точки

https://github.com/VasilenaDragancheva/HQC/tree/master/HighQualityMethods
До тези решения ми стигна на мен мозъчето.

Честно казано, малко се чудя с този метод за calculate distance.....лично на мен ми е по ясно, ако имаш две точки, но условието не е точно такова и то май не е рефакторинг вече...

Има и други домашни качени.

 

0
14/01/2016 13:11:17