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

Здравей,

Името на 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