|
|
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
Привет! Можешь кто даст совет/поделится опытом изучения чужого кода/проекта? С чего начинать, на что обращать внимание, как лучше понимать. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 18:06 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
Тут варианты. Если есть модульные тесты - то можно смотреть некую часть юзкейсес. Посмотеть покрытие. Изучить выделенный код. Есть-ли возможность стартовать приложение (stand-alone) или загрузить его в веб-контейнер? Если да - то запускать отладчик и смотреть. В любом случае выделить "ядерную часть" или ядро и отделить его от мусора (entities, pojo-s e.t.c) и понять что это ядро делает. Смотреть логи старта. Обычно в самом начале происходят важные вещи. Инициализация компонент. Посмотреть какие датчики и какие органы управления выведены во внешний мир. JMX компонеты? Какие. Понажимать на них. Веб-листенеры? Зайти на них. Понажимать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 16:25 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mayton, хм, интересно. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 21:15 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
второй подход - Снаружи <-> изнутри. Очертить границы ИС по ТЗ. Если есть - прочитать его)). Что в коде является вашим, а что - соисполнителем. Найти вот этих самых на картинке )) actor Дальше уже понятно ЧТО код делает. Т.к. часто в старых системах столько мусора годами плавает) ..... Посмотреть БД любым вьювером. Т.е. модель предметки. Упс. форум масштаб картинки не вписывает...растянул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 23:04 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mr_virtusПривет! Можешь кто даст совет/поделится опытом изучения чужого кода/проекта? С чего начинать, на что обращать внимание, как лучше понимать. Спасибо. Начинать надо с установки хорошей IDE и конфигурирования проекта. Потому что главное в этом деле -- code browsing... Раньше я бы рекомендовал Eclipse. Теперь рекомендую IntelliJ IDEA. Она пожалуй более тормозная чем даже Eclipse, но она лишена Eclipse-овых идиотизмов, что радует. И потом, эстетически - Darcula -- очень хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 23:09 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
MasterZivНачинать надо с установки хорошей IDE и конфигурирования проекта. подпишусь. Это первое, что надо просить\требовать по приходу на новую работу\проект. Чтобы тебе запустили проект с нуля...деплой до заказчика. Это "они" обязаны. А потом, старайся не сломать) воссоздать весь проект "с нуля" на чистой машине. Потом можно не бояться.....) по 1 строчке дописывая проект....пока не въехал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 23:14 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
MasterZiv, спасибо, да, intellij idea, сейчас очень популярна. мне самому она нравиться, хорошо сделана. на счет чтения кода, я думаю тут как и в любом деле - нужно время и опыт, привет кэп :) чем больше читаешь, тем дальше быстрей понимаешь о чем речь в новых кусках кода, опять привет кеп :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 23:24 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
Petro123, ну да, без конфига проекта дальше совсем некуда :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 23:25 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mr_virtusПривет! Можешь кто даст совет/поделится опытом изучения чужого кода/проекта? С чего начинать, на что обращать внимание, как лучше понимать. Спасибо. По опыту, "понимать" код имеет мало смысла. Лучше в начале понять задачу и что должен делать код. Тогда, даже не понимая код, можно что-то изменять. Единственный инструмент для "понимания" кода - это отладчик. Используя его вы точно будете что и как делает код. Иногда даже точнее, чем кто его написал. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 08:14 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Спасибо, про отладчик понятно. Знаю, что отладчиком далеко не всегда удается воспользоваться, особенно в javaEE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 09:29 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mr_virtusmad_nazgul, Спасибо, про отладчик понятно. Знаю, что отладчиком далеко не всегда удается воспользоваться, особенно в javaEE. Это кто вам сказал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 09:37 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
забыл ник, Например, есть специфичный кейс, среду и данные для которого подобрать очень ресурсоемко. Но тем не менее для него нужно понимать как будет отрабатывать код. Читаешь код и разбираешь. авторmr_virtus mad_nazgul, Спасибо, про отладчик понятно. Знаю, что отладчиком далеко не всегда удается воспользоваться, особенно в javaEE. Это кто вам сказал? А в вашей практике всегда все можно было быстро и надежно отладчиком проверить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 09:57 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mr_virtusзабыл ник, Например, есть специфичный кейс, среду и данные для которого подобрать очень ресурсоемко. Но тем не менее для него нужно понимать как будет отрабатывать код. Читаешь код и разбираешь. авторmr_virtus mad_nazgul, Спасибо, про отладчик понятно. Знаю, что отладчиком далеко не всегда удается воспользоваться, особенно в javaEE. Это кто вам сказал? А в вашей практике всегда все можно было быстро и надежно отладчиком проверить? В целом понял, что вы имеете ввиду. Не поверите, но и для игр и для драйвера какого-нибудь иногда бывает намного труднее подобрать окружение. Меня смутило упоминание javaEE. По-хорошему проблема решается написанием тестов и настройкой qa энвайрнмента, это спасает в 95% случаев. В остальных 5 - ведь всегда можно добавить логирование, определить как минимум строку и файл, в которой содержится ошибка, и оттуда уже плясать, и глубокое понимание нужно очень и очень редко. Конечно если приложение многопоточное, то все становится гораздо сложнее, но все равно никогда не было большой необходимости перелопачивать тонну чужого кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 10:02 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mr_virtusА в вашей практике всегда все можно было быстро и надежно отладчиком проверить? На северах - да. Конечно, если приходится дебажить продакшн, это уже что-то не так в датском королевстве. Но какой-нибудь UAT - всегда пожалуйста. Какие проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 10:07 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
забыл ник, ну да, сам заметил, что чтение всего чужого кода не часто бывает нужно, можно решать задачу, локально разбираясь в участках кода и понимая, что нужно получать на выходе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 10:38 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторНо какой-нибудь UAT - всегда пожалуйста. Какие проблемы? проблем нет. и все-таки в некоторых ситуациях ревью кода оказывается эффективней и быстрей дебага. для дебага нужно подбирать данные(проблема особенно острой становится когда данные специфичные и допустим, чтоб смоделировать ситуацию нужно изменять наборы в нескольких бд), плюс если дебажить через intellij ce, то там нет реверсного дебага, а сам процесс отлаживаемый долгоиграющий. А делая ревью, можно все ускорить, перемещаться по коду опять же быстрей будет, чем когда дебаггер включен. Я понимаю, что дебаг отличная штука, но хотел выяснить для себя кто как работает с незнакомым кодом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 10:44 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mr_virtusзабыл ник, Например, есть специфичный кейс, среду и данные для которого подобрать очень ресурсоемко. Но тем не менее для него нужно понимать как будет отрабатывать код. Читаешь код и разбираешь. Как будет отрабатываться код может помочь только отладка. Да и то с различными опциями оптимизации могут быть веселые моменты (например в GCC) Эту истину я понял, посопровождав код на Clipper (да и остальные xBase не далеко ушли). Когда по коду видишь "буйвол", а при выполнении получается "слон". Так что либо "поднимать окружение" для отладки всегда менее ресурсоемко, чем понять что по настоящему делает код. А не то что думал, даже тот, кто этот код написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 10:46 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, понятно, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 11:01 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mr_virtusBlazkowicz, Я понимаю, что дебаг отличная штука, но хотел выяснить для себя кто как работает с незнакомым кодом. Проблема в том, что тот кто писал код не до конца понимает как работает код. Иначе бы не надо было его править. Да и написано может быть по разному. И не факт, что вы можете правильно понять. Ну еще есть "индусский" код. Я при работе с "унаследованным" кодом в начале либо узнаю ТЗ, что нужно сделать, либо пытаюсь понять, что код должен делать, без чтения кода. А потом уже "смотрю" в код. Делаю "предположения" и проверяю их в отладчике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 11:02 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, авторПроблема в том, что тот кто писал код не до конца понимает как работает код. Иначе бы не надо было его править. ну бывают же ситуации, когда логику нужно поменять, либо дополнить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 11:05 |
|
||
|
Чтение чужого кода.
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, авторЯ при работе с "унаследованным" кодом в начале либо узнаю ТЗ, что нужно сделать, либо пытаюсь понять, что код должен делать, без чтения кода. А потом уже "смотрю" в код. Делаю "предположения" и проверяю их в отладчике. интересная мысль, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 11:06 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38787396&tid=2126382]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 521ms |

| 0 / 0 |
