Рубрика «Блог компании JUG.ru Group» - 58

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

Прошедшая в Петербурге конференция Mobius позволила получить ответ и на этот вопрос, и на многие другие. Под катом — подробный рассказ о том, что там было.

Mobius 2016: мобильная разработка по-новому - 1

Читать полностью »

Java-конференция Joker 2016: Питер, 14-15 октября - 1

14 и 15 октября в Санкт-Петербурге состоится Java-конференция Joker 2016. Java-спикеры из России, США и Европы приедут на Joker, чтобы поделиться с вами своими мыслями и идеями.

Joker №4. Больше, сильнее, интереснее

Это будет уже четвертая по счету конференция Joker в Питере. Спикеров и докладов, спонсоров и стендов, участников и экспертов будет больше, чем было в прошлые разы, поэтому каждому пришедшему будет чем заняться! Формат останется прежним: 2 дня, доклады по 60 минут, перерывы по полчаса — чтобы голова не перегревалась и было время спокойно со всеми пообщаться. Мы впервые опробовали формат с длинными перерывами на прошлом Joker, и он настолько всем понравился, что мы обязательно его оставим.
Читать полностью »

Как должна выглядеть .NET-конференция в 2016-м, когда в .NET-мире происходит тектонический сдвиг? Очевидно, что (ASP).NET Core очень сильно скажется на жизни разработчиков, но для большинства из них это произойдёт лишь спустя ощутимое время. О чём в таком случае рассказывать — масштабных новшествах, которые станут актуальны позже, или более привычных темах, которые важны здесь и сейчас?

Петербургский «Летний фестиваль разработчиков», состоящий из трёх конференций подряд, начался с DotNext 2016. Как там была разрешена возникшая дилемма, и как вообще прошёл DotNext? По снимку команды организаторов видно, что при всей хардкорности мероприятие не обошлось без летнего настроения, а все остальные подробности — под катом.

DotNext 2016: Между настоящим и будущим - 1

Читать полностью »

Docker — инструмент автоматизации развертывания и управления приложениями в среде виртуализации на уровне операционной системы. Docker позволяет развертывать приложения в переносимых контейнерах и управлять такими контейнерами. Распространяется компанией Docker как свободное программное обеспечение.
Мы поговорили с Никитой Цукановым из компании  Promarket о том, в чем преимущества Docker и как его использовать для развертывания серверных приложений и управления ими.

Docker на службе команды .NET-разработчиков - 1

— В чём актуальность контейнерной виртуализации приложений, как она упрощает развертывание приложений и управление ими?

Docker на службе команды .NET-разработчиков - 2 Корпоративные ИТ-команды очень часто сталкиваются с трудностями в развертывании приложений. Вполне «нормальна», к сожалению, ситуация, когда между разработчиками приложений и ИТ-администраторами отсутствует диалог, когда только один человек в компании знает, какие кнопки надо нажать, чтобы приложение развернулось, а администратор сам ничего сделать не может — потому что существует один-единственный человек, у которого есть сакральные знания о том, как нужно развертывать проект. Случается и такое, что нужно запустить, например, четыре разные версии (иногда почти одинаковые, но все же разные) на разных конфигурациях, на разных машинах, а потом это все поддерживать.

У меня довольно большой опыт подобных проектов, и я выделяю следующие основные проблемы с развертыванием приложений. Первая: очень длинная инструкция по развертыванию, очень сложный процесс развертывания, никто не понимает, что в каком порядке нужно развертывать. Вторая: одно приложение необходимо тиражировать для работы с разными клиентами. Третья: несколько серверных приложений должны работать на одном и том же сервере, и их окружение несовместимо между собой, к примеру, вы решили использовать у себя Linq2Excel, но он требует установки Access Database Engine, 32- и 64-битные версии которого не могут быть установлены одновременно.
Читать полностью »

До Mobius 2016 осталось 3 дня, и программа уже готова. Получилось 24 доклада о мобильной разработке: Android, iOS и кроссплатформенной. Чтобы внимательно изучить их все, надо потратить почти час времени, поэтому мы подготовили небольшой гайд по программе, которая сама собой разделилась на три направления, не привязанных к платформе:

  • On the Edge;
  • Hardcore;
  • Software Craftsmanship;

