Как я могу практиковать шаблоны проектирования и рефакторинг преднамеренно? [закрыто]

10

Я читал книгу « Рефакторинг к шаблонам» и удивлялся, как я могу получить шанс отработать навыки, потому что без преднамеренной практики новых способов рефакторинга и использования шаблонов мои навыки не улучшатся.

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

rwong
источник

Ответы:

6

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

Короче говоря, выкладывайте свои дизайны и на стол и знайте, насколько вы хороши или плохи, иначе нет никакого способа оценить ваши навыки.

V4Vendetta
источник
3

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

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

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

Кроме того, последний комментарий: работа в офисе требует, чтобы вы выполнили каждое задание как можно быстрее. Если вы работаете слишком быстро и создаете много ошибок, вы не выполнили задачу , так как вам придется вернуться к ней позже. Это переделка. Если вы не потратите необходимое время на то, чтобы научиться правильно делать что-то, вы создадите больше работы для себя в краткосрочной перспективе и не научитесь правильным шаблонам для улучшения в долгосрочной перспективе. Как для вас, так и для вашего работодателя стоит того, чтобы вы придерживались правильных шаблонов проектирования. (Тем не менее, шаблоны проектирования могут часто чрезмерно использоваться и злоупотребляться людьми, которые практикуют их чрезмерно усердно или без базового понимания, но это отдельный момент.)

carpeliam
источник
Переработка - довольно интересная тема. 37signals.com/rework - достойная книга на эту тему.
Карпелиам
1
О, еще один комментарий, и это идет вместе с следованиями других людей. Используйте людей в вашем офисе в качестве ресурса. Если у них есть планы относительно того, как что-то реорганизовать, попросите их объяснить свой мыслительный процесс и заставить их научить вас. Если ваш офис не фокусируется на вашем личном профессиональном развитии, тогда есть проблема.
Карпелиам
+1 за заметку о завершении задачи.
Петер Тёрёк
1

Я думаю, что у вас есть следующие варианты:

  • Попробуйте потренироваться в нерабочее время - просто оставайтесь на работе и экспериментируйте с рефакторингом кода, не передавая код в VCS. Для преднамеренной практики вам не нужно совершать изменения. Вам нужно воспроизвести процедуру, пока она не станет вашей второй натурой.
  • Подумайте о том, чтобы овладеть навыками общения, чтобы обсудить с коллегами, какой рефакторинг более уместен. Решающий разговор действительно полезен для понимания механизма общения.
  • Pet project - создайте любимый проект и попрактикуйте их. Это не должно быть очень полезным. Ваша цель - практиковать навыки программирования.
  • Подумайте о том, чтобы предложить свои услуги в проекте с открытым исходным кодом - это более выгодно для обдуманной практики, поскольку вы можете получить обратную связь
Алексей
источник