fa
Feedback
ITDEAL

ITDEAL

رفتن به کانال در Telegram

Разработка комплексных IT решений для бизнеса и частных заказчиков. Чат: @pybytes_chat Founder: @lunasantrope

نمایش بیشتر
1 198
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-67 روز
-2030 روز
آرشیو پست ها
ITDEAL
1 198
پیام ویدیو01:00

ITDEAL
1 198
Шаблоны проектирования (часть 5) 🖥 Паттерн «Адаптер» — популярный структурный шаблон проектирования (structural pattern), ко
Шаблоны проектирования (часть 5) 🖥 Паттерн «Адаптер» — популярный структурный шаблон проектирования (structural pattern), который позволяет объектам с несовместимыми интерфейсами сотрудничать. Он перехватывает вызовы одного объекта и преобразовывает их в интерфейс, распознаваемый вторым. ☺️ Представьте, что у вас есть целый проект с конкретным интерфейсом и структурой. Вы решили его расширить и нашли подходящую библиотеку, однако ее интерфейс несовместим с вашим. Менять свой код или код библиотеки не очень рационально, поэтому на помощью приходит «Адаптер». 🌐 Вы можете создать класс, который будет наследовать интерфейс, совместимый с вашим кодом. А вызовы в этом классе передавать библиотеке в понятной ей структуре. Паттерн соблюдает принципы SRP и OCP и возможно создать двусторонний адаптер. Однако иногда проще и быстрее изменить уже существующий код, чем добавлять новые интерфейсы. 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram

ITDEAL
1 198

ITDEAL
1 198

ITDEAL
1 198
Шаблоны проектирования (часть 4) 🖥 Паттерн «Фасад» — это структурный шаблон проектирования (structural patterns) , который о
Шаблоны проектирования (часть 4) 🖥 Паттерн «Фасад» —  это структурный шаблон проектирования (structural patterns) , который обеспечивает упрощенный (но ограниченный) интерфейс для сложной системы классов, библиотеки или платформы. 🙂 Работать с библиотекой или фреймворком напрямую не всегда удобно: проекту не нужен полный функционал, однако инициализировать все объекты и соблюдать порядок все равно придется. Тогда на помощью приходит «Фасад», который предлагает оставить и организовать только те функции, которые действительно нужны. 👀 Также фасадов в проекте может быть несколько, таким образом вы сможете разбить работу с библиотекой или API на несколько слоев. Важно отметить, что обычно фасад полностью управляет жизненным циклом объектов, которые использует, другими словами вид отношений — композиция. 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram

ITDEAL
1 198
Углубляемся в ООП (часть 3) ☺️ Композиция — это вид агрегации, однако с куда более сильной связью. Это тоже отношения «целое/
Углубляемся в ООП (часть 3) ☺️ Композиция — это вид агрегации, однако с куда более сильной связью. Это тоже отношения «целое/часть» (whole/part), однако часть не может существовать отдельно от целого и может быть частью только одного целого за раз. А в свою очередь целое контролирует жизненный цикл части. 👀 Просто представьте анатомию человека: сердце может быть частью тела только одного человека (сиамских близнецов мы не рассматриваем) и оно не может существовать от человека отдельно. 😎 Также нужно добавить, что останавливаться только на композиции или агрегации не обязательно: можно вполне объединить их вместе. К примеру, один компонент может сразу создаваться вместе с целым в виде композиции, однако, если компонентов больше, то взаимодейстсвовать с целым они могут за счет агрегации. 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram

ITDEAL
1 198
Repost from ITDEAL
🚀🌐 ВАКАНСИЯ: FrontEnd Developer Junior 🌐🚀 Требования к кандидату: ➡️ JavaScript/ES6+: Знания и опыт в разработке на чисто
🚀🌐 ВАКАНСИЯ: FrontEnd Developer Junior 🌐🚀 Требования к кандидату: ➡️ JavaScript/ES6+: Знания и опыт в разработке на чистом JavaScript и современных стандартах ECMAScript. ➡️ Фреймворки: Владение React JS. Опыт работы с другими фреймворками – большой плюс! ➡️ HTML5 & CSS3: Продвинутые навыки в создании современных и отзывчивых интерфейсов. ➡️ RESTful API: Опыт работы с взаимодействием фронтенда с бэкендом через RESTful API. ➡️ Сборщики и модульные системы: Знание инструментов типа Webpack, Babel и понимание модульных систем (CommonJS, ES6 Modules). ➡️ Git: Навыки работы с системами контроля версий, в том числе опыт с Git. Будет плюсом: ➡️ Тестирование кода: Знание и опыт в написании модульных и интеграционных тестов. ➡️ Опыт работы с GraphQL: Понимание и практический опыт работы с GraphQL API. ➡️ Английский язык: Хорошее понимание технической документации на английском. Софт-скилы: ➡️ Коммуникабельность: Способность четко и эффективно общаться в команде. ➡️ Работа в команде: Опыт работы в командной среде, умение слушать и высказывать свое мнение. ➡️ Самостоятельность: Готовность принимать ответственность за свою работу и принимать инициативу. 🐱 Оклад: 500$ / месяц 🤖 Контакты @lunasantrope

