Занимаясь разработкой мобильных приложений под операционную систему Android уже более 7 лет, я успел поработать в разных частях мира в самых разных компаниях, от небольших стартапов до технологических гигантов и накопил некоторый практический опыт в области автоматизированного тестирования мобильных приложений, которым хотел бы поделиться в цикле статей.
Manual tester
Про тестирование мобильных приложений. Часть 2. Unit tests
В предыдущей статье был приведен краткий обзор основных понятий и тем, о которых речь пойдет дальше. Предлагаю начать с модульных тестов, более известных, как юнит тесты.
Про тестирование мобильных приложений. Часть 3. Cквозное (UI, e2e) тестирование
Ранее мы с вами познакомились с пирамидой тестирования и ее основанием. В данной же статье предлагаю перейти к вершине.
Какие бывают языки программирования?
Студенты периодически спрашивали меня какой язык программирования учить чтобы получить хорошую работу и зарплату. Конечно, я не мог сказать учите этот язык, а этот не учите и будет вам счастье. Но зато мог дать информацию о языках программирования чтобы этот выбор был легче. Проклассифицируем языки программирования с семи сторон: Модные и не модные • Компилируемые и интерпретируемые • Универсальные и специализированные • Алгоритмические и языки описания данных • Низкоуровневые и высокоуровневые • Объектно-ориентированные и языки структурного программирования • Сопутствующие Фреймворки, Библиотеки и Технологии.
Основные принципы маскирования в CSS
В мире дизайна маскирование является популярной техникой реализации уникальных эффектов. Будучи дизайнером, я сам использовал эту технику много раз, но не очень часто в веб-среде. Думаю, что от её применения на сайтах меня удерживала недостаточная поддержка браузерами. Полноценно этот функционал поддерживается в Safari и Firefox, а вот в браузерах на движке Blink (Chrome и Edge) — лишь частично.
Радует то, что тема CSS маскирования будет частью Interop 2023, а значит, вскоре можно ожидать кросс-браузерную поддержку этой возможности (Вау!).
В текущей статье я проговорю, что вообще такое CSS маскирование, объясню, как оно работает, а также приведу некоторые примеры использования.
Поехали!
Связь с МКС, предпринимательство и музыка: странные и интересные варианты применения ретро-консолей и компьютеров
На современной ретро-сцене почти не осталось места конкуренции. Некогда непримиримые враги, ZX Spectrum и Commodore 64 стали едва ли не восьмибитными братьями. Фанаты Super Nintendo не прочь написать что-нибудь эдакое под Sega Mega Drive. Мир стремительно меняется, и кажется, что технологии прошлого остаются интересны лишь небольшому кругу энтузиастов.
Увлечение ретро-техникой – это отличный способ расширить кругозор и выйти за рамки традиционных инструментов программирования. Освоить, например, язык ассемблера и приемы оптимизации кода.
Под катом мы собрали несколько примечательных кейсов «применения» ретро-компьютеров и консолей в наши дни. С одной стороны, это попытки «натянуть сову на глобус» и заставить ретро-технику выполнять вполне современные задачи. С другой – это способ по-новому взглянуть на возможности классических систем и попробовать применить их в наши дни.
Генерация тестов на основе трассировки для высоконагруженных систем
Управлять можно только тем, что получается измерить и за чем можно наблюдать. Большой шаг в направлении развития всестороннего мониторинга систем произошел вместе с утверждением единого стандарта OpenTelemetry, который объединил единым протоколом отправку операционных метрик, протоколов работы сервисов, а также возможность распределенной трассировки сервисов. Но недостаточно только собрать данные, нужно сделать их обобщение и автоматизировать проверку отклонение от ранее полученных трассировок для обнаружения аномалий. В этом может помочь инструмент Tracetest. В этой статье мы разберемся, как его можно использовать для диагностики отклонений в высоконагруженной системе.
Этот смартфон должны были выдавать выпускникам курсов JavaScript — смотрим на Alcatel Fire E на базе FireFox OS
Веб-технологии давно и прочно вошли в нашу жизнь. Мы каждый день пользуемся уже ставшими привычными нам сервисами вроде социальных сетей или новостных сайтов. Браузер стал неотъемлемой частью современного смартфона, а некоторые приложения и вовсе полностью «переехали» в браузер, получив название PWA, хотя подавляющее большинство приложений всё ещё остаются нативными. Ребята из Mozilla как-то раз подумали: «отдельные PWA приложения это, конечно, круто, но почему бы не сделать мобильную систему, которая построена практически полностью на веб-технологиях?». И таки умудрились сделать, дав ей имя — FireFox OS(B2G), предназначенная для бюджетных смартфонов! Сегодня мы с вами: узнаем, что же это за ОС такая, что у неё под капотом и проверим, на что она способна в 2023 году. Встречаем — Alcatel OneTouch Fire E!
Почему разработчикам приходится проходить через этот унизительный процесс собеседований
Собеседование на позицию мидла в 2023 году, фото в цвете
Нет сейчас более сложной в трудоустройстве сферы, чем IT. И речь идет не о количестве кандидатов на одно место, хотя и здесь не все гладко, а, скорее, о том, как сам по себе выстроен процесс наёма. С каждым годом собеседование на любую девелоперскую позицию все больше и больше походит на попытку просочиться сквозь мясорубку, а в конце остаться одним куском.
К сожалению, мало кто задумывается, как мы к этому пришли и чем это грозит индустрии, но конкретно в IT появляется все больше и больше порочных практик в плане собеседований. Так, в русскоязычном комьюнити в том же твиттере на голубом глазу уже полгода обсуждают, стоит ли «приписывать» себе пару лет опыта в резюме, чтобы получить лучший оффер. Следом за этими же высказываниями появляется вполне обоснованный твит о том, что бесплатные тестовые, да и вообще практические тестовые задания — неважно, на двадцать минут или на пять дней — порочная практика и браться за них не стоит. И все это щедро присыпано всевозможными менторами, которые научат правильно «накидывать» себе опыта коммерческой разработки, рассуждениями о том, что по собесам надо ходить, как на вторую работу, и вообще, что HR-ам так и надо.
Проблема верификации опыта
Я сам не люблю процесс наёма и собеседования. Не люблю неквалифицированных IT-рекрутеров, их всевозможные списки, отсутствие обратной связи или, наоборот, чрезмерную навязчивость вкупе с полным непониманием предмета разговора. Но что если копнуть чуть глубже и подумать: а не виноваты ли мы сами в том хаосе, который сейчас творится на рынке труда? И что намного важнее: как это можно исправить?
Fx — мощная JavaScript альтернатива jq для JSON
JSON стал де-факто форматом обмена данными в современном мире. Он широко используется в различных приложениях, таких как API, конфигурационные файлы и хранилища данных. При работе с JSON нам часто требуется манипулировать, фильтровать или преобразовывать данные в соответствии с нашими требованиями. JQ - это популярный процессор JSON с командной строкой, который существует уже довольно давно. Однако у него есть свои ограничения - вы можете обнаружить, что постоянно гуглите его синтаксис, боретесь с отсутствием поддержки BigInt и имеете дело с отсутствующими функциями, такими как комментарии JSON и запятые.
Появился FX - неинтерактивная, основанная на JavaScript альтернатива JQ, которая обещает стать переломным моментом. В этой статье блога вы окунетесь в мир FX и узнаете, как его можно использовать для упрощения задач обработки JSON.
Будущее ретро: Samsung Galaxy Fold
Я пишу этот текст на устройстве, создавать которое явно никто не просил. Складные смартфоны — это такая совершенно необязательная штука, возникшая потому, что мы пресытились смартфонами обычными и уже не покупаем их теми же темпами, что раньше. В рубрике «Будущее ретро» я рассказываю об опыте владения именно такими устройствами: странными, необычными, спорными. Я коллекционирую легендарные артефакты прошлого, а заодно пытаюсь предсказать, какие актуальные гаджеты в будущем смогут претендовать на такое же почетное звание.
Samsung Galaxy Fold однозначно подходит под эти расплывчатые критерии. Абсолютно необязательный, местами неудобный, и при этом уникальный аппарат, то ли предвестник новой волны потребительской электроники, то ли тупиковая ветвь прогресса. Через десять-двадцать лет их в живом состоянии будет очень мало: помимо прочих сомнительных свойств, они еще и ненадежные. В начале годая стал обладателем гнутого Samsung четвертого поколения. И наверное не стал бы писать эту статью, если бы не один солидный аргумент, обеспечивающий связь времен и поколений. Это пожалуй лучший смартфон для эмуляции старых игр.
Сравнение SQL- и NoSQL-баз данных
SQL и NoSQL — две популярные модели баз данных, которые используют для решения различных задач. Чтобы понять, какая из них подойдёт в вашем случае, необходимо разобраться в их различиях, преимуществах и недостатках.
В этой статье я рассмотрю основные характеристики SQL- и NoSQL-баз данных и сравню их, чтобы помочь выбрать лучший вариант для вашего проекта.
Как мой менеджер потратил миллион долларов на сервер бэкапов, который я ни разу не использовал
Индустрия видеоигр — странное место: она одновременно может отставать от остальной технологической отрасли на полдесятка лет в одних областях, и на годы опережать её в других.
В эту отрасль меня привлекла не возможность работы над развлекательными продуктами или создания продуктов, которые мне понравится использовать (не могу назвать себя геймером): я люблю решать задачи, и особенно задачи, которые нелегко решать.
Когда я пришёл в Ubisoft в 2014 году, меня назначили в отдел программирования онлайна на должность руководителя Ops. Это было ужасно, потому что все работали под Windows.
Kubernetes ещё не было на горизонте, да если бы он и был, сам Docker оставался крайне сырым и пока не мог выполнять нативные двоичные файлы Windows.
Вместо него мы использовали собственную реализацию распределённых систем.
Ultron — самый простой фреймворк для разработки UI тестов Android
Ultron — самый простой фреймворк для разработки UI тестов Android.
В данной статье я познакомлю вас с малоизвестным фреймворком, который позволит вам облегчить android ui тестирование.
Пакетное тестирование скоринговых моделей
Всем привет! Сегодня мы, риск-технологи банка «Открытие» Илья Мясников (@berrim0r) и Гевонд Асадян (@Gevond), расскажем, каким образом осуществляем тестирование моделей оценки кредитного риска перед выводом в прод. В прошлой статье про дублирующий проверочный скрипт мы рассказали о том, как мониторим корректность выведенной в прод модели. Но проверок же много не бывает! Перед выводом модели в прод нужно удостовериться, что выводимый функционал работает корректно.
Как проверить корректность расчета модели? Ну да, верно – скормить ей входные данные со строго определенными параметрами. Звучит не очень сложно, правда? А если факторов более полутора сотен? И часть из них оказывают влияние только при определенном взаимодействии с другими факторами? Такое количество вариантов входных данных вручную придется готовить не один день.
Поэтому мы придумали как упростить для себя подобное тестирование. Для этого решили разработать сервис, который позволяет генерировать все возможные комбинации входных данных для модели на основании одного или нескольких заданных входных векторов.
О, «Герои»? Дайте две! Как я писал очередной браузерный клон легендарной стратегии, в который уже почти* можно играть
TL;DR для тех, кому некогда читать™:
- Три года реального времени, ~340 дней разработки, 2 423 часа.
- 106 849 строк кода (62% JavaScript, 32% PHP, 6% CSS).
- Собственный парсер формата .h3m (h3m2json.php).
- Неограниченные возможности для создания модификаций.
- Мультиплеер на WebSockets без блокировок — не нужно ждать, пока другой игрок закончит ход или битву.
- Любое разрешение экрана и платформа — хоть 4K, хоть телефоны (но пока нет вёрстки).
- Неограниченное число участников и размер поля в битве (вдохновлялся Age of Wonders).
- Произвольное число уровней на карте приключений.
- Все исходники под Unlicense на GitHub.
- Заходите на herowo.game для игры (вот Tutorial).
- Багов — полно. Обязательно пишите о них на форум, в GitHub или в Discord. Как ещё помочь?
Кому нужна Cassandra? Пара слов о преимуществах колоночных баз данных
Колоночная база данных — это такой тип базы данных, в которой данные группируются (хранятся и извлекаются) не по строкам, а по столбцам.
В традиционной строчной базе данных данные хранятся и извлекаются по строкам, что означает, что все столбцы строки должны храниться вместе. Однако в колоночной базе данных, ориентированной на столбцы, каждый столбец таблицы хранится отдельно, что позволяет более эффективно хранить и извлекать данные.
Одни из самых популярных колоночных баз данных – Apache Cassandra и Apache HBase.
Задача со звёздочкой: как мы автоматизировали тестирование плагина IDE
Привет, Хабр! На связи Марк Ерофеев и Никита Потапов из команды Platform V UI Workflow СберТеха. Мы затронем одну из наименее раскрытых тем — тестировании плагинов IDE. Если вы хотя бы раз пытались протестировать плагин, то знаете, что примеров с хорошим покрытием тестами днём с огнём не найти. Плагины либо не тестируются вовсе, либо логика их настолько проста, что хватает элементарной проверки функциональности.
Мы расскажем, как автоматизировали тестирование плагина для IntelliJ IDEA. Статья будет полезна всем, кто ищет информацию на эту специфическую тему или вообще интересуется нетривиальными задачами в области тестирования.
Дао Вебсервиса. (Или да хватит же изобретать велосипеды!)
Увы, реальность за хабракатом меня сильно разочаровала — я увидел очередной велосипед, да еще и с квадратными колесами. (Коллеги, ничего личного, только техническое обсуждение.) Правда, авторы честно сказали, что увидели на нескольких сайтах модное слово REST и решили сделать по нему. Только вот поняли они этот «РЭСТ» по-своему, примерно как Дед Щукарь читал и понимал толковый словарь.
В этом топике я призываю по-настоящему покончить с велосипедами в API сайтов. Ведь получается какой анекдот: АПИ разрабатывается для упрощения доступа к сайту и легкости подключения внешних систем, а получается такой, что с ним еще сложнее, чем без него :)
Чуть ниже под катом я подпишу смертный приговор всем велосипедам в универсальных API. Чтобы не быть голословным, я все проиллюстрирую примерами.
Но должен предупредить сразу — после прочтения статьи вы не сможете без рвотного рефлекса смотреть на очередной велосипед Васи Пупкина под гордым названием «универсальное API сайта».
В повествовании будут рассмотрены следующие вопросы:
- Базовые технологии: XML-RPC, REST, SOAP и краткое сравнение
- Дао вебсервиса
- Просветленные API
- Как отличить сайтовое API от говна
- Выводы
REST vs SOAP. Часть 2. Как проще и эффективнее организовать общение платформ?
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity