DevConf — конференция web-разработчиков, а современный веб, точнее его UI часть, все больше и больше уходит на front-end. Такие технологии, как React от Facebook, позволили фронтэнду вырасти из JS-надстройки над HTML в серьезную технологию. И React Native, позволяющая писать нативные приложения — логичное развитие. Представляем интервью с открывающим секцию JS нашей конференции, Денисом Измайловым ( DenisIzmaylov ), который расскажет про его опыт разработки мобильных приложений на React Native с использованием Relay и GraphQL.

У тебя такой солидный опыт разработки. Скажи, с чего ты начинал?
Это были лихие 90-е. Мы развлекались, как могли. 1998 год. Сибирь. Старенький 486-й процессор. EGA-монитор с разрешением 640x350 (сейчас даже аватарки его превосходят). Загрузочные дискеты с MS-DOS. Жесткий диск? Это было роскошью. Интернет? Тогда я и слова такого не знал. У меня был QBasic от Microsoft и Pascal от Borland. Голодный до знаний, с горящими глазами, до поздней ночи я разбирался, как делают программы взрослые, а утром шёл в школу и чертил интерфейсы будущей ОС в тетрадке.

Сейчас на каждую строчку кода приходится мегабайт документации. Крупнейшие корпорации Google, Facebook, Microsoft?—?открывают исходные коды своих сложнейших решений. Оформляют это всё. Пишут документации, книги, проводят конференции.

Всё, что было у меня тогда?—?это Volkov Commander, Hex-редактор и бинарный код.



Я занимался тем, что называется Reverse Engineering?—?запускал Disassembler, получал машинный код из программ и драйверов:



Составлял карту прерываний и портов, воспроизводил это на уровне Assembler и далее перекладывал на более высокоуровневые языки программирования (C++ или Pascal).

У меня компьютер тогда не позволял запустить Windows, когда у друга был Pentium 200MMX с 3D-картой. Меня это злило. Я написал на Borland Pascal 7 свой GUI, который визуальный один-в-один повторял Windows, работал с мышкой, вот это всё. Исходники где-то на дисках в коробке лежат. В старости буду внуков пугать.

Позже появились в киосках журналы “Компьютерра”. Ещё позже?—? Интернет, а какое-то время спустя и Open Source. Никто тогда в него даже не верил. Какой разумный человек будет выкладывать исходный код своих программ?

Время летело быстро. 2000 год, миллениум. Компьютер мощнее, Windows, Delphi и визуальные компоненты, что так сильно сегодня будоражит умы Front-end разработчиков. Когда несколько лет назад появился React.js меня охватила ностальгия, как при встрече со старым другом.



Поэтому, когда меня сейчас спрашивают:
?—?Как давно ты работаешь с React.js?

Я улыбаюсь и отвечаю:
?—?16 лет.

Будем честными, Front-end разработка окончательно перестала быть вёрсткой HTML и его доработкой с помощью jQuery или Angular. Вместе с приходом webpack и React (хотя был ещё Ember) это стало разработкой, упаковкой и поставкой полноценного ПО.

Кстати, бесплатный совет для тех, кто хочет быть “на коне” в мире React.js, погуглите такие вещи:

— Delphi 7 VCL (с 1995 года, сейчас это React.js и React Native)
— Window Messages (с 1985 года, сейчас это Redux)
?—?DevExpress для Delphi 7

А на выходных полистайте книгу Professor Frisby’s Mostly Adequate Guide to Functional Programming. Будете приятно удивлены.

Несколько лет назад ты поменял направление, сосредоточился на Front-end. С чем это связано?
За 10 лет я прошёл путь разработки системного и прикладного ПО, веб-приложений и мобильной разработки (2006 год, Windows CE):



Несколько лет занимался консалтингом и оптимизацией бизнес-процессов в крупных компаниях с использованием решений на платформе 1С. Не смотря на то, что у нас в России принято высмеивать её среди разработчиков, их подходы по организации и работе с данными заслуживают особого внимания. Чаще всего разработчикам просто не нравится их “русскоязычный” стиль программирования, но как вы назовёте на английском языке отчёт о среднесписочной численности внешних совместителей так, чтобы следующий за вами программист смог быстро его найти, когда бизнес попросит доработку? Про Bus Factor все помним?

Многие привыкли менять только то, что вокруг, но единицы готовы изменить своё восприятие и помогать решать задачи обществу или конкретной группе людей. Думать ни о своих личных потребностях (текущая волна Resume-driven Development на самом деле большая проблема), а о системе в целом.

5 лет назад я работал в командах над проектами для Nokia-Siemens Network и с несколькими европейскими стартапами. Тогда я заметил, что в web-проектах задачи Back-end, которым я тогда занимался, становятся типовыми (CRUD, ACL, управление конфигурациями). Типовыми?—?значит могут быть автоматизированны, что мы позже увидели в виде PaaS-решений таких как Parse.com.

