• Unity3D ECS и Job System

    • Tutorial
    В Unity3D с выходом версии 2018 появилась возможность использовать нативную (для Unity) ECS систему, сдобренную многопоточностью в виде Job System. Материалов в интернете не особо много (пара проектов от самих Unity Technologies да пара обучающих видео на ютубе). Я попробовал осознать масштаб и удобность ECS, сделав небольшой проект не из кубов и кнопок. До этого у меня не было опыта проектирования ECS, так что два дня ушло на изучение материалов и перестроение мышления с ООП, день ушел на восхищение подходом, и еще один-два дня — на разработку проекта, борьбу с Unity, выдергивание волос и курение семплов. В статье содержится немного теории и небольшой пример проекта.

    Читать дальше →
  • Вы просто не умеете редактировать данные



      Конечно, вы постоянно что-то редактируете и прекрасно умеете это делать. А что насчёт данных в мобильном приложении, когда на экране нужно разместить большое количество элементов? Не забудьте, что сделать это нужно максимально аккуратно для пользователя, эффективность которого напрямую зависит от удобства ввода. Задача перестаёт быть тривиальной.


      Прочитав статью, вы узнаете, как:


      • организовать структуру данных, чтобы их было удобно редактировать
      • обеспечить «динамизм» вашему UI
      • определять, изменилось ли что-то
      • сохранять историю изменений
      • сделать многопользовательский режим за 5 минут

      В конце вас ждет готовый прототип с исходным кодом, демонстрирующим описанный подход.

      Уже хочу
    • Вредные советы: как превратить автоматизацию UI-тестов в кошмар

      • Перевод


      Привет! Меня зовут Артём, и я занимаюсь автоматизацией тестирования. Антипаттерны в разработке — довольно популярная тема. Но ведь в тестировании тоже есть свои "плохие советы", и они довольно забавно пересекаются с разработкой. Недавно мне на глаза попалась ироничная статья про антипаттерны в тестировании. Вашему вниманию!


      Мы стараемся как можно скорее доказать, что неправы, потому что только таким образом можем развиваться.
      Ричард Фейнман

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


      Ну, а если вы добрая душа и уважительно относитесь к чужому труду, то можете рассматривать эту статью как набор антипаттернов.


      Итак, поехали.

      Читать дальше →
    • Быстрая настройка Continuous Integration для .NET Core c помощью Travis — CI. Очень коротко

      • Tutorial

      kdpv


      По некоторым просьбам, публикую очень короткую выжимку моей предыдущей статьи о настройке Continuous Integration, но "как чеклист и для C#". Заодно добавил несколько альтернатив Travis-у.


      Чтение займет не больше 3 минут, кому интересно — прошу под кат.

      Читать дальше →
      • +10
      • 3,6k
      • 6
    • Антипаттерны тестирования ПО

      • Перевод

      Введение


      Есть несколько статей об антипаттернах разработки ПО. Но большинство из них говорят о деталях на уровне кода и фокусируются на конкретной технологии или языке программирования.

      В этой статье я хочу сделать шаг назад и перечислить высокоуровневые антипаттерны тестирования, общие для всех. Надеюсь, вы узнаете некоторые из них независимо от языка программирования.

      Терминология


      К сожалению, в тестировании пока не выработали общую терминологию. Если спросить сотню разработчиков, в чём разница между интеграционным, сквозным и компонентным тестом, то получите сто разных ответов. Для этой статьи ограничимся такой пирамидой тестов:


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

      Читать дальше →
    • Комиксы Даниэля Стори (часть 3)

      • Перевод
      Привет, Хабр! Сегодня мы хотим порадовать всех свежей подборкой юмористических IT-комиксов от Даниэля Стори (Daniel Stori). По ссылкам можно посмотреть первую и вторую части. Желаем приятного просмотра.

      Баги от Intel

      Читать дальше →
    • Hypothesis Краткое руководство

      • Tutorial

      Краткое руководство


      Эта статья является переводом страницы Hypothesis — Quick start guide взятой из официального руководства.


      *Прим. переводчика:*

      Я не смог найти какой то полезной информации на русском языке по использованию Гипотезы, кроме выступления 23 ноября 2017 г. Александра Шорина на "Moscow Python Meetup 50". Решил разобраться. В итоге что то перевел. Вот, решил поделиться.


      Этот документ должен рассказать вам обо всем, что вам нужно, чтобы начать работу с hypothesis.

      Читать дальше →
    • Процедурная генерация лабиринтов в Unity

      • Перевод
      • Tutorial
      image

      Примечание: этот туториал написан для Unity 2017.1.0 и предназначен для опытных пользователей. Подразумевается, что вы уже хорошо знакомы с программирование игр в Unity.

      Вы, как Unity-разработчик, наверно, имеете достаточный опыт в создании уровней вручную. Но хотели ли вы когда-нибудь генерировать уровни на лету? Процедурная генерация мешей для полов и стен, в отличие от простого расположения заранее созданных моделей, обеспечивает гораздо большую гибкость и реиграбельность игры.

      В этом туториале вы научитесь следующему:

      • Процедурно генерировать уровни на примере создания игры про бег в лабиринте.
      • Генерировать данные лабиринтов.
      • Использовать данные лабиринтов для построения меша.

      Приступаем к работе


      В большинстве алгоритмов (таких, например, как этот и этот) создаются «идеальные» плотные лабиринты, то есть такие, у которых есть только один верный путь и нет петель. Они похожи на лабиринты, публикуемые в газетных разделах «Головоломки».


      Однако в большинство игр приятнее играть, когда лабиринты неидеальны и в них есть петли. Они должны быть обширными и состоящими их открытых пространств, а не из узких извилистых коридоров. Это особенно справедливо для жанра rogue-like, в котором процедурные уровни являются не столько «лабиринтами», а скорее подземельями.


      В этом туториале мы реализуем один из простейших алгоритмов лабиринтов, описанный здесь. Я выбрал его для того, чтобы реализовать лабиринты в игре с минимальным количеством усилий. Такой простой подход хорошо работает в классических играх, перечисленных по ссылке, поэтому мы можем использовать его для создания лабиринтов в игре под названием Speedy Treasure Thief.
      Читать дальше →
      • +14
      • 6,9k
      • 4
    • Паттерны внедрения зависимостей. Часть 1

        Давайте разберемся с внедрением зависимостей в .Net, так как данная тема является одним из обязательных к изучению для написания качественного, гибкого к изменениям и тестируемого кода. Начнем мы с самих необходимых и базовых паттернов внедрения зависимостей — внедрение через конструктор и через свойство. Итак, поехали!
        Читать дальше →
      • Паттерны внедрения зависимостей. Часть 2

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