Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Чтение чужого кода. / 22 сообщений из 22, страница 1 из 1
24.10.2014, 18:06
    #38786955
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
Привет!

Можешь кто даст совет/поделится опытом изучения чужого кода/проекта?

С чего начинать, на что обращать внимание, как лучше понимать.

Спасибо.
...
Рейтинг: 0 / 0
24.10.2014, 18:39
    #38786974
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
...
Рейтинг: 0 / 0
25.10.2014, 16:25
    #38787255
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
Тут варианты. Если есть модульные тесты - то можно смотреть некую часть юзкейсес. Посмотеть
покрытие. Изучить выделенный код.

Есть-ли возможность стартовать приложение (stand-alone) или загрузить его в веб-контейнер?
Если да - то запускать отладчик и смотреть. В любом случае выделить "ядерную часть" или
ядро и отделить его от мусора (entities, pojo-s e.t.c) и понять что это ядро делает.

Смотреть логи старта. Обычно в самом начале происходят важные вещи. Инициализация
компонент.

Посмотреть какие датчики и какие органы управления выведены во внешний мир. JMX компонеты?
Какие. Понажимать на них. Веб-листенеры? Зайти на них. Понажимать.
...
Рейтинг: 0 / 0
25.10.2014, 21:15
    #38787340
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mayton,

хм, интересно. Спасибо!
...
Рейтинг: 0 / 0
25.10.2014, 23:04
    #38787386
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
второй подход - Снаружи <-> изнутри.
Очертить границы ИС по ТЗ. Если есть - прочитать его)).
Что в коде является вашим, а что - соисполнителем.
Найти вот этих самых на картинке )) actor

Дальше уже понятно ЧТО код делает. Т.к. часто в старых системах столько мусора годами плавает)
.....
Посмотреть БД любым вьювером. Т.е. модель предметки.
Упс. форум масштаб картинки не вписывает...растянул.
...
Рейтинг: 0 / 0
25.10.2014, 23:09
    #38787388
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mr_virtusПривет!

Можешь кто даст совет/поделится опытом изучения чужого кода/проекта?

С чего начинать, на что обращать внимание, как лучше понимать.

Спасибо.

Начинать надо с установки хорошей IDE и конфигурирования проекта.
Потому что главное в этом деле -- code browsing...


Раньше я бы рекомендовал Eclipse.
Теперь рекомендую IntelliJ IDEA.
Она пожалуй более тормозная чем даже Eclipse, но она лишена Eclipse-овых идиотизмов, что радует.
И потом, эстетически - Darcula -- очень хорошо.
...
Рейтинг: 0 / 0
25.10.2014, 23:14
    #38787391
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
MasterZivНачинать надо с установки хорошей IDE и конфигурирования проекта.
подпишусь.
Это первое, что надо просить\требовать по приходу на новую работу\проект.
Чтобы тебе запустили проект с нуля...деплой до заказчика. Это "они" обязаны.
А потом, старайся не сломать) воссоздать весь проект "с нуля" на чистой машине.
Потом можно не бояться.....) по 1 строчке дописывая проект....пока не въехал...
...
Рейтинг: 0 / 0
25.10.2014, 23:24
    #38787395
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
MasterZiv,

спасибо,

да, intellij idea, сейчас очень популярна.

мне самому она нравиться, хорошо сделана.

на счет чтения кода, я думаю тут как и в любом деле - нужно время и опыт, привет кэп :)

чем больше читаешь, тем дальше быстрей понимаешь о чем речь в новых кусках кода, опять привет кеп :)
...
Рейтинг: 0 / 0
25.10.2014, 23:25
    #38787396
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
Petro123,

ну да, без конфига проекта дальше совсем некуда :)
...
Рейтинг: 0 / 0
27.10.2014, 08:14
    #38787820
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mr_virtusПривет!

Можешь кто даст совет/поделится опытом изучения чужого кода/проекта?

С чего начинать, на что обращать внимание, как лучше понимать.

Спасибо.

По опыту, "понимать" код имеет мало смысла.
Лучше в начале понять задачу и что должен делать код.
Тогда, даже не понимая код, можно что-то изменять.

Единственный инструмент для "понимания" кода - это отладчик.
Используя его вы точно будете что и как делает код.
Иногда даже точнее, чем кто его написал. :-)
...
Рейтинг: 0 / 0
27.10.2014, 09:29
    #38787850
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mad_nazgul,

Спасибо, про отладчик понятно.

Знаю, что отладчиком далеко не всегда удается воспользоваться, особенно в javaEE.
...
Рейтинг: 0 / 0
27.10.2014, 09:37
    #38787854
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mr_virtusmad_nazgul,

Спасибо, про отладчик понятно.

Знаю, что отладчиком далеко не всегда удается воспользоваться, особенно в javaEE.

Это кто вам сказал?
...
Рейтинг: 0 / 0
27.10.2014, 09:57
    #38787868
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
забыл ник,

Например, есть специфичный кейс, среду и данные для которого подобрать очень ресурсоемко. Но тем не менее для него нужно понимать как будет отрабатывать код. Читаешь код и разбираешь.



авторmr_virtus
mad_nazgul,

Спасибо, про отладчик понятно.

