Читать дальше →
Никита Кузнецов @Braidner
User
Путь разработчика, часть 3: история создания игры
8 min
22KВсем привет, с вами спустя полгода снова Delfuego FM, и я хочу с радостью объявить о долгожданном релизе нашей мобильной игры – Sling Monsters!

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

В этой большой статье будет рассказано о разработке игры, развитии её визуального стиля и о том, что собственно она из себя представляет (на протяжении более года с момента первого запуска Unity я держал её основную механику в тайне, т.к. ничего идентичного ей не встречал), а также о том, на какие грабли наступал в процессе разработки, о развитии графического стиля, о всяких философских размышлениях на тему индустрии и всего остального.
+8
Полный путеводитель по созданию лендингов, которые продают
16 min
79KTranslation

Мы продолжаем знакомить вас с лучшими статьями по веб-дизайну. Сегодня мы перевели свежую статью на Medium о создании эффективных посадочных страниц. Перевод выполнен «Я люблю ИП».
Лендинги — это посадочные страницы, которые созданы специально для достижения определённых целей конверсии. Иногда в качестве лендинга выступает главная страница (хотя многие считают, что она не может быть настоящим лендингом). Но чаще всего создаются специальные посадочные страницы для определённых маркетинговых кампаний.
Цели конверсии могут включать всё, что угодно, начиная с оформления покупки и заканчивая заказом бесплатной информации. Как только у вас есть конкретная цель и вы понимаете ваш рынок, вы можете создавать, тестировать и оптимизировать лендинги, которые помогут вам лучше всего достигнуть поставленных целей.
+7
Анализируем большие объемы данных с Apache Spark
1 min
17K
С анализом больших объемов данных постепенно начинают сталкиваться не только крупнейшие IT-компании, но и обычные разработчики. В нашей компании в ряде проектов такая задача возникает, и мы решили систематизировать накопленный опыт, поделившись с коллегами по i-Free и нашими партнерами наиболее эффективными инструментами и технологиями. Сегодня речь пойдет о применении Apache Spark
+10
Обзор способов и протоколов аутентификации в веб-приложениях
18 min
674K
Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.
Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.
- Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
- Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
- Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.
Например, при попытке попасть в закрытый клуб вас идентифицируют (спросят ваше имя и фамилию), аутентифицируют (попросят показать паспорт и сверят фотографию) и авторизуют (проверят, что фамилия находится в списке гостей), прежде чем пустят внутрь.
Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.
Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного.
+48
Ненастоящие сеньор-девелоперы, или почему годы опыта ни о чем не говорят
6 min
142KTranslation
Опытный программист из Торонто Мэтт Бриггс так любит свою работу, что говорит: «я бы писал код, даже если бы это было нелегальным». А когда он опубликовал в своем блоге пост о джуниорах, мидлах и старших разработчиках, то собрал больше сотни восхищенных комментариев. Мы в Alconost тоже восхитились и перевели эту статью для вас.
Мы работаем в странной индустрии. Потребность в разработчиках здесь значительно выше, чем кадровое предложение. Эта проблема существует многие годы, и со временем она становится острее.
Мы испытываем серьезную нехватку талантов, хотя индустрия довольно молода. Большинство софтверных проектов проваливаются, и практически все превышают бюджет. А лучшая идея, которую могут предложить сильнейшие умы, сводится к «Есть несколько стандартных способов решения подобных проблем, но наши решения часто не срабатывают. Единственное, что можно сделать — это попробовать и посмотреть на результат».
Реальность такова, что под «старшим разработчиком» понимается человек, который ваяет код более 3 лет. Его ставят на руководящую позицию, и обычно все заканчивается ожидаемо плачевно.
На самом деле, попытка оценивать людей временными интервалами – слишком упрощенный способ для таких тонких материй, как знание и профессиональный опыт. Но дела обстоят именно так. И если продолжать классифицировать специалистов подобным образом, то самое время нашей индустрии брать тайм-аут. Есть разница между человеком с 10-летним опытом, и тем, кто за то же время стал опытнее в 10 раз.

Постер из сериалa «Компьютерщики»
Мы работаем в странной индустрии. Потребность в разработчиках здесь значительно выше, чем кадровое предложение. Эта проблема существует многие годы, и со временем она становится острее.
Мы испытываем серьезную нехватку талантов, хотя индустрия довольно молода. Большинство софтверных проектов проваливаются, и практически все превышают бюджет. А лучшая идея, которую могут предложить сильнейшие умы, сводится к «Есть несколько стандартных способов решения подобных проблем, но наши решения часто не срабатывают. Единственное, что можно сделать — это попробовать и посмотреть на результат».
Реальность такова, что под «старшим разработчиком» понимается человек, который ваяет код более 3 лет. Его ставят на руководящую позицию, и обычно все заканчивается ожидаемо плачевно.
На самом деле, попытка оценивать людей временными интервалами – слишком упрощенный способ для таких тонких материй, как знание и профессиональный опыт. Но дела обстоят именно так. И если продолжать классифицировать специалистов подобным образом, то самое время нашей индустрии брать тайм-аут. Есть разница между человеком с 10-летним опытом, и тем, кто за то же время стал опытнее в 10 раз.

Постер из сериалa «Компьютерщики»
+97
Опыт разработки и проектирования на AngularJS
8 min
28KВсем привет!
В нашей компании, помимо разработки собственной СУБД, также занимаются заказными разработками по самым разным направлениям, от суровых java-энтерпрайз приложений до небольших мобильных приложений. Наши команды стараются использовать передовые технологии и фреймворки. И как раз я являюсь представителем одной из таких команд. Сегодня хочу поделится опытом разработки на AngularJS и парой мыслей о проектировании веб приложения с использованием этого фреймворка.

В нашей компании, помимо разработки собственной СУБД, также занимаются заказными разработками по самым разным направлениям, от суровых java-энтерпрайз приложений до небольших мобильных приложений. Наши команды стараются использовать передовые технологии и фреймворки. И как раз я являюсь представителем одной из таких команд. Сегодня хочу поделится опытом разработки на AngularJS и парой мыслей о проектировании веб приложения с использованием этого фреймворка.

+13
Приемы при проектировании архитектуры игр
11 min
150KК сожалению, нигде нет более менее полной публикации на тему проектирования архитектуры в играх. Есть отдельные статьи на конкретные темы, но нигде все это вместе не собрано. Каждому разработчику приходится самостоятельно по крупицам собирать подобную информацию, набивать шишки. Поэтому решил попробовать собрать часть из этого воедино в данной статье.
Для примеров будет использоваться популярный движок Unity3D. Рассматриваются подходы, применимые в больших играх. Написано из моего личного опыта и из того, как я это понимаю. Конечно, где-то я могу быть не прав, где-то можно лучше сделать. Я тоже все еще в процессе набирания опыта и набивания новых шишек.
В публикации рассматриваются следующие темы:
Для примеров будет использоваться популярный движок Unity3D. Рассматриваются подходы, применимые в больших играх. Написано из моего личного опыта и из того, как я это понимаю. Конечно, где-то я могу быть не прав, где-то можно лучше сделать. Я тоже все еще в процессе набирания опыта и набивания новых шишек.
В публикации рассматриваются следующие темы:
- Наследование VS компоненты
- Сложные иерархии классов юнитов, предметов и прочего
- Машины состояний, деревья поведений
- Абстракции игровых объектов
- Упрощение доступа к другим компонентам в объекте, сцене
- Сложные составные игровые объекты
- Характеристики объектов в игре
- Модификаторы (баффы/дебаффы)
- Сериализация данных
+36
Шаблоны проектирования XSD
9 min
42K
В жизни каждого аналитика и программиста наступает такой день, когда он узнает о существовании шаблонов (паттернов) проектирования XML-схем и его жизнь меняется. Для меня, например, с этого знания началось постижение красоты проектирования.
Сегодня хочу поговорить о том, какие есть шаблоны проектирования XSD, о преимуществах и недостатках каждого, и почему мы для своих задач выбрали «Райский сад».
+11
Быстрый старт Data Binding в Android
8 min
67KВведение
Профессионально андроид-разработкой занимаюсь чуть больше года, до этого разрабатывал по Windows Phone и мне понравилась возможность связывать данные из вью модели с самим View при помощи механизма Bindings. А после изучения RX, многие задачи стали решаться более чисто, вью-модель полностью отделилась от View. Она стала оперировать только моделью, совсем не заботясь о том, как она будет отображаться.
В Android такой строгости я не заметил, Activity или Fragment как простейшие представители контроллера чаще всего имеют полный доступ как ко View, так и к модели, зачастуя решая, какой View будет видим, решая таким образом чисто вьюшные задачи. Поэтому я довольно радостно воспринял новость о появлении Data Binding в Android на прошедшем Google IO.
Пока что это только бета релиз, но уже можно протестировать функционал и увидеть направление, в котором двигаются разработчики из Google.
+18
Безумный PHP. Фьюри код
7 min
64K
Сборник PHP ненормальностей или что надо знать чтобы не сойти с ума и не прострелить себе что-нибудь
Прочитал статью mnv: "Приведение типов в PHP == табурет о двух ножках?" и захотелось в комментариях добавить немного дополнений, но… Но потом увидел комментарий и понял, что лучше дополню статью тем, про что мало кто пишет и мало где это имеется в централизованном виде. Вроде бы всем известная тема, а все же кому-то в новинку. Это не совсем про приведение типов, но они тоже есть. Это про особенности, зная которые можно делать меньше ошибок. Если интересно, го под кат, я создал!
+73
Социальная сеть на Android за несколько выходных — часть II (сервер)
7 min
29KTutorial
Краткое содержание первой части
В ответ на непрекращающийся бум мобильных социальных приложений, мы с друзьями решили собраться в мини-хакатон и написать очередную социальную сеть на Android с целью очертить круг общих вопросов и предложить скелет, из которого каждый сможет сделать что-то новое и оригинальное. В первой части мы рассмотрели интерфейс клиента, сетевые запросы, граф друзей и обработку изображений.
В этой статье мы вкратце расскажем про загрузку фотографий в облачное хранилище, доставку push-уведомлений и очереди асинхронных задач на сервере.
+11
«Перегрузка операторов» в Scala
14 min
17KTutorial
Некоторое время назад я анонсировал курс по Scala. Он стартовал и выкладывается на MOOC-платформу UDEMY — «Scala for Java Developers». Больше о курсе вы можете прочитать в конце статьи.
Сейчас я бы хотел представить материал по одной из тем курса — перегрузке операторов в Scala.
Сейчас я бы хотел представить материал по одной из тем курса — перегрузке операторов в Scala.
- Введение
- Infix operators
- «Pointless style» (infix notation) это не «point-free style» (tacit programming)
- Приоритет операторов
- Ассоциативность операторов
- Infix types
- Prefix operators
- Postfix operators
- О курсе
+17
Кофе с огурцами (Espresso + Cucumber)
6 min
23K
Относительно не так давно появилась замечательная библиотека Espresso для тестирования UI Android приложений. Её преимущества над аналогами обозревались не один раз. Если вкратце, то они заключаются в том, что это разработка Google для собственной ОС (ранее они сами использовали Robotium), а так же в лаконичности синтаксиса и скорости работы. Итак, мы решили идти в ногу со временем и использовать Espresso. Но нам мало тех плюсов, что уже есть, мы хотим BDD (http://en.wikipedia.org/wiki/Behavior-driven_development), мы хотим скриншотов и отчетов в json и html, мы хотим запускать это все на CI, в конце концов! Но обо всем по порядку. Я расскажу как подружить Cucumber (http://habrahabr.ru/post/62958/) и Espresso (http://habrahabr.ru/post/212425/) на небольшом примере. Всех, кто устал от Appium, кто хочет уйти от Robotium и тех, кому небезразлично тестирование Android, прошу под кат.
+21
Прокачиваем Stream API, или нужно больше сахара
6 min
31KНе так давно удалось перевести на Java 8 один из проектов, над которым я работаю. Вначале, конечно, была эйфория от компактности и выразительности конструкций при использовании Stream API, но со временем захотелось писать ещё короче, гибче и выразительнее. Поначалу я добавлял статические методы в утилитные классы, однако это делало код только хуже. В конце концов я пришёл к мысли, что надо расширять сами интерфейсы потоков, в результате чего родилась маленькая библиотека StreamEx.
+15
Java-based конфигурирование embedded Jetty/Spring MVC/Spring Security
27 min
35KRecovery Mode
Кому-то нравится исключительно xml-конфигурация, так как позволяет собрать всю настройку проекта если не в одном файле, то в одной папке с конфигурационными файлами точно, кому-то нет. К примеру, я считаю, что времена persistence.xml ушли безвозвратно — отображения сущностей для ДБ удобнее прописывать в классах сущностей, а маппинги контроллеров и методов удобнее назначать непосредственно в классах контроллеров. Вывод очевиден: если разработчик не страдает анахронизмом, то так или иначе проект будет иметь смешанную настройку — часть в аннотациях, часть в xml-файлах. Это не хорошо и не плохо, это данность времени — все привыкли к web.xml, application.xml, springmvc-servlet.xml и т.д., но при этом активно пользуются аннотациями @ Controller, @ Repository, @ Autowired, @ Value, @ ResponseBody и т.д. Начиная с версии 3 Spring добавил возможность использования Java-based конфигурации, что позволило полностью отказаться от xml-файлов в настройке проекта. Ранее на Хабре была публикация с анализом преимуществ и недостатков одних способов перед другими, с рядом плюсов xml-конфигурации я полностью согласен.
Однако в данной публикации речь не о преимуществах одних или недостатков других, и тем более не попытка агитации за новые технологии и возможности, это только лишь консолидированный отчет о сборке веб-проекта с нуля до рабочего проекта. И главное — с включением в проект embedded сервера Jetty. На самом деле отдельных фрагментов по настройке как встроенного Jetty, так и контекстов Spring Application, MVC, Security, навалом. Но чтобы разобраться в тонкостях этих настроек, не внедрять сложную структуру и не городить костыли, потребовалось кое-какое время и просмотр большого числа документации и исходников. Но даже имея значительный опыт настройки, пришлось столкнуться с рядом затруднений, после решения которых пришла идея опубликовать все это в одном месте.
Однако в данной публикации речь не о преимуществах одних или недостатков других, и тем более не попытка агитации за новые технологии и возможности, это только лишь консолидированный отчет о сборке веб-проекта с нуля до рабочего проекта. И главное — с включением в проект embedded сервера Jetty. На самом деле отдельных фрагментов по настройке как встроенного Jetty, так и контекстов Spring Application, MVC, Security, навалом. Но чтобы разобраться в тонкостях этих настроек, не внедрять сложную структуру и не городить костыли, потребовалось кое-какое время и просмотр большого числа документации и исходников. Но даже имея значительный опыт настройки, пришлось столкнуться с рядом затруднений, после решения которых пришла идея опубликовать все это в одном месте.
+2
Аспектно-ориентированное программирование. Основы
4 min
42KПродолжим тему, начатую в прошлой слесарно-программистской статье про AspectJ и open source расширение для этой библиотеки aspectj-scripting. В этой заметке рассмотрим какие задачи решает аспектно-ориентированное программирование (AOP) на примере и синтаксисе самой известной библиотеки среди адептов этой методологии. AspectJ — дитя Xerox PARC, теперь совершеннолетнее и живущее в Eclipse Foundation.

(фото из статьи на lurkmore про евроремонт)
Вероятно, статья не будет интересна тем кто часто использует в своей работе AOP и понимает что это такое. В комментариях приветствуются как конструктивные замечания так и веселый холивар!
Disclaimer: Я не теоретик, поэтому рассказанное в статье субъективно, пропущено через призму опыта.
(фото из статьи на lurkmore про евроремонт)
Вероятно, статья не будет интересна тем кто часто использует в своей работе AOP и понимает что это такое. В комментариях приветствуются как конструктивные замечания так и веселый холивар!
Disclaimer: Я не теоретик, поэтому рассказанное в статье субъективно, пропущено через призму опыта.
+9
Java 8: Овладейте новым уровнем абстракции
5 min
110KTranslation
Одной из многих причин, почему мне нравится работать именно с функциональным программированием, является высокий уровень абстракции. Это связано с тем, что в конечном итоге мы имеем дело с более читаемым и лаконичным кодом, что, несомненно, способствует сближению с логикой предметной области.
В данной статье большее внимание уделяется на четыре вещи, представленные в Java 8, которые помогут вам овладеть новым уровнем абстракции.

В данной статье большее внимание уделяется на четыре вещи, представленные в Java 8, которые помогут вам овладеть новым уровнем абстракции.

+36
Леденец из мороженого, или как привнести в ваше приложение немного Material
7 min
20KПятая версия Android была выпущена почти полгода назад. Несмотря на это, большинство приложений в маркете до сих пор упорствуют в стиле Holo. То ли новый Material-стиль пока не по зубам среднему разработчику, то ли Android L еще не успел прочно войти в обыденность.
Как бы там ни было, новая парадигма дизайна активно пропагандируется «корпорацией добра», да и выглядит достаточно неплохо, несмотря на некоторую непоследовательность. И все больше появляется добрых волшебников, помогающих нам, простым разработчикам, оставаться «в струе» изменчивого мира мобильного UI.
Если вы, как я недавно, твердо решили обернуть своё, давно не обновлявшееся, приложение в новую «шкурку», этот обзор инструментов и библиотек может сэкономить вам N часов времени.
Как бы там ни было, новая парадигма дизайна активно пропагандируется «корпорацией добра», да и выглядит достаточно неплохо, несмотря на некоторую непоследовательность. И все больше появляется добрых волшебников, помогающих нам, простым разработчикам, оставаться «в струе» изменчивого мира мобильного UI.
Если вы, как я недавно, твердо решили обернуть своё, давно не обновлявшееся, приложение в новую «шкурку», этот обзор инструментов и библиотек может сэкономить вам N часов времени.
+20
Ionic framework. Обзор экосистемы
6 min
120K

Ionic framework — один из самых широко обсуждаемых фреймворков. Как гласит официальный сайт, Ionic — это SDK для создания гибридных мобильных приложений, набор CSS и JS компонент, созданный на основе AngularJS, SASS, Apache Cordova.
На момент написания статьи репозиторий Ionic насчитывает 15300 звездочек, а сумма инвестиций в компанию Drifty, чьим продуктом является Ionic, уже достигла $3.7 миллиона.
Посмотрим, что интересного предлагает Ionic для разработчика.
+17
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity