Loading...
byclops avatar byclops 126 Точки

[Homework] HQC - Code Formatting (04.01.2016)

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

Какво се има предвид в заданието на домашното когато се говори за реформатиране?

Както е написано го разбирам буквално, т.е. единствено промени по форматирането, без да се пипат имената на променливите, да се разбиват  класовете в отделни файлове и др. неща от миналата лекция.

 

Така ли го разбирате и вие?

Тагове:
1
C# OOP Advanced 05/01/2016 12:51:15
iliyan.vangelov avatar iliyan.vangelov 57 Точки

Точно това питах Иван по време на лекцията- дали, ако в домашното за форматиране видим нарушени ООП принципи, да се занимаваме с тях, или да се придържаме само към форматирането. Той каза, че няма нужда, понеже може да бъде доста трудоемко и да се придържаме само към форматирането, надявайки се проверяващия да мисли по същия начин :D. Добави също така, че ще ни е от лична полза, разбира се, ако се занимаваме и със страничните проблеми, които откриваме и всъщност не са обект на разглежданата тема, за която е домашното.

И аз го разбирам, като теб.

2
05/01/2016 12:59:03
Filkolev avatar Filkolev 4482 Точки

Разбира се, че най-полезно би било да се опитвате да коригирате всичко нередно по кода. Това ще е и доста добра подготовка за изпита, понеже отрано свиквате да следите за всякакви недоразумения, не само форматиране.

Рефакторирането е сложен процес, особено в тези, ахъм... поумазани домашни. Един код, за да може да се рефакторира, първо трябва да бъде разбран, за да бъде разбран, трябва да бъде прочетен. С оглед на това една логична последователност от стъпки би била: реформатиране, преименуване, същинско рефакториране (decoupling, подобряване на абстракцията и др.). Т.е. на първо място трябва кодът да е форматиран така, че да е ясно каква е горе-долу структурата му, кое в кое се намира и т.н. След това трябва да е четим, което значи добре именувани променливи/методи/класове и подобрена структура (логически последователни инструкции най-малко). И едва след това започва същинската част.

В доста случаи, когато вие си пишете кода, нужда от такава предварителна подготовка за рефакториране да я наречем, няма да има, но, когато работите с чужд код, това би трябвало да е първата задача. Иначе един код, който ви е неясен няма как да го подобрите.

С други думи, не е проблем да се концентрирате само върху форматирането на този етап, понеже е важна стъпка към по-голямата цел. За доста хора поетапното усвояване на умения е по-ефективно, така че не следва да се санкционирате за неизпълнението на задачи, които не са ви поставени, например decoupling. Но за хората, които имат време и целят добро представяне в този курс, по-скоро препоръчвам да се помъчат повече и да не минават метър само с реформатиране.

6
deniz avatar deniz 29 Точки

Извинявам се за въпроса но преди if и различните цикли трябва ли да има празен ред?

0
iliyan.vangelov avatar iliyan.vangelov 57 Точки

Доколкото разбрах, зависи от това дали нещото над if-a или цикъла, има връзка с това, което се прави в тях.

Ако например имаш

 

bool someStatement = true;

if(someStatement)

{

...

}

ок е да няма празен ред. В противен случай е добре да има.

1
05/01/2016 17:07:42
justBeOk avatar justBeOk 194 Точки

Ако реда/редовете преди if или for конструкцията има логическа връзка със съответния if или for, то този ред/редове трябва да е долепен до съответната конструкция, т.е. да няма нов ред. В противен случай, ако реда/редовете нямат връзка с конструкцията, то трябва да има нов ред. Така се отделят различните логики в програмата.

Поздрави

0
vaseto_v avatar vaseto_v 50 Точки

Колеги,

като дам code cleanup и Resharper ми форматира много голяма част от кода ( в това число трие всички префикси "this"). След това StyleCop ми засича това като проблем. Така двете приложения влизат в конфликт. От одеве се ровя в настройките на code cleanup, за да премахна тази функция, но безуспешно.  С Resharper 10.02 съм и затова не мога да интегрирам в него StyleCop.

Някакви съвети ?

0
mbeleva88 avatar mbeleva88 69 Точки

А защо нямаме input-а и output-a към 1-ва задача?

Нещо не става ясно от тези команди какво точно се задава като input... някакъв string, който представлява масив от char-ове

и някакви pipeIndex-и.....

А и няма как да дебъгвам, за да видя какво се случва...

1
06/01/2016 22:56:22
butanfire avatar butanfire 32 Точки

По самата тема :

Попринцип задачата е само да се оправи форматирането (имена на функции/променливи) , празни редове и т.н.

Идеята ми е че няма нужда да се влагат усилия да подкараш самата програма, отколкото да изглежда добре (спрямо StyleCop) и принципите на КПК от курса :))


Иначе все пак и по твоят въпрос :

ExecuteNextCommand ти е функцията за входа, която приема input и изпълнява командите, проследи от там! :)

 

1
cap7ainjack avatar cap7ainjack 20 Точки

Здравейте!

Някой разбра ли какъв точно инпут се подава на програмката от домашната? :) 

Не мога да схвана как я чете тази дата

0
06/01/2016 22:59:41
butanfire avatar butanfire 32 Точки

Мисля, че не е указан формата на DateTime, има два варианта в тази ситуация (понеже не съм го пробвал) :

1) DateTime да си ползва default format от този тип 1/1/0001 12:00:00 AM

2) Чрез input-a да разбере какъв формат му прилагаш и да го parse-ne , автоматично.

Но мисля, че се указва чрез Parse/TryParse , иначе DateTime си има default format.

А в случая, в този код не видях Parse/TryParse за DateTime обектите.

0
Dodev avatar Dodev 19 Точки

Ето примерен инпут, за да разбереш формата:

AddEvent 10/10/2010 23:23:23 pm | Here comes the Event Title | Here comes the Event Location

ListEvents 10/10/2010 23:23:23 pm | 1

end

Аутпутът на този пример трябва да е:

Event Added

2010-10-10T23:23:23 | Here comes the Event Title | Here comes the Event Location

4
bacuty avatar bacuty 55 Точки

Аз се поопитах да я оправя програмата, малко мазохистично бих го нарекла, накрая ми се изрчепа търпението,

но все пак...тук ми са домашните засега. Писането на документация направо ми изпи мозъка, то си и личи.

https://github.com/VasilenaDragancheva/HQC

Тази дисциплина лично на мен ми е много притеснителна, понеже нямам обективен критерии за оценка :).

Та ако на някой му се преглежда и кртикува домашно да заповяда в мойто репозитори.

 

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