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


Дерево SSTable VS LSM
Дерево SSTable VS LSM Когда дело доходит до управления большими объемами данных, есть два популярных подхода — sstable и древовидные структуры данных LSM. Обе эти структуры данных используются для хранения и запроса данных, но они имеют разные сильные и слабые стороны. В этом блоге мы рассмотрим различия между sstables и LSM-деревьями, а также когда использовать каждое из них. SSTable Sstable, что означает Sorted String Table, представляет собой структуру данных, используемую для..

Monorepo, часть 4: реализация
От монолита к монорепозиторию Nx Теперь, когда у нас есть инструмент (CF Серия Monorepo, часть 3 ), давайте засучим рукава и приступим к затягиванию смазанных болтов и шестерен (т. е. к переносу нашего Monolith на архитектуру Monorepo на базе Nx). Обзор этапов миграции Разделите кодовую базу на приложения Создайте рабочее пространство Monorepo Перенесите библиотеки а. Адаптируйте конфигурацию Monorepo b. Адаптировать конфигурацию Monolith Перенесите приложения и конфигурацию..

Упрощенный параллелизм: от потоков к транзакциям
Параллелизм означает одновременное выполнение нескольких задач или процессов; когда разные процессы или потоки пытаются манипулировать одними и теми же данными, это может вызвать проблемы. Чтобы решить эту проблему, менеджеры транзакций управляют несколькими транзакциями и обеспечивают изоляцию каждой транзакции. Например, если два человека пытаются обновить один и тот же банковский счет одновременно, менеджер транзакций гарантирует, что каждое обновление будет рассматриваться как..

Группы ожидания Голанга
«waitGroup» — важная вещь в то время, когда нужно работать с горутинами, потому что она поможет нам, когда нам нужно дождаться завершения всех горутин. «waitGroup» помогает нам с моделью fork-join, используемой горутинами, потому что основной поток ожидает, пока процесс, выполняемый в ответвлении, снова не присоединится к основному потоку. «waitGroup» определила четыре метода, которые помогут нам управлять «жизненным циклом»: add(), wait(), done() и state(). Опишем каждый из них:..

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

Освоение MVC: раскрытие возможностей модели-представления-контроллера для элегантных приложений
Ключом к любой хорошей системе является ее способность быть масштабируемой, надежной и ремонтопригодной. Приступая к новому проекту, вы можете обнаружить, что вам нужен четкий и определенный план. Что ж, есть способ! Во-первых, давайте разберемся, что такое шаблон архитектуры программного обеспечения. Это как план или рецепт организации различных частей программной системы. Эти шаблоны обеспечивают проверенные решения общих проблем, с которыми сталкиваются разработчики при..

Застрял в середине
Что такое промежуточное ПО? Чтобы понять промежуточное программное обеспечение, мы сначала должны понять поток нашего конвейера запросов, с момента, когда он покидает клиента, и до тех пор, пока ответ не вернется к клиенту. Конечно, мы знаем, что СЕРВЕР отвечает за анализ запроса и предоставление ответа, но что, если мы хотим предотвратить попадание определенных запросов в наши контроллеры? или что, если мы хотим манипулировать запросом или ответом до того, как обработаем его?..