Професионална програма
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 52 Точки

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

например:

/// <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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.