Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 2877 сообщений
Cообщения с меткой

проектирование и рефакторинг - Самое интересное в блогах

Следующие 30  »
rss_habr

Кто последний на индустриальный стандарт? Мне только спросить…

Воскресенье, 29 Января 2023 г. 21:40 (ссылка)

Сегодня в сообществе ИТ архитекторов, поддерживающих подход “Архитектура как код”, все чаще появляются упоминания о его перспективах выйти на уровень нового индустриального стандарта. Можно было бы сказать, что любое общество должно быть амбициозным и видеть себя в “Центре Вселенной”. Поэтому, не стоит об этом раньше времени статьи написывать. Но важно заметить, что архитекторы облечены ролью и должностью существенно влиять на решения о выборе стека и подходов в крупных компаниях. Поэтому, кажется, важно уже сегодня рассказать, что лежит в основе таких предположений.

Читать далее

https://habr.com/ru/post/713534/?utm_source=habrahabr&utm_medium=rss&utm_campaign=713534

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Retry or No?

Пятница, 28 Января 2023 г. 00:20 (ссылка)

В этой статье разберем вариант реализации функционала перезапроса сообщений из семейства resilience шаблонов. Мы поговорим о retry. Точнее обсудим:

1. Что такое устойчивость и какое влияние на нее имеет retry?

2. Анализируем, где применять retry;

3. Реализуем retry;

4. Пишем unit-тесты с wiremock;

5.Делаем starter;

Читать

https://habr.com/ru/post/712964/?utm_source=habrahabr&utm_medium=rss&utm_campaign=712964

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Функциональное мышление

Понедельник, 23 Января 2023 г. 15:32 (ссылка)

imageTL;DR: Конструирование приложения с чистой функцией в основе может стать первым шагом к идеалу «функционально-центричной императивной оболочки», что может упростить тестирование приложения и снизить планку его сложности. Читать дальше →

https://habr.com/ru/post/711848/?utm_source=habrahabr&utm_medium=rss&utm_campaign=711848

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Функциональное мышление

Понедельник, 23 Января 2023 г. 15:32 (ссылка)

imageTL;DR: Конструирование приложения с чистой функцией в основе может стать первым шагом к идеалу «функционально-центричной императивной оболочки», что может упростить тестирование приложения и снизить планку его сложности. Читать дальше →

https://habr.com/ru/post/711848/?utm_source=habrahabr&utm_medium=rss&utm_campaign=711848

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Dry-rb — экосистема, которая упростит архитектуру вашего проекта

Понедельник, 23 Января 2023 г. 12:22 (ссылка)

Привет! Меня зовут Вероника Молчанова. Я - Ruby-разработчик в компании Joy Dev. В этой статье мы рассмотрим набор Ruby-библиотек dry-rb и расскажем, как они помогли упростить архитектуру проектов. В частности хотим показать, как на наших проектах используются такие гемы из dry-экосистемы, как:

- dry-auto_inject

- dry-validation

- dry-struct

Читать далее

https://habr.com/ru/post/712166/?utm_source=habrahabr&utm_medium=rss&utm_campaign=712166

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Как я участвовал в создании информационных систем для медицины

Четверг, 19 Января 2023 г. 20:56 (ссылка)

В 1987-м году я окончил с красным дипломом приборостроительный факультет челябинского политехнического института по специальности "Автоматика и телемеханика", хотя планировал стать физиком-теоретиком и школу заканчивал в специализированной школе-интернате №18 при МГУ. По распределению попал в специализированное конструкторское бюро и до 1991-го года разрабатывал электронные блоки для бронетанковой техники. До сих пор считаю что полученная при этом инженерная школа является чем-то недостижимым в современных реалиях. В частности, мы с коллегами создали комбинированный аналого-цифровой программируемый комплекс, который в реальном времени проводил расчеты по математической модели объекта, описываемой системой дифференциальных уравнений 4-го порядка с 14-ью нелинейными элементами и принимал решения более 10 тысяч раз в секунду. На современных вычислителях это наверное и можно было бы сделать, но в то время мы решали задачу имея в распоряжении только набор интегральных микросхем, самой крутой из которых была ПЗУ на 2 килобайта и всё наше творчество должно было уместиться в 9 литров объёма и работать в диапазоне температур от -40 до +85.

После того как в 1991-м году страна развалилась я выбрал стезю программирования и с тех пор так или иначе связан с разработкой ПО и построением крупных информационных систем. Начинал с создания комплексного ПО и "умной кассы" для торгового центра, потом была информационная система учёта аренды муниципального имущества. Потом я вернулся в конструкторское бюро на считавшийся безнадёжным проект по созданию комплекса диагностических стендов для автоматизированного поиска неисправностей в электронных блоках в интересах иностранного заказчика. После окончания разработки я возглавлял группу разработчиков, которая сдавала эти стенды заказчику, и мы с этой задачей справились.

Читать далее

https://habr.com/ru/post/711682/?utm_source=habrahabr&utm_medium=rss&utm_campaign=711682

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Гексагональная архитектура и DDD на опыте интернет-магазина Спортмастер. Как дела с кодом?

Четверг, 19 Января 2023 г. 14:30 (ссылка)

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

Как я уже писал, мы взяли из DDD тактические шаблоны.

Если какое-то понятие предметной области является уникальным и отличным от всех других объектов в системе, то для его моделирования используется сущность.

Такие объекты-сущности могут сильно отличаться своей формой за весь цикл существования. Тем не менее, их всегда можно однозначно идентифицировать и найти по запросу.

Для этого используются уникальные идентификаторы.

Сущность в коде нашего проекта должна иметь:

Читать далее

https://habr.com/ru/post/711298/?utm_source=habrahabr&utm_medium=rss&utm_campaign=711298

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

В очередь, ...! Как управлять состоянием системы через события

Вторник, 17 Января 2023 г. 10:09 (ссылка)

Существует множество разных подходов к построению архитектуры серверных приложений. В данной статье рассмотрим Event-driven архитектуру (она же событийно-ориентированная). Рассмотрим основные принципы, как перейти от связей Компонент А <-> Компонент В, к связям через события Компонент А -> Событие А -> Компонент Б и зачем это нужно?

Читать далее

https://habr.com/ru/post/699492/?utm_source=habrahabr&utm_medium=rss&utm_campaign=699492

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

IEntityTypeConfiguration в EF Core, или отделим отделимое

Воскресенье, 16 Января 2023 г. 01:08 (ссылка)

Почти каждый разработчик программного обеспечения работал с СУБД, по крайней мере каждый слышал о них. В мире существует множество способов для работы с базами данных и один из них - это ORM (англ. Oblect-Relational Mapping). Для разработчиков приложений, особенно бизнес-приложений, различного рода реализации данного способа стали в прямом смысле "спасательным кругом" в грубом мире работы с базами данных. Ещё начиная с .Net Framework компания Microsoft кидала такой круг разработчикам, который носил название Entity Framework (EF). И теперь, в .NET есть кроссплатформенная реализация старенького EF - Entity Framework Core (EF Core).

В EF Core существует несколько способов конфигурирования сущностей, все они рассмотрены в моей предыдущей статье - https://habr.com/ru/post/649647/. Лучший из них на мой взгляд - это реализация IEntityTypeConfiguration<>. Он позволяет отделить модель предметной области от хранилища, сделать структуру проекта более упорядоченной, а само решение более гибким. Далее по статье мы рассмотрим все преимущества данного способа. Итак, пришло время на не реальном реальном проекте разобраться наконец с этим способом описания отношений полей и сущностей.

Сделаем конфигурацию для магазина, который занимается продажей автомобилей. База данных у нас уже существует, нужно только "подружить" с ней наше решение на .NET. Будем считать, что структуру нашей будущей БД разрабатывал вменяемый человек, который соблюдал элементарные правила именования полей и т.п.

Имеем несколько таблиц Cars, EquipmentOptions, Makes, Models. Все они имеют поля, которые являются системными, имеют один и тот же тип и называются одинаково. Это поля Id, CreatedDateTime, UpdatedDateTime. Для описания этих полей, мы создадим базовую модель для будущих сущностей BaseEntity:

Читать далее

https://habr.com/ru/post/710740/?utm_source=habrahabr&utm_medium=rss&utm_campaign=710740

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Эволюция кода: путь к лучшему дизайну

Пятница, 13 Января 2023 г. 16:00 (ссылка)



