Курсы и материалы по системному дизайну

Курсы по БД
https://stepik.org/course/551/syllabus
https://openedu.ru/course/spbu/DTBS/

Курсы и тренажеры по SQL
https://stepik.org/course/63054/syllabus
https://www.sql-ex.ru
https://sqlbolt.com/
https://sql-academy.org/ru/trainer?sort=byId
https://www.hackerrank.com/domains/sql
https://learndb.ru/

Учебные БД
https://livesql.oracle.com/


1. Спецификация OpenAPI | Инструмент Swagger Editor | Документирование REST API от starkovden
2. Очереди и (а)синхроннщина. Различия и причины выбора
3. Микросервисы | Паттерны работы с ними
4. SOAP vs REST vs GraphQL vs gRPC HTTP Методы и ошибкиИдемпотентность
5. Кэширование данных, реализация инвалидации
6. Обратная совместимость и версионирование API
7. Нефункциональные требования от babok-school
8. Kafka и её компоненты | Принципы работы
9. СУБД | (Не)реляционные БД, виды, различия | Книга NoSQL Distilled | Ключи в БД | Нормальные формы + wiki
10. Табличные индексыНеобходимость | Корректность | Последствия | Уникальность | Оптимизация
11. План запроса в PostgreSQL | EXPLAIN | ANALYZE
12. Транзакции | Хабр | ACID, CAP | Видео | План выполнения запроса | Шаблон Saga
13. Партиционирование | Шардинг | Секционирование
14. SQL на тренажёрах: SQL Academy | SQL-ex
15. Хореография и оркестрация (доклад). Плюсы, минусы | Способы реализации
17. Сергей Константинов про API
18. Ещё REST | RESTful | JSON | Цикл статей от Ranga Karanam
19. JSON-RPC | Лучше REST’а? | Надёжнее REST’а?
20. Пробный тест от Neoflex
21. Брайан Кукси. An introduction to APIs

Работа с НФТ (нефункциональными требованиями)
https://babok-school.ru/blogs/what-is-non-functional-requirement-and-how-to-specify-it/
Спецификация OpenAPI
https://starkovden.github.io/ — (курс по документированию REST API)
https://swagger.io/ — (много информации о документировании и проектировании API
https://swagger.io/tools/swagger-editor/ — инструмент для спецификации API в формате OpenAPI)
Интеграции
Повторить различия между синхронным и асинхронным взаимодействием. Причины выбрать то или иное для новой интеграции
https://mcs.mail.ru/blog/zachem-nuzhny-ocheredi-soobshcheniy-v-mikroservisnoy-arkhitekture
Микросервисы и паттерны работы с ними
https://microservices.io/patterns/index.html
Полезно будет почитать https://mcs.mail.ru/blog/26-osnovnyh-patternov-mikroservisnoj-razrabotki
Повторить темы REST и SOAP. Изучить, какие ещё есть API в веб-сервисах, кроме Rest и SOAP
REST vs SOAP vs gRPC vs GraphQL https://levelup.gitconnected.com/comparing-api-architectural-styles-soap-vs-rest-vs-graphql-vs-rpc-84a3720adefa
HTTP-методы, какие есть, зачем нужны, в чём отличия.
https://tproger.ru/articles/osnovy-rest-teorija-i-praktika/
Идемпотентность
https://cloud.yandex.ru/docs/api-design-guide/concepts/idempotency
Управление ошибками при проектировании API. Повторить коды ошибок
Про коды можно не усложнять и читать вики — https://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP
Кэширование API — зачем нужно, как управлять кэшом (инвалидация кэша как может быть реализована)
https://highload.today/keshirovanie-dannykh/
Обратная совместимость — зачем и как. Версионирование API
https://github.com/DoctorLines/translate_build_api/blob/master/13.api_versioning.md
Kafka и её компоненты, принципы работы
СУБД
Отличия реляционных и нереляционных БД.
https://skillbox.ru/media/code/sql_i_nosql_in_i_yan_v_mire_baz_dannykh/
https://proglib.io/p/11-tipov-sovremennyh-baz-dannyh-kratkie-opisaniya-shemy-i-primery-bd-2020-01-07
Почитать про виды нереляционных БД, например, книжку NoSQL Distilled
Ключи в БД
Нормальные формы:
https://habr.com/ru/post/254773/

https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0

Индексы в таблицах — зачем нужны, какие последствия введения
Попроще https://im-cloud.ru/blog/chto-takoe-indeksy-bazy-dannyh-dlja-nachinajushhih/
Посложнее https://tproger.ru/articles/indeksy-v-postgresql/
https://postgrespro.ru/docs/postgresql/14/indexes-intro
Уникальные индексы: https://postgrespro.ru/docs/postgresql/13/indexes-unique
— Анатомия плана запроса в PostgreSQL: https://sql-ex.ru/blogs/?/AnatomiJa_plana_zaprosa_v_PostgreSQL.html
— EXPLAIN: https://postgrespro.ru/docs/postgresql/14/sql-explain
— ANALYZE: https://postgrespro.ru/docs/postgresql/14/sql-analyze
Проектирование индекса в базах данных и оптимизация: https://sql-ex.ru/blogs/?/Proektirovanie_indeksa_v_bazah_dannyh_i_optimizaciJa_nekotorye_rekomendacii.html
Типы индексов PostgreSQL: https://postgrespro.ru/docs/postgresql/14/indexes-types
Псс, парень… индекс нужен? : https://habr.com/ru/company/tensor/blog/659889/
Транзакции в БД, ACID
https://gb.ru/posts/acid_cap_transactions
https://youtu.be/gRUhFp8DhLM
https://www.flenov.info/books/read/free-sql-book/116

https://habr.com/ru/post/537594/
План выполнения запросов:
https://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D0%BD_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0
Партиционирование, шардирование БД — зачем и как
https://web-creator.ru/articles/partitioning_replication_sharding
https://highload.today/sharding-i-replikatsiya/
https://postgrespro.ru/docs/postgresql/14/ddl-partitioning
Повторить базовый синтаксис SQL
https://sql-academy.org/ru/sandbox
https://www.sql-ex.ru/learn_exercises.php
Почитать про такие паттерны проектирования, как хореография и оркестрация. В чём их плюсы и минусы, как можно реализовать
https://docs.microsoft.com/ru-ru/azure/architecture/reference-architectures/saga/saga

Добавить комментарий