Наперегонки с будущим: коллекция хабрапостов о нестандартных подходах в современной разработке

Современный мир полон удивительных, порой пугающих технологий. Иногда кажется, что мы уже живём в предсказанном классиками научной фантастики антиутопичном техногенном будущем.

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

Мы за второй подход. И эта коллекция — как раз о необычных путях и хитростях в современной разработке. Читай, учись — и не бойся инноваций.

Облачные сервисы и серверы

Хранить все свои данные на собственном сервере — дорого и несовременно. Информация уходит в облако. Так чьему облаку лучше доверить свои данные? Как разрабатывать в нём и для него приложения и сервисы? И как при этом не попасть под гнёт гигантских корпораций?
Что вообще удобно делать в облаке после того, как перенесёшь на него свои серверы? Автор статьи составил набор из полезных облачных инструментов. Надёжное резервное копирование и синхронизация всех данных, постоянный мониторинг и аналитика приложений, даже облачная разработка. Всё, чтобы сберечь силы и время начинающих и продвинутых девелоперов. Самое популярное решение тебе не подошло? Автор (и комментаторы) рады предложить альтернативы!
Но опустимся с небес на землю. Облачные технологии не идеальны. Как минимум, облачный сервер — это дорого, даже для большого бизнеса. Хочешь использовать облако? Читай советы прошаренных пользователей. Например, авторы статьи нашли способ ежемесячно платить своему облачному хосту Amazon на 2 тысячи долларов меньше. Обошлось им это необычное решение всего в 60 евро. А их опыт уже помог не только им самим, но и другим разработчикам в комментариях.
Kubernetes — технология Google, которая позволяет легко и быстро запустить твоё приложение на любом девайсе по всему миру. Делает она это с помощью узконаправленных виртуальных машин, каждая из которых выполняет всего несколько функций и потребляет мало энергии. Заинтересовался? Читай в статье об особенностях Kubernetes-решения от Mail.ru. А если технологии Mail тебя не устраивают, создавай собственный вариант. Благо Kubernetes находится в свободном доступе.
Впрочем, ни одно инновационное решение не обходится без подводных камней. Работать с Kubernetes сложно, ведь проблемы в этой системе тоже новые, уникальные. Так что почитай о трудностях, с которыми столкнулись авторы статьи. Поучись на чужих граблях. И приготовься долго и упорно оптимизировать свой проект.
Инженер даёт советы по самой важной теме. Как настроить свой облачный сервис так, чтобы не баговало? Советы идут от простых к сложным. В начале статьи ты ещё просто балансируешь нагрузку на узлы сервиса. А в конце уже учишься проактивно прогнозировать сбои. Комментаторы не отстают и тоже делятся полезными советами. Всё для того, чтобы днём ты разрабатывал лучший облачный сервис в мире, а ночью спал спокойно.
Как Skyeng качественную видеосвязь через облако налаживала. Сперва компания перешла со Skype на связку Janus — WebRTC. Но, чтобы создать полноценное решение с хорошей связью и видеозаписью, пришлось использовать немало костылей. В статье как раз разобрано их создание. Чтобы другие разработчики могли легче и быстрее сделать такое же или похожее решение. Так что, если нужна классная видеосвязь — читай и учись.

Мобильные девайсы и гаджеты

Смартфон в твоём кармане следит за каждым твоим шагом. Но это не точно. Точно то, что мобильные девайсы стали намного популярнее компьютеров и ноутбуков. Чтобы остаться современным, нужно разбираться в тонкостях и хитростях разработки для них.
Нанимать backend-разработчика больше не обязательно. Можно обратиться к провайдеру MBaaS (Mobile Backend as a Service) и сэкономить человекочасы без потерь в качестве бэкенда. Автор статьи сравнивает популярные MBaaS-решения. Идеальных вариантов ожидаемо нет. Но ты, прочитав статью, можешь выбрать наиболее подходящий для тебя и легко опробовать новомодную облачную технологию в разработке своего приложения.
Авторы статьи создали утилиту ZERG, чтобы сделать автотесты по настоящему автоматическими. ZERG проверяет результаты тестов и сам проставляет соответствия в Zephyr. Приложение оптимизирует рутинные ночные автотесты. А тестеры-люди свободны для более важных задач. Самое приятное — авторы показывают и объясняют код ZERG внутри статьи. Так что после прочтения можно собрать собственного помощника в автотестинге и тем сберечь собственное время.
Напоминаем, учиться на чужих косяках и читать про не оправдавшие себя риски — очень важно. Так что вот статья про череду ошибок в разработке новой фичи для мобильного приложения «Додо Пиццы». Казалось бы, чего проще — сделать систему быстрых повторных платежей? Но команда разработчиков допустила массу ошибок, как типичных, так и весьма нестандартных. Впрочем хэппи-энд неизбежен, со всем в итоге справились. А читатели получили массу полезных советов.
Оказывается, Google-таблицы не только заменили Excel. Они ещё и прорываются на рынок мобильной разработки. Звучит смешно. Выглядит простовато, хоть и необычно. Но в связке с Glide в таблицах вполне можно создавать успешные приложения. В статье рассказано как, в том числе на примере уже состоявшихся кейсов.
Raspberry Pi вообще популярная и полезная в хозяйстве штука. Хоть ретро-игры на него закидывай. Хоть делай высокотехнологичный домофон, через который можно поболтать с гостями по видеосвязи. Это, конечно, DIY, а не бизнес-решение. Но должна же у разработчика быть и личная жизнь вне работы! В статье подробно расписано создание нестандартного девайса: от сборки железа до финальной настройки софта.

