Как да се ровя в кода на някой друг

Това е първият случай в моята практика, когато програмата не е дума за здравей, и кодът трябва да бъде написан не от нулата, а да придружава полуготов продукт, за да поддържа (чете - подобрява) проект, разработен не от мен. Нито ред коментари. Със самия разработчик има възможност да се срещате най-често веднъж седмично.

Ако някой се сеща, зададох подобен въпрос за структурата на базата данни.

Сиджу е тук и го гледа. Това е всичко, което трябва да се разбере тук. Какво да направя?

P.S. Въпросът може да не е зададен по много сериозен начин, но самият въпрос е вероятно един от най-често срещаните в практиката на програмиране. Понякога не можете да разберете собствения си код, а след това има код на някой друг и дори за първи път.

трябва да знаете какво трябва да прави този код. ако това е направено, задачата е %20 разрешима. след това гледате как този код прави това, от което се нуждаете. Ако през след това % 80, тъй като останалото ще бъде същото, обратно по аналогия. добре, останалите 20% са креативност :))))

Защо да изучавате безцелно кода на някой друг? Изправени сте пред собствена задача, така че вижте как да я приложите в настоящата ситуация.

> трябва да знаете какво трябва да прави този код. > ако това е направено, задачата е %20 разрешима.Е, близо съм до това

> по-нататък гледате как този код прави необходимото. Ако през > след това %80А преди това е като да ходиш пеш до Китай ;)

> И никой не е казал, че ще е лесно. И не съм свикнал с > беше лесно. > Току-що изясних. Аз съм единственият като глупак с екран с > йероглифи глупаво > възхищавайки се или все едно започна? :) >Вероятно не всички. Но не само започнах по този начин, но все още съм в това блато :( Добре дошли! :-)

Все още е блато. Но имадруга страна. блата. Когато погледнете (след известно време) КАКВО са направили с вашия код и. Е, тихичко (нежно) казваш всякакви нежни думи :)

Е, например, наскоро се опитах да разбера защо плейърът ми е бъги. Отвори своите източници. Включих отстраняването на грешки, погледнах какво съобщение ми пише. Намерих резултата от това съобщение в източника. И тогава, като плетеница, започна да разплита кода от това място. Тези. Гледам откъде се извиква този код, откъде се извиква този код и т.н. След това намерих точното място, където плейърът замръзва, но за съжаление не можах да разбера причините, а след това спря да бъги и стана трудно да се отстраняват грешки :(

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

И е малко вероятно да се проучи работата на цялата програма наведнъж, а и не е необходимо, според мен Керк казва правилно. Би било, разбира се, много готино, но почти нереалистично :)

Така че е необходимо да не показвате собственото си съобщение, а системното, много по-полезно за отстраняване на грешки.

Започнете да въртите с конструктора. :)

WondeRu на работа ( 2007-09-10 10:37 ) [11]

Четене на "Рефакторинг" на Фаулър

> Е, понякога не можете да разберете собствения си код, но ето кода на някой друг, > и > първи път.- Имам тъпи ученици, колега! Обяснявам едно, две, три. той самият вече разбра всичко, а те - като грах в стената! (c) брадат анекдот

търпението и работата ще смелят всичко (c)

За какво е всичко това? Просто е - можете да натъпчете много информация в главата си за кратък период от време. Но е трудно да се запази. Например,днес разбрахте нещо важно за определен клас. Вземи го и го запиши. Утре ще си благодарите, когато продължите да изучавате кода.

Вашата основна задача е да създадете концептуален модел на изследвания проект във всякаква форма. В крайна сметка може да изхвърлите вашия doc файл. Но това не означава, че можете да се справите без него по пътя към целта. Ако дадем аналогия, тогава, за да изчислите 3424234 * 23424234, най-вероятно се нуждаете от лист хартия, който можете да изхвърлите след изчислението, но запомнете резултата.

PS Надявам се да е полезно. В момента също проучвам нечий друг проект :)

> Как е по-полезно? И ако ще се изведе в системния журнал, > след това оттам все още трябва да филтрирате записите, така че допълнителните > не беше показано.Стара история, почти всяка седмица виждаме код, в който при обработка на грешки се казва, например: Не може да се отвори файл.

блок-схеми или еквивалентни на тях драсканици могат да бъдат полезни.

Тогава беше необходимо да се цитират "драскалки, приравнени на тях")))

Рисуването е полезно. Но моето IMHO максимумът, който е полезен, е пакетна диаграма от UML. Тези. концептуални зависимости на класове и блокове. Кой кого използва и защо?

И на теб здравей.

Способността за бързо разбиране на кода на някой друг е признак за умения на програмист;)

Вася Правилно ( 2007-09-10 20:08 ) [26]

> разбере чужд кодако е код, а не приравнени на него драсканици

Ако "драскулките" работят, тогава това еработещият код

Освен това не се знае кой в ​​по-голяма степен - този, който пише, или този, който сега чете

> Как да влезеш в чуждотокод?Nafiq да се ровя в него? Пренапишете всичко nafik!

Kostafey, не се паникьосвайте, всичко ще бъде наред. След няколко месеца тази много неразбираема програма ще бъде като вашата :)

Изпитателният срок ще приключи след няколко месеца.

рисуването на uml-подобни диаграми може да бъде полезно. е, дебъгерът правила.

Ще кажа това сам - докато на масата не израсне планина от чернови с диаграми, имена на функции, стрелки и мои собствени коментари - проектът ще остане черна кутия

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

Въпросът „Как да се ровя в кода на някой друг?“ никога не е възникнал, може би някои трябва да търсят собствен бизнес.

> Едва ли всички. Но не само започнах по този начин, но все още в > това блато :(Същността не е в блатото. Сроковете са твърде форсирани.

> PS Надявам се да е полезно.Да, да. Благодаря ти много!

> Костафей, без паника, всичко ще бъде наред. > След няколко месеца тази много неразбираема програма ще бъде > като роден :)Няма няколко месеца. Но все още има няколко дни :)