Давным-давно я нашел радость в цифровом мире. Недавно разработанное программное обеспечение для 3D дало возможность создавать воображаемые миры, когда я еще изучал архитектуру. И это было только начало более чем десятилетней работы 3D-художника и графического дизайнера, но это не та история, которую я хочу рассказать. Я пишу это как фронтенд-разработчик, и это путешествие начинается с событий, которые перевернули наш мир с ног на голову.

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

Все начинается с прогулки навстречу закату, когда я думаю о том, чем занимаюсь профессионально и какие чувства при этом испытываю. Я работал над интерактивными интерфейсами, видео и фотографиями, но зерно было посажено программным обеспечением для 3D и прекрасным сообществом, окружавшим его — Blender¹. Один из первых проектов, финансируемых за счет краудфандинга, когда он стал открытым исходным кодом, объединил увлеченное и полезное сообщество художников и разработчиков. И сообщество Blender, с которым я все больше и больше взаимодействовал в то время, также является местом, где я начал уважать разработчиков, которые создали инструменты, которые я использовал, а также силу программного обеспечения с открытым исходным кодом, все больше и больше. , и. Хотя он и не идеален, Blender был и остается сейчас более чем когда-либо функциональным и интересным в использовании инструментом, который находится в той же лиге, что и громкие имена в 3D-индустрии.

Одно из этих несовершенств привело меня к кодированию — когда мне нужно было написать плагин, экспортирующий геометрию на экран в виде векторов. И это было весело. В промежутках между 3D-моделями и фотосессиями я время от времени занимался программированием, либо расширяя Blender функциями, необходимыми для наших проектов, либо углубляясь в программное обеспечение, использующее графический подход к кодированию, такое как Ventuz² для графики в реальном времени.

Эта идея преследовала меня во время той летней вечерней прогулки, и к концу этой прогулки я обнаружил, что мне больше нравится программировать и что никогда не поздно следовать за своей мечтой. И есть один путь разработки, который устраняет разрыв между графическим интерфейсом и внутренним программированием: внешний интерфейс. Я также благодарен за поддержку моей жене, которая сама является фронтенд-разработчиком, поскольку она предоставила мне время, необходимое для погружения в учебный курс веб-разработки Ironhack³, который научил меня как основам веб-разработки, так и новейшим технологиям. Это ознаменовало начало семестра обучения, ночных поисков самых странных ошибок (на тот момент) и обращений за помощью к более опытным разработчикам.

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

После этого ускоренного курса, который дал мне мой первый уровень в качестве разработчика полного стека, который, по словам Дэйва Фарли⁴, дает мне возможность писать серверную часть на JavaScript, меня ждал новый мир. Мир интервью на фронтенд позицию. И в этом мире я искал компанию, которая не отставала в эти постоянно меняющиеся, интересные времена, которые мы все еще переживаем, и в то же время хорошо понимала человеческую сторону уравнения.

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

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

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

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

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

Тестирование во внешнем интерфейсе — один из таких инструментов, который я изучил в рамках одной из инициатив R&D от коллектива фронтенда. Это было похоже на обнаружение хорошего друга, который направляет ваше путешествие по кодированию в рамках проекта. В графике этого меньше. Некоторые правила и рекомендации могут быть активированы, а настройки установлены для работы в качестве барьеров. Хотя это немного похоже на статическое тестирование, оно может обойтись и без него, поскольку у графики есть одна замечательная особенность: мгновенная обратная связь на откалиброванном по цвету экране. Совершенно другое по сравнению с пирамидой тестирования или с более новой идеей, представленной Кентом С. Доддсом в отношении трофея тестирования⁶, его собственной интерпретацией идеи Гильермо Рауха: «Пишите тесты. Не слишком много. В основном интеграция». ⁷

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

Более двух десятилетий назад я погрузился в 3D, и это завораживало. Более двух лет назад я погрузился во фронтенд, и сегодня я в более счастливом месте. Как сказал Джеффри Зельдман⁸:

Давайте сделаем гуманизм, демократию и инклюзивность настоящим web3.0

[1] Blender3D: https://www.blender.org/

[2] Графика Ventuz в реальном времени: https://www.ventuz.com/

[3] Айронхак: https://www.ironhack.com/

[4] Канал Дэйва Фарли на Youtube: https://www.youtube.com/c/ContinuousDelivery

[5] диконий: https://diconium.com/

[6] Testing Trophy vs Testing Pyramid: https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications

[7] Твиттер Гильермо Рауха: https://twitter.com/rauchg

[8] Джеффри Зельдман в Интернете: https://www.zeldman.com/