Разработка игр

Как развлечься жителю нашего жуткого высокотехнологического настоящего? Компьютерными играми, конечно. Их разработка становится всё сложнее и многограннее. Так что читай статьи в этом разделе. И будь на острие игропрома.
Автор создал свой собственный редактор для UI мобильных игр на основе OpenGL. Получилось удобно и просто в сравнении даже с популярными коммерческими конкурентами. Статья подробно объясняет, что и как работает внутри редактора. А сам редактор в свободном доступе — по ссылкам внутри материала каждый разработчик может скачать его, опробовать и даже улучшить, чтобы на его основе создать крутой мобильный проект.
Игры для смартфонов — это уже не современно? Что ж, попробуй разработку для VR. И не забудь узнать, как делать оптический трекинг. Например, чтобы страшные монстры в твоём хорроре всегда смотрели игроку в глаза. Пока идеального решения для оптического трекинга не существует, ведь ещё недавно он вообще был почти никому не нужен. Но автор статьи со своей командой создал один из самых популярных современных вариантов. Почитай, поучись на их опыте. Может быть, ты сможешь сделать даже лучше?
Впрочем, даже крупные компании-разработчики редко используют на полную мощность новейшие технологии. Тебе будет ещё сложнее. Попробуй себя в создании ретро-игр. Что в них современного? Например, можно назначить дизайнером уровней алгоритм Прима. Он будет создавать запутанные и сложные, но абсолютно честные лабиринты для игроков. Так поступил автор этой статьи. А заодно оставил читателям наработки кода, которые можно использовать для разработки собственной, улучшенной версии алгоритма.
Самый перспективный игровой движок современности — Microsoft Excel. Скоро на нём будут делать все AAA-проекты. Так что учись работать с ним, пока есть время. Если серьёзно, отличный шоукейс старых, давно позабытых большинством пользователей возможностей Экселя. Крайне познавательно для молодого разработчика. Учит хитрости и готовит к работе с необычным инструментарием.

Нейросети

Скоро всех нас заменят роботы. Правда, не терминаторы и не репликанты, а привычные нейросети. До мировой доминации им вряд ли будет дело, зато они станут выполнять за нас рутинную работу и помогут в решении сложных задач. Этот раздел — о том, как создать и развить собственного нейропрофессионала.
Сейсморазведка — штука сложная. Эксперты-люди давно не справляются с анализом всей информации о дне морском. И нейросеть в одиночку не справится, уж слишком уникальные данные. Специалисты MaritimeAI пошли на компромисс. Проанализировали 5 % данных уникального сейсмического массива. Скормили результат алгоритму. А дальше он успешно разбирался сам. В статье — подробно о том, как организовали сотрудничество и по каким принципам учили сеть. Второй материал в серии — о выборе и настройке функции потерь для сети.
Как натаскать нейросеть-переводчика для языковой пары, если материала на обучение мало? Попробуйте обратный перевод. Автор статьи делает переводчик с чувашского на русский. И учит его на предложениях, которые тоже перевела нейросеть, уже с русского на чувашский. Результат пока далеко не идеальный, но впечатляющий. А в материале подробно разобраны популярные алгоритмы обратного перевода. С плюсами, минусами и идеями по применению.
Возможно, математика изменилась навсегда. Нейросеть научилась выдвигать математические гипотезы. Доказывать их всё ещё должны люди. Но создавать интересные предположения Машина Рамануджана уже способна. Она даже придумала несколько очень элегантных выражений для вычисления числа Каталана. В материале создатели не только хвалят свою сеть, но и объясняют, что у неё внутри и как она была создана. А самых пытливых даже приглашают запустить алгоритм на своём компьютере и тем помочь в его развитии.
Хочешь создавать по-настоящему инновационные нейросети, иметь крутое резюме и нравиться большим компаниям? Учи алгоритмы регрессии помимо уже банальной линейной. Да, они не у всех на слуху. Но крутой разработчик умеет применить даже самый редкий инструмент. Тема большая, а статья не исчерпывающая. Так что сами авторы и комментаторы предлагают ссылки для дальнейшего изучения в конце материала.
Ответ на вопрос в заголовке сложен и тонет в гипотетических выкладках. И вообще это кликбейт. Тут скорее интересно наблюдать, как автор тестирует своего нейрокодера на разных типах задач и подробно анализирует результаты. Алгоритм-программист вряд ли подойдёт бизнесу, сыроваты ещё решения. Но создать по материалам статьи робота-партнёра будет полезно любому разрабу. Как минимум развлечёшься. А возможно, немного упростишь себе будущую работу.
Автор создал «манипулятор будущего», который читает жесты твоей руки и распознаёт с помощью нейросети. Долой мышки? Нет, технология пока не доработанная. Но в статье подробно, с примерами кода, объяснено, как собрать подобный киберпанковский девайс. Можно просто поиграться и представить себя жителем неоновых две тысячи семидесятых. А можно попытаться улучшить технологию. И первым по-настоящему прорваться в светлое безмышевое будущее.
Да, нейросети занялись спортивной аналитикой. Выходит у них дешевле и быстрее, чем у людей. Пока технология в стадии бета-тестирования и работает только в некоторых футбольных школах Москвы. Но польза уже заметна: дети и родители всегда в курсе успехов в учёбе, а тренер знает, какие занятия больше всего нужны ученикам. Статья не голословная, система аналитики подробно объяснена. Воспользоваться наработками может любой желающий, хоть школьный физрук при поддержке школьного же информатика.