ITDEAL
1 198
Создаем свой API (часть 2) 😎 Все, что не является параметром пути (path parameter), автоматически становится параметром запр
Создаем свой API (часть 2) 😎 Все, что не является параметром пути (path parameter), автоматически становится параметром запроса (query parameter). Параметры запроса находятся в URL после знака ? и разделяются между собой знаком &. 🔤 http://127.0.0.1:8000/items/?skip=0&limit=10 🙂 Здесь /items/ будет путем, а skip и limit параметрами запроса со значениями 0 и 10. Разные виды параметров, конечно, между собой можно комбинировать и, конечно же, они могут быть и обязательными и необязательными. 👀 Также можно очень удобно настроить валидацию параметров. Сделать это можно немного разными способами, однако документация рекоменудет использовать функцию Annotated из встроенного модуля typing вместе с функциями Query и Path для валидации параметров запроса и пути. 🔤 Документация Pydantic: КЛИК 🔤 Документация FastAPI: КЛИК 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram

ITDEAL
1 198
🚀🌐 ВАКАНСИЯ: FrontEnd Developer Junior 🌐🚀 Требования к кандидату: ➡️ JavaScript/ES6+: Знания и опыт в разработке на чисто
🚀🌐 ВАКАНСИЯ: FrontEnd Developer Junior 🌐🚀 Требования к кандидату: ➡️ JavaScript/ES6+: Знания и опыт в разработке на чистом JavaScript и современных стандартах ECMAScript. ➡️ Фреймворки: Владение React JS. Опыт работы с другими фреймворками – большой плюс! ➡️ HTML5 & CSS3: Продвинутые навыки в создании современных и отзывчивых интерфейсов. ➡️ RESTful API: Опыт работы с взаимодействием фронтенда с бэкендом через RESTful API. ➡️ Сборщики и модульные системы: Знание инструментов типа Webpack, Babel и понимание модульных систем (CommonJS, ES6 Modules). ➡️ Git: Навыки работы с системами контроля версий, в том числе опыт с Git. Будет плюсом: ➡️ Тестирование кода: Знание и опыт в написании модульных и интеграционных тестов. ➡️ Опыт работы с GraphQL: Понимание и практический опыт работы с GraphQL API. ➡️ Английский язык: Хорошее понимание технической документации на английском. Софт-скилы: ➡️ Коммуникабельность: Способность четко и эффективно общаться в команде. ➡️ Работа в команде: Опыт работы в командной среде, умение слушать и высказывать свое мнение. ➡️ Самостоятельность: Готовность принимать ответственность за свою работу и принимать инициативу. 🐱 Оклад: 500$ / месяц 🤖 Контакты @lunasantrope

ITDEAL
1 198
Создаем свой API (часть 1) 😎 Первое с чем стоит разобраться — это параметры или переменные в пути URL. Задаются они по схоже
Создаем свой API (часть 1) 😎 Первое с чем стоит разобраться — это параметры или переменные в пути URL. Задаются они по схожему принципу, как в обычном форматировании строк с помощью метода format(). Выглядит это все дело примерно так:

@app.get("/items/{item_id}")
async def read_item(item_id):
    return {"item_id": item_id}
🙂 Тут мы создаем фукнцию, которая будет обрабатывать GET запрос в случае, когда в пути после items есть какое-то значение. Значение параметра пути item_id перейдет в аргумент функции item_id. Важно, чтобы эти названия совпадали, иначе аргумент функции будет считаться параметром запроса (query parameter). ☺️ Таким образом, если мы, к примеру, перейдем по ссылке http://127.0.0.1:8000/items/2, то наш API выдаст следующий ответ: {"item_id":2}. Также из-за того, что FastAPI использует Pydantic можно настроить валидацию переменных, просто указав тип с помощью стандартной аннотации типов. 👀 В дальнейшем рассматривать голый ответ от сервера может стать неудобно, поэтому FastAPI автоматически генерирует довольно удобные документации вашего API. Чтобы их рассмотреть перейдите по следующим ссылкам: 🔤 Документация, предоставленная Swagger UI — http://127.0.0.1:8000/docs. 🔤 Докуменация, предоставленная ReDoc — http://127.0.0.1:8000/redoc. 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram

