Как Вы ознакомляете с кодовой базой, которая не имеет никакой документации? [закрытый]

Вы должны сделать Redis-кеш сервисом, а потом внедрить его в свои контроллеры (или других зависимых). При необходимости обратитесь к документам Symfony о внедрении зависимостей .

Вот пример, вам, возможно, потребуется настроить его позже:

# config/services.yaml
services:
    redis_connection:
        class: 'RedisConnection'
        factory: ['RedisAdapter', createConnection]
        arguments: 
          - '%env(REDIS_URL)%'

    redis_cache:
        class: 'RedisCache'
        arguments:
          - '@redis_connection'

Обратите внимание, что я не знаю, какие пространства имен имеют ваши классы, поэтому вам придется настроить конфиг соответственно.

И тогда вам также нужно будет настроить среду для внедрения службы в ваши контроллеры (или другие иждивенцы):

# config/services.yaml
services:
  # ...
  App\Controller\ExampleController:
      arguments:
        - '@logger'
        - '@redis_cache'

Кроме того, вы должны обновить контроллеры для принятия нового аргумента в конструкторе например:

public function __construct(LoggerInterface $logger, RedisCache $cache)
{
    $this->logger = $logger;
    $this->cache = $cache;
}

Если у вас есть какие-либо вопросы, обратитесь к документации по контейнера услуг .

11
задан Haoest 22 December 2008 в 23:59
поделиться

8 ответов

Был поток об этом на Slashdot год назад. Среди обычного хлама Slashdot существуют некоторые хорошие ответы; возможно, кто-то может извлечь их здесь.

Некоторые хорошие ступают через программу с отладчиком, Doxygen (конечно) (и связанные инструменты как Глобальный ctags/etags/GNU), отказ и несколько книг о точно этой теме: Работа Эффективно с Унаследованным кодом Michael Feathers и Чтения кода: Перспектива С открытым исходным кодом Diomidis Spinellis.

И я лично рекомендую читать P.G. Метод Wodehouse Рефакторинга; если ничто это - по крайней мере, забавное чтение!

10
ответ дан 3 December 2019 в 03:37
поделиться

Вы видели этот вопрос?

Ответ согласия там, кажется:
Погружение прямо в и исправляет ошибку. Выберите тот, ограниченный к небольшой части кодовой базы. Используйте отладчик много.

4
ответ дан 3 December 2019 в 03:37
поделиться

Считайте модульные тесты. Никакие модульные тесты? Запишите некоторые модульные тесты.

5
ответ дан 3 December 2019 в 03:37
поделиться

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

Это не, вероятно, никакое совпадение, что проект не имеет никакой документации, но трудно сказать, существует ли причинная связь там. Истина могла быть любым следующим:

  • Программисты уехали, потому что управление не позволило им документировать свою работу.
  • Management попросил, чтобы программисты уехали, потому что они отказались документировать свою работу.
  • Программисты, оставленные после проекта, стали слишком трудными, чтобы продолжить работать без документации.

Вероятно, лучший способ ознакомиться с кодом к тестам записи. Соберитесь с инструментом поблочного тестирования, который представляет отчеты покрытия кода. Тесты записи, которые осуществляют весь код. Визуализация покрытия кода помогает Вам определить пограничные случаи, которые Вы еще не осуществили. Поскольку Вы проходите этот процесс, я гарантирую, что Вы узнаете много о том, как код работает. И как дополнительная льгота, Вы произведете полный комплект модульного теста.

Получение инструмента, который генерирует документы API, является другой опцией, упомянули другие люди. Этот вид документации только полезен для ссылки. Для показа Вас не полезно, как или когда лучше всего использовать данный класс или метод.

Другое осуществление должно было бы создать диаграммы UML для частей системы. Диаграмма последовательности может быть полезной, даже когда объектно-ориентированная архитектура кода испорчена.

3
ответ дан 3 December 2019 в 03:37
поделиться

Я сказал бы с большим тестированием, если они имеют, устанавливают своего рода платформу поблочного тестирования затем, Вы хороши, в противном случае затем Вы могли бы хотеть запустить тот. Как нет в значительной степени ничего более расстраивающего, чем повреждение чего-то, в то время как Вы пытаетесь починить другую вещь.

и для ссылки Вы могли бы хотеть проверить это, этот чувак, кажется, находится в более трудном месте, чем Вы:

inherited-a-php-nightmare-where-to-start

2
ответ дан 3 December 2019 в 03:37
поделиться

Какой язык программирования? Насколько большой кодовая база (1k, 10k, 100k строки?)

В любом случае я рекомендую использовать Doxygen для создания перекрестной ссылки HTML, которую легко просмотреть вокруг.

1
ответ дан 3 December 2019 в 03:37
поделиться

Если это является достаточно маленьким, чтобы сделать это (скажите, что 10 000 строк или меньше), у меня был справедливый уровень успеха со старыми добрыми fashoned списками. Распечатайте код, получите некоторые маркеры, и окрашенные им отмечают, и пробегитесь через список, набросок примечаний, нахождение ссылок и соединение полной структуры. Где-нибудь успокойтесь, чтобы сделать это и просто провести время для осмотра через код.

Если это записано в чем-то, на чем можно использовать ctags или что-то подобное, взять ноутбук, таким образом, можно искать код.

1
ответ дан 3 December 2019 в 03:37
поделиться

Первая вещь, которую я всегда делаю (в VisualStudio), создают диаграмму классов каждого проекта в решении. Это позволяет мне видеть графическое представление того, с чем я работаю.

И по некоторым причинам я просто прохожу главные классы с желтым блокнотом и просто кратко записываю примечания по тому, что говорит что. Это, кажется, работает на меня. Действительно не знайте почему, или почему его немного лучше, чем просто чтение кода.

Кроме того, если там путают биты кода, который Вы не знаете, как его воображаемое для работы затем выполните его через отладчик и ступите через него. Я всегда пытаюсь сохранить стек вызовов видимым, таким образом, я получаю ощущение различных путей выполнения кода.

Одна последняя вещь (и это не могло бы произойти со всеми), выполняется это через профилировщика. Вы не обязательно ищете показатели производительности, но Вы интересуетесь полученными путями выполнения кода. Его на самом деле очень полезное для наблюдения, что на самом деле происходит, когда оно работает.

1
ответ дан 3 December 2019 в 03:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: