Бэкенд и «золотые молотки»

Привет, коллеги!

Мы анонсировали конференцию, посвященную Desktop UI & Business Application. В поддержку, чтобы посмотреть на настроения публики, была опубликована статья «WPF живее всех живых», которая оказалась дискуссионной и заставила нас в несколько другом свете взглянуть, на то, что и как мы хотим донести до широкой публики.

Как показали комментарии, не WPF единым живет десктоп разработка. Есть порты Qt для .NET, есть WinRT, если в эпсилон окрестности от дефолт-сити есть спецы по этим технологиям, которые хотят высказаться – у нас есть трибуна! Для этого все и задумано, чтобы показать различные варианты для ваших проектов.

Буквально вчера закончилась онлайн конференция dotNetConf 2015, которую, исходя из сообщений, Microsoft скорее возродила, нежели придумала заново. Конференция, судя по содержанию старается покрыть все основные области использования языка, это мультиплатформенность, веб, десктоп, доставка приложений, интеграция с Xamarin, будущее .NET, .NET Core, Roslyn Analyzer и другие темы. На мой взгляд, это генеральная репетиция перед конференцией //build, которая состоится в конце апреля-начале мая.

Про золотые молотки

Кроме WPF для энтерпрайз разработчиков есть еще много тем, на которое можно поговорить, и львиная доля разговоров всегда упирается в бэкенд. Различных дизайн-шаблонов для корпоративных приложений очень много, и большая их часть посвящена бэкенду. Мартин Фаулер посвятил этому книгу, которая, насколько я смог увидеть за время тренингов, является настольной для многих разработчиков и тим-лидов. Из шаблонов, описанных там, вырастают конкретные инструменты, которые позволяют решать задачи наиболее эффективным способом.

И вот здесь часто заключается ловушка, которая зовется «Золотой молоток», которую Абрахам Маслоу сформулировал так: если из инструментов у вас есть только молоток, то любая проблема вам видится гвоздем.

Это высказывание как нельзя лучше подходит ко многим областям разработки программного обеспечения. За примерами далеко ходить не надо. Как мне кажется, самая популярная тема относительно бэкенда: «Как лучше получить и записать данные в базу?» После этого часто дискуссия скатывается к одной из дисциплин Специальной олимпиады. Например, сейчас очень популярен EntityFramework, который уверенно теснит, или может быть уже потеснил NHibernate – старожила и монстра корпоративной разработки. Ничего не имею против NHibernate и EF, но когда все нужды проекта сводятся к чтению пары таблиц и вызову пары-тройки процедур, использование этих инструментов вызывает недоумение. Ведь есть Link2db (ex. BLToolkit), Dapper и куча других Micro ORM, которые могут быть легче в настройке и использовании, каждый может найти себе нужный инструмент. Даже базовые средства .NET Framework не стоит списывать со счетов.

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

Это только один из примеров, почему стоит организовывать и ходить на конференции – узнать, что твориться вокруг и узнать о новых для себя инструментах, узнать о новых для себя подходах. Ни одна конференция не научит вас использованию новой технологии, но трудно начать изучать то, о чем не имеешь ни малейшего представления, так?

На конференции Desktop UI & Business Application Андрей Колчанов, технический эксперт Flexberry platform, как раз расскажет об альтернативной ORM и сравнит использование и быстродействие в основных сценариях использования.

Кривая обучения

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

Когда долго работаешь над одним проектом, или используя один и тот же набор инструментов, то количество не обязательно переходит в качество. Можно производить одни и те же операции изо дня в день, набивать тупой код для клонирования объектов вручную и многие другие вещи, которые приводят к экономическому результату. В итоге приложение все же будет написано и возможно даже без сильного срыва сроков, потому что программисты будут печатать вслепую как лучшие стенографистки. Но это экстенсивный рост навыков, без глубины, без наполнения качеством. Почему-то даже луддиты вспоминаются. Наверно потому, что я опять вспоминаю тренерскую практику, когда у каждого установлен ReSharper, но никто, например, не использует Alt+Insert для создания шаблонных файлов, а также другие возможности. Но опыт использования может быть более 2х лет. Отчего же такое происходит?

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

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

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

Отчего же появляются такие «новички»? На мой взгляд, причина не в какой-то особенной лени, а в незнании где взять вектор развития, некоторый вакуум общения с коллегами по индустрии. Именно живого общения с другими живыми программистами, потому что в этом случае не возникает идеализации образа и проще обсудить, как нам кажется порой «элементарные» вопросы, связанные с разработкой. Именно живое интерактивное общение, может вывести из тупика, помочь избавиться от синдрома «золотого молотка».

Несмотря на всю приписываемую программистам интровертность, мы остаемся социальным видом и общение жизненно необходимо, для обмена знаниями и рождения нового знания на стыке технологий. Таким стыком мы выбрали десктоп и бэкенд. Поэтому, даже если ваше «чувство прекрасного» = «функциональность», как на скриншоте — конференция будет полезна. Вы сможете узнать больше о том, как собрать и скомбинировать еще больше данных в удобной форме и быстро и эффективно сохранить/загрузить из хранилища данных. Это ли не прелесть?

 

Оставить комментарий