Спасибо) Интересными техническими кейсами мы тоже постоянно делимся. Например, неделю назад выпустили рассказ наших frontend-разработчиков об использовании d3.js, а скоро выпустим материал по автоматизации тестирования. Тем не менее, мы стремимся не ограничиваться сугубо техническими кейсами, пробовать разные новые форматы, рассказывать, как у нас всё устроено
Да, вы правы. В целом все действительно так. А вот для стандартных коллекций разработчики Swift реализовали ковариантность, поскольку это сильно влияло на удобство их применения.
Спасибо. Несмотря на то что внешне Array и ArraySlice являются структурами и соблюдают семантику value types, их внутреннее устройство совсем не простое.
В частности, если упростить, Array хранит внутри ссылку на класс, который реализует его буфер данных. При создании ArraySlice тот тоже ссылается на этот буфер. Т.о. уничтожение массива не приводит к уничтожению данных. И копирования содержимого буфера тут тоже нет
Estimate помогает повысить точность и скорость оценки проектов за счет использования нормо-часов на типовые работы, а также механизмов, повышающих удобство работы с оценками. В нашей системе нам не требовалась информация об оценках других компаний. Однако, если у пользователя есть сомнения, он может установить в своей компании серверную версию Estimate, чтобы получить дополнительные командные возможности и работать в своей защищенной инфраструктуре.
Стоит уточнить, что Estimate представляет собой инструмент для оценки, а не базу готовых оценок. При этом в каждой компании оценка будет индивидуальна, поскольку зависит от множества факторов. Наш инструмент помогает этот процесс систематизировать и автоматизировать)
Работа архитектора на практике иногда может включать в себя несколько ролей, в том числе системного аналитика. Хороший анализ — неотъемлемая составляющая качественной архитектуры.
Да, в примере мы рассматриваем не разработку тестов, а непосредственно их проведение. Кстати, ниже мы отметили, что время на поддержку тестов тоже учитываем)
Спасибо!
1. Чаще всего unit-тесты пишут и сопровождают разработчики. Специалисты направления SDET не разрабатывают и не используют в процессах автоматизации тестирования unit-тесты, реализуя независимое тестирование.
2. Для запуска тестов мы используем и различные тестовые окружения-стенды, и докер-контейнеры. Кроссплатформенность можно реализовать через разведение по различным окружениям, а кроссбраузерность — на уровне кода автотестов с использованием параметризации, либо с использованием контейнеров.
3. В первую очередь выбираем самые часто используемые сценарии использования со стороны пользователей (например — авторизация, добавление товара в корзину), затем идут сложные (для воспроизведения) или длительные (по времени выполнения) сценарии, и так далее. Приоритеты выставляем по согласованию со специалистами QA, тимлидом, product owner.
Нет, это не было обязательным требованием. Наш разработчик сам захотел получить более глубокие знания по всему стеку проекта. Лично для него экзамены оказались наиболее удобной формой систематизации знаний и обучения, при этом наличие сертификатов стало дополнительным преимуществом и в коммуникациях с заказчиком.
В частности, если упростить, Array хранит внутри ссылку на класс, который реализует его буфер данных. При создании ArraySlice тот тоже ссылается на этот буфер. Т.о. уничтожение массива не приводит к уничтожению данных. И копирования содержимого буфера тут тоже нет
1. Чаще всего unit-тесты пишут и сопровождают разработчики. Специалисты направления SDET не разрабатывают и не используют в процессах автоматизации тестирования unit-тесты, реализуя независимое тестирование.
2. Для запуска тестов мы используем и различные тестовые окружения-стенды, и докер-контейнеры. Кроссплатформенность можно реализовать через разведение по различным окружениям, а кроссбраузерность — на уровне кода автотестов с использованием параметризации, либо с использованием контейнеров.
3. В первую очередь выбираем самые часто используемые сценарии использования со стороны пользователей (например — авторизация, добавление товара в корзину), затем идут сложные (для воспроизведения) или длительные (по времени выполнения) сценарии, и так далее. Приоритеты выставляем по согласованию со специалистами QA, тимлидом, product owner.