Как стать автором
Обновить
0
0

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

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

ISTQB Foundation 2021 — мой опыт

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

Ниже моя история прохождения тестирования ISQTB Foundation Level, переживания, пробы, ошибки и советы по эффективной подготовке, актуальные для 2021 года.

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

Введение в модули Angular — корневой модуль (Root Module)

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

Прим. перев.: для понимания данной статьи необходимо обладать начальными знаниями Angular: что такое компоненты, как создать простейшее SPA приложение и т.д. Если Вы не знакомы с данной темой, то рекомендую для начала ознакомиться с примером создания SPA приложения из оф. документации.


Вступление


@NgModuleдекоратор, добавленный в Angular 2. Из официальной документации следует, что @NgModule определяет класс, как модуль Angular. Модули Angular помогают разбивать приложение на части (модули), которые взаимодействуют между собой и представляют в конечном итоге целостное приложение. Иными словами, модуль — это упаковка или инкапсуляция части функционала приложения. Модули можно проектировать с учетом многократного использования, т.е. не зависящие от конкретной реализации приложения.

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

Визуализация данных при помощи Angular и D3

Время на прочтение11 мин
Количество просмотров23K
D3.js — это JavaScript библотека для манипулирования документами на основе входных данных. Angular — фреймворк, который может похвастаться высокой производительностью привязки данных.

Ниже я рассмотрю один хороший подход по использованию всей этой мощи. От симуляций D3 до SVG-инъекций и использования синтаксиса шаблонизатора.

image
Демо: положительные числа до 300 соединенные со своими делителями.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии3

Архитектура приложения Angular. Используем NgModules

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

Прим. перев.: для понимания данной статьи необходимо обладать начальными знаниями Angular: что такое компоненты, как создать простейшее SPA приложение и т.д. Если Вы не знакомы с данной темой, то рекомендую для начала ознакомиться с примером создания SPA приложения из оф. документации.


Об NgModules можно прочитать здесь.


image


Один год назад я уже публиковал статью об NgModules, где рассматриваются технические тонкости, когда импортировать модули, пространство имен и т.д. Рекомендуется для ознакомления (прим. перев.: статья по содержанию аналогична той, на которую я ссылаюсь вначале).

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

Быстрый ENUM

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

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: все они изменяемы (мутабельны). Можно случайно присвоить значение своей константе во время выполнения, а отладка и откат сломанных объектов — отдельное приключение. Так что вы можете захотеть сделать пачку констант неизменяемыми в том смысле, что количество объявленных констант и их значения, на которые они отображаются, не будут изменяться во время выполнения программы.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии23

World of Tanks Blitz: Автоматизированное тестирование производительности

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

Производительность критически важна для любой игры. Наша команда World of Tanks Blitz из почти 200 человек, организованных в независимые кросс-дисциплинарные группы, выпускает примерно 10 обновлений в год. Чтобы поддерживать такой высокий темп (и такие масштабы) разработки, нам приходится автоматизировать многие процессы; тестирование производительности здесь не исключение.

В этом материале мы покажем, как использование CI-тестирования помогает нам обеспечивать игрокам оптимальный пользовательский опыт в World of Tanks Blitz. Мы затронем следующие темы:

1. обзор методологии автоматизированного тестирования производительности;
2. профилирование CPU;
3. роль Arm Mobile Studio и Arm Performance Advisor в нашем воркфлоу.

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

Умный дом с нуля своими руками или путешествие длиною в год

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

Данную статью пишу для думающих, стоит оно того или нет и начинающих построение своего умного дома, надеюсь она поможет сделать вам свой выбор. Для тех кто думает я не программист у меня ничего не получится, я тоже, хотя имею техническое (теплоэнергетик) образование, но никогда не работал в IT, не знаю не одного языка программирования. Дорогу осилит идущий. Начнем с рассуждений что такое умный дом, поверьте на слово он не решит все ваших бытовых и семейных проблем, но точно сделает жизнь немного комфортней. Что такое умный дом в моем представлении год назад: 1. Красивый планшет со схемой дома весящий на стане в прихожей с которого можно управлять всем в доме; 2. Управление всем чем можно голосом. Откровение через год планшет не нужен, так как бегать со второго этажа на первый что бы по управлять неудобно. Что бы хорошо работало голосовое управление, требуется установка умной колонки в каждую комнату, когда их две это одно. А когда значительно больше вопрос. Сейчас для меня умный дом это то, что работает само без моего участия, и не требует управления. Все о чем пойдет речь далее сделано мною лично, может можно сделать по другому, может проще и лучше. Но таков путь.

Читать далее
Всего голосов 43: ↑36 и ↓7+29
Комментарии150

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

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

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

Мне эти принципы помогли относительно быстро перейти из 1С в дата-сайентиста и за два года вырасти до уровня синьора, по уровню ЗП и автономности в решение задач (ссылка на прошлую статью об этом)

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

Конвертеры маршрутов в Django 2.0+ (path converters)

Время на прочтение8 мин
Количество просмотров9.9K
Всем привет!

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

Меня зовут Александр Иванов, я наставник в Яндекс.Практикуме на факультете бэкенд-разработки и ведущий разработчик в Лаборатории компьютерного моделирования. В этой статье я расскажу о конвертерах маршрутов в Django и покажу преимущества их использования.



Первое, с чего начну, — границы применимости:

  1. версия Django 2.0+;
  2. регистрация маршрутов должна выполняться с помощью django.urls.path.

Итак, когда к Django-серверу прилетает запрос, он сперва проходит через цепочку middleware, а затем в работу включается URLResolver (алгоритм). Задача последнего — найти в списке зарегистрированных маршрутов подходящий.

Для предметного разбора предлагаю рассмотреть следующую ситуацию: есть несколько эндпоинтов, которые должны формировать разные отчёты за определённую дату. Предположим, что эндпоинты выглядят так:
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии14

10 удивительно полезных базовых функций Python

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

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

В качестве примера можно привести NumPy. Инструменты работы с матрицами хороши и в базовом Python, но использование NumPy улучшает все во много раз. Кроме того, у этого языка есть несколько крутых возможностей, которые делают его еще более функциональным. Используя эти возможности, вы можете уменьшить количество зависимостей, освободить время и упростить сам процесс разработки. Давайте посмотрим, что это за возможности.
Читать дальше →
Всего голосов 36: ↑24 и ↓12+12
Комментарии14

Как я изучал структуры данных и алгоритмы для собеседования в FAANG

Время на прочтение12 мин
Количество просмотров61K
Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber.

Эта история началась в 2015 году, когда стартап, к которому я присоединился как «сотрудник-основатель», закрылся через шесть месяцев после первого раунда инвестиций, и я искал новую работу. Первое моё собеседование было с  Codecademy, где на этапе телефонного разговора меня заверили: «Не волнуйтесь, мы не задаём сумасшедших вопросов об алгоритмах или что-то в этом роде». И я им поверил…


Приятного чтения!
Всего голосов 61: ↑55 и ↓6+49
Комментарии71

Теория инвестиций для начинающих, часть 4

Время на прочтение28 мин
Количество просмотров49K
Франс Франкен Младший. Смерть и скупец. XVII в. Галерея Wellcome, Лондон.

Наш цикл об инвестициях близится к концу. Даже если вы не читали предыдущие три части, я настоятельно рекомендую прочитать раздел о сбережениях на пенсию. Вопрос накоплений на старость рано или поздно встанет перед каждым независимо от того, интересуется он финансовой математикой или нет. Впрочем, не обязательно глубоко разбираться в теории финансов, чтобы откладывать 10% от дохода и покупать на них индексный фонд. Простое механическое правило поможет вам в старости не зависеть от государственной пенсии. Я буду считать свою миссию выполненной, если вы возьмёте это правило на вооружение.

Краткое содержание четвёртой части:
  • как жить в мире, в котором среднестатистический инвестор паевого фонда получает доходность хуже рынка (купить рыночный портфель, то есть индекс);
  • какие инструменты позволяют купить индексный портфель в один клик (биржевые фонды, они же ETF'ы);
  • насколько эффективным может быть рынок, и как быстро новая информация отражается в цене акций (эффективность пугающая: рынок расследует космические катастрофы за несколько минут);
  • если не покупать индекс, то можно ли заработать на фондовом рынке по-другому (можно, если вы помогаете остальным преодолевать рыночные трения);
  • как автор инвестирует собственные деньги и копит на пенсию (всё скучно: индексные фонды).
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии64

Рендеринг WEB-страницы: что об этом должен знать front-end разработчик

Время на прочтение6 мин
Количество просмотров227K
Приветствую вас, уважаемые хабравчане! Сегодня я бы хотел осветить вопрос рендеринга в веб-разработке. Конечно, на эту тему уже написано много статей, но, как мне показалась, вся информация довольно разрознена и отрывочна. По крайней мере, чтобы собрать всю картину в своей голове и осмыслить её, мне пришлось проанализировать немало информации (в основном — англоязычной). Именно поэтому я решил формализовать свои знания в статью, и поделиться результатом с сообществом Хабра. Думаю, информация будет полезна как начинающим веб-разработчикам, так и более опытным, чтобы освежить и структурировать свои знания.

Данное направление можно и нужно оптимизировать на этапе вёрстки/frontend-разработки, поскольку, очевидно, что разметка, стили и скрипты принимают в рендеринге непосредственное участие. Для этого соответствующие специалисты должны знать некоторые тонкости.
Читать дальше →
Всего голосов 121: ↑110 и ↓11+99
Комментарии42

Работа с объектами в JavaScript: теория и практика

Время на прочтение15 мин
Количество просмотров218K
В этой статье я хочу по возможности полно и последовательно рассказать о том, что такое объект в JavaScript, каковы его возможности, какие взаимоотношения могут строиться между объектами и какие способы «родного» наследования из этого вытекают, как это все влияет на производительность и что вообще со всем этим делать :)

В статье НЕ будет ни слова про: эмуляцию традиционной класс-объектной парадигмы, синтаксический сахар, обертки и фреймворки.

Сложность материала будет нарастать от начала к концу статьи, так что для профи первые части могут показаться скучными и банальными, но дальше будет намного интереснее :)

если не боимся многабуков, то читаем дальше
Всего голосов 104: ↑103 и ↓1+102
Комментарии216

Bash-скрипты: начало

Время на прочтение11 мин
Количество просмотров1.7M
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.


Читать дальше →
Всего голосов 69: ↑61 и ↓8+53
Комментарии123

Как выучить английский самостоятельно, если нет времени

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

Привет, читатель! Предлагаю тебе хотя бы на 5 минут ни на что не отвлекаясь прочитать начало статьи дабы полностью ощутить главное правило, которое поможет тебе достичь любого уровня в английском.



Когда-то задумывался над тем почему у тебя не хватает времени и сил на то чтобы уделить время чему-то новому (изучению языка, как в нашем случае). Нужно постараться, чтобы разглядеть истинную причину за всеми этими фразами: "я слишком занят", "у меня полно других дел", "я и так не высыпаюсь, где мне найти еще время?". Приготовься, потому что как только ты усвоишь главное правило изучения чего угодно, ты не только найдешь время, но и начнешь правильно использовать те инструменты, о которых мы поговорим позже. Так что отнесись к этому со всей серьезностью.

Читать дальше →
Всего голосов 32: ↑23 и ↓9+14
Комментарии42

Тестирование игрового движка Amazon Lumberyard. Подходы и инструменты

Время на прочтение21 мин
Количество просмотров10K
Amazon. Игры. Звучит необычно? Как тестировать продукт и для разработчиков, и для геймеров? Под катом — тестирование игрового движка Amazon Lumberyard, подходы как в ручном тестировании, так и в автоматизации, а также используемые на проекте инструменты.



Lumberyard — это кроссплатформенный игровой движок, на котором можно бесплатно создавать игры для большинства современных платформ: PC, Mac, iOS/Android, все приставки, в том числе очки виртуальной реальности. Он также довольно глубоко интегрирован с Amazon Web Services и сервисом игровых трансляций Twitch.

Под катом — видео и расшифровка доклада Артема Несиоловского с конференции Heisenbug.
Всего голосов 19: ↑19 и ↓0+19
Комментарии5

Создание динамических параметров в Jenkins job, или как сделать вашу задачу user-friendly

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

Доброго времени суток, Хабр!


Сегодня я хотел бы поделиться одним из способов, как с помощью Active Choices Plugin сделать задачу в Jenkins наиболее унифицированной и понятной для пользователя.


Введение


Такая аббревиатура как DevOps уже давно не является чем-то новым для IT сообщества. У многих людей фраза «сделать DevOps» ассоциируется с какой-то волшебной кнопкой, при нажатии на которую код приложения автоматически превращается в развернутое и протестированное приложение (все на самом деле сложнее, но мы абстрагируемся от всех процессов).


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


В нашем случае мы будем использовать Jenkins.

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

Selenium для Python. Глава 1. Установка

Время на прочтение5 мин
Количество просмотров471K
Представляю перевод неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Предисловие от автора статьи


Selenium WebDriver – это программная библиотека для управления браузерами. WebDriver представляет собой драйверы для различных браузеров и клиентские библиотеки на разных языках программирования, предназначенные для управления этими драйверами.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии12

Как создать современную CI/CD-цепочку с помощью бесплатных облачных сервисов

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



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


Такой способ создания программного обеспечения используется в процессах Непрерывной интеграции (Continuous Integration) и Непрерывного развертывания (Continuous Deployment), или CI/CD-цепочке. В этой статье мы пройдем по всем шагам настройки такой цепочки, используя для ее построения бесплатные облачные сервисы.

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии18

Информация

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