Ниже моя история прохождения тестирования ISQTB Foundation Level, переживания, пробы, ошибки и советы по эффективной подготовке, актуальные для 2021 года.
Пользователь
Введение в модули Angular — корневой модуль (Root Module)
Прим. перев.: для понимания данной статьи необходимо обладать начальными знаниями Angular: что такое компоненты, как создать простейшее SPA приложение и т.д. Если Вы не знакомы с данной темой, то рекомендую для начала ознакомиться с примером создания SPA приложения из оф. документации.
Вступление
@NgModule
— декоратор, добавленный в Angular 2. Из официальной документации следует, что @NgModule
определяет класс, как модуль Angular. Модули Angular помогают разбивать приложение на части (модули), которые взаимодействуют между собой и представляют в конечном итоге целостное приложение. Иными словами, модуль — это упаковка или инкапсуляция части функционала приложения. Модули можно проектировать с учетом многократного использования, т.е. не зависящие от конкретной реализации приложения.
Визуализация данных при помощи Angular и D3
Ниже я рассмотрю один хороший подход по использованию всей этой мощи. От симуляций D3 до SVG-инъекций и использования синтаксиса шаблонизатора.
Демо: положительные числа до 300 соединенные со своими делителями.
Архитектура приложения Angular. Используем NgModules
Прим. перев.: для понимания данной статьи необходимо обладать начальными знаниями Angular: что такое компоненты, как создать простейшее SPA приложение и т.д. Если Вы не знакомы с данной темой, то рекомендую для начала ознакомиться с примером создания SPA приложения из оф. документации.
Об NgModules можно прочитать здесь.
Один год назад я уже публиковал статью об NgModules, где рассматриваются технические тонкости, когда импортировать модули, пространство имен и т.д. Рекомендуется для ознакомления (прим. перев.: статья по содержанию аналогична той, на которую я ссылаюсь вначале).
Быстрый ENUM
tl;dr
github.com/QratorLabs/fastenum
pip install fast-enum
Зачем нужно перечисление (enum)
(если вы все знаете — опуститесь до секции «Перечисления в стандартной библиотеке»)
Представьте, что вам нужно описать набор всех возможных состояний сущностей в собственной модели базы данных. Скорее всего, вы возьмёте пачку констант, определенных прямо в пространстве имен модуля:
# /path/to/package/static.py:
INITIAL = 0
PROCESSING = 1
PROCESSED = 2
DECLINED = 3
RETURNED = 4
...
… или как статические атрибуты класса:
class MyModelStates:
INITIAL = 0
PROCESSING = 1
PROCESSED = 2
DECLINED = 3
RETURNED = 4
Такой подход поможет сослаться на эти состояния по мнемоническим именам, в то время как в вашем хранилище они будут представлять собой обычные целые числа. Таким образом вы одновременно избавляетесь от магических чисел, разбросанных по разным участкам кода, заодно делая его более читабельным и информативным.
Однако, и константа модуля, и класс со статическими атрибутами страдают от внутренней природы объектов Python: все они изменяемы (мутабельны). Можно случайно присвоить значение своей константе во время выполнения, а отладка и откат сломанных объектов — отдельное приключение. Так что вы можете захотеть сделать пачку констант неизменяемыми в том смысле, что количество объявленных констант и их значения, на которые они отображаются, не будут изменяться во время выполнения программы.
World of Tanks Blitz: Автоматизированное тестирование производительности
Производительность критически важна для любой игры. Наша команда World of Tanks Blitz из почти 200 человек, организованных в независимые кросс-дисциплинарные группы, выпускает примерно 10 обновлений в год. Чтобы поддерживать такой высокий темп (и такие масштабы) разработки, нам приходится автоматизировать многие процессы; тестирование производительности здесь не исключение.
В этом материале мы покажем, как использование CI-тестирования помогает нам обеспечивать игрокам оптимальный пользовательский опыт в World of Tanks Blitz. Мы затронем следующие темы:
1. обзор методологии автоматизированного тестирования производительности;
2. профилирование CPU;
3. роль Arm Mobile Studio и Arm Performance Advisor в нашем воркфлоу.
Умный дом с нуля своими руками или путешествие длиною в год
Данную статью пишу для думающих, стоит оно того или нет и начинающих построение своего умного дома, надеюсь она поможет сделать вам свой выбор. Для тех кто думает я не программист у меня ничего не получится, я тоже, хотя имею техническое (теплоэнергетик) образование, но никогда не работал в IT, не знаю не одного языка программирования. Дорогу осилит идущий. Начнем с рассуждений что такое умный дом, поверьте на слово он не решит все ваших бытовых и семейных проблем, но точно сделает жизнь немного комфортней. Что такое умный дом в моем представлении год назад: 1. Красивый планшет со схемой дома весящий на стане в прихожей с которого можно управлять всем в доме; 2. Управление всем чем можно голосом. Откровение через год планшет не нужен, так как бегать со второго этажа на первый что бы по управлять неудобно. Что бы хорошо работало голосовое управление, требуется установка умной колонки в каждую комнату, когда их две это одно. А когда значительно больше вопрос. Сейчас для меня умный дом это то, что работает само без моего участия, и не требует управления. Все о чем пойдет речь далее сделано мною лично, может можно сделать по другому, может проще и лучше. Но таков путь.
Принципы эффективного самообучения для желающих изучить машинное обучение
Подходы к обучению можно разделить на принципы "как учить" и непосредственно "что учить". Даже при наличии хорошего учебного плана ("что учить") можно получить малый выхлоп в конце, если учиться неэффективно. Поэтому сначала надо определить, какие принципы эффективны. Об этом данная статья.
Мне эти принципы помогли относительно быстро перейти из 1С в дата-сайентиста и за два года вырасти до уровня синьора, по уровню ЗП и автономности в решение задач (ссылка на прошлую статью об этом)
Конвертеры маршрутов в Django 2.0+ (path converters)
Маршрутизация в Django со второй версии фреймворка получила замечательный инструмент — конвертеры. С добавлением этого инструмента появилась возможность не только гибко настраивать параметры в маршрутах, но и разделять зоны ответственности компонентов.
Меня зовут Александр Иванов, я наставник в Яндекс.Практикуме на факультете бэкенд-разработки и ведущий разработчик в Лаборатории компьютерного моделирования. В этой статье я расскажу о конвертерах маршрутов в Django и покажу преимущества их использования.
Первое, с чего начну, — границы применимости:
- версия Django 2.0+;
- регистрация маршрутов должна выполняться с помощью
django.urls.path
.
Итак, когда к Django-серверу прилетает запрос, он сперва проходит через цепочку middleware, а затем в работу включается URLResolver (алгоритм). Задача последнего — найти в списке зарегистрированных маршрутов подходящий.
Для предметного разбора предлагаю рассмотреть следующую ситуацию: есть несколько эндпоинтов, которые должны формировать разные отчёты за определённую дату. Предположим, что эндпоинты выглядят так:
10 удивительно полезных базовых функций Python
Те, кто работает с Python, знают, что этот язык хорош благодаря своей обширной экосистеме. Можно даже сказать, что язык программирования не выделялся бы ничем особенным, если бы не его замечательные пакеты, которые добавляют новые функции к основным.
В качестве примера можно привести NumPy. Инструменты работы с матрицами хороши и в базовом Python, но использование NumPy улучшает все во много раз. Кроме того, у этого языка есть несколько крутых возможностей, которые делают его еще более функциональным. Используя эти возможности, вы можете уменьшить количество зависимостей, освободить время и упростить сам процесс разработки. Давайте посмотрим, что это за возможности.
Как я изучал структуры данных и алгоритмы для собеседования в FAANG
Эта история началась в 2015 году, когда стартап, к которому я присоединился как «сотрудник-основатель», закрылся через шесть месяцев после первого раунда инвестиций, и я искал новую работу. Первое моё собеседование было с Codecademy, где на этапе телефонного разговора меня заверили: «Не волнуйтесь, мы не задаём сумасшедших вопросов об алгоритмах или что-то в этом роде». И я им поверил…
Теория инвестиций для начинающих, часть 4
Наш цикл об инвестициях близится к концу. Даже если вы не читали предыдущие три части, я настоятельно рекомендую прочитать раздел о сбережениях на пенсию. Вопрос накоплений на старость рано или поздно встанет перед каждым независимо от того, интересуется он финансовой математикой или нет. Впрочем, не обязательно глубоко разбираться в теории финансов, чтобы откладывать 10% от дохода и покупать на них индексный фонд. Простое механическое правило поможет вам в старости не зависеть от государственной пенсии. Я буду считать свою миссию выполненной, если вы возьмёте это правило на вооружение.
Краткое содержание четвёртой части:
- как жить в мире, в котором среднестатистический инвестор паевого фонда получает доходность хуже рынка (купить рыночный портфель, то есть индекс);
- какие инструменты позволяют купить индексный портфель в один клик (биржевые фонды, они же ETF'ы);
- насколько эффективным может быть рынок, и как быстро новая информация отражается в цене акций (эффективность пугающая: рынок расследует космические катастрофы за несколько минут);
- если не покупать индекс, то можно ли заработать на фондовом рынке по-другому (можно, если вы помогаете остальным преодолевать рыночные трения);
- как автор инвестирует собственные деньги и копит на пенсию (всё скучно: индексные фонды).
Рендеринг WEB-страницы: что об этом должен знать front-end разработчик
Данное направление можно и нужно оптимизировать на этапе вёрстки/frontend-разработки, поскольку, очевидно, что разметка, стили и скрипты принимают в рендеринге непосредственное участие. Для этого соответствующие специалисты должны знать некоторые тонкости.
Работа с объектами в JavaScript: теория и практика
В статье НЕ будет ни слова про: эмуляцию традиционной класс-объектной парадигмы, синтаксический сахар, обертки и фреймворки.
Сложность материала будет нарастать от начала к концу статьи, так что для профи первые части могут показаться скучными и банальными, но дальше будет намного интереснее :)
Bash-скрипты: начало
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит
Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.
Как выучить английский самостоятельно, если нет времени
Привет, читатель! Предлагаю тебе хотя бы на 5 минут ни на что не отвлекаясь прочитать начало статьи дабы полностью ощутить главное правило, которое поможет тебе достичь любого уровня в английском.
Когда-то задумывался над тем почему у тебя не хватает времени и сил на то чтобы уделить время чему-то новому (изучению языка, как в нашем случае). Нужно постараться, чтобы разглядеть истинную причину за всеми этими фразами: "я слишком занят", "у меня полно других дел", "я и так не высыпаюсь, где мне найти еще время?". Приготовься, потому что как только ты усвоишь главное правило изучения чего угодно, ты не только найдешь время, но и начнешь правильно использовать те инструменты, о которых мы поговорим позже. Так что отнесись к этому со всей серьезностью.
Тестирование игрового движка Amazon Lumberyard. Подходы и инструменты
Lumberyard — это кроссплатформенный игровой движок, на котором можно бесплатно создавать игры для большинства современных платформ: PC, Mac, iOS/Android, все приставки, в том числе очки виртуальной реальности. Он также довольно глубоко интегрирован с Amazon Web Services и сервисом игровых трансляций Twitch.
Под катом — видео и расшифровка доклада Артема Несиоловского с конференции Heisenbug.
Создание динамических параметров в Jenkins job, или как сделать вашу задачу user-friendly
Доброго времени суток, Хабр!
Сегодня я хотел бы поделиться одним из способов, как с помощью Active Choices Plugin сделать задачу в Jenkins наиболее унифицированной и понятной для пользователя.
Введение
Такая аббревиатура как DevOps уже давно не является чем-то новым для IT сообщества. У многих людей фраза «сделать DevOps» ассоциируется с какой-то волшебной кнопкой, при нажатии на которую код приложения автоматически превращается в развернутое и протестированное приложение (все на самом деле сложнее, но мы абстрагируемся от всех процессов).
Итак, нам поступил заказ сделать такую волшебную кнопку, чтобы администраторы могли развертывать приложение по одному щелчку. Имеются различные виды реализации данной задачи: начиная от написания бота для какого-либо из мессенджеров и заканчивая разработкой отдельного приложения. Тем не менее цель у всего этого одна – сделать запуск сборки и развертывания приложения наиболее прозрачным и удобным.
В нашем случае мы будем использовать Jenkins.
Selenium для Python. Глава 1. Установка
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.
Предисловие от автора статьи
Selenium WebDriver – это программная библиотека для управления браузерами. WebDriver представляет собой драйверы для различных браузеров и клиентские библиотеки на разных языках программирования, предназначенные для управления этими драйверами.
Как создать современную CI/CD-цепочку с помощью бесплатных облачных сервисов
Решение поставленной перед разработчиком задачи бывает найти нелегко. Но как только оно получено, автору сразу хочется поделиться им со всем миром, ведь это так здорово — «отгружать» код. Неиспользуемая программа — это не что иное, как цифровой мусор. Чтобы не тратить время на никому не нужный софт, современные разработчики поставляют функциональность небольшими порциями, разбивая процесс на короткие итерации.
Такой способ создания программного обеспечения используется в процессах Непрерывной интеграции (Continuous Integration) и Непрерывного развертывания (Continuous Deployment), или CI/CD-цепочке. В этой статье мы пройдем по всем шагам настройки такой цепочки, используя для ее построения бесплатные облачные сервисы.
Информация
- В рейтинге
- Не участвует
- Откуда
- Минск, Минская обл., Беларусь
- Зарегистрирован
- Активность