Паттерн Декоратор — специальный способ организации модулей в программе, который позволяет подставить какую-то новую функцию прямо в середину цепочки вызовов, тем самым чуть-чуть подкорректировав поведение.
Например, в реальном мире очки для чтения это декоратор. Вы ставите их между вашими глазами и текстом. Глобально взаимодействие ваших глаз и текста не меняется: отражённые световые лучи от страницы книги попадают в ваши зрачки, что с очками, что без них. Но очки располагаются посередине: они принимают лучи на вход и преломляют их, передавая дальше вам в глаза уже изменёнными.
Важной особенностью является тот факт, что очки можно снять. Они не требуют ни модификации вашего тела, ни модификации книги. Вообще никакие условия не нужны, кроме наличия самих очков. А если вы в линзах, то внешний наблюдатель может даже этого не знать.
Класс-декоратор должен быть спроектирован так, чтобы не требовать никаких изменений в объектах, с которыми он работает. Его можно отключить, чаще всего буквально закомментировав одну строку.
В примере ниже программа выведет текст "Привет, мир, в натуре.", и вот это дополнение в конце как раз дописано декоратором. Можно убрать или закомментировать подчёркнутую строчку, не трогая остальной код, для всех внешних вызовов сигнатуры останутся теми же самыми, но выводиться будет уже просто "Привет, мир".
В декораторы можно прятать логику, которую буквально навешивают поверх основной функции программы. Например, проверку прав на выполнение операции. Перевод на другой язык, логирование, поддержку обратной совместимости при обновлении и так далее.
#dev
Итог вайб-эксперимента
Реализовал скрипт (тг-бот) и тг-канал как вполне логичное продолжение всей истории.
✔️https://t.me/El_Reference - сам канал
Бот это такая универсальная автоматизированная система, позволяет скачивать с любых платформ, анализировать контент, создавать теги, грузить автоматически в Eagle с тегами и это все добро выкладывать в канал
Цель сформировать публичную базу референсов для разных специалистов
Для удобства поиска в каждом посте прописаны теги. Теги формируются на основе нейро-анализа.
Алгоритм взаимодействия таков
Тебе нужны референсы с тачками. Смотришь пинтерест, беханс, свои сохранные референсы. Либо находишь, либо не находишь. В том случае, если поиск того самого не удалась, то заходишь в мою базу. Пишешь хэштег #motion и тег "car" или "automobile". Дальше смотришь посты, в котором этот тег присутствует. То есть разница со всем остальным поиском в том, что есть теги, а не просто ссылка на видео или пустое видео без каких-либо зацепок для поиска, которая превращается в один большой хлам без возможности поиска внутри
Планы
Тестить, тестить и тестить. И разобраться самим ботом. Возможно ли это из локальной истории, которая работает только у меня, перенести в публичную. Чтоб, например, каждый через этого бота смог скачивать с любых платформ. Чтоб механизм метча Eagle + Бот работал тоже и у остальных людей. Ответов не знаю. Буду думать и пробовать.)
#Портфолио
⚖ В дополнение к предыдущему посту, делюсь образцами motion, которые используются в США:
1. Motion to dismiss - это ходатайство о прекращении судебного процесса. Такой motion может быть подан, если истец не имеет права на предъявление иска, если иск не соответствует требованиям формы или содержания, или если иск был предъявлен после истечения срока исковой давности.
2. Motion for summary judgment - это ходатайство о резолютивном решении, которое может быть подано любой из сторон в процессе. Суть такого motion заключается в том, чтобы убедить суд в том, что все необходимые факты и доказательства в данном деле уже известны, и что их интерпретация не допускает иного вывода, кроме того, который предлагает подавец motion. Если суд одобрит motion for summary judgment, то это может привести к прекращению судебного процесса без необходимости проведения полноценного судебного разбирательства.
3. Motion to compel discovery - это ходатайство о принуждении на предоставление доказательств. Если одна из сторон не предоставляет необходимых доказательств, то другая сторона может подать такой motion, чтобы вызвать ее к ответу.
4. Motion for continuance - это это ходатайство о переносе даты судебного заседания. Такой motion может быть подан, если одна из сторон не готова к разбирательству в заявленную дату.
5. Motion in limine - это ходатайство о предварительном исключении доказательств или установление определенных правил в отношении представления доказательств на судебном процессе. Например, такой motion может быть подан для того, чтобы запретить сторонам использовать определенные доказательства или для того, чтобы установить правила касательно способа представления доказательств.
6. Motion for reconsideration - это ходатайство о пересмотре судебного решения. Такой motion может быть подан, если сторона не согласна с решением суда и хочет, чтобы суд пересмотрел свое решение на основании новых доказательств или аргументов.
7. Motion to quash - это ходатайство об отмене судебного приказа. Такой motion может быть подан, если сторона не согласна с приказом суда и хочет, чтобы суд отменил его.
8. Motion for sanctions - это ходатайство о наложении санкций на сторону, которая нарушила правила судебного процесса. Например, такой motion может быть подан, если сторона не предоставляет необходимые доказательства или если она злоупотребляет правом на подачу многочисленных ходатайств.
Это только некоторые из наиболее распространенных типов motion в американском праве. Каждый конкретный судебный процесс может иметь свои особенности и требования в отношении подачи и рассмотрения motion.
#uslaw, #motion
✍ Тут вчера мне написали с просьбой объяснить, что такое motion. Motion - это американская правовая концепция нежели английская. Но в любом случае, я постараюсь объяснить вкратце что это.
🇺🇸 В американском праве термин "motion" обычно относится к формальному запросу, который предъявляется суду в ходе судебного процесса.
📝 Motion может быть подан любой стороной в процессе (например, истцом, ответчиком или третьей стороной) и может быть связан с различными вопросами, например, с требованием о разрешении какого-либо вопроса до начала судебного процесса, или с требованием о прекращении процесса, а также с запросом на изменение судебного решения.
🗂 Существует множество различных типов motion, которые могут быть поданы в судебном процессе, включая motion to dismiss (запрос на прекращение судебного процесса), motion for summary judgment (ходатайство о резолютивном решении), motion for continuance (запрос на перенос даты судебного заседания), motion to compel discovery (запрос на вынуждение предоставления доказательств) и многие другие.
#motion, #uslaw