В этой статье мы изучим программное решение экзаменационной задачи конца второго семестра в AltSchool Africa. Эта задача подразумевает построение системы для управления складскими запасами магазина, продающего машины и другие товары. В частности, магазин должен иметь возможность отслеживать количество и общую стоимость проданных и оставшихся на складе товаров. Читать дальше →

https://habr.com/ru/post/710008/?utm_source=habrahabr&utm_medium=rss&utm_campaign=710008

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Паттерн Мейоз: локальное состояние и сервисы

Четверг, 12 Января 2023 г. 10:36 (ссылка)

В прошлой заметке я представил общественности шаблон проектирования Мейоз, как способ управления состоянием одностраничного javascript приложения. Шаблон не связан с конкретной библиотекой рендеринга, и опирается исключительно на небольшую функцию stream и нативную реализацию объекта Array в javascript.

Идея шаблона заключается в использовании streams (потоков) для хранения состояния приложения, глобального или локального (например состояния html формы), связывания, свертки и комбинации потоков в функциональном стиле. Шаблон предлагает использовать определенные реактивные структуры данных, но не обязательно буквально так как это делает автор. В рамках шаблона можно реализовать любое удобное и понятное поведение приложения.

В этой заметке я перепишу небольшое приложение "Кубики", и вместо библиотеки mithril для рендеринга будем пользоваться reactjs. Будем использовать потоки для управления глобальным и локальным состоянием, а так же, сервисы — объекты, определяющие функции, которые выполняются всякий раз, когда изменяется состояние.

Читать далее

https://habr.com/ru/post/710208/?utm_source=habrahabr&utm_medium=rss&utm_campaign=710208

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] О важности владения кодом

Среда, 11 Января 2023 г. 20:37 (ссылка)

Наткнулся на данную статью случайно, когда находился в очередном поиске ответа на вопрос "Как же так?!" в интернете. Автор данной статьи занимается мобильной разработкой, но тем не менее его наблюдения и выводы касательно владения кодом разительно перекликаются с моими:

Однажды я работал в одной компании где девизом команды разработки была фраза «Ты владеешь тем, что пишешь». Это отлично мотивирует нести ответственность за любой написанный код. Но сказать проще чем сделать.

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

Читать далее

https://habr.com/ru/post/710166/?utm_source=habrahabr&utm_medium=rss&utm_campaign=710166

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Компонентный подход. Реализуем экраны с помощью библиотеки Decompose

Вторник, 10 Января 2023 г. 10:43 (ссылка)

https://habr.com/ru/post/709808/?utm_source=habrahabr&utm_medium=rss&utm_campaign=709808

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Компонентный подход. Боремся со сложностью в Android-приложениях

Вторник, 27 Декабря 2022 г. 17:29 (ссылка)

Представьте, что вы начали разработку нового Android-приложения. Поначалу особых проблем не будет. Вы реализовали лишь самые базовые функции. Экранов немного, и все они простые. Вам легко ориентироваться в коде. Вы бодро добавляете одну фичу за другой. Но со временем разработка усложняется: кода становится много, главный экран обрастает большим количеством UI-элементов и логики, экраны образуют сложные цепочки переходов. Приходится ломать голову, чтобы добавить что-то новое, не сломав ничего из старого. Скорость разработки падает. Знакомая ситуация?

Существует эффективный способ борьбы со сложностью — компонентный подход. Мы в MobileUp применили его в трех крупных Android-приложениях и теперь не представляем, как жили без него раньше.

Меня зовут Артур, я тимлид в компании MobileUp. Я помогу вам освоить компонентный подход. Постараюсь сделать это как можно проще и увлекательнее.

Вас ждет серия статей. Это первая из них — теоретическая. В ней мы рассмотрим, какие сложности встречаются в Android-приложениях, и почему MVVM и Clean Architecture не панацея против них. Я расскажу, что такое компонентный подход и в чем его преимущества. А в конце статьи будут ссылки на материалы для углубленного изучения.

Читать далее

https://habr.com/ru/post/708040/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708040

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Про Inbox, веселые легаси и динамические микрофронты

Понедельник, 26 Декабря 2022 г. 12:46 (ссылка)

https://habr.com/ru/post/706554/?utm_source=habrahabr&utm_medium=rss&utm_campaign=706554

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<проектирование и рефакторинг - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda