Search
Write a publication
Pull to refresh
4
0
Send message

Чек-лист тестирования мобильных приложений

Reading time4 min
Views238K
У многих начинающих специалистов в области тестирования возникает вопрос: «А как же протестировать мобильное приложение. С чего начать, какие проверки стоит осуществить?» Данный вопрос актуален, когда они приходят в компанию, где нет документации на проекте, либо это только что появившийся стартап. Чтобы ответить на эти вопросы была подготовлена универсальная шпаргалка, которую можно использовать при тестировании практически любого приложения.


Читать дальше →

10 полезных книг для менеджера и лидера в IT секторе

Reading time5 min
Views34K


Я работаю много лет в индустрии разработки программного обеспечения и последние несколько лет я активно вовлечен в консалтинг и pre-sales фазы. И я заметил, чтобы быть успешным лидером как для менеджера проектов, представляющего бизнес-сторону, так и для архитектора – технического представителя необходимо совмещать в себе технические и лидерские качества.

Для меня наиболее полезным и эффективным источником обучения являются книги. И я бы хотел поделиться с вами топ 10, по моему мнению, книг полезных для начинающих и не только лидеров в разработке программного обеспечения. Эти книги помогут развить и улучшить лидерские качества необходимые в данной индустрии. Я не буду перечислять знаменитые менеджерские бестселлеры такие как Laws of Leadership или Good to Great. Я порекомендую более целевые книги, которые будут, несомненно, полезны именно лидерам в индустрии разработки программного обеспечения.

Название всех книг будут указаны на языке оригинала, но вы без труда сможете найти многие из них и в переводе.
Читать дальше →

Когда за повышением зарплаты каждый месяц ходит робот

Reading time11 min
Views40K


Обычно повышение зарплаты выглядит следующим образом. Способ №1, гуманитарный: сотрудник через год работы задумывается, что что-то пошло не так, и пора просить повышения. Дожидается своего локального максимума усилий, и на этой волне идёт к руководителю просить больше денег. С точки зрения теории игр это выглядит как «ну, я попросил, вдруг прокатит». Никаких доводов повышать оклад у руководителя нет.

Дальше сотрудник может поднять ставки. «Повышайте, а то уволюсь». В этой ситуации в проигрыше оказываются оба — руководитель теряет на времени обучении нового сотрудника и стоимости подбора. Сотрудник теряет на том, что может неожиданно уволиться.

Разработчики традиционно пользуются способом №2: сначала проходят где-то несколько собеседований, собирают офферы и приходят с ними к руководителю. «Смотри, вот тут мне предлагают на 20% больше, но мне у нас нравится, повышай на 15%, а то я перейду». Это уже предмет обсуждения. В банальном случае проще повысить и сохранить ценного сотрудника, но это обеспечит проигрыши в связанных играх. То есть создаст прецедент. Поэтому решение принимается (в упрощённой модели) с некоторой долей рандома.

У нас у многих математика в анамнезе. Рассматривая эту игру дальше, можно сделать простой вывод, что такой диалог для сотрудника всегда стрессовый, и он случается в момент после кризисного. То есть сначала человек беспокоится, потом делает потенциально невыгодные действия (проходит собеседования в других местах), потом приходит. Части надо повышать, части не надо. Следующий вопрос: можно ли найти функцию, которая обеспечит справедливую оценку? Будет ли эта функция снимать вот эти стрессовые ситуации?

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

Читать дальше →

Телефон шпионил за мной, поэтому я нашёл тех, кто использует данные слежения

Reading time12 min
Views120K

СЛЕЖКА: Американская компания имеет информацию о моём местоположении.

В моём телефоне 160 приложений. Я не знаю, что они делают, но решил это выяснить.

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

Я знаю, что есть те, кто покупает и продаёт эту информацию. Как они отслеживают нас, и что хотят делать с нашими данными?

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

Или почти повсюду. Я оставил его дома, когда проходил тест на COVID-19 в апреле.
Читать дальше →