ITDEAL
1 198
Создаем свой API (введение) 😎 API (Application Programming Interface) — это интерфейс, который позволяет программным система
Создаем свой API (введение) 😎 API (Application Programming Interface)это интерфейс, который позволяет программным системам взаимодействовать друг с другом. API определяет набор правил и протоколов, которые используются для создания и интеграции программного обеспечения. 🙂 API функционирует по принципу запросов и ответов. Клиент отправляет запрос к серверу, сервер его обрабатывает и дает ответ. Обычно для этого используются протоколы HTTP или HTTPS. При создании API используются специальные методы HTTP для выполнения разных задач, вот основной список: 🔤 POST — отправка данных для создания ресурса. 🔤 GET — получение данных 🔤 PUT —  Обновление данных. 🔤 DELETE — Удаление данных. ☺️ Для создания API в Python можно воспользоватся несложным фреймворком FastAPI, который основан на уже нам знакомом Pydantic и Starlette — набор инструментов ASGI для создания асинхронных веб-сервисов. Чтобы создать свое первое приложение, выполните команды ниже: 🔤 Установите фреймворк с помощью команды pip install fastapi. 🔤 Скопируйте код выше в новый файл и запустите его в режиме разработки с помощью команды fastapi dev path/to/file.py в терминале. 🔤 Вы увидите довольно объемный вывод, и, перейдя по специальному адресу для обращения к серверу, который работает на вашем компьютере — http://127.0.0.1:8000/, вы сможете получить первый ответ от своего API. 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram

ITDEAL
1 198
Это я в рабочей поездке в Грузии, вы как там?
Это я в рабочей поездке в Грузии, вы как там?

ITDEAL
1 198
ScrapeGraphAI | ИИ-парсер 🙂 ScrapeGraphAI — это Python библиотека , созданная для автоматизированного сбора данных с сайтов
ScrapeGraphAI | ИИ-парсер 🙂 ScrapeGraphAI — это Python библиотека , созданная для автоматизированного сбора данных с сайтов и файлов. Для сбора данных она использует LLM (large language model), что делает работу с библиотекой очень простой. 🧠 Однако инструмент не привязан к конкретной модели, поэтому вы можете использовать, как, к примеру, и модели от OpenAI, как и модели, установленные на ваш компьютер с помощью Ollama. При этом структура кода остается одной и той же, что делает ScrapeGraphAI довольно полезным инструментом. 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram

ITDEAL
1 198
Углубляемся в ООП (часть 2) 😎 Агрегация — это форма ассоциации, в которой все объекты опять же имеют отдельные жизненные цик
Углубляемся в ООП (часть 2) 😎 Агрегация — это форма ассоциации, в которой все объекты опять же имеют отдельные жизненные циклы, однако один объект принадлежит другому. Это отношения «целое/часть» (whole/part), где целому или родителю принадлежит часть или потомок. 🥱 Просто представьте отношения между библиотекой и книгами. Библиотека содержит разные книги, однако, удалив саму библиотеку, книги останутся, как и наоборот. И, понятное дело, книгам не может принадлежать библиотека. 📌 Также, как и ассоциация, агрегация может быть 3 видов: one-to-one, one-to-many, many-to-many. Эта концепция тоже используется очень часто и помогает описать разные жизненные задачи. 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram

ITDEAL
1 198
Углубляемся в ООП (часть 1) 🙂 Все знают про четыре столпа ООП: инкапсуляция, наследование, полиморфизм и абстракция. Пониман
Углубляемся в ООП (часть 1) 🙂 Все знают про четыре столпа ООП: инкапсуляция, наследование, полиморфизм и абстракция. Понимание и правильное применение этих принципов поможет сделать код куда лучше. Однако на этом концепции не заканчиваются, еще одной важной концепцией является ассоциация. 👀 Ассоциация — это слабый тип отношений между классами, который устанавливается через их объекты. Каждый объект независим, и между собой эти объекты могут взамодействовать. Просто представьте отношения между учеником и учителем. 📌 Также бывает три вида ассоциации: 🔤 one-to-one — каждому объекту одного класс соответствует один объект другого. 🔤 one-to-many — один объект одного класса может быть связан с несколькими объектами другого. 🔤 many-to-many — несколько объектов одного класса могут быть связаны с несколькими объектами другого класса. 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram

ITDEAL
1 198

ITDEAL
1 198
Зачем беспокоится? 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram
Зачем беспокоится? 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram

ITDEAL
1 198
Шаблоны проектирования (часть 3) 🥱 Шаблон «Стратегия» (Strategy) — поведенческий паттерн (behavioral pattern), который предл
Шаблоны проектирования (часть 3) 🥱 Шаблон «Стратегия» (Strategy) — поведенческий паттерн (behavioral pattern), который предлагает определить семейство алгоритмов, поместить каждый в отдельный класс и сделать их объекты взаимозаменяемыми. 👀 Представим, что в коде есть всего один класс, отвечающий за навигацию. Каждый раз, когда вы хотите добавить новый вид построения маршрута, (автомобильный, пешеходный и т.д.), вам приходится этот класс изменять, что не очень удобно и может испортить уже работающий код. 😎 «Стратегия» предлагает выделить все алгоритмы маршрутов в отдельные классы — стратегии, а в изначальном классе навигации — контексте, создать поле для хранения ссылки на один из алгоритмов. Контекст не выбирает алгоритм, он просто делегирует работу связанному объекту стратегии. 📌 Этот паттерн используется довольно часто, он соблюдает принцип OCP и значительно повышает гибкость кода. Однако, если у вас немного алгоритмов, использовать паттерн смысла нет — он просто раздует код, к тому же многие языки программирования позволяют сделать все тоже самое без дополнительных классов. 🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram