TL; DR
Вы никогда не узнаете все это. Вокруг каждой «вещи», которую вы можете знать, всегда есть больше глубины и широты. Учитесь, как вы идете. Применяйте «лучшие практики», которые вы считаете актуальными сейчас. Делать ошибки. Просто постарайтесь избежать действительно дорогостоящих ошибок. Найдите наставников, если ваш проект может привести к дорогостоящим ошибкам.
А теперь длинный ответ ...
1. «Рабочее программное обеспечение является основной мерой прогресса». ( Agile Manifesto )
Если вы видите границы своих знаний, это здорово! Преследуй края! Продолжай учиться! Но имейте в виду, вы можете учиться и анализировать вечно .
Построй что-нибудь.
2. Учиться и делать ошибки; но не делайте "плохих". *
Продолжайте раздвигать границы своих знаний / навыков. Вы будете делать ошибки. Вы можете учиться у них. Но вам не нужно быть безрассудным .
Время, которое вы тратите на поиск и работу с более опытными разработчиками и наставниками, должно увеличиваться пропорционально стоимости бизнеса и профилю рисков проекта.
Если вы делаете небольшой CLI для себя : работайте так, как хотите.
Если вы пишете веб - портал банка: окружите себя очень опытных разработчиков.
3. «Лучшие практики» должны быть написаны в кавычках и должны быть подмигнуты.
«Практики» превращаются в «лучшие практики», когда они замечены как успешные в достижении X, по крайней мере, в некоторых случаях. Кто-то признает пользу Практики A для достижения Преимущества X и объявляет эту практику «лучшей практикой» в Интернете. Другие согласны - часто по уважительной причине. Но с этого момента мы, как правило, теряем из виду, почему некоторые практики являются «лучшими», а другие - «антипаттернами» или «вонючими».
Проблема в том, что «лучшая практика» никогда не бывает корыстной. «Антипаттерны» сами по себе не являются дьявольскими. И даже "зловоние" только иногда происходит от гниения. Иногда эта вонь - просто вкусный, вкусный сыр ...
Вы не практикуете такие вещи, как «внедрение зависимостей» (DI), потому что «внедрение зависимостей» по своей сути ценно для бизнеса. Это даже отдаленно не важно для создания работающего продукта. Это выполняет то, что вы, возможно, хотите в вашем конечном продукте. Но это также может сделать вашу работу дольше без пользы ...
Хм ...
Итак, вы должны следовать "лучшим практикам?" Даже если ты их не понимаешь? ... эээ ... да. Я имею ввиду нет. Но да. Но только те, которые действительно относятся к вам и вашему программному обеспечению и его назначению.
Призовите POAP ! (Да. Мой блог.)
Принципы, модели и практики не являются конечными целями.
Поэтому хорошее и правильное применение каждого из них вдохновлено и ограничено более высокой, более конечной целью. Вы должны понять, почему вы делаете то, что делаете!
(POAP не освобождается от POAP.)
Так, вы, возможно, не до конца понимаете каждый нюанс DI, например. Но, если вы понимаете намерение, вы будете знать, если вы «должны» использовать DI, и вы будете в некотором роде лучше понимать DI.
И, как только вы выпустите продукт, вы можете подумать о том, был ли DI (или что-то еще) действительно полезным. Если так, сформулируйте почему в письменной форме. Если нет, сформулируйте, почему в письменной форме ...
Чтение бонусов / Несколько актуально:
Анализ паралича это вещь. Вам нужно анализировать и учиться; но вы также должны сделать вещи. Баланс.
Вы всегда можете чувствовать себя ковбойским кодером .
* На самом деле вы будете делать плохие ошибки, если будете делать что-то примечательное. Но вы человек, я полагаю. Итак, мы прощаем тебя раньше времени ... Или, по крайней мере, я делаю. Может быть. ... ну ... посмотрим.