Публикации по теме 'software-design'


Дизайн программного обеспечения 101 - Композиция превыше наследования
Ваш отец - высокий, смуглый, красивый мужчина, голос Фредди Меркьюри. Конечно, вы унаследуете некоторые из этих функций. Тузы, не правда ли? Но еще у него хроническое нарушение дыхания. Жаль, что вы не можете выбрать, что унаследовать, а что нет, верно? Также у твоего отца есть попугай в качестве домашнего питомца. Обязательно ли выбирать в качестве домашнего животного попугая? Нет, не знаешь. Вместо этого вы можете завести собаку, как это делал ваш дядя. Что, если бы..

Загрузка файлов через Интернет
Загрузка файлов через Интернет — непростая задача. Это сопряжено со значительными трудностями при разработке решения, которое работает для файлов любого размера. Загрузка файлов подвержена сбоям, падениям пользователей и угрозам безопасности. При каждом сбое файл необходимо повторно загружать, что негативно влияет на связанный с ним пользовательский опыт. Проблемы Пропускная способность сети и размер файла Загрузка файла занимает значительное время: чем больше времени на загрузку,..

Монолит против микросервисов. Почему не оба?
Когда у вас такое решение? Обычно, когда вы присоединяетесь к команде, у них уже есть рабочий процесс и стек, которых вам придется придерживаться. Так что реально — это решение у вас есть только тогда, когда вы начинаете новый проект. Я думаю, что есть 2 типа новых проектов: тот, который вы делаете для себя тот, который вы делаете для компании (как сотрудник) в качестве старшего разработчика (или единственного разработчика) Строительство для себя Скорее всего, это..

Шесть причин, почему большая часть Java, которую вы видели, не является настоящей Java.
Шесть причин, почему большая часть Java, которую вы видели, не является настоящей Java. Кажется, в наши дни очень модно жаловаться на Java: Это слишком многословно У него нет выпуска Шаблоны проектирования трудно понять Это старый, умирающий язык Некоторым людям никогда не понравится Java, и это нормально. Возможно, это не их дело. Но я не могу отделаться от ощущения, что многие люди, которые (часто громко) заявляют, что они просто ненавидят Java, на самом деле никогда не..

Модель анемичной предметной области против богатой модели предметной области
Некоторое время назад я начал организовывать внутренние встречи в компании, в которой сейчас работаю. Цель встреч — обмен знаниями между разработчиками. На одной из таких встреч мы обсуждали тему Rich Domain Model vs Anemic Domain Model. Вдобавок я решил написать эту статью. Давайте посмотрим, что такое богатый и анемичный домен. Анемичная модель домена — логика домена перенесена в сервисы Модель анемичной предметной области — это модель, в которой мы храним данные и операции,..

Манифест без документов
«Недокументированный» код - новый идеал Необходима документация. Это важно. Это ценно. Тем не менее, несмотря на все предполагаемые преимущества, даже к концу 2018 года он остается в лучшем случае строчно-типизированным аварийным выходом на английский язык . Давайте проанализируем эту формулировку проблемы ниже, но не стесняйтесь пропустить этот раздел, если вы согласно кивнули. Проблема: документация - это строковый выход на английский (в лучшем случае). String-Typing :..

Дизайн, управляемый предметной областью, в действии: сплоченный механизм из окопов
Пример количества за диапазон дат Введение Несколько лет назад я присоединился к команде, работающей над краеугольным продуктом. Миссия была похожа на телесериал «Кухонные кошмары». Везде были проблемы. Чтобы исправить ситуацию, необходимо было постепенно подходить к современному уровню разработки программного обеспечения. Поскольку продукт был богат бизнес-правилами, я продвигал образ мышления и набор инструментов DDD с самого начала нашего пути. Мы успешно использовали многие..