Связываем две мобильные платформы в едином коде на Unity

Reading time7 min
Views5.5K


Для Unity-разработчиков уже привычно управление игровыми потоками и сервисами на таких платформах, как iOS и Android. Однако после того, как в экосистеме появились мобильные сервисы Huawei, теперь нужно поддерживать и еще одну версию игры, если вы хотите охватить игроков, у которых есть девайсы этой фирмы.

Эта статья — как раз о том, как минимальными усилиями управлять зависимостями между несколькими мобильными сервисами Android и Huawei в одной кодовой базе.

Читать дальше →

Реализация маневрирования юнитов в играх (избегание столкновений)

Reading time6 min
Views16K
Задача движения юнитов в играх является одной из ключевых задач, стоящих перед разработчиками игр. От того, как двигаются игровые юниты, во многом зависит восприятие всего геймплея в целом.

Традиционно считается, что достаточно реализовать алгоритм поиска пути и дальше всё будет работать само собой.

На практике же мы имеем совсем другую ситуацию.

Алгоритмы поиска пути разобраны досконально.

Нужен поиск пути с весами? A*. Нужен поиск для большого количества юнитов? Flow Field или кластеризация.

По большому счету по поиску пути не осталось не разобранных вопросов.

И вот, поиск пути реализован и довольный игродел запускает свою игру… И видит, что болванчики полностью оправдывают своё название. Они конечно находят путь и едут туда, куда им сказали. Но при этом спотыкаются о препятствия… Толкаются друг с другом или проезжают насквозь… Упираются друг в друга при встречном движении…

Эти проблемы и будем сегодня решать.



Disclaimer
Данная статья не претендует на исчерпывающее решение обозначенной проблемы.
Я лишь рассказываю о том, как конкретно мне видится решение, над которым я работал. Это решение в оттюнингованном виде попало в один из зарелизенных в этом году РТС проектов, но осталось ли там на данный момент я не знаю. Комментарии и дополнения приветствуются.

Динамический лут в играх: что стоит учитывать

Reading time9 min
Views18K
Destiny 2 - 'Rally the Troops'

Люди всех возрастов любят азарт, будь то Kinder Surprise, блэкджек или компьютерные игры. Представьте, у вас в игре есть две коробки: на одной написано "Вы получите 100 монет", а на второй — “Вы получите 50-1000 монет”. Сразу понятно, вокруг какой из коробок будет больше ажиотажа. А если при этом коробки покупаются за реальные деньги — мы получим политику и головную боль для разработчиков.

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

Как считать lifetime value: обзор методов

Reading time7 min
Views89K


Вопрос расчёта lifetime value (он же LTV, customer lifetime value, CLV) рано или поздно встаёт перед разработчиками мобильных (впрочем, и не только) приложений. Методов расчёта придумано множество, и по поводу того, как считать LTV, существует сколько людей, столько же и мнений. В данном материале я решил описать наиболее распространённые методы, обозначить их плюсы и минусы. Данные методы подходят прежде всего для описания f2p-модели.
Читать дальше →

Как я победил прокрастинацию, узнал свои истинные желания, поставил четкие цели и достиг их

Reading time12 min
Views80K

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

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

Это дало мне сильнейший толчок и изменило мою жизнь до неузнаваемости. За прошедшие пять лет я попутешествовал по куче стран, полтора года прожил в солнечной Черногории, переехал в Израиль, несколько раз менял работу на компании с гораздо лучшими условиями, в последний раз устроившись на работу, на которой мой доход в более чем 15 раз превышает мой доход пять лет назад, и на которой я делаю продукты для всемирно известных корпораций и организаций, создал три более-менее успешных open-source проекта на Github и написал множество статей на Хабрахабр, некоторые из которых имели ошеломительный успех у читателей.

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

Для кого-то этот пост может показаться сборником давно знакомых инструментов, а кто-то найдет здесь кладезь полезной информации. Ну что ж, поехали...

Читать далее

Представляем Owlcat Mono Profiler для Unity

