Обновить
4
0
Сергей@Chelyuk

Пользователь

Отправить сообщение

Замыкания и декораторы в Python: часть 2 — декораторы

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели16K

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

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

Читать далее

Разработка синхронизированных многопоточных приложений на C# и .NET

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели24K

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

Читать далее

JavaScript однопоточный или многопоточный? Ставим точку

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели50K

Поводом для ревизии данного вопроса стало то, что я по сей день слышу от специалистов (в том числе позиционирующих себя как senior), что современный JavaScript является однопоточным. При этом они охотно задают этот вопрос на техническом интервью, вводя неуверенных кандидатов в заблуждение.

Читать далее

Async/Await в C#. Часть 3. Чем Tasks(Задачи) лучше чем IAsyncResult. О чем не написал Stephen Toub

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.8K

В этот раз я достаточно внимательно прочитал перевод главы про задачи(Tasks) из этого Поста, чтобы выяснить, что он не очень точно передает смысл исходного текста. Я попробую пересказать содержание так, как я его понял, в том числе полагаясь на свой практический опыт программирования многопоточных приложений и embedded приложений с множеством прерываний.

Мне кажется, я придумал хороший формат, чтобы совместить свой пересказ содержания достаточно близко к смыслу исходного текста (надеюсь), с моими комментариями-разъяснениями-догадками.

Пару ссылок на предыдущие работы по этой теме вы тоже найдете под катом.

Читать далее

Async/Await из C#. Головоломка для разработчиков компилятора и для нас

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели14K

Я рискну все таки продолжить изложение своего понимания Поста: How Async/Await Really Works in C#, которое в предыдущей статье получило название “ортогональный взгляд”. Также, недавно мы познакомились (возможно несколько преждевременно) с изначальным определением концепции SynchronizationContext на которую ссылается автор этого Поста.

Это не перевод. Это изложение содержания Поста на разных уровнях раскрытия сущностей и их взаимодействия по мере развития (эволюции) моего понимания тех мыслей и идей, которые, как мне кажется, хотел донести до читателя автор Поста Stephen Toub.

То есть я пишу о том, что и как я понял из этого текста и стараюсь обосновать это свое понимание из найденного материала по теме, а вы одобряете или критикуете/уточняете то, что у меня получилось сформулировать. Таким образом мы самым естественным образом получим хорошую и полную интерпретацию содержания статьи на нашем родном языке, надеюсь, да еще и обогащенную критикой возможных заблуждений происходящих из недостаточности или неполноты изложения, например, по этой теме.

В этот раз попробуем сформулировать задачу, которую решает компилятор, то есть те разработчики, которые разрешили нам пользоваться конструкциями Async/Await в C#.

Читать далее

Какие вопросы я задаю на собеседовании QA Junior+

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели99K

Привет Хабр! Меня зовут Иван, сегодня поговорим о вопросах на собеседованиях Джуну+ (от 6 месяцев работы) и узнаем как ответить на них не как ChatGPT. Я как инженер по ручному и автоматизированному тестированию провожу собеседования на роль Junior+ QA (с дальнейшим ростом в автоматизаторы). Делюсь своим списком вопросов и ответов, которые я ожидаю услышать.

Придумывать заново велосипед не собираюсь. Поэтому ниже список ресурсов на вопросы для подготовки к собесу QA. К сожалению ресурсы предоставляют не все ответы, в том числе не все правильные.

База для Junior QA

1. Что такое тестирование?

Сравнение ожидаемого результата с фактическим результатом ПО. Тестирование это не поиск багов!

Своими словами: тестирование - это процесс сопоставления спецификаций продукта с его финальным результатом. Под финальным результатом мы можем понимать то, что тестировщик получает, когда разработчик реализует функционал по задаче и мы начинаем его тестировать. В ручном тестировании мы сравниваем тестовые случаи с реализованным проектом, а в автоматизированном тестировании мы преобразуем ручные тестовые случаи в автоматические проверки для реализованного проекта.

Подготовиться к собесу

Python. Тестирование API. Структура тестов

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели7.6K

Всем привет, меня зовут Александр, в последние 2 года занимаюсь автоматизированным тестирование. Хочу поделиться своим наработанным опытом по созданию API тестов. Для написания автотестов в компании используем selenium webdriver, behave.

Behave — это фрейморк для программирования через поведение системы в python-стиле. Behave использует тесты, написанные на “естественном”, то есть, английском языке.

