Как читать, исходный код изучают, как использовать большую систему? [закрытый]

я нашел ответ здесь: изменено

[travis]
  slug = dben89x/my_repo

на

[travis]
  slug = dben89x/my-repo
8
задан Sam 18 August 2014 в 12:20
поделиться

10 ответов

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

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

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

6
ответ дан 5 December 2019 в 04:43
поделиться

Учитесь с целью. Я думаю, что Вы будете учиться лучше всего, если Вы будете иметь в виду некоторую цель - фиксируют это или добавляют ту функциональность. Начните искать вероятные места, где необходимо будет внести изменения. Следуйте за потоками управления назад, чтобы узнать, как добраться до той точки в коде. Кроме того, получите представление "птичьего глаза" кода - смотрят на расположение и структуру. Хороший код будет иметь описательные имена, который говорит, что Вы хотите каждый класс, и метод для. Посмотрите, можно ли распознать шаблоны реализации и видеть, где/как они используются. Не помещайте слишком много запаса в документацию - документы могут быть превосходными, но они часто вне синхронизации с тем, что действительно делает код. Позвольте самому коду быть лучшей документацией.

8
ответ дан 5 December 2019 в 04:43
поделиться

Если Вы захотите книги, которые я нашел полезным для изучения, как узнать из кода, то я проверю книги Diomidis Spinellis Чтение кода: Качество Перспективы и Кода С открытым исходным кодом: Перспектива С открытым исходным кодом.

Для Вашего конкретного вопроса я запустил бы с Чтения кода. Но оба - хорошие книги.

7
ответ дан 5 December 2019 в 04:43
поделиться

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

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

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

2
ответ дан 5 December 2019 в 04:43
поделиться

Спасибо за Ваши ответы. Партия полезной информации.

Некоторые инструменты я могу думать:

  • grep
  • ctags
  • cscope
  • javadoc (Java)
  • DOxygen (C, C++)
  • lxr (набор инструментов программного обеспечения для индексации и представления репозиториев исходного кода)

Еще предложение на полезных инструментах?

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

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

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

Я предложил бы найти опцию, которую Вы действительно хотите добавить.

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

Ограбить

2
ответ дан 5 December 2019 в 04:43
поделиться
  1. Получите здание кода и работу Вашего dev поля.
  2. Фигура, как система используется и ознакомляется с пользовавшимися библиотеками. (Например, если Вы видите код с вызовами к некоторому lib OpenGL, ознакомляетесь с той библиотекой), Read документация системы.
  3. Я затем нашел бы точку кода, который будет работать на основе некоторого входа. Таким образом, скажем, система генерирует вывод на основе некоторого входа. Я нашел бы метод, который инициирует процесс. Теперь попробуйте к любому шагу через него (могла быть боль), или просто прочитайте код и попытайтесь получить обзор высокого уровня того, что продолжается.

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

Добавление опции может быть хорошей идеей, но в большой системе это могла быть боль для ровного выяснения, какова та функция. Не только то, что, любая функция Вы пишете для изучения системы, скорее всего, закончит тем, что было похоже на дерьмо, потому что Вы понятия не имели бы, что, где и то, как система работает. Опция, которую Вы хотите добавить, хотя может, конечно, привести Вас к правой точке в № 3 так, не обесценивает это.

- s

2
ответ дан 5 December 2019 в 04:43
поделиться

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

0
ответ дан 5 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

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