Как понять существующие проекты

Я - разработчик стажера и писал приложения.NET приблизительно в течение года теперь. Большая часть работы, которую я сделал, включила создающие новые приложения (главным образом веб-приложения) с нуля, и я был данным более или менее полным контролем над разработкой программного обеспечения.

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

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

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

Любой совет будет очень цениться.Спасибо.

19
задан John 20 May 2010 в 09:09
поделиться

3 ответа

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

  • Прочтите исходный код, его преимущество в том, что он всегда актуален. Это также сложнейшая задача, но возможно.
  • Прочтите модульные тесты, если они доступны, они часто показывают предполагаемое использование класса, библиотеки или фреймворка.
  • Выполните рефакторинг части исходного кода. По мере того как вы улучшаете качество исходного кода, вы улучшаете свое понимание кода, или я должен сказать, что вы можете улучшить исходный код, только если вы точно знаете, что он делает.
  • Отладка приложения, пошаговое выполнение программы при использовании отладчика.
  • Используйте такой инструмент, как NDepends, JDepends, Lattix, Visual Studio и т. Д., Чтобы реконструировать архитектуру или дизайн приложения и использовать это в качестве отправной точки.
  • Прочтите документацию. Подойдет любая документация, которая позволяет вам понять приложение (пользовательская документация, проектная документация или документация по архитектуре).
  • Общение с первоначальными разработчиками, как сказал Бруно, также было бы хорошим вариантом.
10
ответ дан 30 November 2019 в 04:36
поделиться

Communication

Я обычно прошу разработчика дать мне обзор проекта или любого из модулей проекта, которые меня интересуют. До сих пор я не нашел ничего лучше, чем общение с вовлеченными разработчиками, чтобы познакомиться с существующей кодовой базой. Они могут не только дать вам обзор проекта и кода, но и порекомендовать любую доступную документацию (например.class диаграммы), которую стоит посмотреть.

2
ответ дан 30 November 2019 в 04:36
поделиться

Всегда нужно искать лучший путь. Это, по сути, то, куда вы стремитесь поправиться. Всегда спрашивать «должен быть лучший способ» - это хорошо, но не позволяйте этому парализовать вас. Установите время, чтобы что-то попробовать, если вы никуда не денетесь, откажитесь от этого и идите другим путем.

Что меняет, так это люди, которым вы доверяете, люди, с которыми вы можете поделиться своими идеями, и сообщества, на которые вы можете положиться. Я делаю это все время с кратким списком людей, которые работали со мной раньше, лучше меня в тех областях, которые я знаю, что я отстой, и не возражаю сказать мне: «Нет, плохо, тебе следует сделать» (какая-то другая идея ) ". Тот шаг, который вы уже сделали, разместив что-то здесь: -)

Что касается проектов - каждый раз, когда я подхожу к проекту, который уже существует, не мой, людей, которые его написали, нет рядом, код старый, документация редко и так далее, я склонен сосредотачиваться на ОДНОМ и только на одном. Не пытайтесь понять всю систему, это нереально, и не беспокойтесь слишком сильно о том, являются ли ваши изменения идеальным исправлением / решением / чем угодно - это проявится со временем и станет очевидным, когда вы улучшите и поймете вещи больше . Знайте то, чего вы не знаете, и не скрывайте этого, а изучайте по одному каналу за раз. Даже знание множества уловок и интересных вещей не имеет большого значения, когда вам нужно вернуться в 2003 год с наборами данных.

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

2
ответ дан 30 November 2019 в 04:36
поделиться
Другие вопросы по тегам:

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