Если вы хотите сделать хорошую архитектуру, то используйте эту схему и строго соблюдайте правила, без каких-либо исключений.
Пользователь
Как запускается сервер: UEFI
Ранее мы уже разбирали последовательность запуска сервера на примере устаревшего Legacy. Настало время познакомиться с UEFI поближе.
Первая версия того, что сейчас известно как Unified Extensive Firmware Interface (UEFI), разрабатывалась в 90-е годы прошлого тысячелетия специально под системы на Intel® Itanium® и называлась Intel Boot Initiative, а позже — EFI.
Желание «обновить» процесс загрузки было ожидаемо. PC-BIOS, именуемый ныне Legacy, предлагает работать в 16-битном real mode, адресует всего 1 МБ оперативной памяти, а загрузчик вместе с таблицей разделов должен размещаться в первых 512 байтах накопителя. Более того, PC-BIOS передает управление первому найденному загрузчику без возможности возврата назад. При этом обработку случаев с несколькими операционными системами возлагают на плечи загрузчика.
Snort или Suricata. Часть 1: выбираем бесплатную IDS/IPS для защиты корпоративной сети
Позволяющих защитить ИТ-инфраструктуру компании продвинутых средств существует множество. Сегодня мы поговорим о системах обнаружения и предупреждения вторжений с открытым исходным кодом, внедрить которые можно без покупки дорогостоящего оборудования и программных лицензий.
FreeBSD: гораздо лучше GNU/Linux
Большая часть достоинств FreeBSD также относится и к другим популярным свободным BSD системам: NetBSD, OpenBSD, DragonflyBSD. Что-то в этих системах будет получше, многое появилось впервые не в FreeBSD, но перекочевало в неё. FreeBSD многое наследует от NetBSD (различные драйвера и подсистемы), от OpenBSD (сетевые технологии), DragonflyBSD (лучшая масштабируемость на многопроцессорных платформах), от Solaris (DTrace, идея Jail-ов, ZFS), сочетая самое лучшее ото всех.
Если коротко, то FreeBSD это высокое качество, надёжность, удобство и простота работы. GNU/Linux это зоопарк, помойка малосвязанного кода, мало чего доделываемое до конца, отсутствие документации, хаос, базар.
Стас Афанасьев. Juno. Pipelines на базе io.Reader/io.Writer. Часть 1
Шаблон проектирования «Спецификация» в C#
«Спецификация» в программировании — это шаблон проектирования, посредством которого представление правил бизнес логики может быть преобразовано в виде цепочки объектов, связанных операциями булевой логики.
Я познакомился с этим термином в процессе чтения DDD Эванса. На Хабре есть статьи с описанием практического применения паттерна и проблем, возникающих в процессе реализации.
Если коротко, основное преимущество от использования «спецификаций» в том, чтобы иметь одно понятное место, в котором сосредоточены все правила фильтрации объектов предметной модели, вместо тысячи размазанных ровным слоем по приложению лямбда-выражений.
Классическая реализация шаблона проектирования выглядит так:
public interface ISpecification
{
bool IsSatisfiedBy(object candidate);
}
Что с ним не так применительно к C#?
- Есть
Expression<Func<T, bool>>
иFunc<T, bool>>
, сигнатура которых совпадает с IsSatisfiedBy - Есть Extension-методы. alexanderzaytsev с помощью них делает вот так:
public class UserQueryExtensions { public static IQueryable<User> WhereGroupNameIs(this IQueryable<User> users, string name) { return users.Where(u => u.GroupName == name); } }
- А еще можно реализовать вот такую надстройку над LINQ:
public abstract class Specification<T> { public bool IsSatisfiedBy(T item) { return SatisfyingElementsFrom(new[] { item }.AsQueryable()).Any(); } public abstract IQueryable<T> SatisfyingElementsFrom(IQueryable<T> candidates); }
В конечном итоге возникает вопрос: стоит ли в C# пользоваться шаблоном десятилетней давности из мира Java и как его реализовать?
Распределенный реестр для колесных пар: опыт с Hyperledger Fabric
Пример написания функциональных требований к Enterprise-системе
Целью нашей разработки было создание с нуля учетной системы для одной из крупных российских компаний. Система была призвана заменить текущую, написанную в конце 90-х. В результате были реализованы платформа и один из бизнес-модулей. В реализованной части было порядка 120 объектов, 180 таблиц, около 30 печатных форм.
Хочу оговориться, что подход, описанный ниже, не универсален для написания любого ПО. Он подходит для систем уровня предприятия, которые строятся на основе объектно-ориентированного подхода: учетных, CRM-, ERP-систем, систем документооборота и т.п.
Вся документация на наш программный продукт состояла из следующих разделов:
- Общая часть
• Список терминов и определений
• Описание бизнес-ролей
- Требования
• Бизнес-требования
- Общие сценарии
- Сценарии использования
- Алгоритмы и проверки
• Нефункциональные требования
• Требования к интеграции
• Требования к пользовательскому интерфейсу - Реализация
- Тестирование
- Руководства
- Управление
React Native: от простой анимации до интерактивной на скорости 60 FPS
Необходимость в обмене данными между UI и JS процессами в React Native неизбежно сказывается на производительности препятствуя выполнению JavaScript анимации с высокой частотой кадров. Современные библиотеки, такие как Animated, решают эту проблему минимизацией количества сообщений, передаваемых через мост. Следующий шаг — это элементы управления, которые непрерывно реагируют на жесты пользователя. Как мы можем анимировать их со скоростью 60 кадров в секунду?
Как устроен гибридный игровой ИИ и в чём его преимущества
В последние годы ведётся много разговоров о том, что машинное обучение кардинально изменит игровую индустрию, ведь эта технология уже стала прорывной во многих других цифровых приложениях. Но не стоит забывать, что игры устроены намного сложнее, чем симулятор вождения автомобиля, программа управления дроном или алгоритмы распознавания лиц на изображении.
По заказам Embedded-разработчиков: ищем ошибки в Amazon FreeRTOS
Шесть задачек для Front-End разработчика
1. Форма кредитной карты
Клёвая форма кредитной карты с гладкими и приятными микровзаимодействиями. Включает форматирование чисел, проверку и автоматическое определение типа карты. Она построена на Vue.js, а также полностью адаптивная. (Посмотреть можно здесь.)
credit-card-form
Чему научитесь:
- Обрабатывать и валидировать формы
- Обрабатывать события (например, при изменении полей)
- Разберетесь как отображать и размещать элементы на странице, особенно данные кредитной карты, которая поверх формы
11 советов для тех, кто использует Redux при разработке React-приложений
Несмотря на это хотелось бы отметить, что некоторые рекомендации, которые будут даны в этом материале, нацелены на React-приложения любого масштаба.
TensorFlow для начинающих. Часть 1: общие сведения, установка библиотеки
Этот материал посвящён основам TensorFlow и рассчитан на читателей, которые ничего не знают о данной библиотеке.
Новое в Git 3: замыкания
Git — популярная система контроля версий. В ней атомарное изменение одного или нескольких файлов называется коммитом, а несколько последовательно идущих коммитов объединяются в ветку. Ветки используются для того, чтобы реализовывать новые идеи (фичи).
Случается, что идея оказывается тупиковой, разработчик сворачивает не туда, и возникает необходимость отката к изначальной версии, для этого нужно забыть о новой ветви и переключиться на главную dev или master, и затем продолжить работу как ни в чем не бывало. В этом случае "отросток" повиснет навсегда, как и желание его удалить. Но как удалить, если это часть истории? Этот отросток показывает усилия трудяги-программиста, пусть и тщетные. Так легче отчитываться перед начальством, ведь неудачный результат — тоже результат!
Спешу обрадовать: разработчики Git в 3 версии введут новую команду для замыкания таких беспризорных ветвей. Напомню, что текущая актуальная версия — 2.21.0.
Как использовать эту команду, что она дает и что думают IT компании? Статья отвечает на эти и другие вопросы.
Дайджест интересных материалов для мобильного разработчика #291 (18 марта — 24 марта)
Дайджест свежих дайджестов из мира фронтенда за последнюю неделю №1 (26 марта — 1 апреля 2018)
Что почитать в марте: 22 книжные новинки для маркетологов, управленцев, разработчиков и дизайнеров
Redux-symbiote — пишем действия и редьюсеры почти без боли
Описание действий и редьюсеров одна из таких особенностей. Классическая реализация двух этих сущностей в коде довольно трудоемкое занятие.
Передача данных между сценами в Unity — применение мультисценности в разработке простых игр
Поговорим о статических классах для хранения данных, различных способах подгрузки сцен движком Unity, а также коснёмся кейса подключения Admob к проекту. Информация предоставлена официальной документацией и доброжелательным коммьюнити разработчиков.
Информация
- В рейтинге
- Не участвует
- Откуда
- Минская обл., Беларусь
- Дата рождения
- Зарегистрирован
- Активность