Форум: "Прочее";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
ВнизКак вникать в чужой код? Найти похожие ветки
← →
Kostafey © (2007-09-10 01:01) [0]Это первый случай в моей практике когда и программа не хеллоу-ворд,
да и код приходиться писать не с нуля, а сопровождать уже полуготовый продукт,
поддерживать (читай - дорабытывать) проект разработанный не мной.
Комментариев ни строчки. С самим разработчиком есть возможность самое
частое раз в неделю встречаться.
Если кто помнит, я подобный вопрос про структуру БД задавал.
Сиджу тут, смотрю на него... это ж сколько всего понять тут нужно...
Что делать?
P.S. Вопрос может и не влишком серьезной манере задан, но сам по себе вопрос
наверняка один из самых распространенных в практике программирования.
Это ж иногда свой-то код понять не можешь, а тут еще чужой, да еще и
первый раз...
← →
Petr V. Abramov © (2007-09-10 01:11) [1]нужно знать, а что же этот код должен делать.
если это выполнено, задача на %20 разрешима.
далее смотришь, как этот код делает нужное. Если через ж..., то %80, что и остальное будет черз то же, обратное по аналогии.
ну а остальные 20% - творчество :))))
← →
Kerk © (2007-09-10 01:15) [2]Зачем бесцельно изучать чужой код? Перед тобой стоит твоя собственная задача, вот и смотри как ее реализовать в текущей обстановке.
← →
Германн © (2007-09-10 01:29) [3]
> Petr V. Abramov © (10.09.07 01:11) [1]
> Kerk © (10.09.07 01:15) [2]
Слова, слова, слова... (с) Уильям наш Шекспир (с) "Берегись автомобиля" :-)
> Kostafey © (10.09.07 01:01)
А кто тебе сказал, что будет легко? Или тебе жизнь мёдом обещали? Назвался груздем, полезай в корзинку! :-)
← →
Kostafey © (2007-09-10 01:36) [4]> нужно знать, а что же этот код должен делать.
> если это выполнено, задача на %20 разрешима.
Ну к этому я близок
> далее смотришь, как этот код делает нужное. Если через ж...,
> то %80
А до этого еще мне как пешком до Китая ;)
> [3] Германн © (10.09.07 01:29)
А и никто не говорил что будет легко. Да и непривык я чтоб легко было.
Я просто уточнял. Это я один такой как дурачок экраном с ероглифами тупо
любуюсь или все так же начинали? :)
← →
Германн © (2007-09-10 01:52) [5]
> А и никто не говорил что будет легко. Да и непривык я чтоб
> легко было.
> Я просто уточнял. Это я один такой как дурачок экраном с
> ероглифами тупо
> любуюсь или все так же начинали? :)
>
Вряд ли все. Но я не только так начинал, но до сих пор в этом болоте :(
Добро пожаловать! :-)
← →
Джо © (2007-09-10 02:49) [6]Болото еще то.
Но есть и другая сторона... болота.
Когда ты смотришь (спустя некоторое время), ЧТО сделали с твоим кодом и... Ну, тихо (незлобиво) произносишь всякие нежные слова :)
← →
Германн © (2007-09-10 03:17) [7]
> Джо © (10.09.07 02:49) [6]
>
> Болото еще то.
> Но есть и другая сторона... болота.
> Когда ты смотришь (спустя некоторое время), ЧТО сделали
> с твоим кодом и... Ну, тихо (незлобиво) произносишь всякие
> нежные слова :)
>
Догадываюсь, какие именно слова :-)
Но меня это, надеюсь, ни разу не касалось. Ни с той, ни с другой стороны :-)
← →
Zeqfreed © (2007-09-10 08:27) [8]Ну вот, например, я недавно пытался разобраться почему у меня плеер глючит. Открыл его исходники. Включил отладку, посмотрел какое сообщение он мне пишет. Нашел вывод этого сообщения в исходнике. И потом как клубок начал распутывать код с этого места. Т.е. смотрю откуда этот код вызывается, откуда тот код вызывается и так далее. Потом нашел само место где плеер зависает, но причины понять так и не смог к сожалению, а потом он перестал глючить и стало сложно отлаживать :(
Когда надо добавить какую-то функциональность, то нужно сперва найти кусок кода с наиболее близкой функциональностью или реализующийся теми же средствами и наличествующий в данном исходнике. Посмотреть внимательно как он реализован и поступить по аналогии.
А изучить работу всей программы целиком сразу вряд ли получится, да и не нужно это, правильно по-моему Керк говорит. Это было бы, конечно, очень здорово, но почти нереально :)
← →
Anatoly Podgoretsky © (2007-09-10 09:22) [9]> Zeqfreed (10.09.2007 08:27:08) [8]
Так надо не свое сообщение выводить, а системное, много полезнее для отладки.
← →
Ega23 © (2007-09-10 09:28) [10]Начинай раскручивать с конструктора. :)
← →
WondeRu at work (2007-09-10 10:37) [11]Читаем Фаулера "Рефакторинг"
← →
clickmaker © (2007-09-10 10:40) [12]
> Это ж иногда свой-то код понять не можешь, а тут еще чужой,
> да еще и
> первый раз...
- Вот же мне студенты тупые попались, коллега! Объясняю раз, другой, третий... сам уже все понял, а они - как об стенку горох!
(с) бородатый анекдот
← →
Desdechado © (2007-09-10 11:18) [13]Я вот уже пару месяцев вникаю в TMForum SID (Shared Information/Data). Одних классов больше 1000. Общая идея вроде понятна (хотя уже раза 3 так думал, а оказывалось - мелко плавал), но даже при наличии большого количества комментариев охватить все это добро мозгами ой как нелегко.
← →
Суслик © (2007-09-10 11:56) [14]терпенье и труд все перетрут (с)
и не имхо
если серьезно, то начинай описывать код. можно комментами, можно док файл. типа такого:
"Класс TSuperPuper создает объекты класса TZero для того, чтобы получить доступ к нулевому уровню абстракции. Концептуально TZero есть единственное средство доступа к нулевому уровню". И т.д. и т.п. - пиши все, что понял. В док-файле в детали не вдавайся. Детали описывай в комментах.
Зачем это все?
Все просто - запихать в голову за короткий промежуток времени много информации можно. А вот удержать сложно. Например, сегодня ты понял, что-то важное про некий класс. Возьми и запиши это. Завтра себе же спасибо скажешь, когда продолжишь изучение кода.
Твоя главная задача - составить в любой форме коцептуальную модель исследуемого проекта. В конечном итоге ты можешь выбросить свой док-файл. Но это не значит, что без него можно обойтись на пути к цели. Если привести аналогию, то для того, чтобы посчитать 3424234*23424234 тебе скорее всего понадобица бумажка, которую ты сможешь выбросить после расчета, но результат запомнить.
PS Надеюсь полезно будет. Я сейчас тоже исследую чужой проект :)
← →
Zeqfreed © (2007-09-10 11:57) [15]> Anatoly Podgoretsky © (10.09.07 09:22) [9]
Чем оно полезнее? А если в системный лог выводить будет, то оттуда фильтровать записи еще придется, чтобы лишнего не показывалось.
← →
Anatoly Podgoretsky © (2007-09-10 12:04) [16]
> Чем оно полезнее? А если в системный лог выводить будет,
> то оттуда фильтровать записи еще придется, чтобы лишнего
> не показывалось.
Старая история, почти каждую неделю видим код, где в обработке ошибки выдается например: не удалось открыть файл.
А к чему ты системый лог то привел, ну хочешь в сислог, то пиши.
← →
TUser © (2007-09-10 13:18) [17]Еще хорошо, когда есть документация или автор кода, которого можно прижать к теплой стенке. Я понимаю, что это - научная фантастика, но все же вдруг.
← →
Desdechado © (2007-09-10 13:20) [18]> автор кода, которого можно прижать к теплой стенке.
Лучше к холодной и неоднократно.
← →
Anatoly Podgoretsky © (2007-09-10 13:28) [19]> TUser (10.09.2007 13:18:17) [17]
Конечно фантастика, обычно автор недоступен, при том не физически.
← →
Virgo_Style © (2007-09-10 13:39) [20]блок-схемы, или каракули, приравненные к ним, могут оказаться полезными.
← →
clickmaker © (2007-09-10 13:42) [21]
> [20] Virgo_Style © (10.09.07 13:39)
> блок-схемы
всем привет от Дмитрия О.
:)
← →
Virgo_Style © (2007-09-10 13:58) [22]clickmaker © (10.09.07 13:42) [21]
всем привет от Дмитрия О.
Тогда надо было цитировать "каракули, приравненные к ним" )))
← →
Суслик © (2007-09-10 14:04) [23]Рисовать полезно. Но мое имхо максимум, что полезно, это диаграмма пакетов из UML. Т.е. концептуальные зависимости классов и блоков. Кто кого и зачем использует.
← →
Anatoly Podgoretsky © (2007-09-10 14:05) [24]> clickmaker (10.09.2007 13:42:21) [21]
И вам здраствуйте.
← →
MsGuns © (2007-09-10 19:58) [25]Способность быстро разобраться в чужом коде - признак квалификации программиста ;)
← →
Вася Правильный (2007-09-10 20:08) [26]
> разобраться в чужом коде
если это код, а не каракули к нему приравненные
← →
MsGuns © (2007-09-10 20:13) [27]Если "каракули" работают, то это именно рабочий код
← →
Virgo_Style © (2007-09-10 20:34) [28]MsGuns © (10.09.07 19:58) [25]
Способность быстро разобраться в чужом коде - признак квалификации программиста ;)
Причем неизвестно, какого в большей степени - того, который писал, или того, который теперь читает
← →
Плохиш © (2007-09-11 01:14) [29]
> Как вникать в чужой код?
Нафик в него вникать? Переписать всё нафик!
← →
Германн © (2007-09-11 01:38) [30]
> Плохиш © (11.09.07 01:14) [29]
И как только тебя терпят соседи-бюргеры? :-)
← →
Anatoly Podgoretsky © (2007-09-11 08:38) [31]> Плохиш (11.09.2007 01:14:29) [29]
Наш человек!
← →
calm © (2007-09-11 09:29) [32]Kostafey, не паникуй, всё будет хорошо.
Через пару месяцев эта очень непонятная прога будет тебе как родная :)
← →
Anatoly Podgoretsky © (2007-09-11 09:38) [33]> calm (11.09.2007 09:29:32) [32]
Через пару месяцев кончится испытательный срок.
← →
Ditrix © (2007-09-11 09:46) [34]порисовать uml-подобные диаграмки бывает полезно.
ну и отладчик рулит.
по себе скажу так - пока на столе не вырастет гора листочков-черновичков с диаграммами названиями функций стрелками и собственными коментами - проект будет оставаться черным ящиком
и стараться не использовать разного рода "построители диаграмм" "анализаторов кода" и прочее...
imho разумеется ;-)
← →
Плохиш © (2007-09-11 11:09) [35]
> Германн © (11.09.07 01:38) [30]
>
> > Плохиш © (11.09.07 01:14) [29]
>
> И как только тебя терпят соседи-бюргеры?
Переписать соседей-бюргеров нафик! :-)
← →
Плохиш © (2007-09-11 11:12) [36]Вот никогда не возникало вопроса "Как вникать в чужой код?", может некоторым стоит поискать своё дело...
← →
Kostafey © (2007-09-12 21:15) [37]
> Вряд ли все. Но я не только так начинал, но до сих пор в
> этом болоте :(
Суть не в болоте.
Слишком форсированные сроки.
> [14] Суслик © (10.09.07 11:56)
> терпенье и труд все перетрут (с)
За это меня точно никто не выгонит с работы.
Даже несмотря на полную некомпетентность.
Упрямство в изучении и работе рулит :)
> PS Надеюсь полезно будет.
Да, да. Большое спасибо!
> [17] TUser © (10.09.07 13:18)
> Еще хорошо, когда есть документация или автор кода, которого
> можно прижать к теплой стенке. Я понимаю, что это - научная
> фантастика, но все же вдруг.
Автор есть, документации нет.
Но ведь с автором встретисля и все.
Рядом с собой его даже на день не посадишь. :)
> 25] MsGuns © (10.09.07 19:58)
> Способность быстро разобраться в чужом коде - признак квалификации
> программиста ;)
Значит у меня пока кваификация невысока.
Ни кто не сторит.
> [29] Плохиш © (11.09.07 01:14)
> > Как вникать в чужой код?
> Нафик в него вникать? Переписать всё нафик!
Тут ма-а-а-аленькое замечание.
17-го презентация этого творения начальству :)
> Kostafey, не паникуй, всё будет хорошо.
> Через пару месяцев эта очень непонятная прога будет тебе
> как родная :)
Пары месяцев нет.
Но есть еще пару дней :)
> [33] Anatoly Podgoretsky © (11.09.07 09:38)
> > calm (11.09.2007 09:29:32) [32]
> Через пару месяцев кончится испытательный срок.
Не, не кончится. Почему?
Правильно! Он уже кончился :)
> [36] Плохиш © (11.09.07 11:12)
> Вот никогда не возникало вопроса "Как вникать в чужой код?
> ", может некоторым стоит поискать своё дело...
Знаешь сколько таких умников жизьнь покалечила?
В прямом, физическом смысле.
Уж не обижайся.
← →
Cobalt © (2007-09-13 10:32) [38]2 Kostafey ©
> Zeqfreed © (10.09.07 08:27) [8]
> Суслик © (10.09.07 11:56) [14]
Я именно так и вникал в один проект, который наша контора отдала лет 5-6 назад, а потом взяла обратно на поддержку.
Причём работал один, расспрашивая их админа.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.045 c