Selenium webdriver широко используется и думаю в представлении не нуждается, но всегда можно загуглить.

Структура тестов behave очень проста, если feature файлы в которых описываются сценарии и папка steps в которой находятся шаги для выполнения этих сценариев.

Первое на что можно обратить внимание это на структуру feature файлов (в этих файлах находятся сами тесты, которые состоят из различных шагов):

Читать далее

Паттерны автоматизации и архитектура автотестов

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели28K

Добрый день, меня зовут Виктория и я много лет занимаюсь автоматизацией. В этой статье я хотела бы рассказать о паттернах автоматизации, которые использую, а также о такой штуке, как архитектура проекта.

Читать далее

Как написать проект по автоматизации на Python, Pytest и Playwright и настроить запуск автотестов в CI с нуля

Время на прочтение16 мин
Охват и читатели39K

Привет, Хабр! Меня зовут Александр Бехтерев, я работаю QA-инженером в Учи.ру. Не так давно перед нами встала задача перехода с библиотеки Selenium на новую и мощную библиотеку Playwright. Этот переход был вызван желанием улучшить процессы тестирования и попробовать что-то новое. 

В этой статье я постараюсь подробно рассмотреть процесс создания проекта на Python, Pytest и Playwright с применением паттерна Page Object, а также оставлю шаблон yml, который позволит запускать автотесты в CI. 

Читать далее

Одноплатники начала декабря 2023 года: почти что новогодние устройства

Время на прочтение5 мин
Охват и читатели31K

Несмотря на близость праздников, производители компьютерного «железа» продолжают выпускать устройства, хорошие и разные. Это актуально и для одноплатников, которые можно использовать для самых разных целей — от DIY-проектов до решения обычных офисных задач. Несколько гаджетов, которые, по нашему мнению, заслуживают внимания — под катом.
Читать дальше →

SOLID — это несложно. С примерами на Python

Время на прочтение16 мин
Охват и читатели37K

Привет, Хабр! Меня зовут Павел Корсаков, я python-разработчик в облачном провайдере beeline cloud.

Почти на всех собеседованиях задают вопросы про SOLID: что это такое, зачем нужен, как его применяет кандидат, как понимает принципы из него?

Мы тоже спрашиваем кандидатов про SOLID. Чаще всего они рассказывают, что SOLID — это акроним, озвучивают все его принципы, но объяснить и привести примеры могут лишь для половины. На остальных либо плавают, либо сливаются.

Чтобы мой материал не получился очередной статьей про SOLID, я изменю формат подачи и последовательность объяснения принципов. Буду добавлять код небольшими инкрементами и на каждом из них указывать, какие принципы SOLID используются в том или ином случае. 

Читать далее

История компьютерных стратегий. Часть 5: теленовости на игровом экране, или как появился «Command & Conquer»

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели12K

В прошлой части мы вспоминали о рождении «Warcraft: Orcs & Humans» от Blizzard — «незаконнорождённого», но прямого и явного потомка «Dune II». Но у «Дюны» был и прямой наследник: почти сразу после её выпуска в Westwood Studios стали думать о том, как можно развить заложенные в ней идеи и механики на новом уровне. Именно из этой работы выросла франшиза «Command & Conquer» — включая и её более популярную в России подсерию «Red Alert». Если «Warcraft» был фэнтезиен до мозга костей, то в первой C&C, в отличие от последующих частей, очень отчётливо отразился реальный мир начала 90-х годов. Точнее, то, как он выглядел для американского телезрителя. Итак, поехали.
Читать дальше →

Terraform: от незнания к best practices | Часть 2 и 3

Время на прочтение1 мин
Охват и читатели9.6K

Всем привет! Меня зовут Виктор, я DevOps‑инженер компании Nixys — мы помогаем другим компаниям внедрять в их IT‑решения передовые практики DevOps, MLOps и DevSecOps.

А еще — делимся знаниями и опытом в этой сфере. Сегодня представляем продолжение серии обучающих видеороликов на YouTube "Terraform: от незнания к best practices" и выкладываем сразу два видео!

Читать далее

Terraform: от незнания к best practices

Уровень сложностиСредний
Время на прочтение47 мин
Охват и читатели55K

Всем привет! Меня зовут Виктор, я DevOps‑инженер компании Nixys, которая помогает другим компаниям внедрять в их IT‑решения передовые практики DevOps, MLOps и DevSecOps.

