Inspiration | План на 2024 г.

Добавить: многопоточность, SQL, Git, Docker, deploy.


Базовые темы computer science


Структуры данных


📂 Структуры данных | Последнее изменение: 10.01.2024 19:17

Link to original


Алгоритмы

Нотация “О-большое” Рекурсия Основные алгоритмы - Двоичный поиск - Сортировка Динамическое программирование https://www.techinterviewhandbook.org/algorithms/dynamic-programming/


📂 Алгоритмы | Последнее изменение: 10.01.2024 18:19

Link to original


Паттерны проектирования

  • Паттерны – что это, достоинства, недостатки. Основополагающая литература.

    Основные паттерны проектирования

    • Model-View-Controller (MVC)
    • Adapter
    • ActiveRecord
    • Abstract Factory (абстрактная фабрика)
    • Bridge (мост)
    • Builder (строитель)
    • Chain of Responsibility (цепочка обязанностей)
    • Command (команда)
    • Composite (компоновщик)
    • Decorator (декоратор)
    • Facade (фасад)
    • Factory Method (фабричный метод)
    • Flyweight (приспособленец)
    • Interpreter (интерпретатор)
    • Iterator (итератор)
    • Mediator (посредник)
    • Memento (хранитель)
    • Observer (наблюдатель)
    • Prototype (прототип)
    • Proxy (заместитель)
    • Singleton (одиночка)
    • State (состояние)
    • Strategy (стратегия)
    • Template Method (шаблонный метод)
    • Visitor (посетитель)

    📂 Паттерны | Последнее изменение: 10.01.2024 17:16

    Link to original

SOLID Principles

SOLID


SOLID — аббревиатура пяти фундаментальных принципов разработки в парадигме ООП. Следование этим принципам позволяет строить на базе ООП масштабируемые и сопровождаемые программные продукты с понятной бизнес-логикой и уменьшает связанность между классами, модулями и функциями, что способствует повторному использованию кода.

Принципы SOLID были определены Робертом С. Мартином в его книге “Clean Code: A Handbook of Agile Software Craftsmanship”, опубликованной в 2008 году.

  1. Принцип единственной ответственности (Single Responsibility Principle — SRP)

Каждый класс или модуль должен иметь только одну причину для изменения. Это означает, что класс должен быть ответственным только за одну часть функциональности в системе.

  1. Принцип открытости/закрытости (Open/Closed Principle — OCP)

Программные сущности, такие как классы, модули и функции, должны быть открыты для расширения, но закрыты для модификации. Это означает, что новая функциональность должна добавляться без изменения существующего кода.

  1. Принцип подстановки Барбары Лисков (Liskov Substitution Principle — LSP)

Объекты в программе должны быть заменяемыми своими наследниками без изменения корректности программы. Это означает, что классы-наследники должны быть взаимозаменяемыми со своими родительскими классами и не нарушать ожидаемого поведения.

  1. Принцип разделения интерфейса (Interface Segregation Principle — ISP)

Клиенты не должны зависеть от интерфейсов, которые они не используют. Интерфейсы следует разделять на более маленькие и специфичные, чтобы клиенты могли реализовывать только те методы, которые им нужны.

  1. Принцип инверсии зависимостей (Dependency Inversion Principle — DIP)

Модули верхнего уровня не должны зависеть от модулей нижнего. Оба уровня должны зависеть от абстракций. Это означает, что зависимости должны быть абстракциями, а не конкретными реализациями.

Зачем следовать принципам SOLID? Возьмём, к примеру, принцип открытости/закрытости, который устанавливает, что вы должны иметь возможность расширять поведение класса, не изменяя его. Почему изменить поведение класса, открыв его файл в редакторе и внеся некоторые изменения, — плохая практика? Или принцип инверсии зависимостей, который гласит, что необходимо зависеть от абстракций, а не от конкретных реализаций. Что не так в зависимостях от конкретных реализаций?


📂 SOLID | Последнее изменение: 26.04.2024 10:09

Link to original


Web

Networking

Подробно изучить раздел про HTTP на Мозилле:

Теория HTTP

🟢 – заготовка заметки, не заполнена.


Link to original

REST API

Python Web Frameworks

💡What happens when you type google.com into your browser’s address box and press enter?

WebSocket

Server-sent events

🟢 DoS Attack


📂 Web | Последнее изменение: 20.02.2024 17:27

Link to original

Flask

FastAPI

  • New book by Bill Lubanovich

Прочее


References


📂 Интервью | Последнее изменение: 11.08.2024 10:36