Как стать автором
Обновить
0
0
Сергей @Chelyuk

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

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

SOLID на котиках

Время на прочтение7 мин
Количество просмотров37K


Каждый программист хоть раз слышал о принципах SOLID. На собеседованиях и экзаменах в вузах многие из нас пытались вспомнить, о чем же был тот самый принцип Лисков. Однако вряд ли цель преподавателей и интервьюеров — заставить нас заучивать строчки из учебников. SOLID действительно помогает писать качественный код, когда во всем разберешься! Если вы этого еще не сделали, добро пожаловать под кат. Еще раз взглянем на то, как устроены всем известные принципы. Обещаю — без духоты, все рассмотрим на примерах с котиками.
Читать дальше →
Всего голосов 120: ↑112 и ↓8+124
Комментарии83

Чем занимается IT-архитектор: фантазии коллег и суровая реальность

Время на прочтение10 мин
Количество просмотров15K

Привет, Хабр! Я — Светлана Уварова, ведущий системный архитектор в МТС.

В своей работе несколько раз сталкивалась с тем, что мои коллеги — разработчики, аналитики, тестировщики — не понимали, чем занимается IT-архитектор. Ведь и без него можно запустить систему. Аналитики соберут требования, разработчики воплотят их в коде, тестировщики проверят. Ну а руководитель будет отвечать за дальнейшую судьбу этого коллективного детища.

Но что, если в эту систему ворвется архитектор? В чем его задачи? Заходите под кат, обо всем расскажу. А потом отправляйте пост коллегам, если они пока не понимают, чем вы занимаетесь в команде.

Читать далее
Всего голосов 22: ↑16 и ↓6+11
Комментарии38

.NET Aspire — империя дотнета наносит ответный удар

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

Когда я первый раз услышал про .NET Aspire, я подумал что это какая-то очередная лажа от Майкрософта, про которую все забудут через неделю.

Особенно, учитывая какую дичь часто завозят в шарп (например те же ужасно спроектированные Primary Constructor'ы про которые я писал, или вот прикол-пропозал от самого Тоуба). Так что ожидания у меня, честно говоря, были ниже нуля.

Но попробовав его лично, я был, честно говоря, шокирован. Трепещите, жависты!! Трепещите гошники! Трещепищите питонисты - такого вы еще точно не видели.

Я даже представить не мог, что DevEx можно сделать настолько офигительным.

Узнать про Aspire без смс и регистрации
Всего голосов 38: ↑36 и ↓2+42
Комментарии51

Обмен данными по SPI между Raspberry Pi и Arduino

Время на прочтение4 мин
Количество просмотров11K

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

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии22

Обзор шины SPI и разработка драйвера ведомого SPI устройства для embedded Linux (Часть первая, обзорная)

Время на прочтение13 мин
Количество просмотров176K
В этой статье я хочу провести краткий обзор шины SPI (интерфейса, широко распространённого во встраиваемой технике, используемого для подключения различных устройств) и попытаюсь описать процесс создания драйвера протокольного уровня SPI устройства для Linux. Данный документ не претендует на роль полного руководства, а скорее преследует цель указать нужное направление. Так как статья не вошла в размер одного топика, мне пришлось разбить её на две части.

0. Вместо введения


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

Для кого эта статья?
В первую очередь, для новичков, каковым являюсь и я. На форумах по embedded Linux очень часто можно встретить вопрос: «А как на этой плате работать с SPI?». Именно на него я и попытаюсь дать ответ. В качестве примера, я приведу код написанный для работы с моим тестовым SPI устройством.
Читать дальше →
Всего голосов 52: ↑51 и ↓1+50
Комментарии13

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

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

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

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

Читать далее
Всего голосов 10: ↑8 и ↓2+7
Комментарии4

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

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

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

Читать далее
Всего голосов 14: ↑8 и ↓6+4
Комментарии7

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

Время на прочтение10 мин
Количество просмотров37K

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

Читать далее
Всего голосов 38: ↑32 и ↓6+34
Комментарии194

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

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

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

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

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

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии2

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

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

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

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

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

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

Читать далее
Всего голосов 6: ↑5 и ↓1+5
Комментарии6

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

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

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

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

База для Junior QA

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

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

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

Подготовиться к собесу
Всего голосов 15: ↑13 и ↓2+14
Комментарии17

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

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

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

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

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

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

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

Читать далее
Всего голосов 3: ↑1 и ↓20
Комментарии0

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

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0+7
Комментарии7

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

Время на прочтение16 мин
Количество просмотров21K

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

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

Время на прочтение5 мин
Количество просмотров30K

Несмотря на близость праздников, производители компьютерного «железа» продолжают выпускать устройства, хорошие и разные. Это актуально и для одноплатников, которые можно использовать для самых разных целей — от DIY-проектов до решения обычных офисных задач. Несколько гаджетов, которые, по нашему мнению, заслуживают внимания — под катом.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+40
Комментарии9

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

Время на прочтение16 мин
Количество просмотров32K

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

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

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

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

Читать далее
Всего голосов 24: ↑19 и ↓5+15
Комментарии43

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

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

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

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

Время на прочтение1 мин
Количество просмотров9K

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

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

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии1

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

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

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

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

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

Читать далее
Всего голосов 15: ↑14 и ↓1+15
Комментарии7

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

Время на прочтение9 мин
Количество просмотров19K

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

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии0
1
23 ...

Информация

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