Когда вы уже написали несколько своих небольших пет-проектов, вы начинаете понимать что чистый код, архитектура и другие паттерны программирования начинают иметь смысл. В масштабируемых, командный или коммерческих проектах это несет особую ценность. Изучив эти принципы, новички получат представление о построении надежных, гибких и легко тестируемых приложений, что позволит им сохранить ясность кодовой базы и возможность ее сопровождения по мере роста их проектов.
Рубрика «DRY»
Основы чистого кода на Python (PEP8, SOLID, ООП) ::: часть 1
2024-08-17 в 9:15, admin, рубрики: clean architecture, clean code, DRY, KISS, pep8, python, solid, unix-way, ооп, чистый кодЗакон Кёрли: Делай что-то одно
2022-04-03 в 12:59, admin, рубрики: design principles, DRY, srp, Анализ и проектирование систем, Проектирование и рефакторинг, Читальный залВ статье "Пережить великую нехватку переменных" (Outliving the Great Variable Shortage) Тим Оттингер формулирует закон Кёрли:
«Переменная должна означать только что-то одно. Она не должна означать "что-то при таких-то условиях" и иметь разный смысл в разных обстоятельствах. Также она не должна иметь два смысла одновременно. "За двумя зайцами погонишься – ни одного не поймаешь". Переменная должна означать что-то одно все время своего существования»
Седого ковбоя Кёрли Уошбурна в комедии 1991 года "Городские пижоныЧитать полностью »
Разработка формы на React. Принципы KISS, YAGNI, DRY на практике
2020-04-03 в 11:35, admin, рубрики: DRY, javascript, KISS, React, ReactJS, YAGNI, принципы, разработка, Совершенный код, формы, хукиЗдавствуйте, в этом туториале мы рассмотрим как разработать очень простую, но контролируемую форму в React, сфокусировавшись на качестве кода.
При разработке нашей формы мы будем следовать принципам «KISS», «YAGNI», «DRY». Для успешного прохождения данного туториала вам не нужно знать этих принципов, я буду объяснять их по ходу дела.Читать полностью »
Типичные ошибки при написании юнит-тестов. Лекция Яндекса
2019-01-21 в 7:00, admin, рубрики: DRY, java, KISS, smell, Блог компании Яндекс, браузеры, разработка мобильных приложений, Разработка под android, Тестирование мобильных приложений, тесты, типичные ошибки, юнит-тестирование, юнит-тестыЕсли освоить небольшой список типичных ошибок, возникающих при написании юнит-тестов, то можно даже полюбить писать их. Сегодня руководитель группы разработки Яндекс.Браузера для Android Константин kzaikin Заикин поделится с читателями Хабра своим опытом.
— У меня доклад практический. Надеюсь, он вам всем принесет пользу — и тем, кто юнит-тесты уже пишет, и тем, кто только думает писать, и тем, кто пробует, и у кого не получилось.Читать полностью »
Так ли хорош DRY или все же он может нарушать O из SOLID
2018-09-17 в 8:26, admin, рубрики: copy-paste, DRY, open-closed, solid, Анализ и проектирование систем, Программирование, Промышленное программирование, Совершенный кодПринцип DRY (Do not Repeat Yourself) давно всем вполне очевиден и любим многими программистами. И многие согласны, что Copy/Paste это совсем не круто. В этой статье я хочу привести пример того, в каких случаях в промышленном программировании использование Copy/Paste более уместно и помогает красиво реализовать Open-Closed принцип из SOLID.
Читать полностью »
Принципы разработки программного обеспечения
2018-06-11 в 10:41, admin, рубрики: apo, bduf, design code, DRY, KISS, lod, pola, YAGNI, принципы разработки, Программирование, Проектирование и рефакторинг
Доброго времени суток, читатель! Хочу поделиться небольшой статье посвященной самым известным принципам разработки программного обеспечения. Статья будет полезна скорее для начинающих разработчиков, потому что опытные вряд ли найдут здесь что-то новое. Но и новичкам тоже нужно что-то читать.
Читать полностью »
Антипаттерны тестирования ПО
2018-05-09 в 18:49, admin, рубрики: DRY, KISS, solid, tdd, xunit, автоматическое тестирование, антипаттерны тестирования, интеграционные тесты, микросервисы, отладка, пирамида тестирования, покрытие кода, Тестирование IT-систем, Тестирование веб-сервисов, управление разработкой, цикломатическая сложность, юнит-тестыВведение
Есть несколько статей об антипаттернах разработки ПО. Но большинство из них говорят о деталях на уровне кода и фокусируются на конкретной технологии или языке программирования.
В этой статье я хочу сделать шаг назад и перечислить высокоуровневые антипаттерны тестирования, общие для всех. Надеюсь, вы узнаете некоторые из них независимо от языка программирования.
Терминология
К сожалению, в тестировании пока не выработали общую терминологию. Если спросить сотню разработчиков, в чём разница между интеграционным, сквозным и компонентным тестом, то получите сто разных ответов. Для этой статьи ограничимся такой пирамидой тестирования:
Если не видели пирамиду тестирования, настоятельно рекомендую ознакомиться с ней. Вот некоторые хорошие статьи для начала:
- Забытый слой пирамиды автоматических тестов (Майк Кон, 2009)
- «Пирамида тестирования» (Мартин Фаулер, 2012)
- «Блог отдела тестирования Google» (Google, 2015)
- «Пирамида тестирования на практике» (Хэм Вокк, 2018)
Реальность повторного использования
2018-04-04 в 2:46, admin, рубрики: DRY, reuse, WYSIATI, библиотека, Даниел Канеман, думай медленно, мышление, повторное использование кода, Программирование, решай быстро, управление разработкой, фреймворкГоворят, что не нужно изобретать велосипед. На первый взгляд это кажется очевидным. Если вы потратили время на разработку, то зачем делать это снова, можно ведь повторно использовать старое решение? Казалось бы, со всех сторон хороший вариант. Но не всё так просто. Как старый «седой» программист, я видел, как организации снова и снова становятся жертвами этого заблуждения, вкладываясь в предварительный дизайн и разработку, но никогда не достигая обещанного массивного ROI благодаря повторному использованию. На самом деле я считаю, что наша чрезмерно оптимистичная оценка пользы и простоты повторного использования — одна из самых распространённых и опасных ловушек в разработке ПО.
Я считаю корнем проблемы то, что Даниел Канеман сформулировал как правило «Что видишь, то и есть». Оно в двух словах объясняет жёсткие ограничения человека на быстрое принятие решений, используя только имеющиеся данные и некоторые базовые эвристики. Замедление мышления требует времени и дисциплины — так что вместо этого мы пытаемся заменить сложные проблемы, которые не полностью понимаем, простыми.
Читать полностью »
Абстракция сетевого слоя с применением «стратегий»
2017-09-21 в 19:51, admin, рубрики: alamofire, DRY, iOS, moya, RxSwift, solid, srp, swift, xcode, разработка под iOSОт всех моих предыдущих реализаций сетевого слоя осталось впечатление, что есть еще куда расти. Данная публикация ставит целью привести один из вариантов архитектурного решения по построению сетевого слоя приложения. Речь пойдет не об очередном способе использования очередного сетевого фреймворка.
Часть 1. Взгляд на существующие подходы
Для начала из публикации 21 Amazing Open Source iOS Apps Written in Swift взято приложение Artsy. В нем используется популярный фреймворк Moya, на базе которого и построен весь сетевой слой. Отмечу ряд основных недостатков, которые встретил в данном проекте и часто встречаю в других приложениях и публикациях.
Архитектурная пирамида приложения
2017-09-11 в 14:25, admin, рубрики: DRY, inversion of control, KISS, solid, YAGNI, Анализ и проектирование систем, архитектура приложений, ооп, Программирование, Проектирование и рефакторинг, Совершенный кодПрограммирование — достаточно молодая область знаний, однако, в ней уже существуют базовые принципы «хорошего кода», рассматриваемые большинством разработчиков как аксиомы. Все слышали о SOLID, KISS, YAGNI и других трех- или четырех- буквенных аббревиатурах, делающих ваш код чище. Эти принципы влияют на архитектуру вашего приложения, но помимо них существуют архитектурные стили, методологии, фреймворки и много чего еще.
Разбираясь со всем этим по отдельности, меня заинтересовал вопрос — как они взаимосвязаны? Пытаясь выстроить иерархию и вдохновившись небезызвестной пирамидой Маслоу, я построил свою пирамиду «архитектуры приложения».
О том, что из этого вышло — читайте под катом.
Читать полностью »