SILLYFEED

LikeaDuck🦆

@likeaduck · 1.4K подписчиков

Открыть канал в Telegram

Посты канала LikeaDuck🦆 в SillyFeed: единая лента публичных Telegram-каналов со ссылками на оригиналы.

Дима Тучс (https://t.me/dtuchs). QA директор в DODO, спикер и программный комиттёр на конфах, создатель авторского курсаQA.GURUAdvanced. Здесь будет об IT, QA, менеджменте и немного обо мне.

Посты канала

LikeaDuck🦆
❓Писать ли тесты на том языке, на котором сделан продукт ❓Этот вопрос все еще иногда мелькает в обсуждениях. И даже вызывает холивары🙂Есть три обстоятельства, которые помогают найти нам ответы на этот вопрос:1) Мобильная автоматизация уже отменила этот выбор де-факто, апиум умрет, у него нет выбора. Поэтому тут только Kotlin и Swift, и если вы работаете или планируете работать с мобилками - уже можно и нужно приучаться к одному языку со своим проектом. Но, что если вам не нужна мобилка или вы почему-то имеете аргументы в пользу appium?2) Рынок труда. Заколебешься искать QA auto с чем-то, кроме питона, джавы или JS/TS. Почему? Ну, а) курсы и б) джуны пишут свой первый автотест в компании синьеров, которые тоже учили питон, джаву или JS/TS. И смотрят на них. Короче, замкнутый круг, и если у нас продукт на GO, Rust или даже очень распространенных PHP и C# - то экономически и менеджерски может быть выгодно тупо писать тесты на чем-то другом. Мы так и делали в PropellerAds: сервисы на Go и что-то на PHP, тесты - на Java. Но это именно менеджерское и экономическое решение, а не потому, что питон или джава созданы всевышним для автотестов.3) Польза для компании, улучшение dev experience, итоговое качество продукта - на мой взгляд растет, если QA и разработчики буквально общаются на одном языке. Если QA ставит свой апрув на PR разработчика и наоборот. Именно QA инженер должен влезать в код разработчика, а не разработчик "якобы поможет нам с тестами". Чуете разницу? Аргументация "выберем язык бекенда, нам помогут написать автотест" - в большинстве случаев ложная, разработчику своих дел хватает. А вот "освоим язык и платформу своего продукта что бы глубоко разобраться как он работает" - крутая аргументация, у нее только один недостаток - QA инженеру приходится не сидеть на жопе ровно с питоном или джавой, а изучать постоянно что-то новое 😁А вы как думаете?
LikeaDuck🦆
#java #frameworksSelenide - крутой. Я думаю, что большинство из вас в этом и так не сильно сомневается (список пользователей говорит сам за себя), но вот пару дней назад произошло маленькое событие, которое могло бы вообще пройти незамеченным для меня, но не прошло: я обновил в одном из своих проектов Selenide c 6.х до последней версии 7.2.1. И у меня перестал компилироваться код🙂 Казалось бы, первая мысль поругаться, но я, наоборот, пишу пост похвалы. А дело все в том, что разработчики Selenide радикально упростили жизнь всем, кто писал или планирует написать свои кастомные CollectionCondition. Если раньше надо было переопределять 3 метода: @Override public void fail(CollectionSource collection, List<WebElement> elements, Exception lastError, long timeoutMs) @Override public boolean missingElementSatisfiesCondition() @Override public boolean test(List<WebElement> elements)Причем, что делает второй и для чего он нужен технически я даже не понимал и просто писал return false;🥲А еще, надо было писать свои классы исключений: public class SpendsMismatch extends UIAssertionError А теперь все стало радикально просто, надо переопределить один метод : @Override public CheckResult check(Driver driver, List<WebElement> elements) Назначение и сигнатура которого понятны даже если вообще в первый раз слышать про CollectionCondition. Респект всем библиотекам и фреймворкам, которые упрощают свои API и делают их чистыми для понимания и написания кода. Selenide с каждым релизом, обрастая все новым функционалом, становится проще для понимания и расширения. И это хорошо. Selenide - крутой.
LikeaDuck🦆
Тихо и почти буднично мы вчера поставили рекорды по выручке и числу заказов в минуту. Рекорд заказов в минуту - 735Это Dodo Pizza России. Dodo Brands Worldwide: 835 в минуту (Здесь, кстати, на конкретном соотношении цифр видно, как важна наша цель стать пиццерией #1 в Турции и Дубае, масштабировать бизнес на зарубежных рынках). Выручка в России за 1 день 534 млн рублей🔥В Евразии - 776 млн рублей 📈Трудно переоценить роль QA функции в том, что рекордный по нагрузке день прошел без сучка и задоринки в техническом плане 💻

Ещё по теме «Карьера и маркетинг»

Карьера и маркетинг
Код и Капуста
Швейцарский стол#golang"Швейцарская таблица" - это продвинутый движок для хэш-таблиц, который сейчас используется в новых версиях Go. Идея в том, чтобы отойти от примитивного линейного поиска, когда при коллизии мы просто тыкаемся в следующую ячейку, и использовать хитрую последовательность шагов, которая не дает образовываться "пробкам" из занятых слотов. Но все соль в группровке. Вместо одного ключа в ячейке мы храним сразу по 8 штук, и для каждой группы добавляем специальные контрольные байты (младшие 7 битов хэша). Это позволяет за одну операцию сравнивать с хэшем все восемь элементов через битовые трюки с uint64, а это очень быстро. На практике хоть обычный подход и шустрее на малых объемах, swiss table раскрывается при высокой заполненности: если забить ее под завязку, она тормозит в разы меньше обычнойhttps://kodikapusta.ru/news/991-shveitsarskii-stolПоддержать проект на boosty: https://boosty.to/kodikapusta
Windows Club | КДЧ
PowerToys 0.99: управление окнами, мониторами и командами по-новомуMicrosoft выпустила обновление PowerToys 0.99 с тремя ключевыми новинками. Утилита Grab And Move позволяет перемещать и менять размер окон, удерживая ALT + ЛКМ/ПКМ в любом месте — особенно удобно для больших экранов или «потерявшихся» окон.Power Display добавляет иконку в трей, откуда можно регулировать яркость, контраст и цветовые профили подключённых мониторов без физических кнопок, а также переключаться между сохранёнными профилями — даже автоматически при смене темы Windows.Палитра команд стала мощнее: теперь она показывает текст и изображения, хранит историю калькулятора, поддерживает закрепление поверх других окон и компактный режим.Также обновились ZoomIt (скриншоты с прокруткой и OCR), Диспетчер клавиатуры (ручная настройка переназначений и отключение клавиш) и интерфейс всего набора — стал современнее и легче в ресурсах.#софт @pcTeapot
IPDC | Психология группы и коучинг
ЭМПАТИЯ БЕЗ СЕМЕЙНОСТИ: КАК СТРОИТЬ «ЗДОРОВУЮ» КОМАНДУПосле разговора [почему команды в бизнесе — это не семья], возникает закономерный вопрос: какой тогда должна быть рабочая среда?Отказ от «семейной» метафоры не означает, что в команде резко пропадёт эмпатия. Наоборот — уважение к людям, внимание к их состоянию и способность замечать напряжение остаются важной частью рабочей среды.На практике устойчивые команды держатся за счёт баланса структуры и человеческого отношения.▶️ Ясные роли вместо неявных ожиданий.Люди понимают, за что они отвечают, где заканчивается их зона ответственности и где начинается ответственность других.▶️ Прямая обратная связь вместо эмоциональных намёков.Проблемы обсуждаются тогда, когда они возникают, а не накапливаются из-за желания спасения ради хороших отношений.▶️ Уважение к границам.Работа не становится заменой личной жизни, а команда — единственной возможностью почувствовать себя нужным.▶️ Эмпатия без снятия ответственности.Можно признавать, что человеку сложно, и при этом продолжать обсуждать задачи, сроки и вклад в общий результат.Например, руководитель может сказать сотруднику: «Я вижу, что сейчас у тебя сложный период» — и одновременно обсудить, как это влияет на проект и какие решения здесь можно принять. Команда может поддержать коллегу, который оказался в трудной ситуации, но при этом не превращать это в бесконечный карнавал из перераспределения задач.Зрелая команда — это пространство, где можно оставаться внимательными друг к другу, не теряя ясности ролей, ответственности и профессиональной позиции. Согласны?#ipdc_пишет
Реальные задачи с собеседований | Java
ВТБ (2025)/** * Необходимо получить список пользователей, * которые состоят в группе, начинающейся на "Х" */class SomeConsumer { public List<User> consume(Stream<User> usersStream) { //TODO return usersStream. }}@Dataclass User { private String username; private Integer age; private List<Group> groups;}@Dataclass Group { private String name; private String description;}#vtbПрислать задачу | Подписаться
🌜Алина Семенова • @alinka_smv 🌛
Что делать, если хочу из ЗАКАДРА выйти в кадр и запустить себя?Знакомьтесь, это Полина)Она пришла со словами: «я устала ходить по продюсерам и непонятно что делать, вложила уже миллион, сделала сайты / геткурсы, но ничего из результата еще нет»📌ДАНО:- работа монтажером с топами больше (дохрена😂) лет, где-то около 14)))- не ведет блог много лет, выпала- нет упаковки- нет активов и охватаПошла 2 неделя работы, Полина у меня в личке, в сильной группеМы:- утвердили 5 реклам без бюджета 😁🙂‍↔️ - упаковали воронку в КОНТЕНТЕ- уже сделали 3 рекламы - вернули Полю в блог! 🥹🪽- разобрали, как продавать и что делать2 неделя - деньги в кассе и довольная Полина в кружочках) но главное - без шаблонов, все про нее, ее смыслы и подход 💛Контент решает все))Точные смыслы, позиционирование и сильное понимание людей Главное - идти сразу с мыслью долгосрока, что продвигать и развивать себя НУЖНО и ВАЖНО, параллельно совмещая с клиентами 🤝
Канал евангелиста | Никита Кравченко про платный трафик
Обновил сертификат эксперта Яндекс Рекламы 👨‍🎓 За время моего участия в программе с 2017 года, в нее уже пришло несколько специалистов, которые говорят, что «выросли на моих вебинарах». Они невероятно крутые в своих направлениях, это особенно приятно.
АСТРА АЗБУКА🌞
Закон ЖИЗНИ: То, в чём вы нуждаетесь в данный момент времени, обычно находится прямо у вас перед носом. ЗАПОМНИМ! Никогда нет ничего неправильного в любом выборе, который мы сделали!Мы никогда не влюбляемся в человека случайно!На глубинном, духовном уровне влечение и притяжение двух конкретных людей друг к другу заключается в том, что эти два человека должны узнать друг от друга что-то такое, чего больше никто не поможет им узнать!Мы всегда «находим» партнера, обладающего теми качествами, которые помогут полностью раскрыть наше истинное Я и достичь нашего наивысшего САМО-выРАЖ🌞ения☝️Наши партнёры отражают наши самые глубокие, по большей части бессознательные представления о нас самих.Наши отношения обеспечивают нам сильные зеркала. Но это не обычные зеркала☝️, в которых мы ясно видим самого себя. В зеркале отношений мы видим СВОЙ СОБСТВЕННЫЙ ОБРАЗ с противоположными качествами, качествами, отРАЖенными в 7 ДОМЕ Го-РА-скопа!Продолжение следует!
Ретрогейминг на балконе
На Реддите появились первые фотографии KTPocket R2. Счастливчик, получивший свой предзаказ, отмечает довольно высокое качество сборки (разве что шифты гремят при тряске) и ужасно работающий WiFi. Возможно, беспроводной сигнал глушит металлический корпус. Обещанной прошивки KOS ещё нет, устройство работает на совершенно голом Android.KTPocket - маленькая компания, буквально из одного человека. Первая портативка KT R1 не получила широкого распространения из-за высокой цены и низкого качества сборки. Она выпускалась в двух вариантах - крестовина сверху и стик сверху. Да-да, задолго до Retroid Pocket 6! Вторую модель можно предсказать на сайте, и вариативность просто зашкаливает:😒 Стик или крестовина сверху💀 Экран 4.5" 1620х1080 (3:2) или 4.2" 1280х960 (4:3)👹 Пластиковый, алюминиевый или магнезиевый корпус ◼️ 6/128, 8/256 или 12/512 Гб памяти😠 Только WiFi или WiFi+4G🐷 Пять вариантов расцветкиНекоторые ветки выбора взаимоисключающие (например, заявлено, что нет пластиковых корпусов для 3:2 экранов), но все равно, как-то многовато SKU для такой маленькой компании... Подозреваю, что многие опции так и останутся недоступнымиЦена R2, в зависимости от комплектации, составит 229-279 баксов.Да, чуть не забыл, KT R2 построена на чипе Mediatek D7300. Он обгоняет T820 на эпичные 15%. На мой вкус, при живой 476H, которая стоит почти в 2 раза дешевле, это лишает смысла 4:3 версию R2. А что до версии с экраном 3:2... Экран хорош, безусловно, но при такой цене он не перевешивает остального.#портативки #эмуляторы #ktpocket
HR трансформация
✖️Exit-интервью не работает. Вот почему.Ситуация: человек уходит и говорит «всё было хорошо, просто хочется развития».Вы киваете. Записываете. Вам все понятно. А через месяц уходит следующий по той же причине, которую первый не назвал. Люди лгут? Иногда да, но дело в том, что стандартные вопросы включают защитную реакцию и человек просто закрывается.Мы собрали 7 вопросов, которые эту реакцию ломают. На них невозможно ответить дежурной фразой.Сохраняйте чек-лист и используйте на следующем exit-интервью ✔️💭Расскажите в комментариях: вы вообще проводите exit-интервью или это формальность для галочки?HR трансформация в МАХ 🔔
Осознанные стратегии
Вот и группа МВА-97 РЭУ им. Г.В.Плеханова завершила обучение по дисциплинам «Тренды современного управления» и «Цифровая стратегическая трансформация бизнеса». Знакомлю. В группе большой процент первых руководителей и руководителей важнейших участков компаний Москвы.А наше внутреннее анкетирование культур компаний показало, что примерно в 65% из них бизнес-коллективы разделяют современные ценности по Веструму и принципы по Аджайл. Очень высокий, между прочим, результат! А вот как ни странно реально-главные проблемы бизнеса находятся не в трендах и скудости свежих бизнес-идей, в недоразвитости рутинных процессов. В частности, малы навык и мотивация к формированию механизмов оприходования идей совершенствования, идущих от персонала.С наскока не прокатывает (много не ясного, надо нудно разбираться, ворошить огород), а втягиваться не хочется (а давайте потом). Товарные запасы накапливаются, денег на пополнение нового не хватает, а потребители запрашивают и ждать не хотят; надо быстрее сбрасывать хоть какой-то неликвид! А если на складе 10 тыс. SCU, то что из них неликвид?Ух, вроде скинули! И пополнили! А через 10 дней всё тоже самое! И опять пожар!!! В чём здесь состоит главная методическая рекомендация по управлению? –в использовании КОНЦЕПЦИИ ДРОБНО-ПОРЦИОННЫХ ЗАДАНИЙ/ЗАДАЧ Любую такую (или аналогичную) проблему хочется решить за раз и на всегда!А надо то по частям. Но само трудное вычленить части и дать названия этим частям.В скраме - это релизы (инкременты продукта), а в бизнес-жизни – сплошные недоразумения! Применительно к «разросшимся товарным запасам», как пример возможного дробления (вычленения первой порционной задачи), может быть выполнена следующая операция. Разом с этим запасом на разобраться и его не рассосать. Но можно решить часть проблемы и станет чуть легче и посвободнее, и деньги, возвращаемые, с прибылью потекут!Поэтому первая дробно-порционная задача: давайте сформируем нормы (и процесс) ежемесячного пополнения запасов только по тем SCU, по которым за прошедший квартал ежемесячно проходило в среднем не менее 4-х продаж. Заодно определим какой процент номенклатуры, общей выручки и прибыли приходится на данную категорию! После того, как первая дробно-порционная задача встанет на автомат, перейдем ко второй дробно-порционной задаче: …. Таким образом:Вторым принципом в эффективном задачном управлении после принципа «ЗАДАЧНОЙ ПАРЫ» выступает принцип ДРОБНО-ПОРЦИОННЫХ ЗАДАНИЙ/ЗАДАЧ Хороших майских дней! ✨ Успешности во всем, всегда и везде!