Skip to content

Instantly share code, notes, and snippets.

View david-shiko's full-sized avatar

David david-shiko

  • Israel, Tel-Aviv
  • 08:09 (UTC -12:00)
View GitHub Profile
@david-shiko
david-shiko / mknltech.txt
Created January 28, 2023 22:49
mknltech
// RU
1. Прежде всего нужен точка ввода данных программу, в нашем случае это HTTP запросы.
Задача точки входа - принятие и преобразование входных данных во внутренний формат данных приложения.
Важно: приложение не должно зависеть от точки входа.
При необходимости мы должно быть в состоянии легко поменять HTTP запросы на CLI, или даже bluetooth :).
Это всего лишь способ получения входных данных.
2. Точка входа передает управление заранее определенному событию.
Событие - это набор из логических "бизнес" действий (набор методов разных классов).
@david-shiko
david-shiko / Grokking_Algorithms.txt
Last active February 13, 2022 04:16
Grokking Algorithms notes
Сввязанный список - Быстрое изменение, медленное чтение
Массив - Быстрое чтение, медленное изменение
Binary tree - бесполезная структура если к ней не применяются какие-то правила (балансировка ,сортировка и т.п.)
Binary tree search - отсортированное бинарное дерево
A map is an immutable tree-based data structure where most operations take time logarithmic in the size of the map, whereas a hash table is a mutable data structure where most operations have constant time complexity
Алгоритм "поиск в ширину" (Breadth First Search, BFS) - кратчайший путь для графа.
@david-shiko
david-shiko / common_python_notes.txt
Last active February 10, 2022 05:01
Common python notes
@contextmanager can be used to define a factory function for with statement context managers,
without needing to create a class or separate __enter__() and __exit__() methods.
Mongodb (2022 year) still don't work with dates without time. So datetime.date() will fail opposed to datetime.utcnow(). That's all for today.
@david-shiko
david-shiko / python_tricks_dan_bader.md
Last active February 21, 2022 13:27
чистый питон заметки

Инструкция assert предназначена для того, чтобы сообщать разработчикам о неустранимых(!) ошибках в программе.

Инструкции assert могут быть глобально отключены переключателями командной строки -O и -OO, а также переменной окружения PYTHONOPTIMIZE в СPython.

Когда в инструкцию assert в качестве первого аргумента передается кортеж, assert всегда возвращает True: assert(1 == 2, False) # True

Двойной начальный символ подчеркивания __var: запускает механизм

@david-shiko
david-shiko / notes_clean_architecture.txt
Last active January 26, 2022 17:08
Заметки чистая архитектура (Роберт Мартин)
математика — это дисциплина доказательства истинности утверждений, требующих доказательства.
Наука, напротив, — дисциплина доказательства ложности утверждений, требующих доказательства
Структурное программирование накладывает ограничение на прямую передачу управления
Объектно-ориентированное программирование накладывает ограничение на косвенную передачу управления.
Функциональное программирование накладывает ограничение на присваивание.
тестированием можно доказать неправильность программы, но нельзя доказать ее правильность.
SOLID:
@david-shiko
david-shiko / Python_паттерн_Рпозиторий.txt
Created January 22, 2022 19:18
Python паттерн "Рпозиторий"
Ссылка на книгу: https://t.me/physics_lib/9153
Паттерн «Репозиторий»
Пришло время выполнить обещание использовать принцип инверсии
зависимостей как способ устранения связанности ключевой логики от
инфраструктурных обязанностей.
Мы представим паттерн «Репозиторий», упрощающую абстракцию хранения данных, которая позволяет устранить связанность слоя модели
и слоя данных. Приведем конкретный пример того, как эта упрощающая
абстракция делает систему более легкой в тестировании, скрывая сложности базы данных.
На рис. 2.1 дан предварительный обзор того, что мы собираемся создать: