Вы когда-нибудь встречали дерзкого панка, который вас бесит, но он настолько чертовски талантлив, что вы не можете не захотеть работать с ним? Именно так я себя чувствовал, когда впервые встретил Дэвида Уолша несколько лет назад. С тех пор я видел, как он превратился в уважаемого и часто цитируемого разработчика программного обеспечения, а совсем недавно — нового отца. Он не утратил своей злости и отваги и продолжает ежедневно оттачивать свои навыки, часто делясь своими лучшими советами в своем потрясающем одноименном блоге.
Пришло время получить немного больше информации о том, что заставляет Дэвида тикать, и у меня была возможность задать ему несколько сложных вопросов.
Q Глупый вопрос, но почему вы выбрали домен «.name» для своего блога?
Домен моего блога изначально был «bludice.com», но я решил сделать бренд для себя, поскольку BluDice ничего не значит и, конечно, не поможет мне в моей карьере. Все соответствующие .com были взяты, и так как я хотел маркировать свой блог после себя, .name просто казалось подходящим. Оглядываясь назад, я должен был стараться найти .com. Я купил «david-walsh.com» несколько лет назад, так что, возможно, я когда-нибудь перейду к этому.
Q Когда мы впервые встретились, вы были большим сторонником MooTools . Вы все еще участвуете в проекте?
Я не участвую в проекте так близко, как раньше, и не так сильно, как хотелось бы. Обстоятельства работы (работа в SitePen в течение двух лет, который является магазином Dojo ) отвлекли мое внимание от MooTools. Я все еще нахожусь на IRC-канале разработки MooTools каждый день и все еще в курсе того, где находится следующая версия MooTools, поэтому я достаточно вовлечен, чтобы знать, что происходит в любое время. Я также надеюсь сделать это на следующем MooTools Hackathon в Лондоне.
Q Можно с уверенностью сказать, что jQuery завоевал сердца большинства веб-разработчиков. Как это повлияло на план развития MooTools?
MooTools был создан для предоставления модульной компактной утилиты JavaScript на основе классов, которая в то время отличалась от цели jQuery. Популярность jQuery никак не повлияла на дорожную карту MooTools. Цели и миссия MooTools никогда не менялись сверх того, что мы ставили перед собой. Разработчики считают, что между платформами JavaScript существует конкуренция или ненависть, и она просто не существует и никогда не существовала.
В Всегда была такая «вещь» между командами jQuery и MooTools (мне нравится называть это гиперконкурентностью). Казалось, что оба должны были бы сосуществовать, но это не всегда удавалось. С точки зрения MooTools, какие основные проблемы вы видели?
Создание кода дерьма возможно с любой структурой …
Я не могу ответить на этот вопрос для команды MooTools, поэтому мой ответ строго отражает мои собственные мысли. Напряжение между jQuery и MooTools создавалось членами сообщества, а не обязательно самими членами команды. Возможно, на стороне jQuery было что-то еще, но я знаю, что мы мало думали о jQuery.
Основная проблема, с которой столкнулся jQuery, с точки зрения других пользователей фреймворка JavaScript (не только MooTools), заключается в том, что низкий барьер входа позволяет разработчикам «n00b» создавать много неоптимизированного дерьмового кода. Создание дерьмового кода возможно с любой платформой, но другие фреймворки требовали большего знания JavaScript и, таким образом, в большей степени могли избежать этой проблемы.
У меня также возникает ощущение, что другие пользователи фреймворка зацикливаются на популярности jQuery и видят в ней плохой инструментарий; то есть аналогия «Макдональдса», что они супер популярны, но это не делает их хорошими. К сожалению, в моем опыте работы с целой кучей различных сообществ JS-инструментария, jQuery, похоже, получил наибольшие негативные комментарии.
Меня давно обвиняют в том, что я «ненавистник jQuery», и хотя я признаю, что jQuery не моя чашка чая, и я не решаю использовать его в своих личных проектах, я далек от ненависти jQuery. Это инструмент, как и любой другой, он очень помог миллионам разработчиков по всему миру, и это то, что вы должны уважать.
Q Даже когда вы работали в команде MooTools, вы создали немало контента jQuery. Как это прошло с остальной частью команды Moo?
Кроме раздевалки раздевалки, которая, я уверен, входит в состав какой-либо группы, никто ничего не сказал, и зачем им это? На самом деле создание учебных пособий и демонстраций по зеркальному отображению с помощью jQuery и MooTools помогло преодолеть видимый разрыв кода между двумя платформами и, как мы надеемся, заставило пользователей каждой платформы попробовать другие. Я многому научился из опыта, и, надеюсь, другие тоже!
Q Я думаю, что люди считают само собой разумеющимся, насколько трудно управлять сообществом OSS. С какими проблемами вы столкнулись как один из наиболее активных членов команды?
Есть ряд проблем, связанных с активным участником сообщества открытого кода. Организация невероятно сложна, потому что вы должны иметь дело с языковыми барьерами, культурными различиями, различиями часовых поясов и интересными личностями. Вам также нужно помнить, что работа с OSS обычно не является основной работой разработчика (таким образом, им не платят за работу OSS), и что у них также есть семья, с которой можно проводить время. И, конечно же, большинство разработчиков OSS просто хотят разрабатывать, а не продвигать или официально выпускать работу своевременно.
Чтобы добиться успеха в сообществах с открытым исходным кодом, важно быть понимающими, терпеливыми и готовыми работать с разными типами людей. У каждого доброе сердце, и все хотят добиться успеха, но у каждого блестящего разработчика есть свой путь к достижению цели. Как только вы научитесь управлять своими участниками, ваш проект будет успешным, и к вам присоединятся другие участники и пользователи!
В индустрии есть большой толчок от библиотек и фреймворков, вместо этого больше внимания уделяется чистому JavaScript. Как вы видите два смешения? Кажется, они должны дополнять друг друга, а не один или другой.
В идеальном мире пользователи JavaScript-фреймворка использовали бы нужные им модули и избегали массовой нагрузки.
Да, они должны быть бесплатными, но есть несколько проблем, с которыми мы столкнулись после взрыва использования фреймворка. Первая проблема заключается в том, что разработчики будут включать целую среду (анимацию, AJAX и т. Д.), Чтобы решить одну проблему, и, таким образом, раздувать свой веб-сайт, когда для этого понадобится микрофреймворк или несколько строк чистого JavaScript. Другая проблема заключается в том, что использование фреймворков и их абстракций не позволяет разработчику по-настоящему расширить свои навыки JavaScript.
В идеальном мире пользователи JavaScript-фреймворка использовали бы нужные им модули и избегали массовой нагрузки; к сожалению, сегодня это не достаточно распространенная практика. Однако все больше и больше разработчиков применяют эту практику, поэтому я надеюсь, что в будущем такой дискуссии не будет.
В Как вы видите новые функции ES6, влияющие на функциональность существующих библиотек? Увидим ли мы их более специализированными?
Им придется стать более специализированными и развиваться, иначе они окажутся неуместными. Конечно, мы все знаем, сколько времени потребуется браузерам для реализации этих типов новых функций, поэтому мы предполагаем, что в то же время будут присутствовать те же фреймворки JavaScript. Однако главное, на что мы можем рассчитывать, это то, что развитие — единственный способ выжить любому проекту.
Q Ваша работа в SitePen позволила вам углубиться в каркас Dojo. Как вы думаете, в чем причина того, что он не поднял уровень популярности других проектов, таких как jQuery, Prototype и MooTools, тем более что многие функции, которые мы продвигаем сегодня, были в Dojo какое-то время?
Некоторые JavaScript-фреймворки тяжело продвигаются, а некоторые нет. Разработчики Dojo определенно не являются. У Додзё также было клеймо не иметь хороших документов, что могло бы оттолкнуть людей. Я также утверждаю, что Dojo всегда уделял больше внимания созданию многофункциональных «веб-приложений», а не базовых веб-сайтов. Документация Dojo стала намного лучше, и они продолжают расширять границы на стороне клиента больше, чем большинство JS-инструментариев, поэтому я бы очень рекомендовал разработчикам попробовать Dojo!
Q Теперь, когда вы работаете в Mozilla, вы видели какие-либо серьезные изменения в структуре вашей разработки, учитывая, что вы работаете с большим веб-ресурсом и находитесь вдали?
Быть удаленным разработчиком не играет такой большой роли, как многие думают.
Переход от создания частных внутренних веб-приложений к работе над важным веб-сайтом, который ежемесячно получает миллионы просмотров, заставляет вас пересмотреть процесс разработки. Команда MDN ( Mozilla Developer Network ) приняла частый цикл выпуска, который обновляет код много раз в день. Выборочная проверка и модульные тесты становятся все более важными по мере добавления новых функций. Локализация также играет важную роль в развитии MDN. Каждый фрагмент кода требует много размышлений, поэтому мы проверяем код перед объединением любых изменений.
Быть удаленным разработчиком не играет такой большой роли, как многие думают. Наши инженеры QA и ИТ-специалисты всегда готовы помочь. Mozilla сделала дистанционное развитие бризом.
Q Как команда разработчиков в Mozilla так хорошо сотрудничает, особенно когда многие из них находятся на расстоянии?
Mozilla преуспевает в подборе персонала, поэтому я работаю с десятками блестящих, преданных своему делу и отзывчивых разработчиков. Большая часть общения осуществляется через IRC и билеты Bugzilla, и мы никогда не стесняемся прыгать на Vidyo или Skype, чтобы получить немного личного времени. Удаленные сотрудники проводят еженедельные встречи 1: 1 с менеджерами, чтобы убедиться, что все идет гладко. Большинство команд проводят двухмесячные встречи, на которых команда может обсудить, какой прогресс достигнут и какие цели следует решать дальше. Mozilla обеспечивает идеальный баланс свободы и структуры, и это главная причина, по которой я так счастлив быть Mozillian.
В: Как миссия и альтруистический характер Mozilla повлияли на то, как вы смотрите на программное обеспечение и вклад в сообщество?
Поддержка Mozilla открытого исходного кода и дальнейшие усилия по улучшению сети изменили мои взгляды на разработку OSS. Мои коллеги вдохновляют, а эта энергия заразительна. У большинства моих коллег есть популярные проекты с открытым исходным кодом, и они с радостью присоединяются и помогают при необходимости. Большинство сайтов Mozilla и серверных приложений размещаются на GitHub, даже такие сайты, как Firefox Marketplace и Mozilla Developer Network, поэтому в основном все доступно для сообщества. Когда я попал в Mozilla, я был удивлен тем, сколько участников было в семействе сайтов Mozilla. Мне понравилось сообщество Open Source, и мой опыт поднял эту любовь на новый уровень; Я не могу представить себе работу над проприетарным программированием когда-либо снова.
Q Вы недавно добавили (поздравляю!). Как изменился ваш баланс между работой и личной жизнью, когда вы стали новым отцом?
Наличие ребенка ставит жизнь в перспективе. В течение последних пяти лет я проводил большую часть ночей с работой, а затем провел остаток ночи за компьютером, записывая посты в блоге. Я многое получил от этого, но меня часто сгорали. С Джеком я рад не тратить столько свободного времени на компьютер, а вместо этого предпочитаю проводить его на прогулках, брать его в гости к бабушке с дедушкой и вообще просто выходить из дома. Видя улыбку вашего ребенка, вы понимаете, что есть нечто большее, чем оптимизация цикла и работа с отрицательными твитами.
В Как вы отстраняетесь от работы, считая, что вы удаленный работник?
Работа на дому сладка; Я могу сэкономить деньги на газе и еде, прогуляться, когда я расстроен, избежать отвлечения от коллег, установить свой собственный график работы и т. Д. Самый большой недостаток — это слишком много работать, в чем я был виноват годами. сейчас. Однако, как и модерирование чего-либо еще, вам нужно заняться рутиной и отрезать себя в определенный момент времени. Вы также должны отрезать себя, когда вы чувствуете ледяной взгляд вашего супруга … 🙂
Q Вы видите себя подталкивающим своего сына в программирование? Почему или почему нет?
Давайте будем честными, у нас довольно хороший концерт.
Если он будет заинтересован в развитии по мере взросления, я, конечно же, не буду отталкивать его от этой карьеры. Давайте будем честными, у нас довольно хороший концерт. Мы можем (иногда) работать из дома, получать хорошую оплату / льготы, путешествовать по всему миру, зарабатывать дополнительные деньги на консультациях из дома, и, как правило, у нас не будет проблем с поиском работы. Технические работы идут со всеми этими преимуществами.
Конечно, программирование имеет свои недостатки. В сообществе JS есть много негатива, в некоторых ситуациях удаленное сотрудничество может стать кошмаром, и клиенты часто не понимают работу, связанную с созданием надежного сайта / приложения, поэтому оправдать цену становится сложно.
В конце концов, если это то, что он хочет, я с радостью помогу ему на этом пути.
Q Вам удалось успешно монетизировать свой блог. Есть ли какие-нибудь секреты или советы, которыми вы хотели бы поделиться для тех, кто хочет сделать то же самое?
Мой совет двоякий. Во-первых, выберите спонсоров, которые подходят для основных тем вашего блога. Во-вторых, не переусердствуйте с размещением рекламы, помните, что простота потребления по-прежнему самая важная вещь. Авторы также должны избегать анимированных GIF-объявлений, текстовых ссылок и автоматически воспроизводимых видео. Поскольку ваш сайт продолжает использоваться и вы регулярно размещаете контент, доход будет поступать.
Q Некоторые люди отговаривают блоггеров от размещения рекламы. Как вы рационализируете размещение рекламы на своем сайте и как вы определяете, нужна ли вашим читателям конкретная рекламная кампания?
Меня невероятно раздражают люди, которые утверждают, что в блоге не должно быть рекламы, и по многим причинам я мог бы продолжать в течение нескольких часов, но вот несколько кратких замечаний:
- Критиковать кого-то еще за то, что он зарабатывает деньги (предполагая, что это законно), — очень неприятная вещь.
- Разработчики, которые часами пишут учебные пособия, предоставляют решения для ошибок и обеспечивают вдохновение кода, должны быть вознаграждены каким-то образом, это по сути другая работа.
- Альтернативой является не ведение блога, а внештатная работа, которая помогает только клиенту. Идеи и решения для блогов помогают тысячам людей и без каких-либо прямых затрат для них.
- Если бы я спросила мою жену и новорожденного, что они думают о том, что «@somedude на Twitter в Godknowswhere» критикуют меня за рекламу, они бы смеялись. Они хотят получить финансовую поддержку, им все равно, что об этом думает незнакомец.
- Слишком много людей путают открытый исходный код со «бесплатным»; т.е. код бесплатный, все остальное должно быть бесплатным. Это далеко от базы.
Выбор кампании, как правило, самая легкая часть. Вы принимаете рекламу от компаний, которыми вы пользовались, в которые вы верите и которые заслуживают уважения. Придерживайтесь этих правил, и вы обязаны делать все в порядке.
В конце концов, я не понимаю людей, которые чувствуют необходимость комментировать, как другие зарабатывают на жизнь; это мелко, грубо и опять стыдно.
Q Вы недавно добавили форумы на свой сайт. Управление форумами требует много работы. Зачем вам это делать, когда существует так много авторитетных форумов поддержки?
Я создал раздел форума по нескольким причинам. Первая причина заключается в том, что, поскольку официальные форумы, размещенные на MooTools, были закрыты, а «неофициальные форумы, на которых размещаются», были закрыты, для пользователей MooTools не было централизованного места для получения поддержки. Я также хочу, чтобы на моем сайте появилось больше сообщества. Наконец, я получаю около десятка электронных писем в день с просьбой помочь с фрагментом jQuery, с проблемой PHP или с ответом на конкретный пост в блоге. Я бы предпочел, чтобы эти вопросы были опубликованы на форумах, чтобы (1) другой пользователь мог помочь, если я не смогу, и (2) я могу избежать получения и отправки одних и тех же электронных писем. Похоже, беспроигрышная все вокруг.
В заключение
Спасибо, Дэвид, за участие в этом интервью. Мы действительно это ценим.
Чтобы связаться с Дэвидом и узнать больше о нем, обязательно посетите его веб-сайт .