Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Архитектурная пирамида приложения

ПрограммированиеАнализ и проектирование системСовершенный кодПроектирование и рефакторингООП
Программирование — достаточно молодая область знаний, однако, в ней уже существуют базовые принципы «хорошего кода», рассматриваемые большинством разработчиков как аксиомы. Все слышали о SOLID, KISS, YAGNI и других трех- или четырех- буквенных аббревиатурах, делающих ваш код чище. Эти принципы влияют на архитектуру вашего приложения, но помимо них существуют архитектурные стили, методологии, фреймворки и много чего еще.

Разбираясь со всем этим по отдельности, меня заинтересовал вопрос — как они взаимосвязаны? Пытаясь выстроить иерархию и вдохновившись небезызвестной пирамидой Маслоу, я построил свою пирамиду «архитектуры приложения».

О том, что из этого вышло — читайте под катом.
Войти в пирамиду
Всего голосов 17: ↑17 и ↓0 +17
Просмотры17.1K
Комментарии 15

Антипаттерны тестирования ПО

Тестирование IT-системTDDОтладкаТестирование веб-сервисовУправление разработкой
Перевод

Введение


Есть несколько статей об антипаттернах разработки ПО. Но большинство из них говорят о деталях на уровне кода и фокусируются на конкретной технологии или языке программирования.

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

Терминология


К сожалению, в тестировании пока не выработали общую терминологию. Если спросить сотню разработчиков, в чём разница между интеграционным, сквозным и компонентным тестом, то получите сто разных ответов. Для этой статьи ограничимся такой пирамидой тестов:


Если не видели пирамиду тестов, настоятельно рекомендую ознакомиться с ней. Вот некоторые хорошие статьи для начала:

Читать дальше →
Всего голосов 48: ↑48 и ↓0 +48
Просмотры64.8K
Комментарии 31

Типичные ошибки при написании юнит-тестов. Лекция Яндекса

Блог компании ЯндексРазработка мобильных приложенийРазработка под AndroidБраузерыТестирование мобильных приложений
Если освоить небольшой список типичных ошибок, возникающих при написании юнит-тестов, то можно даже полюбить писать их. Сегодня руководитель группы разработки Яндекс.Браузера для Android Константин kzaikin Заикин поделится с читателями Хабра своим опытом.


— У меня доклад практический. Надеюсь, он вам всем принесет пользу — и тем, кто юнит-тесты уже пишет, и тем, кто только думает писать, и тем, кто пробует, и у кого не получилось.
Читать дальше →
Всего голосов 42: ↑36 и ↓6 +30
Просмотры19.7K
Комментарии 32

Нейроны и их моделирование

Анализ и проектирование системМатематикаМашинное обучениеМозг
Недавно я написал статью про то, как работает память в мозгу. Несколько комментариев говорили о том, что я недостаточно раскрыл тему особенностей биологического нейрона. И я решил исправить свою ошибку.

В этой статье — список основных механизмов, которые отличают биологические нейроны от простой модели с весами связей и порогом активации. Я расскажу, как поправить модель, если вам понадобится эти особенности учесть.

Начинаем мы вот с этой простой картинки:

image
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры7.6K
Комментарии 53

Разработка формы на React. Принципы KISS, YAGNI, DRY на практике

JavaScriptСовершенный кодReactJS
Из песочницы
Здавствуйте, в этом туториале мы рассмотрим как разработать очень простую, но контролируемую форму в React, сфокусировавшись на качестве кода.

При разработке нашей формы мы будем следовать принципам «KISS», «YAGNI», «DRY». Для успешного прохождения данного туториала вам не нужно знать этих принципов, я буду объяснять их по ходу дела. Однако, я полагаю, что вы хорошо владеете современным javascript и умеете мыслить на React.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры9.8K
Комментарии 34

Разработка приватных навыков для Алисы. О чём не учат в Школе Алисы

Яндекс APIУмный домDIY или Сделай самГолосовые интерфейсы
Каждый раз, когда заканчиваю генеральную уборку, то появляется ощущение, как будто что-то забыл. На прошлой недели я записал на бумаге все задачи, которые надо сделать, чтобы убрать квартиру полностью — получилось три листа формата А4.

список работ на трёх листах А4
Так выглядит список задач по уборке однокомнатной квартиры.

Я активный пользователь Яндекс.Станции, поэтому решил запихнуть этот огромный список в Алису, чтобы во время генеральной уборки спрашивать у «девчонки в коробчонке», что делать дальше. Варианты названия для навыка крутились вокруг слов прораб и дворецкий. Давно мечтал о доме с дворецким, поэтому остановился на названии «Мой Дворецкий» и активационной фразе: «Алиса, спроси у моего дворецкого, что делать дальше».
Читать дальше →
Всего голосов 20: ↑11 и ↓9 +2
Просмотры5.6K
Комментарии 7

Принципы для разработки: KISS, DRY, YAGNI, BDUF, SOLID, APO и бритва Оккама

Блог компании НПП ИТЭЛМАПрограммированиеСовершенный кодПроектирование и рефакторингУправление разработкой
Перевод
image

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

В этом тексте приводится набор принципов, которые должен знать любой разработчик, и которые следует периодически освежать в памяти. Считайте их своим секретным оружием при программировании.

Последовательное применение этих принципов упростит ваш переход от миддла к сеньору. Вы можете обнаружить, что некоторые (вероятно) вы применяете интуитивно.

Принципов много. Мы остановимся на семи самых важных. Их использование поможет вам в развитии и позволит стать лучшим программистом.

1. YAGNI

You Aren’t Gonna Need It / Вам это не понадобится

Этот принцип прост и очевиден, но ему далеко не все следуют. Если пишете код, то будьте уверены, что он вам понадобится. Не пишите код, если думаете, что он пригодится позже.

Этот принцип применим при рефакторинге. Если вы занимаетесь рефакторингом метода, класса или файла, не бойтесь удалять лишние методы. Даже если раньше они были полезны – теперь они не нужны.

Может наступить день, когда они снова понадобятся – тогда вы сможете воспользоваться git-репозиторием, чтобы воскресить их из мертвых.
Читать дальше →
Всего голосов 22: ↑19 и ↓3 +16
Просмотры17.9K
Комментарии 9

0x7E5 Рассуждения о главном

ПрограммированиеРазработка мобильных приложенийРазработка под Android
Из песочницы

За 11 лет работы, заметил как недооценивают либо переоценивают те или иные принципы разработки, такие как SOLID и KISS. Как непонимание архитектуры приводит к "аду" вместо "кода". Как любовь к DI приводит к инжекту констант и как ненависть к архитектурам приводит к хаосу. Хотелось бы чуть глубже нырнуть в смысл этих понятий, попытаться раскрыть их для начинающих и, возможно, заставить переосмыслить для опытных программистов.

Нырнуть глубже
Всего голосов 26: ↑24 и ↓2 +22
Просмотры10.3K
Комментарии 28

CDD — Cli Driven Development

Ненормальное программированиеЯ пиарюсьC++ООП
Из песочницы

Все-таки самоизоляция не проходит бесследно. Сидишь себе дома, а в голову разные мысли приходят. Как, чем осчастливить человечество? И вот оно: CDD! (CDD - Cli Driven Development - Новый подход).

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Просмотры2.9K
Комментарии 4
2