Я - разработчик стажера и писал приложения.NET приблизительно в течение года теперь. Большая часть работы, которую я сделал, включила создающие новые приложения (главным образом веб-приложения) с нуля, и я был данным более или менее полным контролем над разработкой программного обеспечения.
Это было большим опытом однако как разработчик стажера моя уверенность о том, являются ли подходы, которые я проявил, лучшими, минимально. Идеально я хотел бы сотрудничать с более опытными разработчиками (я нахожу это, лучшее было, я учусь), однако в компании, я работаю на разработчиков, имеют тенденцию работать в изоляции (большой позор для меня).
Недавно я решил, что хороший способ узнать больше, как опытные разработчики приближаются к своему дизайну, мог бы состоять в том, чтобы исследовать некоторые проекты с открытым исходным кодом. Я нашел меня немного пораженным проектами, на которые я смотрел. С моим уровнем опыта было трудно понять тело кода, с которым я столкнулся.
Моим вопросом является небольшой нечеткий. Как разработчики приближаются к задаче понимания нового среднего и крупного проекта масштаба. Я лился по большому количеству кода и изо всех сил пытаться видеть лес для деревьев. В любой момент я чувствовал, что мог понять небольшую часть системы, но не видеть, как все совмещается. Другие получают это то же чувство? Раз так, какие подходы Вы проявляете к пониманию проекта? У Вас есть совет о том, как изучить лучшие практики дизайна?
Любой совет будет очень цениться.Спасибо.
Это очень интересный вопрос. Я также хотел бы знать, как это делают другие разработчики. До сих пор я использовал эти возможности в произвольном порядке:
Communication
Я обычно прошу разработчика дать мне обзор проекта или любого из модулей проекта, которые меня интересуют. До сих пор я не нашел ничего лучше, чем общение с вовлеченными разработчиками, чтобы познакомиться с существующей кодовой базой. Они могут не только дать вам обзор проекта и кода, но и порекомендовать любую доступную документацию (например.class диаграммы), которую стоит посмотреть.
Всегда нужно искать лучший путь. Это, по сути, то, куда вы стремитесь поправиться. Всегда спрашивать «должен быть лучший способ» - это хорошо, но не позволяйте этому парализовать вас. Установите время, чтобы что-то попробовать, если вы никуда не денетесь, откажитесь от этого и идите другим путем.
Что меняет, так это люди, которым вы доверяете, люди, с которыми вы можете поделиться своими идеями, и сообщества, на которые вы можете положиться. Я делаю это все время с кратким списком людей, которые работали со мной раньше, лучше меня в тех областях, которые я знаю, что я отстой, и не возражаю сказать мне: «Нет, плохо, тебе следует сделать» (какая-то другая идея ) ". Тот шаг, который вы уже сделали, разместив что-то здесь: -)
Что касается проектов - каждый раз, когда я подхожу к проекту, который уже существует, не мой, людей, которые его написали, нет рядом, код старый, документация редко и так далее, я склонен сосредотачиваться на ОДНОМ и только на одном. Не пытайтесь понять всю систему, это нереально, и не беспокойтесь слишком сильно о том, являются ли ваши изменения идеальным исправлением / решением / чем угодно - это проявится со временем и станет очевидным, когда вы улучшите и поймете вещи больше . Знайте то, чего вы не знаете, и не скрывайте этого, а изучайте по одному каналу за раз. Даже знание множества уловок и интересных вещей не имеет большого значения, когда вам нужно вернуться в 2003 год с наборами данных.
Вы упомянули, что люди очень замкнуты ... это очень плохо, потому что для разработки чего-либо требуется много людей, разговаривающих друг с другом. Я бы посоветовал спросить, можете ли вы объединить программу с одним из них, который много знает о системе.Если этот человек извиняется или говорит «они не могут» найти кого-то, кто это сделает.