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


Как избежать ловушки потерянных обновлений в параллельных системах
На днях я наткнулся на следующий фрагмент кода, который привлек мое внимание: def post(self, request, args, kwargs): obj: Object = get_object_or_404(Object, id=kwargs['id']) # 1. with DistributedLock(obj): # 2. check_obj_ready(obj) # 3. cluster_config = ClusterConfig(obj) # 4. config = Config(cluster_config.read()) # 5. config.add(json.loads(request.data)['data']) # 6. if obj.limit < len(config.get_limit()): # 7...

Перестройка видеонаблюдения
Дрю Кошевник Это история о том, как команда разработчиков Content Setup Engineering использовала Hollow, технологию Netflix OSS, для перестройки и упрощения важного компонента в нашем конвейере контента, обеспечивая при этом большую ценность для бизнеса. Контекст Каждый фильм и шоу в сервисе Netflix тщательно отбирается для обеспечения оптимального просмотра. За это курирование отвечает команда Title Operations . Среди прочего, Title Operations подтвердит: Мы соблюдаем контракты -..

Данные формы иерархического дерева в .NET C#
СЕКРЕТЫ И УЛОВКИ Структура данных иерархической древовидной формы в .NET C# Разработка структуры данных для данных иерархической древовидной формы и связанных с ней операций в .NET C# Иногда вам нужно иметь дело с данными Формы иерархического дерева . Проще говоря, это данные, представленные в узлах parent-child . В таких ситуациях вы иногда можете столкнуться со сложностью реализации, особенно при работе с огромным объемом данных. В этой статье я бы предоставил вам одну из..

Сделайте свой модуль Rust-кода тестируемым с помощью инверсии зависимостей
Используйте Traits, чтобы инвертировать зависимости Rust и сделать ваш код слабосвязанным и тестируемым. Это был момент прозрения, когда я понял, что классы Java можно высмеивать, расширяя их и переопределяя их общедоступные методы. «Ну, блин», — вероятно, думаете вы. Конечно, вы можете это сделать, и в любом случае именно так работает половина насмешливых библиотек! (Кроме того, почему бы просто не использовать издевательскую библиотеку?) Но для меня это был момент прозрения. Это..

Кольца и лук в вашем приложении Next Node
Проектирование службы Node API с использованием чистой архитектуры со скелетом папок Иногда нам нужно создать новый сервис или провести рефакторинг существующего. Большую часть времени мы тратим пару часов на инициализацию приложения — настройку приложения Node, создание файлов, папок и т. д. Способ, которым мы структурируем скелет папок, может быть чем-то похожим на другие службы в наших репозиториях или на основе службы, которую мы делали в прошлом. Этот момент очень важен! Если..

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

Написание многоязычного онлайн-компилятора для VS Code, часть 1: архитектура
Мне нравится писать код в Visual Studio Code. А иногда установить и настроить компилятор для некоторых языков и заставить его работать — это боль. Итак, я придумал идею. Что, если бы я мог скомпилировать свой код с помощью вызова API, ничего не устанавливая? Конечно, мне не нужно компилировать огромный проект с несколькими файлами, но даже если бы я мог создать что-то, что компилирует небольшие фрагменты кода для быстрого опробования какого-то языка программирования или компиляции кода..