Ранее в этом году книжный клуб нашей компании изучил отличную книгу:
Martin Kleppmann - Designing Data-Intensive Applications
Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка
Это - лучшая книга о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪
Как обычно, я подготовил краткий обзор и майнд-мапу.
Глава 3:
Структуры данных: Log-structured. SSTables / LSM-деревья (когда мы ничего не обновляем, а пишем в конец). Очень крутая идея, как хранить данные.
Ранее в этом году книжный клуб нашей компании изучил отличную книгу:
Martin Kleppmann - Designing Data-Intensive Applications
Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка
Это - лучшая книга о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪
Как обычно, я подготовил краткий обзор и майнд-мапу.
Глава 2:
Что такое модель данных. Различные отношения между данными. Реляционные, документные, графовые модели данных. Какая лучше и когда. Схема-на-запись, схема-на-чтение (без схемы).
Ранее в этом году книжный клуб нашей компании изучил отличную книгу:
Martin Kleppmann - Designing Data-Intensive Applications
Мартин Клеппман - Высоконагруженные приложения. Программирование, масштабирование, поддержка
Это - лучшая книга о создании комплексных масштабируемых программных систем, которые я когда-либо читал. 💪
Как обычно (чтобы лучше усвоить) я подготовил краткий обзор и майнд-мапу.
Глава 1:
Строительные блоки приложений Что такое надежность, масштабируемость и ремонтопригодность. Примеры и определения. Неисправности и отказы Производительность, нагрузка, задержка и время отклика Работоспособность, простота, эволюционируемость Почему вы должны убивать свои сервера случайным образом 😅 Как Twitter доставляет 12 000 твитов в секунду до 300 000 пользователей в секунду.
Golang НАКОНЕЦ-ТО представляет ДЖЕНЕРИКИ (aka тимплейты, aka параметры типов) в релизе 1.18 (февраль 2022)
Я помню начало 2000-х, когда в C # были добавлены дженерики, и то, как их ожидали…
В наши дни Go - мой любимый язык для написания высокомасштабируемых решений, а дженерики - ключевая вещь которую я ждал. В некоторых случаях они помогут сильно упростить дизайн приложения.
Моя майнд-мапа с ключевыми вещами, которые вам следует знать:
Скачать майнд-мапу в PDF
Книжный клуб у нас в компании выбрал следующую чудесную книгу для чтения:
Роберт Мартин - Чистая Архитектура - Искусство Разработки Программного Обеспечения
Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design
Четвертая часть книги посвящена принципам объединения компонентов в программные системы.
Эта часть более интересна. Она содержит:
Обзор истории компонентов: возможность перемещения в памяти, линкеры Три принципа связности компонентов REP: Принцип эквивалентности повторного использования и выпусков CCP: Принцип согласованного изменения CRP: Принцип совместного повторного использования Три принципа соединения компонентов ADP: Принцип ацикличности зависимостей SDP: Принцип устойчивых зависимостей SAP: Принцип устойчивости абстракций Мне особенно понравилась эта глава из-за представленных метрик, которые можно использовать для измерения (!
Последние три года я много собеседую Golang-разработчиков. Go - это замечательный язык. Удачные концепции горутин и каналов позволяют очень просто и эффективно разрабатывать высоконагруженные приложения.
И всем кандидатам кто, как видно, еще не вполне освоил конкурентное программирование с каналами и горутинами, я неизменно советую пройти два замечательных курса (удивительно что они еще и бесплатные).
Эти курсы и я сам когда-то проходил и очень сильно их рекомендую всем разработчикам!
Курс даст основы программирования на языке Go, а так же опыт применения языка в основных задачах, которые встречаются сегодня в серверной веб-разработке.
Книжный клуб у нас в компании выбрал следующую чудесную книгу для чтения:
Роберт Мартин - Чистая Архитектура - Искусство Разработки Программного Обеспечения
Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design
👍
Третья часть книги посвящена принципам SOLID.
Принцип единственной ответственности: модуль должен быть ответственным перед одним и только одним действующим лицом. Принцип открытости-закрытости: программный артефакт должен быть открыт для расширения, но закрыт для модификации.
При запуске нового проекта по разработке ПО необходимо выбрать технологию для Frontend. В настоящее время существуют три ведущие технологии: Angular, React и Vue.
Но как выбрать из них?
Наша команда имеет опыт работы со всеми из них, но обычно выбор делается на основе «кто доступен в команде, и что они предпочитают».
Я хотел более глубокое сравнение плюсов и минусов, и я нашел его в отличном коротком курсе Udemy:
React JS, Angular & Vue JS - Quickstart & Comparison
Книжный клуб у нас в компании выбрал следующую чудесную книгу для чтения:
Роберт Мартин - Чистая Архитектура - Искусство Разработки Программного Обеспечения
Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design
👍
Книга пока поверхностная. Вот обзор второй части:
Есть три парадигмы программирования:
Структурированное программирование - накладывает ограничение на прямую передачу управления. Объектно-ориентированное программирование - накладывает ограничение на косвенную передачу управления.
Книжный клуб у нас в компании выбрал следующую чудесную книгу для чтения:
Роберт Мартин - Чистая Архитектура - Искусство Разработки Программного Обеспечения
Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design
👍
Краткий обзор первой части:
Цель архитектуры ПО уменьшить человеческие трудозатраты на создание и сопровождение системы Две ценности ПО Поведение (функционал) - удовлетворить требованиям заинтересованных сторон Структура (архитектура) - сложность внесения изменений должна быть пропорциональна содержанию, а не “форме” изменений Легкость внесения изменений более важна чем фунционал!