№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy
Функция sample
Функция sample() позволяет выбрать случайным образом элементы из последовательности или коллекции.
Это удобно при необходимости получить случайную выборку из данных.
Функция принимает два основных аргумента:population
— последовательность, из которой надо выбрать элементы (list
, tuple
, string
и т. д.)k
— количество элементов для выборки.
Дополнительные аргументы:counts
— список весов элементов (по умолчанию равновероятный выбор).rng
— генератор случайных чисел (по умолчанию берется из модуля random
).
В примере из списка букв берется случайная выборка размером 3 элемента. Результат при каждом запуске будет разный.
#это_база
💸 Постоянная прокачка знаний — это +100 к успеху стартапа!
Подпишитесь на СберСтартап, примите участие в крутых активностях SberUnity и получите возможность попасть на мероприятия Сбера! 💚
Реклама. Публичное акционерное общество «Сбербанк России», ПАО Сбербанк ИНН 7707083893
Бэкенд-команды Яндекса отправляются в тур по городам России
С 13 по 17 ноября ребята из наших команд проведут встречи в Москве, Нижнем Новгороде, Екатеринбурге, Новосибирске и Санкт-Петербурге. Мы хотим рассказать местным разработчикам о себе: как устроены наши сервисы, что за технологии мы используем, почему гордимся тем, что делаем. Участвуют представители 14 разных сервисов Яндекса. После официальной части вместе отдохнём: послушаем стендап Севы Ловкачева и поболтаем о жизни в неофициальной обстановке.
Кроме этого, мы устроим онлайн-трансляцию встречи из Москвы — вы сможете подключиться и пообщаться с нашими разработчиками из любого города России.
Вот расписание встреч:
🔸 13 ноября онлайн-трансляция
🔸 13 ноября офлайн-встреча в Москве
🔸 14 ноября офлайн-встреча в Нижнем Новгороде
🔸 15 ноября офлайн-встреча в Екатеринбурге
🔸 16 ноября офлайн-встреча в Новосибирске
🔸 17 ноября офлайн-встреча в Санкт-Петербурге
А с 20 по 26 ноября мы проведём Week Offer Backend: предложим всего за одну неделю получить офер в одну из 14 участвующих команд. Приглашаем кандидатов с опытом разработки от трёх лет на одном из этих языков программирования: С++, С#, Python, Java, Go и Scala. Принимаем заявки до 19 ноября.
Узнать подробности и зарегистрироваться можно здесь.
Реклама. ООО "Яндекс". erid: 2VtzqwfRiE2
27 и 28 ноября в Москве пройдёт юбилейный, 20-й, HighLoad++. Мы собрали самую масштабную конференцию за последние 15 лет!
✅3000 участников
✅150+ докладов
✅11 залов
✅5 мастер-классов
✅Конференция в конференции — GolangConf 2023
✅Премия HighLoad++ 2023
👉Подробнее: https://clck.ru/36EUDK
Создание, эксплуатация и масштабирование высоконагруженных проектов требует от разработчика одновременно и внимание к деталям и широты кругозора, чтобы увидеть полную картину. Поэтому программа конференции включает не только традиционные доклады, но и несколько спецпроектов.
Вместе с нашими партнёрами из Яндекса мы собрали целый опенсорс-трек, а на конференции проведём опенсорс трибуну, где вы сможете узнать о решениях с открытым кодом, которые создаются прямо сейчас. Для golang-разработчиков собрали конференцию. И после трёхлетнего перерыва, при поддержке VK, проведём церемонию награждения лауреатов Премии HighLoad++.
Реклама. ООО "КОНФЕРЕНЦИИ ОЛЕГА БУНИНА". ИНН 7733863233. erid: LjN8KSCNi
#вопросы_с_собеседований
Что такое RPC?
RPC, или удаленный вызов процедур, — это механизм для вызова процедур или функций, расположенных на другом компьютере в сети. Он позволяет вызывать код на удаленном компьютере так, как будто этот код находится локально.
Основная идея RPC заключается в том, чтобы скрыть детали сетевого взаимодействия от разработчика. Разработчику кажется, что он просто вызывает локальную функцию, хотя на самом деле происходит удаленный вызов через сеть.
RPC широко используется в распределенных системах для организации взаимодействия между отдельными компонентами. Например, в микросервисной архитектуре для вызова сервисов друг из друга.
Функция isalnum
Функция isalnum() используется для проверки, состоит ли строка из буквенно-цифровых символов.
Функция принимает в качестве аргумента строку и возвращает True
, если строка состоит только из буквенных символов (a-z, A-Z) и цифр (0-9), или False
, если в строке есть другие символы, пробелы, знаки пунктуации и т. д.
*Регистр символов не имеет значения.
*Пустая строка возвращает False
.
#это_база
Фреймворк nose2
Фреймворк nose2 предназначен для модульного тестирования. Он позволяет писать, организовывать и запускать юнит-тесты для кода на Python.
Основные возможности nose2
:
— Автоматическое обнаружение и запуск тестовых методов и функций.
— Поддержка разных стилей написания тестов (unittest
, doctest
и др.).
— Плагинная архитектура для расширения функциональности.
— Генерация отчетов в разных форматах (JSON
, XML
).
— Интеграция с Continuous Integration системами.
В этом примере класс TestSum
использует декоратор tools.params
от nose2
для параметризации. Функция sum
тестируется на разных значениях x
.
При запуске кода nose2
автоматически найдет и выполнит этот тест, проверив работу функции sum
с аргументами 1
, 2
и 3
.
#вопросы_с_собеседований
Что такое code coupling?
Code coupling — это степень зависимости различных частей кода друг от друга.
Сильная связанность (tight coupling) означает, что изменение в одной части кода потребует изменений во многих других частях. Это делает код трудным для изменения и поддержки.
Слабая связанность (loose coupling) позволяет вносить изменения в один модуль кода, не затрагивая другие. Это даёт большую гибкость и упрощает поддержку кода.
Идеальный код должен иметь высокую связанность внутри модуля (cohesion) и слабую связанность между модулями (coupling). Это позволяет легко вносить изменения и масштабировать код по мере необходимости.
Хэширование
Хэширование — это создание хэшей (хеш-сумм) из данных с помощью хэш-функций.
Хэши используются для проверки целостности данных, хранения паролей, поиска дубликатов и т. д.
В Python есть несколько встроенных хэш-функций:
— hash()
: возвращает хэш для объекта.
— md5()
: возвращает хэш MD5.
— sha1()
: возвращает хэш SHA1.
— sha256()
: возвращает хэш SHA256.
В примере из строки "Hello world" созданы хэши MD5 и SHA1, которые можно использовать для проверки целостности данных.
#это_база
Константы пакета string
В Python есть несколько полезных констант в пакете string
, которые нужно знать начинающему программисту:
— string.ascii_letters
: строка со всеми буквами английского алфавита (строчными и прописными).
— string.digits
: строка со всеми цифрами.
— string.hexdigits
: строка со всеми шестнадцатеричными цифрами.
— string.octdigits
: строка со всеми восьмеричными цифрами.
— string.punctuation
: строка со всеми знаками пунктуации.
— string.whitespace
: строка со всеми пробельными символами.
Эти константы позволяют легко получить строки с определенными наборами символов, что часто бывает полезно при работе со строками.
#это_база
Асинхронный фреймворк Robyn
Robyn — это фреймворк, предназначенный для упрощения написания асинхронного кода.
Основные возможности Robyn
:
— Удобные декораторы и функции для создания асинхронных задач и работы с ними (например, rob
, task
, run
).
— Инструменты для организации параллельного выполнения задач (decorators like parallel
, chunks
).
— Интеграция с asyncio
для использования асинхронных библиотек.
— Удобные классы и функции для работы с очередями задач (Queue
, run_every
).
— Встроенные инструменты логирования и отладки.
— Поддержка типизации с помощью typing
.
#вопросы_с_собеседований
Что такое SOLID?
SOLID — это акроним принципов объектно-ориентированного программирования, которые помогают писать гибкий, поддерживаемый и расширяемый код:
S — Single-responsibility principle (Принцип единственной ответственности).
O — Open-closed principle (Принцип открытости/закрытости).
L — Liskov substitution principle (Принцип подстановки Лисков).
I — Interface segregation principle (Принцип разделения интерфейса).
D — Dependency Inversion Principle (Принцип инверсии зависимостей).
Основные идеи SOLID:
— Каждый класс должен нести единственную ответственность.
— Классы должны быть открыты для расширения, но закрыты для модификации.
— Подклассы должны быть взаимозаменяемы со своими базовыми классами.
— Множество узких интерфейсов лучше, чем один широкий.
— Зависимости должны строиться на абстракциях, а не конкретных классах.
#вопросы_с_собеседований
Что такое SLAP?
SLAP или принцип единого уровня абстракции — это принцип в программировании, согласно которому код должен использовать абстракции одного уровня в любой точке.
Это означает, что в пределах одного модуля или функции не следует смешивать низкоуровневые детали реализации и высокоуровневые абстракции.
Пример нарушения SLAP:
— Использование в цикле сырых индексов вместо итераторов.
— Работа с базой данных через SQL-запросы в бизнес-логике вместо ORM.
— Прямой вызов системных функций вместо высокоуровневых интерфейсов.
Соблюдение SLAP делает код:
— Понятным: уровень абстракции соответствует контексту.
— Переносимым: можно заменить низкоуровневую реализацию.
— Тестируемым: легче имитировать высокоуровневые интерфейсы.
— Гибким: проще расширять высокоуровневую абстракцию.
У вас есть готовый ИТ-продукт? Сделайте пилот с ВТБ!
Акселератор ВТБ приглашает технологические стартапы и компании протестировать свои решения на бизнес-процессах и клиентах банка. А в случае успешного пилота – стать поставщиком услуги/лицензии/продукта.
Подайте заявку на сайте, пройдите экспертизу и сделайте быстрый пилот с Акселератором ВТБ.
Преимущества банка:
- коммерческие пилоты
- fast track по запуску пилотов
- экспертиза по развитию вашего продукта
Действуем вместе!
Хотели бы вы в будущем работать в большой известной IT-компании? Например, в Кинопоиске?
Мы позвали разработчиков оттуда, чтобы они рассказали про свою работу. А ещё они поделятся опытом — о том, как сами пришли в программирование. Приходите на вебинар и узнайте, как это: работать в одном из медиасервисов Яндекса.
→ Бесплатно, 24 октября в 19:00 Мск
На вебинаре поделятся кейсами бэкендер, фронтендеры, мобильный разработчик и руководитель тестировщиков. А вы сможете задать им свои вопросы.
→ Зарегистрируйтесь на вебинар
Метод str.expandtabs()
Метод str.expandtabs() используется для замены символов табуляции (\t) в строке на заданное количество пробелов.
Он позволяет контролировать ширину табуляции при выводе строки.
#это_база
Атрибут __context__
Атрибут context используется в менеджерах контекста (context managers) и представляет контекст, в котором находится блок кода.
Он позволяет передавать произвольные данные между блоком with
и методами enter
/exit
менеджера контекста.
В примере при входе в блок with
создается объект MyContext
и его атрибут value
передается в переменную context
с помощью метода enter
.
При выходе из блока метод exit
имеет доступ к атрибуту value
через self.context
и используется для "чистых" операций.
Метод __subclasshook__
Метод subclasshook используется для определения, является ли один класс подклассом другого. Он вызывается при проверке isinstance()
и issubclass()
для определения отношения наследования между классами.
Этот метод позволяет настроить поведение этих функций для пользовательских классов.
В примере метод subclasshook
класса B
проверяет, есть ли у подкласса метод print_value
. Если да, то возвращает True
, что позволяет считать его подклассом B
.
#вопросы_с_собеседований
Что такое MQ?
MQ (Message Queue) — очередь сообщений, это паттерн asynchronous messaging, который позволяет обмениваться сообщениями между распределенными компонентами приложения.
Основные преимущества использования MQ:
Асинхронность — отправитель и получатель не зависят друг от друга.
Отказоустойчивость — сообщения не теряются при сбоях.
Масштабируемость — легко добавлять новых производителей и потребителей.
Сглаживание пиковой нагрузки — очередь позволяет буферизовать сообщения.
MQ широко используется для интеграции распределенных систем, построения микросервисных архитектур.
Популярные реализации MQ: RabbitMQ, Kafka, ActiveMQ.
Метод math.perm()
Метод math.perm() вычисляет перестановки — число способов расположения n элементов по m. Он находится в модуле math
.
Метод принимает два обязательных аргумента: n
— общее количество элементов и m
— количество элементов в подмножестве. Возвращает целое число — количество перестановок.
Если n < m
, вернет 0
.
В примере вычисляются перестановки из 5 элементов по 3.
То есть сколько способов выбрать подмножество из 3 элементов из множества размером 5.
#это_база
urllib3
urllib3 — это библиотека для отправки HTTP-запросов, она позволяет легко и удобно делать запросы к веб-сервисам и API.
Основные возможности urllib3
:
— Поддержка HTTP и HTTPS протоколов.
— Кэширование соединений для повышения производительности.
— Автоматическое развертывание соединения по SSL.
— Поддержка куки, прокси, редиректов.
— Встроенная поддержка gzip
и deflate
.
— Пулинг соединений и многопоточность.
В примере создается экземпляр PoolManager
из urllib3
, который управляет пулом соединений.
Делается GET
запрос к httpbin.org/ip
, который возвращает IP адрес клиента.
Ответ записывается в переменную r
, из которой берется тело ответа r.data
и выводится на печать.
⚡️В 2023 году уже не найти работу с большим доходом, для обычных людей.
Всё потому что, необходимо разбираться в IT и искусственном интеллекте.
TECHNOHYPE — это проект, который ежедневно публикует информацию о новых разработках и открытиях. А самое главное, учит применять их в жизни.
❗️Также для наших подписчиков полностью бесплатный ChatGPT бот, который:
→ Даст ответ на любой вопрос
→ Сделает за вас 90 % работы
→ Переведёт текст, как настоящий человек
Если хотите быть в тренде, то этот канал для вас: @techno_hype_official
#вопросы_с_собеседований
Что такое code cohesion?
Code cohesion — это степень связанности различных частей кода друг с другом. Чем она выше, тем лучше код структурирован и организован.
Хорошая связанность означает, что разные части кода логически объединены по функциональности и работают вместе как единое целое для выполнения определенной задачи или набора связанных задач.
Плохая связанность в свою очередь создает код, который трудно понять и поддерживать.
🧐Устали от ошибок? Позаботьтесь о чистоте архитектуры!
👉Узнайте как на бесплатном вебинаре онлайн-курса «Clojure Developer» — «Duct и Clean Architecture в Clojure»: регистрация
На уроке мы:
— попрактикуемся применять принципы чистой архитектуры с использованием языка программирования Clojure и фреймворка Duct.
— познакомимся с его модульной системой, реализуем DI контейнер, подключим адаптеры во все порты и вообще сделаем все, как дедушка Боб нам завещал))
Экспертизой поделится руководитель программы и практик Сергей Ткаченко (Clojure Software developer / Team Lead).
🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8JzwJM
SQLAlchemy 2.0
SQLAlchemy — это ORM и SQL toolkit для Python, позволяющий удобно работать с базами данных.
Возможности SQLAlchemy 2.0
:
— Поддержка asyncio
для асинхронной работы с БД.
— Улучшенная поддержка типизации с использованием аннотаций.
— Улучшения производительности запросов.
— Поддержка новых СУБД, таких как MongoDB
, ClickHouse
, Snowflake
.
— Расширенные возможности для работы с метаданными и отражением.
🚂 Залетай к нам в DataWagon от Первой грузовой компании!
🔝С нами ты:
- Прокачаешься в решении практических задач на основе реальных данных
- Зеберешь крутой кейс себе в резюме
- Поборешься за солидный призовой фонд 900 000 рублей
- Погрузишься в атмосферу кодинга и фана
Если нет своей команды — поможем ее собрать!
Регистрируйся и вступай в чат участников, получи ответы на волнующие вопросы, найди команду или создай свою.
▶️Регистрация уже идет, успевай подать заявку по ссылке
Реклама. ООО "ФИЗТЕХ ДЖЕНЕЗИС". ИНН 7735184156. erid: LjN8KYXwK
🔥 Хардовый тест для разработчиков🔥
📕 Ответьте на 9 вопросов за 20 мин и проверьте, насколько вы готовы к обучению на курсе - «Архитектура и шаблоны проектирования»
💻 Научитесь применять шаблоны проектирования в разработках! Благодаря этому навыку вы сможете писать чистый код, экономить время на разработке и быстро «пересаживаться» на любой язык программирования.
🏵 Ждем всех, кто хочет вырасти до Middle+ разработчика или архитектора ПО!
👉 ПРОЙТИ ТЕСТ https://otus.pw/igAf/
💣 Пройдете тест, получите демо-ролик о занятиях на курсе и Welcome-скидку.
✅ Также вам откроется доступ к открытым урокам курса.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8K71VP
Класс Template
Класс Template позволяет создавать шаблоны текста с подстановкой переменных.
Это удобно для генерации текста на основе шаблона.
#это_база
Функция partial
Функция partial позволяет частично применить аргументы к функции и вернуть новую функцию с уже примененными аргументами.
Это удобно, когда нужно зафиксировать некоторые аргументы функции.
#это_база
Библиотека setuptools
Библиотека setuptools предназначена для создания и распространения пакетов Python.
Она позволяет:
— Упростить установку пакетов с помощью команды pip install
.
— Описывать зависимости между пакетами.
— Автоматически собирать пакеты при установке.
— Загружать пакеты на PyPI для широкого распространения.