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


Написание многоязычного онлайн-компилятора для VS Code, часть 2: служба компиляции
В Части 1 мы рассмотрели, как устроена вся система. В этой части мы напишем службу компиляции Golang, которая будет компилировать код C++. Поток и процесс одинаковы для всех языков, поэтому, как только вы освоите компиляцию C++, вам будет легко реализовать аналогичный сервис для других языков. Я напишу сам сервер на Golang, но не стесняйтесь использовать любой другой внутренний язык, который вам нравится. ОБНОВЛЕНИЕ : Часть 3 теперь доступна Основная идея: Идея проста...

API с ограничением частоты размещения
Сегодня большинство приложений управляется API. Независимо от того, создаете ли вы прогноз погоды, финансовый тикер, оповещение о спортивных результатах или переводите на местный язык, вам потребуется подключить сторонние API для доступа к необходимым данным. API обычно измеряются, а потребление ограничивается ограничением скорости. API с ограничением скорости определяет скорость API. Обычно это выражается в количестве запросов, сделанных за определенный период времени; например,..

Как создать веб-сервер без сохранения состояния?
Создавайте код таким образом, чтобы контекст выполнения всегда находился на уровне запроса — функции не должны предполагать какой-либо контекст за пределами области запроса. Хотя он может искать данные за пределами самого сервера, такие как база данных, распределенный кэш, очереди и т. д.✔️ Избегайте локального кеша памяти, если только он не предназначен для использования внутри запроса✔️ Избегайте планирования / cron-подобных заданий на сервере. Используйте другую серверную или..

Усвоение принципов SOLID
Принципы SOLID говорят нам, как организовать наши функции и структуры данных в классы и как эти классы должны быть связаны между собой. Чтобы разработать корпоративное приложение или любое другое приложение в этом отношении, мы должны реализовать такие компоненты, как функции, классы и модули. Мы должны сгруппировать эти функции, создать между ними зависимости, добавить или удалить функции и многое другое. Все это необходимо делать при сохранении стабильной системы. Изучение..

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

Стоит ли проходить курсы Grokking System Design and Coding Interview от DesignGurus.io? Обзор
Является ли Design Guru хорошим местом для обучения системному дизайну и подготовке к собеседованию по программированию? Здравствуйте, ребята, как технический энтузиаст, я всегда увлечен изучением системного проектирования и преуспеваю в технических интервью, и в поисках ресурсов я наткнулся на Курс по проектированию систем пару лет назад. Меня сразу же заинтриговали их диаграммы , подобные показанной выше, и их обещание всесторонне подготовить меня к собеседованиям по..

Шаблон дизайна посетителя с примером
Что такое шаблон проектирования посетителя? Представляют операцию, которая должна выполняться над элементами структуры объекта. Посетитель позволяет определить новую операцию без изменения классов элементов, над которыми она работает. Чтобы лучше понять приведенное выше объяснение, посмотрите на следующую диаграмму. Левая сторона представляет объекты посетителей, а правая сторона представляет структуру объекта. Структура объекта может быть коллекцией типа Array, List, ArrayList..