Знаю, что отладчиком далеко не всегда удается воспользоваться, особенно в javaEE.


Это кто вам сказал?

А в вашей практике всегда все можно было быстро и надежно отладчиком проверить?
...
Рейтинг: 0 / 0
27.10.2014, 10:02
    #38787872
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mr_virtusзабыл ник,

Например, есть специфичный кейс, среду и данные для которого подобрать очень ресурсоемко. Но тем не менее для него нужно понимать как будет отрабатывать код. Читаешь код и разбираешь.



авторmr_virtus
mad_nazgul,

Спасибо, про отладчик понятно.

Знаю, что отладчиком далеко не всегда удается воспользоваться, особенно в javaEE.


Это кто вам сказал?

А в вашей практике всегда все можно было быстро и надежно отладчиком проверить?

В целом понял, что вы имеете ввиду. Не поверите, но и для игр и для драйвера какого-нибудь иногда бывает намного труднее подобрать окружение. Меня смутило упоминание javaEE.
По-хорошему проблема решается написанием тестов и настройкой qa энвайрнмента, это спасает в 95% случаев. В остальных 5 - ведь всегда можно добавить логирование, определить как минимум строку и файл, в которой содержится ошибка, и оттуда уже плясать, и глубокое понимание нужно очень и очень редко. Конечно если приложение многопоточное, то все становится гораздо сложнее, но все равно никогда не было большой необходимости перелопачивать тонну чужого кода
...
Рейтинг: 0 / 0
27.10.2014, 10:07
    #38787875
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mr_virtusА в вашей практике всегда все можно было быстро и надежно отладчиком проверить?
На северах - да. Конечно, если приходится дебажить продакшн, это уже что-то не так в датском королевстве. Но какой-нибудь UAT - всегда пожалуйста. Какие проблемы?
...
Рейтинг: 0 / 0
27.10.2014, 10:38
    #38787902
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
забыл ник,

ну да, сам заметил, что чтение всего чужого кода не часто бывает нужно, можно решать задачу, локально разбираясь в участках кода и понимая, что нужно получать на выходе.
...
Рейтинг: 0 / 0
27.10.2014, 10:44
    #38787908
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
Blazkowicz,

авторНо какой-нибудь UAT - всегда пожалуйста. Какие проблемы?

проблем нет. и все-таки в некоторых ситуациях ревью кода оказывается эффективней и быстрей дебага.

для дебага нужно подбирать данные(проблема особенно острой становится когда данные специфичные и допустим, чтоб смоделировать ситуацию нужно изменять наборы в нескольких бд), плюс если дебажить через intellij ce, то там нет реверсного дебага, а сам процесс отлаживаемый долгоиграющий. А делая ревью, можно все ускорить, перемещаться по коду опять же быстрей будет, чем когда дебаггер включен.

Я понимаю, что дебаг отличная штука, но хотел выяснить для себя кто как работает с незнакомым кодом.
...
Рейтинг: 0 / 0
27.10.2014, 10:46
    #38787912
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mr_virtusзабыл ник,
Например, есть специфичный кейс, среду и данные для которого подобрать очень ресурсоемко. Но тем не менее для него нужно понимать как будет отрабатывать код. Читаешь код и разбираешь.


Как будет отрабатываться код может помочь только отладка.
Да и то с различными опциями оптимизации могут быть веселые моменты (например в GCC)
Эту истину я понял, посопровождав код на Clipper (да и остальные xBase не далеко ушли).
Когда по коду видишь "буйвол", а при выполнении получается "слон".

Так что либо "поднимать окружение" для отладки всегда менее ресурсоемко, чем понять что по настоящему делает код.
А не то что думал, даже тот, кто этот код написал.
...
Рейтинг: 0 / 0
27.10.2014, 11:01
    #38787936
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mad_nazgul,

понятно, спасибо.
...
Рейтинг: 0 / 0
27.10.2014, 11:02
    #38787938
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mr_virtusBlazkowicz,
Я понимаю, что дебаг отличная штука, но хотел выяснить для себя кто как работает с незнакомым кодом.

Проблема в том, что тот кто писал код не до конца понимает как работает код.
Иначе бы не надо было его править.
Да и написано может быть по разному.
И не факт, что вы можете правильно понять.

Ну еще есть "индусский" код.

Я при работе с "унаследованным" кодом в начале либо узнаю ТЗ, что нужно сделать, либо пытаюсь понять, что код должен делать, без чтения кода.
А потом уже "смотрю" в код.
Делаю "предположения" и проверяю их в отладчике.
...
Рейтинг: 0 / 0
27.10.2014, 11:05
    #38787942
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mad_nazgul,

авторПроблема в том, что тот кто писал код не до конца понимает как работает код.
Иначе бы не надо было его править.

ну бывают же ситуации, когда логику нужно поменять, либо дополнить.
...
Рейтинг: 0 / 0
27.10.2014, 11:06
    #38787948
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение чужого кода.
mad_nazgul,

авторЯ при работе с "унаследованным" кодом в начале либо узнаю ТЗ, что нужно сделать, либо пытаюсь понять, что код должен делать, без чтения кода.
А потом уже "смотрю" в код.
Делаю "предположения" и проверяю их в отладчике.

интересная мысль, спасибо.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Чтение чужого кода. / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]