Однако этот пост не только о конференции – каждый из докладов попадает в программу из-за того или иного «грешка», распространенного среди программистов. Давайте посмотрим подробнее…

3 греха мобильной разработки на Mobius 2016 - 1


Читать полностью »

Про реактивное программирование уже написаны сотни статей. Фронтенд не смог избежать этого тренда, но интерес к теме до сих пор очень и очень высок. Поэтому мы просто не могли не взять интервью у одного из наших будущих докладчиков.
Итак, прошу любить и жаловать, Виктор Русакович. Родом из Минска, работает в компании GP Software.travel.
Виктор последние пять лет занимается (в основном) фронт-енд разработкой. Ну а начинал, как и большинство из нас, с jQuery.
Потом был backbone, angular v1. Последние полгода он работает в проекте на Redux/React.js (часто их путают с RxJS, но это немного другое).
RxJS: реактивное расширение для фронтенд разработки - 1

В твоем проекте активно используется реактив. Можешь объяснить, что это такое и с чего это движение началось? Сейчас у всех на слуху RxJS, RxJava, RxPython, RxBasic, ну и разве что RxBrainfuck нет.

Действительно, один из моих предыдущих проектов был насквозь пронизан использованием библиотеки RxJS. Все AJAX-запросы, работа с DOM-событиями, порой просто обработка статичных данных — всё это проходило через RxJS.

Для начала пара слов о «реактивном программировании» как таковом. Например, в жизни с «реактивностью» вы сталкиваетесь в Excel:
RxJS: реактивное расширение для фронтенд разработки - 2

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

var gross = Rx.Observable.just(5000)
var taxes = Rx.Observable.just(13)
var net = gross.combineLatest(taxes, (g, t) => g - t / 100 * g)

net.subscribe(money => document.getElementById('out').value = money)

В интернете можно найти много вариантов определения «реактивного программирования»: в Википедии, здесь, на Хабре. Тема серьёзная, даже существует специальный манифест, который можно подписать, если вы согласны с его идеями — только зачем? Лично мне все эти определения не нравятся, и я придумал свое:

Реактивное программирование — это когда ты вместо обработки событий по одному объединяешь их в поток и затем работаешь уже только с ним.
(Дата, Подпись, Печать).

RxJS: реактивное расширение для фронтенд разработки - 3

Если же говорить о том, как все это зародилось, то история появления RxJS такая.
Году в 2010-2011 ребята из Microsoft, которые работали c .NET, решили, что неплохо было бы и для JS сделать реактивную библиотеку. Дело в том, что в .NET уже достаточно давно был популярен LINQ. Например, вот так с помощью LINQ можно подсчитать количество вхождений определенного слова в строке.

       string searchTerm = "data";
       //Convert the string into an array of words
        string[] source = text.Split(new char[] { '.', '?', '!', ' ', ';', ':', ',' }, StringSplitOptions.RemoveEmptyEntries);
        // Create the query.  Use ToLowerInvariant to match "data" and "Data" 
        var matchQuery = from word in source
                         where word.ToLowerInvariant() == searchTerm.ToLowerInvariant()
                         select word;
        // Count the matches, which executes the query.
        int wordCount = matchQuery.Count();

Нам посчастливлось начать работать с самой первой версии библиотеки. Код тогда ещё был не в GitHub, а в каком-то собственном репозитории от Microsoft. Кроме того, особенности лицензии не позволяли включать в проект неминифицированную версию. Огромной проблемой была документация — приходилось читать статьи, написанные для .NET, и пытаться понимать на уровне концепций, невзирая на различия в языках. Именно тогда я понял, что могу писать на любом языке программирования. :)

Читать полностью »

До DotNext 2016 Piter (3 июня, гостиница Park Inn Пулковская) осталось всего ничего – каких-то пара дней. А вчера, изучая программу на сайте конференции, я поймал себя на мысли, что подробное изучение всех докладов, спикеров и хабропостов отняло у меня больше 2 часов чистого времени!

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

  • 4 доклада по ASP.NET Core;
  • 3 – про технику про инструменты разработки;
  • Доклад про кроссплатформенность .NET.

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

DotNext 2016 Piter: Full Stack .NET conference - 1
Читать полностью »

В июне исполняется год нашему сообществу .NET программистов SPB .NET Community. Я не буду подводить итоги и рассказывать, что было, так как… не до этого, заняты подготовкой новой встречи, двенадцатой! В четверг, 2 июня у нас приглашенные гости, ведущие докладчики конференции DotNext: гуру .NET Performance Sasha Goldshtein и активный участник .NET User Group Minsk Сергей Щегрикович. Темы, как мы любим: производительность, memory traffic, отладка, CoreCLR, внутренности, расчленёнка…

Win-Win: Спикеры DotNext на встрече SPB .NET Community и наоборот - 1

Читать полностью »

React, Redux, Angular, JavaScript, Dart — мир фронтенда находится на грани полномасштабной войны адептов разных технологий. Настало время героев — кто спасёт мир в веб-разработке и станет главным героем новой эпохи? Кажется, об этом знает фронтенд-тимлид компании Wrike Евгений Гусев. Нам удалось отвлечь его от работы и задать несколько вопросов, которые так волнуют тех, кто уже успел попробовать Angular 2 или ещё только слышал о нём. Евгений рассказал нам о  преимуществах Angular 2, скорости развития проекта, трудностях и радостях перехода на него. Мы успели обсудить React, JavaScript и Dart, — в общем, сравнить и изменить все силы. Впрочем, хватит тизеров. Магистр, вам слово!

Angular 2 несёт мир в галактику фронтенда - 1

— Расскажите о себе, о том, с чем работаете и как попали в Wrike?

Меня зовут Евгений, и я пишу на Dart и Angular 2. Наверное, странное начало, но надо расставить все точки над «i». Работаю фронтенд-тимлидом в компании Wrike, а начинал с С++ под микроконтроллеры, писал немного на том и на этом, потом дошёл до C#. Когда перешёл в Dell, начал плотнее общаться с фронтендом, причём самым банальным образом: кому-то нужно было писать UI, а никого не было. Причём писать начал сразу на CoffeeScript (да-да!). Годы шли, и я перешёл в компанию, в которой я сейчас и работаю, а именно Wrike. Мы разрабатываем крупную SaaS-платформу для управления задачами и совместной работы. Сейчас у нас почти 30 фронтенд-девелоперов, плюс команда верстальщиков, и мы, как Алиса из небезызвестной сказки, всё растём и растём.

Wrike прошёл довольно большой путь: от совсем небольшого стартапа до двух миллионов строчек кода за 9+ лет разработки. Конечно, за это время у нас сменилась куча фреймворков и технологий. Всё начиналось с Dojo, потом Ext.js. Мы писали на Polymer 0.5, и, когда он стал deprecated (с выходом версии 1.0), перед нами встал вопрос — что же выбрать? Собственно о том, какие у нас были варианты, и почему мы в итоге выбрали Angular 2, я и расскажу в своём докладе.

Читать полностью »

Разрабатывать мобильное приложение независимо для разных платформ, или изо всех сил налегать на кроссплатформенные средства? Многие скажут, что это заведомо ошибочная постановка вопроса: у обоих вариантов есть свои преимущества и недостатки, так что единственно верного ответа нет. Но это не значит, что разговоры на эту тему могут быть лишь холивором, бессмысленным и беспощадным.

Во-первых, преимущества и недостатки обоих подходов будут совершенно по-разному сказываться в разных ситуациях. Значит, этот вопрос стоит рассматривать не в вакууме, а применительно к конкретным условиям. А во-вторых, нюансы ещё и меняются со временем: например, совсем недавно Microsoft, купив Xamarin, сделали этот продукт бесплатным. Означает ли это, что привычные нам «за и против» пора пересмотреть?

Кроссплатформенная мобильная разработка: вопросы взрослым - 1

Мы задали несколько вопросов трём специалистам, занимающимся мобильной разработкой на заказ и хорошо знакомым с тем же Xamarin: кому ещё оценить спектр возможных ситуаций, как не им, задействованным в проектах разного масштаба и характера? Нашими собеседниками стали:

  • Михаил Самарин (Futurice, бизнес-директор)
  • Денис Кретов («Нотиссимус», технический директор)
  • Максим Pocheshire Евтух («Нотиссимус», разработчик)

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js