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

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

  1. vitrolov

    vitrolov Постоялец

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

    2cher777

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

    vitrolov Постоялец

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

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

    2cher777

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

    Q_BASIC

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

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

    stealthdebuger Механик

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

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

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

    Ambleranona Создатель

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

    Black#FFFFFF

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