cookie

نحن نستخدم ملفات تعريف الارتباط لتحسين تجربة التصفح الخاصة بك. بالنقر على "قبول الكل"، أنت توافق على استخدام ملفات تعريف الارتباط.

avatar

DDDevotion

All about Domain-Driven Design FB - https://www.facebook.com/groups/dddevotion/ Youtube - https://www.youtube.com/c/dddevotion По вопросам сотрудничества @gradea

إظهار المزيد
مشاركات الإعلانات
4 121
المشتركون
+224 ساعات
+57 أيام
+3630 أيام

جاري تحميل البيانات...

معدل نمو المشترك

جاري تحميل البيانات...

Кажется в умных книжках все уши прожужали, что закомментированный код это зло. Но тем не менее это встречается повсеместно и даже опытные люди могут не придавать значения. Я не буду писать почему закомментированный код это плохо. Давайте разберемся откуда берется закомментированный код и каковы причины. Первый вариант. Была реализована некоторая функциональность, которая теперь не нужна. Что делает разработчик в рамках новой таски? Правильно, комментит код! Почему он выбирает такой путь? - Так проще! И на самом деле при большом давлении сроков мы выбираем здесь и сейчас не самые оптимальные решения. - Разработчик не уверен в решении. Мы комментим, запускаем код, оцениваем результат глазами или через тесты. Если нет результата - комментим что-то другое, раскомменчиваем пока не получим нужное поведение. Получили? Льем в репу, ведь (см. пункт первый) так проще! - Разработчик не верит продакту/аналитику/постановщику задачи. У многих был опыт когда фичу требовали вернуть. И проще просто раскомментить нужный кусок, чем что-то делать средствами гита. Второй вариант. Мы что-то сделали в рамках большой фичи, но некоторая малая часть не получила пока что аппрув. Вот этот кусочек и комментим для прекрасного будущего. Причины, в целом, те же самые: когнитивный перегруз, давление дедлайнов, поломанная коммуникация с продактом, недоверие коду, нехватка практики с гитом, фича-флагами и тп. Третий вариант, который приходит в голову - копипаста чужого кода и отсекание комментами всего ненужного (почувствуй себя великим скульптором!). Но по большей части этот вариант сводится к первым двум. Что же делать? Можно пообещать разные кары и периодически публично высмеивать коллег. Можно настроить проверки в гите и реджектить такие коммиты. Но это борьба с последствиями. И она может только частично замаскировать существующие проблемы. Попробуем повлиять на причины. Инструментарий. Не все знают гит в совершенстве. И в этом нет ничего стыдного, ведь почти всю работу с гитом сейчас забрали IDE. Но можно регулярно рассказывать на внутренних митапах и прикапывать полезные команды и подходы в базе знаний. Нет митапов и базы знаний? Заведите, это очень полезные практики. Коммуникация с продактом. Зачастую у нас нет прямого влияния на продакта. Но есть способы которые мне помогали: обратная связь, коучинг и обучение. Да, вы можете развивать вашего продакта, учить его, наставлять. Хорошие продакты готовы принимать новое и не воротят нос, если вы с ними разговаривает не на языке красоты кода, а объясняете влияние тех или иных решений на систему. Давление сроков. Уже много раз писал, что жесткие дедлайны портят код. Как бы умные дядьки типа Фаулера не убеждали нас, что качественный код писать быстрее и дешевле, под давлением сроков многие из нас выберут срезать углы здесь и сейчас (и получить даже за это квартальную премию), хоть суммарно это и приведет к удорожанию поддержки и разработки. Старайтесь избегать дедлайнов там где это возможно. Если вы даете примерную дату релиза, то убедитесь, что все воспринимают это именно как прогноз, а не дедлайн. Если ваш продакт или проджект менеджер привык к ковровым дедлайнам - расскажите про последствия, можно с примерами из вашей кодовой базы. Неуверенность в решении. Что нам дает уверенность в нашем решении? Компилятор, юнит-тесты, автотесты, регресс, телеметрия с прода, продуктовые метрики и иной фидбек. Чем быстрее мы можем получить обратную связь, тем более мы уверены в нашем коде. Инвестируйте в автотесты, практикуйте TDD, BDD, Test-First и другие подобные практики. Также нам поможет правильная нарезка на модули-сервисы, снижение coupling, единая ответственность и другие подобные подходы. Как мне видится, эти причины носят достаточно общий характер и работа с ними не только сделает ваши волосы шелковистыми уберет закомментированный код из репы, но и в целом повысит инженерную и продуктовую культуру в компании. А как у вас?
إظهار الكل...
👍 15🔥 15
Photo unavailableShow in Telegram
const ABCTwoSomeText: React.FC<ABCTwoSomeTextProps> = ({ softName }) => { return ( <> <Text size="small" className="mt10x"> <Trans i18nKey="some:abc->abcTwo->access" values={{ softName }} /> </Text> =========> {/* Will be useful in the future */} {/* <Text size="small"> <Trans i18nKey="some:abc->abcTwo->accessDate" values={{sfotName, date: moment(date).format("DD.MM.YYYY")}} /> </Text> */} </> ); }; export default ABCTwoSomeText;
إظهار الكل...
🙈 2
Photo unavailableShow in Telegram
У Марка Ричардса свой DDD, с демонстрацией и дискуссией 😅
إظهار الكل...
5😁 1
Photo unavailableShow in Telegram
Отличное завершение дня. Брандолини - топ 🔥 Если будет преза - обязательно скину.
إظهار الكل...
👍 26 6
Photo unavailableShow in Telegram
Фанаты беснуются! Хедлайнер вечера на сцене🔥
إظهار الكل...
6👍 5🔥 2
Photo unavailableShow in Telegram
Эти правила сделают ваш код чище и лучше. Не всегда получится их выполнить, да и не всегда стоит. Но попробуйте вспомнить эти правила в следующий раз и задать вопрос: «а что если…»
إظهار الكل...
🙈 15🔥 6👍 5
Photo unavailableShow in Telegram
Классный доклад про агрегаты с пошаговым объяснением проблем и решений. Буду ждать записи.
إظهار الكل...
👍 27
Сегодня начались доклады на DDD Europe 2024. Первый день называется DDD foundation. Доклады по достаточно базовым вещам - но надеюсь услышать что-то полезное энивей. Я пропустил первый доклад от Майкла Физерса и сейчас слушаю про транзакции, легаси и прочее. Stay tuned 🤙
إظهار الكل...
🔥 12👍 10 1
ArchDays выкатили видео доклада Влада Хононова https://www.youtube.com/watch?v=rH3u9DvOlPk Я сам не посмотрел еще - поделитесь вашим мнением🙏
إظهار الكل...
Сложность и модулярность две стороны одной медали. Влад Хононов.

Выступление на ArchDays 2023. Забронируйте участие на следующей конференции:

https://archconf.ru/arch

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

👍 27
Попалась классная статья про рефакторинг. Бывают, конечно, и более сложные кейсы, но в целом согласен по всем пунктам. https://open.substack.com/pub/danielmoka/p/refactor-like-a-pro
إظهار الكل...
Refactor like a PRO

The art of continuous, safe and aggressive refactoring

👍 16
اختر خطة مختلفة

تسمح خطتك الحالية بتحليلات لما لا يزيد عن 5 قنوات. للحصول على المزيد، يُرجى اختيار خطة مختلفة.