Сегодня я приглашаю вас вместе со мной пройти путь «от незнания к best practices» в работе с Terraform. Этот материал подготовлен для серии наших одноименных видеороликов на YouTube, но мы решили дополнить его и предложить вам более детальное описание процесса в этой статье.

Не забывайте следить за нашими обновлениями на YouTube, Habr и подписывайтесь на наш Telegram‑канал DevOps FM — мы всегда рады новым друзьям. Начнём?

Читать далее

Что нового в Selenium 4 — ключевые особенности и отличия

Время на прочтение9 мин
Охват и читатели21K

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

Читать далее

Решил 50 задач и ответил на вопрос — Python или JavaScript?

Время на прочтение28 мин
Охват и читатели67K


Привет, друзья!


Я — JavaScript-разработчик. Код пишу в основном на React (иногда на Vue), немного на TypeScript, немного на Node, немного знаю SQL, но...


  • со мной работает много людей, которые пишут код на Python
  • вокруг много разговоров про Python
  • повсюду преподают Python
  • Яндекс любит Python (раньше Гугл тоже его любил, но теперь у него есть Go)

Короче говоря, сложно было не заинтересоваться Python.


Как известно, лучший способ научиться "кодить" — это писать код.


Предлагаю вашему вниманию 50 популярных в сфере программирования задач, решенных с помощью Python и JavaScript.


Цель — сравнить языки на предмет предоставляемых ими возможностей.


Задачки не очень сложные, хотя имеется парочка из категории продвинутых.


Предполагается, что вы владеете хотя бы одним из названных языков на среднем уровне.

Читать дальше →

Шпаргалка по шаблонам проектирования

Время на прочтение2 мин
Охват и читатели1.6M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →

Хакаем CAN шину авто. Мобильное приложение вместо панели приборов

Время на прочтение7 мин
Охват и читатели132K

Я продолжаю изучать CAN шину авто. В предыдущих статьях я голосом открывал окна в машине и собирал виртуальную панель приборов на RPi. Теперь я разрабатываю мобильное приложение VAG Virtual Cockpit, которое должно полностью заменить приборную панель любой модели VW/Audi/Skoda/Seat. Работает оно так: телефон подключается к ELM327 адаптеру по Wi-Fi или Bluetooth и отправляет диагностические запросы в CAN шину, в ответ получает информацию о датчиках.

По ходу разработки мобильного приложения пришлось узнать, что разные электронные блоки управления (двигателя, трансмиссии, приборной панели и др.) подключенные к CAN шине могут использовать разные протоколы для диагностики, а именно UDS и KWP2000 в обертке из VW Transport Protocol 2.0.

Как телефон взаимодействует с автомобилем

Король умер! Да здравствует король! История процессоров поколения Intel Pentium II

Время на прочтение18 мин
Охват и читатели32K

7 мая 1997 года на рынке настольных компьютеров произошла очередная смена власти. После четырех лет правления Pentium, незадолго до того успевший присоединить к своему имени титул MMX, покинул трон. Король не умер, он отправился доживать свой век в ноутбуках и недорогих (сравнительно) компьютерах, где оставался востребованным еще довольно долго.

На смену ему пришел Pentium II — процессор с очень последовательным именем, но Первому он являлся родственником весьма дальним, а вот «императору» семейства x86, Pentium Pro, напротив, — ближайшим, можно сказать, «любимым племянником».

Эта статья продолжает цикл статей об истории процессоров и платформ для них, начатый рассказами о Pentium Pro и Pentium (часть 1 и часть 2). Сегодня мы вспомним о процессорах, давших начало «золотому веку» Intel: недолгому затишью перед ожесточенной битвой, когда большинство конкурентов сворачивали свою деятельность, стартапы не выживали, а AMD, после очередного поражения, только собиралась с силами, чтобы нанести ответный удар. Итак, приступим!
Читать дальше →

Один совет, благодаря которому я успешно прошёл несколько собеседований

Время на прочтение6 мин
Охват и читатели178K
— Что вы скажете, если я попрошу вас разработать сервис, который обрабатывает тысячи запросов в секунду с минимальной задержкой?

— Хм… Я скажу, что у вас в компании возникла такая проблема. Но у вас нет идей и вы обсуждаете её на собеседованиях с кандидатами :)

Именно так я ответил, когда мне впервые задали вопрос по архитектуре. Мы хорошо посмеялись. Но потом интервьюер всё-таки заставил меня спроектировать сервис.
Читать дальше →

Информация

В рейтинге
5 516-й
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность