Loading...
dimitar90 avatar dimitar90 13 Точки

[Programming Fundamentals] 3. Fold and Sum

Привет, колеги.

Търся мнения дали кода ми е четим

това е задачата https://pastebin.com/x1jrdjeE

това ми е решението https://pastebin.com/6QN6S8Vj

Очаквам съвети,критики,напътствия

Благодаря на всички,които ще се включат

Тагове:
0
Programming Fundamentals 11/06/2017 16:43:03
George777 avatar George777 29 Точки

Последния цикъл ако се изкара в метод, ще бъде 100% абстрактно. /по мое мнение/

0
RoYaL avatar RoYaL Trainer 6849 Точки

Здравей,

Името на namespace-а със сигурност е грешно :) Но да смекча критиката :)

Ако разкараш паразитни неща като "of", "the", "and" от имената на методите и променливите, както и наставки като "array" на променливи, които очевидно са масиви, ще стане доста по-четим :) На мен ми е малко тегаво всеки път на ум да си прочитам "екстракт дъ мидъл парт ъф ди арей" и "бот леф енд райт а ръ ръ" :)))

Също би било хубаво тези методи да връщат някаква стойност, защото аз като чета метод, който "extract"-ва нещо, очаквам някъде да ми го върне, а той го бил присвоявал на някой от аргументите, и то не на кой да е, ами на средния аргумент :)

Като цяло един код за да е четим трябва да не се налага да четеш всички имплементационни детайли как работи, трябваше например да се оправя само с името на метода, но истината е че трябваше да го отвори и видя как е имплементиран, за да разбера как extract-ва средната част на масива.

Всъщност, прекалено много операции има в този код, които ми се струват излишни и може би затормозяват четимостта. Особено това съединяване на лявата и дясната част. Това може да се контролира с променлива, която посочва кой индекс ще се сумира в момента. Ако бъде кръстена правилно, например summingIndex, би свършило работа за читателя.

Разбира се, тук е спорно дали съкращаването на кода винаги води до по-голяма четимост. Обикновено не, но в момента е така, защото задачата е малко излишно разгъната в много операции :-)

Ето едно решение, което скалъпих в момента: https://dotnetfiddle.net/JZY7aj. Ако държиш да упражняваш методи и т.н. може да инесеш калкулациите на стартовия индекс в отделен метод, местенето на summingIndex-а в края в друг метод (MoveSummingIndexToEnd() примерно) и т.н.

P.S.: Силно изнасилено горното решение да се абстрахира по методи: https://dotnetfiddle.net/LMKNAb

3
10/06/2017 12:36:56
dimitar90 avatar dimitar90 13 Точки

Изключително поучително

0
dimitar90 avatar dimitar90 13 Точки

а,между другото когато "сграбча" парче код и с клавишна комбинация го изкарам в метод, това добра практика ли е

тоест , добре ли ми структурира метода? :)

0
melik avatar melik 285 Точки

Здравей, dimitar90.

Може също да си дръпнеш StyleCop (това е един доста полезен тоол), който ти показва колко грешки имаш в кода и ще те научи да пишеш правилен код. Евентуално, ако решиш да го дръпнеш те съветвам да махнеш "documentation rules", защото са доста досадни.

Поздрави, Мелик.

0
10/06/2017 13:59:42
dimitar90 avatar dimitar90 13 Точки

Ще го пробвам,мерси

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