Pull to refresh
45
0
Девелоника (ГК Softline)@htc-cs

ИТ-компания

Send message

Да, настоящая движуха! 🔥 Когда тысяча человек (и их семьи) объединяются ради фана (и защиты от комаров (но на самом деле можно было забрать и чемодан для путешествий, и наушники, и удобные пледы, и многое другое), — это уже не просто развлечение, а мини-корпоративный марафон по вовлечению. Такие активности отлично прокачивают чувство команды и дают отдохнуть мозгу между задачами.

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

А после мы развили механику бота (новые сценарии, «сезонность») и масштабировали опыт на другие внутренние активности (онбординг, обучение и пр.).

Так что скучать даже после «Гигабайтов» никому не дали 😉

Наша команда состояла из 6 человек. Со стороны банка было много участников.

На реализацию ушло около года.

Да, вы правы, приложения в большинстве своем не продовые. Это экспериментирование ради создания чего-нибудь необычного. В «Утках» мы хотели соединить вместе Smart TV и мобильные устройства. В «Принцессах» «поженили» Smart TV, мобилы и VR.
Жаль, что вам не понравилось.
Да, это можно сделать, но надо попотеть, специальной реализации нет.
На телевизорах Samsung есть встроенная камера, есть и своя специализированная. У Samsung есть функционал, который позволяет к камере подцепиться и снимать с неё видеопоток.
Проблема в том, что это сработает только со специальными камерами от Samsung, обычную вебку подцепить можно, но приложение заблокирует всплывающее окно, в котором надо согласиться на его использование.
В общем случае платформы стараются блокировать всплывающие окна, но некоторые разрешают. Philips, например
Спасибо за Ваш комментарий. Много думал, для чего же нам в действительности может понадобиться сабкомпонент экрана.

На моей практике он пригождался в случае, когда две зависимости (например адаптер и vhFactory) нуждались в ссылке на друг друга (если adapter реализовывал listener для событий vh). До того, как познакомиться с Lazy, я использовал отложенную инъекцию именно ленивым вызовом inject из адаптера. Ну, а сейчас я, наверно, соглашусь с Вами, функциональной нагрузки хранение сабкомпонента не несёт.
Однако, я бы оставил такую реализацию в статье просто для того, чтобы читатель понял, что за время жизни он отвечает самостоятельно.

Еще раз спасибо.
Если ваша архитектура подразумевает разделение ui от business-логики, отличным решением будет также разделить ваши Singletone-зависимости на два компонента — ui и business соответственно. С помощью Component dependency предоставляем из ui-компонента business-компоненту только необходимые общие зависимости (например Context) и интерфейсы для взаимодействия с вашими View (если, конечно, вы не используете фреймворки на типо Mosby).
Таким образом вы добьетесь независимости ваших слоёв друг от друга + разграничите их доступ к layer-специфичным зависимостям.

В общем-то, сочетание Dagger с различными архитектурами — это, наверно, тема для отдельной статьи. (Если, конечно, кому-то это будет интересно)
К ListComponent может обращаться не только сам фрагмент, но и другие «участники» уровня данного экрана.
Именно для такого совместного использования мы описали в классе App метод getListComponent().
Например, тому же Adapter'у может понадобиться собственный метод inject() вместо передачи зависимостей в конструктор. В таком случае его вызов будет App.getListComponent().inject(this);

Если же хранить ListComponent во фрагменте, появляется необходимость хранения instance фрагмента,
как статической переменной класса ListFragment, чтобы обеспечить общий доступ. И даже если не углубляться, в то, почему так категорически не стоит делать, наш компонент все равно не разрушится сам, т.к. появляется необходимость занулять instance фрагмента руками.
Постарались оперативно исправить
Цель использования Dagger в рамках данной статьи — это чистота и модульность кода. А уже из этих двух составляющих следуют такие преимущества, как тестируемость, переиспользуемость и т.д.
А почему не стали использовать A-Frame? Можно было бы как раз в связке с React (aframe-react).
Сейчас уже можно поиграть в некоторые VR-хорроры. Вот неплохой топ.
В немецком слово "Medien" является сокращением от слова "Massenmedien". Слово массмедиа существует даже в русском языке, как транслитерат. Я уверенна, Вы знаете значение слова массмедиа. А то, о чем Вы говорите, немцы называют «digitale Medien». Ну и да, автор считает VR новым СМИ. Вы можете подискутировать с ним на эту тему. Он всегда открыт к общению.

Статья «тыкает», так как автор статьи не хочет дистанцироваться от читателя, в немецком языке, есть разница между обращениями на «ты» и на «Вы», даже соответствующие глаголы есть. Например, "выкать".

Если Вы хотите побольше прочитать о реальных примерах, рекомендую ознакомиться с предыдущей статьей.
Да, это анонс. Прочитав его, Вы можете понять, интересно ли Вам будет тема и решить переходить ли дальше по ссылкам. А первая статья из серии и дополнение к ней уже опубликованы. В скором времени будет публиковать дальше, и все превратиться в полноценную серию.
Если Вы имеете ввиду такую ситуацию: при приближении к стене все становиться темным, а при удалении снова нормальное освещение, то, да, это, по моему мнению, тоже неплохое решение. Все зависит от дизайна и тематики игры/приложения. Вообще всегда можно придумать разные варианты.
Очень убедительно. Добавил раздел про nullability атрибут. Спасибо.
Не упомянуты nullability annotations здесь потому, что imho к свойствам они относятся скорее «заодно», чем «в первую очередь». Да еще, рассказывая про них, надо бы и Swift приплетать. Думаю, хорошенько покопавшись, так можно к этой статье еще много чего привязать. Но я уверен, что не стоит все собирать в одном месте, как не стоит писать классы на 70к строк
Спасибо за комментарии. Действительно, сеттер был не примером для подражания. Поправил. С atomic тоже немного уточнил формулировку, но в целом, не совсем понятно, что именно, по Вашему мнению, там неправда. Добавьте и сюда конструктива, пожалуйста, — укажите, с чем именно Вы не согласны.
  1. Если сервер DB хорошо изолирован от доступа откуда не надо, то само по себе хранение логина и пароля к нему в конфиге и затем в системе контроля версий большой проблемы не создаёт.
  2. Но если условие из пункта 1 не выполняется, то чуть ли не любой элемент настроек из web.config можно вынести в отдельный файл через configSource, и этот файл держать локально там, где надо, не загружая его в репозиторий.

Ну, я примерно об этом и писал. Работать для данного проекта оказалось легче в одном русле. Т.е. SoapUI прекрасная программа, но исторически пересекался с ней редко. Отправляясь в экстренное путешествие, когда на сборы немного времени, лучше ориентироваться на конечный результат — качество продукта и время на исправление дефектов, а не на инструмент.
Я не мог точно сказать, сможет ли быстро SoapUI сделать всё, что мне нужно, и смогу ли я сделать это хорошо на нём сразу. А про Jmeter знал, что он мне даст всё, что нужно для данной задачи.

Бывали и обратные примеры в моей практике. Написал скриптик на чем-нибудь, протестировал, а потом подумал «а вот бы тоже самое, но в 50 потоков», и такая библиотечка находилась. А меня спрашивали «А почему не Jmeter для нагрузки?»

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity