Как разобраться в чужом коде?

Тема в разделе "Как сделать...", создана пользователем vitrolov, 21 сен 2018.

  1. vitrolov

    vitrolov Постоялец

    Регистр.:
    10 июн 2012
    Сообщения:
    136
    Симпатии:
    120
    Нужны советы, как разобраться в чужом коде.
    Есть чат боты для вайбера и телеги.
    Код можно поделить условно на три части, публичные библиотеки, которые подключаются композером. Самописная часть, сделанная с использованием ООП, (контролеры, вьюшки, модели). Админка тоже самопис
    Комментариев немного, но все же есть
    У меня опыт в части работы с чат ботами не очень большой, вернее даже отсутствует.
    Стоит задача понять код и внедрить новый функционал. Какие советы и что вы делаете для понимания чужого кода? Как можно дебажить данный код, ведь все происходит в чате меседжеров? Насколько это реально разобраьтся в проекте, ведь несколько файлов еще зашифровано.
    Первым делом думаю пройтись по коду, начиная от индексного файла, далее по цепочке вызовов. Еще вариант создать небольшой вики. Дальше хз, думаю по ходу вникать что и как.
     
  2. 2cher777

    2cher777

    Регистр.:
    10 мар 2018
    Сообщения:
    287
    Симпатии:
    118
    Сначала разберись с закодированными файлами. Расшифруй, а потом уже пытайся вникать по любой удобной схеме.
     
  3. vitrolov

    vitrolov Постоялец

    Регистр.:
    10 июн 2012
    Сообщения:
    136
    Симпатии:
    120
    base64 + еще чем-то. Большую часть разобрал, но когда закоментил эти файлы ,все работает. Возможно, разработчики оставили бекдоры, на всякий случай. Но без этих файлов ошибок в работе пока не увидел

    Это раздел PHP, то логично что все на нем написано.
    Просто не знаю, как более ефективно организовать это дело
     
  4. 2cher777

    2cher777

    Регистр.:
    10 мар 2018
    Сообщения:
    287
    Симпатии:
    118
    Это пока. Но удачи в ковырянии.
     
  5. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    477
    Симпатии:
    1.183
    Я начинаю с разбора какой-то конкретной функции. Начиная от index.php и по цепочке.

    Ничего там не происходит. Ты скрипт отправляет скольки список кнопок, после на адрес callback мессенджер отправляет нажатую кнопку, скрипт обрабатывает, другие кнопки/мемасики в ответ шлет
     
  6. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    654
    Симпатии:
    1.521
    Никогда не видал проблем в понимании чужого кода.
    На мой взгляд более реалистичной помощь будет если показать код и задавать предметные вопросы по тому, что непонятно.
     
  7. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.609
    Симпатии:
    1.538
    1я проблема, с который я столкнулся, - незнание синтаксиса. Лечится чтением манов - http://php.net/manual/ru/langref.php
    2я вроде и синтаксис понятен, а хз по какому пути идёт выполнение - для облегчения этого процесса есть дебагеры, а для лечения рефакторинг в соответствии с clean code.
     
    Black#FFFFFF нравится это.
  8. Ambleranona

    Ambleranona Создатель

    Регистр.:
    24 окт 2018
    Сообщения:
    26
    Симпатии:
    6
    Всегда разбирал чужой код вручную. Дебагами не пользовался. Если это ООП - то ещё проще, идёшь по нити и всё. Сначала ты цепляешься за функцию, которая тебя заинтересовала, затем по нити смотришь откуда она идёт и куда. Обычно мне этого достаточно.
    Иногда вставляю в код закладки в духе "echo('111111');" чтоб знать какие функции задействованы при выполнении.
    Рисковано. Может сломаться в самый неподходящий момент. Лучше всё равно расшифровать.
     
  9. Black#FFFFFF

    Black#FFFFFF

    Регистр.:
    19 июл 2007
    Сообщения:
    207
    Симпатии:
    134
    Если разработчик был грамотный и комментировал код, ознакомьтесь с такой штукой, как phpDocumentor. В целом Вам также поможет хорошая IDE, тот же PHPStorm даст много подсказок. Отладчики/профайлеры помогут просмотреть графики вызовов функций и т.п. Xhprof, Xdebug и так далее.