Reading time9 min
Views3K

Добрый день. Я работаю программистом в компании Owlcat Games, которая выпустила одну из самых успешных российских компьютерных RPG Pathfinder: Kingmaker и сейчас работает над её продолжением, Pathfinder: Wrath of the Righteous. В ходе портирование первой игры нашей студии на консоли, мы столкнулись с проблемой поиска утечек памяти. Штатные инструменты движка Unity и целевых платформ оказались по разным причинам не слишком удобны для борьбы с утечками, и поэтому мы решили написать свой инструмент, о котором я и расскажу ниже.

Owlcat Mono Profiler предназначен для исследования использования памяти Mono в играх на движке Unity. Он доступен всем желающим в виде собранных бинарных файлов (под Windows) и исходного кода на Github. В отличие от встроенного профайлера Unity, а также пакета Memory Profiler, он не требует снятия снимков состояния памяти, а производит постоянный мониторинг состояния Mono-кучи, что позволяет выявлять не только утечки, но и пики аллокаций, и избыточные повторяющиеся аллокации. По сравнению с платформо-специфичными инструментами, такими как Memory Analyzer для PS4, он корректно отображает события, происходящие с памятью, управляемой сборщиком мусора.

На этом покончим с формальностями, и перейдём к cool story.

Читать далее

Реализация и оптимизация генератора уровней в Unity

Reading time6 min
Views10K
В мае этого года мы обсуждали алгоритм, который используем для генерации внешнего мира в игре Fireside. Сегодня мы возвращаемся к этой теме. В прошлый раз нам удалось сгенерировать набор точек на текстуре с помощью фильтрации шума Перлина. Хотя это решение удобно, оно имеет две важные проблемы:

  1. Оно не особо быстрое
  2. На самом деле мы не создавали ассетов в Unity

Давайте устраним эти проблемы. Сегодня мы:

  1. Создадим в Unity фреймворк, который позволит нам использовать алгоритм генерации текстур
  2. При помоги сгенерированных текстур создадим ассеты в игровом мире
  3. Распараллелим генерацию текстур с помощью C# System.Threading.Tasks, чтобы ускорить процесс

Читать дальше →

Новости из вселенной Haxe

Reading time16 min
Views2K

14 октября состоялась небольшая онлайн-конференция HaxeIn 2020. Одним из докладчиков был Александр Кузьменко — разработчик компилятора Haxe.
Доклад Александра — это отчет о работе, проделанной с февраля 2020 (когда состоялся HaxeUp Hamburg, организованный компанией Inno Games). Предлагаю вашему вниманию расшифровку его выступления.


image

Читать дальше →

Создание уровня в Armory

Reading time7 min
Views4.1K

Привет! В предыдущем посте я рассказал вам о движке Armory, теперь создадим свой первый уровень в нем. На самом деле, создание уровней в Armory ничем практически не отличается от работы в том же Unreal или Unity - вы так же можете импортировать ассеты, создавать свои тут же (это же Blender!), накладывать текстуры и прочие штуки.

Как я уже упоминал, для работы с движком вам нужны умение работы с Blender, поскольку Armory тесно связан с ним. Я не стану подробно разбирать как добавить plane, cube или lamp в сцену - только работа с движком. Готовы? Тогда начнем.

Читать далее

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

Reading time11 min
Views16K
Небольшая история от том как я стал разработчиком игр. Постараюсь осветить проблемы, с которыми я столкнулся на своем пути, и поделиться некоторыми цифрами. Программистом работаю давно, с 2001 года, компьютерами занимаюсь с детства, но играми начал заниматься лишь в начале 2014 года. И катализатором этого стала статья на Хабре. Где-то в начале 2014го, читая статейки на Хабре, я нашел статью про то, как один молодой человек сделал простенькую игру для ВК. Простая игра про сражение на самолетиках в 2D. Про саму игру в статье было мало, но меня заинтересовало то, что ему предложили продать игру за 700 баксов. Он отказался и потом пожалел, так как игра принесла ему только убытки. И эта «история успеха» как-то меня вдохновила.
Читать дальше →

Воксели против теневых карт: выбор новой системы освещения для Roblox

Reading time14 min
Views6.8K


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

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

ECS в UI в клиенте World of Tanks Blitz

Reading time5 min
Views6.1K

Данная статья является продолжением выступления Евгения Захарова на летней конференции С++ Russia, где была описана разработка пользовательского интерфейса с использованием архитектуры ECS (Entity-Component-System) вместо традиционного наследования и часть устройства UI в World of Tanks Blitz.

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

В этой статье на небольшом примере UI в World of Tanks Blitz Евгений показывает, в чем большой плюс архитектуры ECS в UI.

Читать далее

Meta Gameplay Framework, или бэкенд без серверных разработчиков

Reading time8 min
Views5.8K


Привет! Меня зовут Кирилл, я руководитель отдела серверной разработки в Pixonic. Здесь я работаю уже более 5 лет. Долгое время Pixonic была компанией одной игры — War Robots. Но однажды к нам пришло осознание, что так больше продолжаться не может, и мы начали работу над созданием новых проектов.

Поначалу мы взялись за это дело по старинке, используя традиционные для нас подходы: писали клиент на Unity 3D, бэкенд разрабатывали на Java. Это было привычно, понятно, но имело ряд серьезных недостатков. Проекты разрабатывались медленнее, чем нам бы хотелось. Для выполнения любой задачи необходимо было задействовать как минимум двух разработчиков. Однако, когда в разработке участвуют два и более человека, неизбежно возникают ошибки в духе: то один не так понял другого, то второй работает быстрее, чем первый. Такие ситуации приводят к тому, что кому-то из разработчиков в дальнейшем приходится возвращаться к задаче, которую он, казалось, уже давно закончил, а ведь у него и других дел полно. Так мы начали думать над тем, как разрешить эту проблему.
Читать дальше →

JS и его запретные тайны

Reading time4 min
Views21K
Так вышло, что наша компания искала разработчиков. В работе мы используем стандартный набор веб-технологий: HTML, CSS, Javascript, PHP, SQL. Во время проведения собеседований я был не то чтобы расстроен, а скорее обескуражен. Вопросы, на которые не могли ответить кандидаты, а именно разработчики с тремя и более годами опыта, были тривиальными. Они практически не касались специфики фреймворков или сложных алгоритмов, это просто скрининговые вопросы на знание языка и программирования в целом.

Не задачи, подчеркну, именно вопросы. От соискателей никто не требовал написать на доске программу для парсинга обратной польской нотации. Более того, не требовалось даже давать какие-то академические определения — просто как-то объяснить что такое Х и для чего его можно применять.

Особо меня впечатлили навыки JS и я бы хотел предоставить вашему вниманию список вопросов, которые вызывали затруднение у опытных разработчиков.
Читать дальше →

EventBus — Система событий для Unity

Reading time9 min
Views34K

В этой статье я расскажу вам о том, что такое система событий применительно к Unity. Изучим популярные методы и подробно разберем реализацию на интерфейсах, с которой я познакомился, работая в Owlcat Games.


Читать дальше →

Европейские банки в сравнении с российскими как жигули в сравнении с Porsche Cayenne

Reading time5 min
Views21K

У нас часто ругают отечественное. Во многом справедливо. Дороги, туалеты, отсутствие канализации, газификации, низкие пенсии, отечественный автопром (вёдра с гайками). А ещё ругаем банки. И тоже есть за что их ругать. Обманывают. Не по делу жрут наше время, которое стоит денег. Но здесь я буду их хвалить. Всё познаётся в сравнении. И приятно когда в России справедливо есть чем гордиться. И повод для гордости не то, что сделали очередную “Кузькину мать”, которая может весь мир в труху, а нас в рай, а то, что Россия опережает Европу.

Читать далее

Information

Rating
Does not participate
Registered
Activity