Изначально нейросети применялись в основном для анализа данных, поэтому генерация контента нейросетями сама по себе является серьёзным шагом в развитии и применении технологии.
Сфера промышленного применения алгоритмов машинного обучения и нейросетей продолжит расширяться, будут появляться всё новые способы их применения, которые будут удивлять не только обывателя, но и специалистов. Уже сейчас в нашу жизнь прочно вошли голосовые помощники, автопилоты и Deepfake-ролики, широкое распространение которых обыватель не мог представить ещё 10 лет назад, и кажется, что это только начало.
Но с развитием технологий меняется и наша жизнь, и само общество, давая нам новые возможности для самовыражения и самореализации. Хочется верить, что как цветная фотография не обесценила живопись, так и развитие нейросетей и алгоритмов машинного обучения не обесценит человека, а, наоборот, освободит его от рутины и подтолкнёт к творчеству и созиданию.
Георгий Остапенко
директор по технологическим платформам dentsu Russia

Необычные проблемы

Эти материалы — не очень практичные. Они не подскажут тебе конкретное необычное решение. Скорее помогут задуматься о своей работе и увидеть проблемы, которых не замечал раньше. Быть может, именно благодаря им ты и заглянешь в завтрашний день.
Порой костыли и странные собственные решения — это нормально. Они даже бывают эффективнее общепринятых «лучших решений». Ведь объективно лучшее решение может субъективно не подходить именно тебе и твоему случаю. А может быть, оно даже не лучшее, просто его крутизна многократно преувеличена фанатами. Статья — вдохновенная апология самостоятельному мышлению в программировании. Да, быть во всём особым и неординарным не выйдет. Но обязательно пытайся и старайся, чтобы преуспеть в профессии.
Хочешь освободить свои данные и свою жизнь от гнёта корпораций, но не знаешь как? Может, для этого надо полностью уйти от интернета и жизни в цифре? Нет, достаточно создать универсальное защищённое хранилище персональных данных. Технологии для этого пока не развиты, идеального решения нет. Но автор подробно описывает, что ты можешь сделать для собственной цифровой свободы уже сегодня. И даже предсказывает, какие разработки в будущем помогут личным хранилищам стать мейнстримом.

Нетривиальные решения

В дивном новом компьютеризированном мире никуда без хитростей. Настоящим хакингом мы здесь заниматься не будем. Но несколько полезных и необычных узконаправленных советов с радостью дадим.
Прочитал название — глаза сразу загорелись. Лайфхак действительно помогает парсить очень много инфы очень быстро. Жертва тут — понимание того, что именно парсится. Как ваше, так и самого парсера. Подойдёт такое решение не всем. Комментаторы об этом неоднократно напоминают. Но трюк впечатляющий и способен помочь в оптимизации многих процессов. Вокруг материала разгорелась дискуссия, есть даже статья-продолжение от другого автора.
Название не врёт, в статье действительно об этом и действительно рабочий способ. Подойдёт прежде всего разработчикам мобильных приложений. Лайфхак основывается на современном алгоритме сжатия Zstandard. А код для реализации на бэкенде Android и iOS дан в тексте. В комментариях тоже немало полезной информации. Например, напоминание о том, как с таким сжатием защитить свой сервер от zip-бомб.
Как настроить и оптимизировать свой проект в XcodeGen, чтобы не разрешать потом вручную сотню merge-конфликтов в базе данных project. pbxproj? Этот туториал для iOS-разработчиков подробно расписывает решение. Обучение буквально с азов создания проекта, то есть подойдёт новичку, который создаёт первое приложение. Но project. pbxproj уже давно достаёт излишними вмешательствами и бывалых профессионалов. Так что эта статья сбережёт время многим.

Заключение

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

Комментарии 2

    +1

    Спасибо, поставил в очередь на чтение каждую третью статью

      +1
      хорошая подборка

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.