При этом требования к UI и JavaScript-приложениям начали расти. От того, насколько у вас хороший UI, насколько высокая адаптивность к изменениям, насколько правильный и современный UX?—?в конечном счёте и зависит успех продукта. Особенно в условиях высокой конкуренции. Это большая и ответственная задача, которая была слабо решена тогда и сохраняет высокую актуальность для бизнеса сегодня.

Были большие проекты и сложные задачи. Над чем работаешь сейчас?
Да, было много масштабных проектов, как для больших государственных структур, так и для крупнейших интеграторов. Но в силу NDA я не могу о них рассказывать ещё несколько лет. Отчасти именно поэтому с нового года я принял решение полностью сосредоточиться на продуктовых проектах для Западной Европы и США.

Сейчас у меня команда более 20 сильных разработчиков и продолжает расти. Многие из них сидят в офисах Яндекс, Rambler, Mail.Ru как штатные сотрудники, решают свои основные задачи быстрее и эффективней на несколько часов, а в высвободившееся время помогают нам делать проекты, параллельно прокачиваясь в актуальных технологиях от меня лично и других членов команды. Таким образом, увеличивая свой рабочий день на 2 часа, они ещё и раза в два увеличивают свой доход. Я публиковал интервью об этом на Medium.

Текущие проекты, которые я готов назвать:

?—?поисковая система с повышенной приватностью (европейского рынок, изоморфное React-приложение с поддержкой IE8 и отключённого JavaScript, микросервисы на Golang и C++, облачная highload-инфраструктура на базе CoreOS и Kubernetes);

— мобильное приложение для персонального бизнес-коучинга (американский рынок, React Native, Relay, GraphQL);

— образовательное мобильное приложение (международный рынок, React Native, Relay, GraphQL);

?—?финансовая платформа (американский и австралийский рынок, React, Redux).

Сейчас ты активно участвуешь в конференциях, делишься опытом. Кто твой слушатель? Кому будет интересен доклад?
Скоро будет два года, как я активно выступаю на конференциях, профессиональных митапах и участвую в развитии индустрии. После выступления на Agile Days 2016 про тренды в JavaScript и web-разработке, какое-то время у меня было желание сделать паузу с конференциями и начать “прокачивать” самых сильных членов команды.

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

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

Моя задача на конференциях донести рынку правильный путь, показать направления и найти кандидатов, которые имеют хороший опыт (пусть даже и с другими технологиями?—?например, у нас отлично ребята из Ruby-мира взлетают) и через активную работу смогут сделать профессиональную и личностную трансформацию за год.

Приходите пообщаться с Денисом и сотнями других разработчиков на DevConf 2016. У меня точно будут пара «вопросов» про то, что наш, бэкэндовый, труд можно автоматизировать
Поделиться с друзьями
-->

Комментарии (26)


  1. xakepmega
    13.06.2016 13:08

    Поправьте заголовок, выглядит как-будто у него 16 лет опыта именно работы с react


    1. Adelf
      13.06.2016 13:09

      Кавычки добавил. Хотя думаю, вряд ли кто-то на самом деле подумал, что React.JS из 2000-го ;-)


      1. taliban
        13.06.2016 18:55
        -1

        Всетаки даже с кавычками заголовок смущает,«DevConf 2016: Интервью с разработчиком с 16-летним опытом о React.JS» было бы более актуально.


        1. Adelf
          13.06.2016 19:19
          -1

          Я бы с удовольствием заменил на просто «интервью с React-разработчиком». Но тогда почти все комменты потеряют актуальность :)


  1. MrCheater
    13.06.2016 13:10
    -1

    Если бы мне кто-то сказал, что является разработчиком с 16-летним «опытом» React.JS — я бы дальше не стал его слушать. И аналогии с другими более старыми технологиями здесь неуместны. Первый коммит May 29, 2013


    1. Adelf
      13.06.2016 13:16

      Тем не менее, подход который предложили в React действительно весьма схож с тем, что предложили в свое время в Delphi.


      1. MrCheater
        13.06.2016 13:26
        +10

        Хабрахабр — не желтая пресса


      1. sshikov
        13.06.2016 13:39
        +5

        Ну да, ну да. А не хотите ли сказать, что идею ООП все позаимствовали у Smalltalk, и поэтому React не 16 лет, а скажем 36?

        Подобные допущения могут себе позволять патентные тролли, но не разработчики.


        1. Adelf
          13.06.2016 13:43

          Там в интервью автор говорит об этих аналогиях. На основе своего опыта. И я их разделяю. Я помню своё знакомство с Delphi и React. Очень похоже.


          1. MrCheater
            13.06.2016 13:52
            +2

            React ближе всего к View из MVC. А gui-шный View на большинстве языков довольно похож. С этим никто не спорит, и этим никого не удивить


            1. Adelf
              13.06.2016 13:53
              +1

              View из MVC у каждого своё. У кого-то это вообще HTML шаблонизатор… Я же о настоящем компонентном подходе построения UI.


          1. sshikov
            13.06.2016 14:00
            +2

            Я прекрасно понимаю, что это интервью. И более того, что это в каком-то смысле в шутку. Тем не менее, мне это тоже показалось сильным преувеличением.


            1. Adelf
              13.06.2016 14:01
              +2

              Ну да… есть немного. Я просто не знал как назвать получше. С этим всегда проблемы.


              1. jt3k
                16.06.2016 06:54

                Нормальное название. Для широких масс самое то.
                Более уточняющее название было бы излишним. Многие бы не поняли.


  1. trikadin
    13.06.2016 14:14
    +15

    Судя по странице вк, Денис Измайлов 1986-го года рождения, что путем несложного вычитания даёт, что в 1998 году ему было 12 лет. В 12 лет он дизассемблирует программы, перекладывает их ассемблерный код на высокоуровневые языки и пишет свой гуй для операционной системы. При этом сам он утверждает, что занимается разработкой 16 лет, т. е. с 2000-го года. Даже если взять поправку на то, что цифра примерная, и 16 лет было год назад, например, то получается, что года с 1999-го он только начал программировать (видимо, сразу с дизассемблирования программ).


    Короче ребят, у вас явно что-то не сходится, и это вызывает серьёзный скепсис.


    1. DenisIzmaylov
      13.06.2016 15:10
      -3

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

      Начинал с Basic в 12 лет (сейчас дети и раньше начинают программировать), затем Pascal, затем Assembler, затем Disassembler, где-то там C++ был. Это не какой-то исключительный случай, кстати, я знаю много схожих историй и думаю среди нас тут на Хабре много таких, кто начинал рано, делал много.

      Я сейчас скину ссылку, но прошу сильно не смеяться — на тот момент мне было (путём того же несложного вычитания) 16 лет:

      + https://web.archive.org/web/20041206005946/http://cmail.info.kuzbass.net/~steroid/index.php?page=resume


      1. trikadin
        13.06.2016 15:19
        +4

        Глаз зацепился, а дальше уже интересно стало. Не ставил целью обвинять кого-то во вранье или чём-то таком, просто отметил. В целом, так и подумал, что ошибка округления.


    1. Fedcomp
      13.06.2016 18:58
      +4

      А что собственно не так с программированием в 12 лет?


  1. velvetcat
    13.06.2016 18:40
    +2

    Опять пытаются задавить опытом. Ассемблер, мало памяти, нет Интернета, Делфи. Это все, конечно, очень романтично, но к современной разработке не имеет никакого отношения.

    > Будем честными, Front-end разработка окончательно перестала быть вёрсткой HTML и его доработкой

    Парни, да никто же вас и не упрекает.

    > Delphi и визуальные компоненты, что так сильно сегодня будоражит умы Front-end разработчиков.

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

    Да, кстати, обработчики событий в Делфи не имеют никакого отношения к функциональному программированию. Это из мира ООП, а именно расширение функциональности класса шаблоном Template Method.


    1. igorch96
      14.06.2016 01:23

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


      1. AxeLWeaver
        14.06.2016 12:19

        Всплакнул… как раз синклер и ассемблер в мои 12 лет. Точнее не ассемблер, а машинный код…


  1. Akuma
    14.06.2016 00:09
    +2

    Перешел в статью только из-за заголовка. Стало интересно, как это опыт по React может быть 16 лет. Ну очень желто.
    Как сказали выше, задавить опытом тут не получится. Пусть он дизассемблировал програмы с 12 лет (в чем есть сомнения), с вебом это никак не связано и начинал он как и все с alert(123);, а React увидел в 2013 году, а Redux так вообще год назад и «опыта», даже в ковычках, у него 3 и 1 год соответственно.


  1. geroy
    14.06.2016 08:08
    +2

    Это были лихие 90-е.… 1998 год.

    Это вообще не лихие девяностые. Лихие закончились где-то в 1996
    Старенький 486-й процессор. EGA-монитор с разрешением 640x350 (сейчас даже аватарки его превосходят). Загрузочные дискеты с MS-DOS. Жесткий диск? Это было роскошью.

    Процессор среднего компьютера 1995 года, а вот остальное из 1990 примерно.

    И всё это дополняет опыт разработки на Реакт в 16 лет)


    1. maullerz
      14.06.2016 12:27

      Почему это Лихие 90-ые закончились в 1996?
      По моей памяти «лихость» продолжалась до 2000г как минимум.


      1. vladon
        16.06.2016 08:55

        И ещё начало и даже середину 2000-х зацепило


  1. ppravdin
    15.06.2016 20:33

    Характеристики первого ПК действительно занижены, а интернет в Сибири был более чем доступный начиная с 96го, не говоря про fidonet и тогда ещё распространённые bbs.

    В 99м помнится скачал первую матрицу в mpeg2 и HMM3 WOG на модеме, золотые были времена.