Статьи

JavaScript и необходимость знать все вместе с Кристианом Хайльманом

Кристиан Хейлманн на Шоу Версионирования

В этом эпизоде ​​Showing Version Show к Тиму и Дэвиду присоединяется Кристиан Хейлманн, известный разработчик, спикер, автор и разработчик Evangelist в Microsoft. Они обсуждают необходимость узнать все о технологиях, имеют дело с синдромом самозванца, поощряют человеческий рост на рабочих местах, новые перспективы прогрессивного совершенствования и избегают «счастливого пути» в веб-разработке.

Показать заметки

Основные моменты разговора

Существует огромная проблема с людьми, которые подходят к таким людям, как мы, и ожидают, что мы будем знать все. Мы даже не можем допустить, что мы ничего не знаем, и это очень странная ситуация, в которой иногда. — [3:40]


Я думаю, что нам нужно много сочувствия, что есть много разных способов работы на нашем рынке. У меня был вкус всех их. Я думаю, что каждый должен какое-то время работать в агентстве, где вы должны постоянно использовать все виды технологий. — [6:30]


Итак, я думаю, для кого мы это строим? Мы строим это, чтобы дать основные замечания на конференции, или мы строим это, чтобы решить проблемы? Я думаю, что это отчасти потому, что люди до сих пор не понимают, что мы делаем, и все еще не ценят себя как экспертов. — [7:30]


JavaScript не выключен. JavaScript просто ненадежен. JavaScript не может быть загружен. JavaScript может быть медленным. JavaScript может вмешиваться. — [14:00]


Демонстрация JavaScript как вещи, о которой нужно думать, — я считаю неправильный подход. Нам нужно понять, что JavaScript — это данность. Это везде Это в каждом браузере. Это будет доступно. Существуют сценарии, в которых он не будет доступен и пойдет не так, но это крайние случаи, на которых нет смысла концентрироваться.

Нам следует гораздо больше сосредоточиться на том факте, что если мы говорим, что JavaScript — это данность, мы также несем ответственность за то, чтобы JavaScript работал. В настоящее время у нас слишком много JavaScript-решений, которые просто используют фреймворки для всего или имеют успешный случай и никогда не определяют случай ошибки. — [15:00]


Я думаю, что это не разовое состояние, прогрессивное улучшение. По определению, это прогрессивно. Сейчас у нас есть хорошая возможность начать владеть нашими интерфейсами. Это все о том, кто несет ответственность за интерфейс. Если мы говорим, что делаем это с помощью JavaScript, то мы также несем 100% ответственность за то, что выходит конечному пользователю. Если мы скажем, что не полагаемся на JavaScript, мы могли бы действительно предложить ужасное, ужасное решение для всех, кто работает подобным образом. — [18:40]


Я нанимаю людей, которые лучше меня. Я хочу, чтобы люди не соглашались со мной на собеседованиях и делали это правильно. Я хочу, чтобы люди были лучше меня, потому что тогда я могу заниматься другими делами, и они могут делать технические детали, которые, я думаю, я больше не хочу освещать, и я хочу больше меняться. — [21:40]


Нас считают очень антиобщественными людьми. Я думаю, что это то, что нам нужно сломать. Если в углу нас видят гики, которые кодируют вещи, и мы даем им много денег, чтобы они замолчали, это совсем не помогает нашему рынку. Мы должны рассматриваться как люди, которые просто люди, и должны присутствовать на каждом собрании и в каждом решении, а не только в окончательном развертывании продукта. — [25:30]

Кристиан Хейлманн на Шоу Версионирования

расшифровка

Тим:

Эй, как дела у всех? Это Тим Эвко …

Дэвид:

… а это М. Дэвид Грин …

Тим:

… И вы слушаете эпизод № 15 подкаста версий.

Дэвид:

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

Тим:

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

Крис, спасибо большое, что присоединились к нам. Как у тебя сегодня дела?

Христианин:

У меня все в порядке. Я сейчас живу в Сиэтле, прежде чем вернуться в Англию. Есть штормовое предупреждение, так что я, вероятно, застряну в офисе на несколько дней, поэтому мы можем записывать довольно долго.

Дэвид:

[Смеется] Мы постараемся не задерживать вас так долго, но я рад, что вы, по крайней мере, чувствуете себя комфортно. Оставайтесь в безопасности во время шторма.

Тим:

Один-два дня, топы.

Христианин:

Да. Это будет хорошо. Будучи кем-то вроде меня, евангелиста-разработчика годами, я нигде не чувствую себя дома. Не имеет значения, нахожусь ли я в отеле или дома, так что это действительно хорошо.

[Хихикает]

Дэвид:

Говоря о том, что мы являемся евангелистом разработчиков в течение многих лет, так как это шоу версий, мы хотели бы начать наше шоу с философского вопроса для наших гостей. Ваш философский вопрос на сегодняшний день таков: в какой карьере вы себя представляете и почему?

Христианин:

Я думаю, что в моей карьере я версия 1.0, может быть, уже 2.0. Причина в том, что я заново изобрел себя несколько раз. Сначала я был веб-разработчиком … Ну, на самом деле 3. Сначала я был радиожурналистом, затем нашел сеть и стал веб-разработчиком. Когда я был веб-разработчиком, я очень быстро достиг предела в наших структурах и компаниях, вы можете получить повышение до определенного уровня, прежде чем вы перестанете быть техническим специалистом, а перейдете к управлению.

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

Сейчас в компании, в которой я сейчас работаю, Microsoft, у нас уже есть структура евангелизации. Я чувствую, что сейчас ухожу в другой мир, где у меня много сверстников, которые могут извлечь выгоду из моей мошеннической попытки сделать то же самое, что они делали годами.

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

Дэвид:

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

Христианин:

Это так. На днях я разговаривал с Робом Конери, который только что выпустил книгу под названием « Руководство для мошенников» , в которой рассказывается о людях, подобных нам, которые занимают руководящие должности в ИТ-компаниях, но никогда не проходили формальное обучение, никогда не имели степени по компьютерным наукам.

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

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

Не смотрите слишком на людей на нашем рынке. Мы все готовим с водой, как вы говорите. Мы просто очень хорошо подделываемся. Это то, что вы должны делать в мире, который постоянно меняется, как наш.

Тим [4:17] :

Говоря о том, как изобретать себя и менять свою карьеру три раза, как вы упоминали ранее, как вы изначально попали в мир веб-разработки?

Христианин:

Я начал с поиска в Интернете, когда работал на радиостанции, и понял: « Боже мой! В свободное время я занимался Commodore 64 и Amiga, демосценой и тому подобным.

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

Я подумал: «Эй, я могу программировать на ассемблере и на бейсике. Я, наверное, тоже могу делать сайты. Я начал смотреть на исходный код, тогда скачал спецификации HTML, которые были похожи на zip-файл, и пошел в больницу, потому что мне нужно было сделать операцию.

На ноутбуке я написал свой первый веб-сайт, разослал его нескольким компаниям в моем родном городе. Большая автомобильная корпорация нашла меня и сказала: « О! Вы знаете HTML. Как насчет того, чтобы мы дали вам много денег, чтобы построить нашу интранет. И я, как, хорошо, это звучит хорошо. Именно тогда я начал как веб-разработчик.

Я начал в этой компании. После того, как в моем резюме появилось такое большое имя, многие агентства начали интересоваться мной, и я начал работать на агентском рынке в течение нескольких лет. Я пошел в Yahoo как одна из моих крупных корпораций. Оттуда в Мозиллу, а оттуда в Microsoft сейчас.

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

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

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

Дэвид:

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

Христианин:

Я немного обеспокоен тем, насколько корыстными мы стали на нашем рынке. Количество вещей, которые мы придумываем, чтобы выиграть Hacker News за неделю, а затем … Я очень занят своей работой, поэтому я кое-что вижу в Hacker News, и все очень взволнованы этим. Я вроде, хорошо, когда у меня будет время на следующей неделе, я собираюсь взглянуть на это. На следующей неделе, когда я нахожу время, чтобы посмотреть на это, первые сообщения в блоге все это, это опасно для использования. Вы не должны использовать его больше.

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

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

Для веб-разработки это все еще такие вещи, как, ну, они постоянно используют новые вещи. Это нормально, если мы нанимаем кого-то нового, и они просто полностью отказываются от того, что человек делал раньше, и начинают с нуля. Я как, Серьезно, это то, что мы делаем?

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

Тим [8:36] :

Как бы вы сказали, что мы вернемся к этой стадии? Звучит так, будто этот поезд движется с такой невероятной скоростью, и все в этой отрасли стараются выбрать следующую волнующую вещь, которая привлекает внимание людей.

Что бы вы сказали, что эта отрасль может сделать, чтобы мы вернулись в нужное русло, как вы описали?

Христианин:

Я думаю, что отчасти мы сами менее жадные. Понимание того, что дело не в том, какие мы крутые, а в том, что мы создаем для наших конечных пользователей. Иногда это означает, что вы выходите за пределы своей зоны комфорта и говорите: « Знаете что, я не собираюсь писать следующую классную систему управления пакетами Node». Я собираюсь найти контракт, где я работаю в банке или где я работаю на веб-сайте, который я ненавижу, и я хочу изменить его. Я хочу поговорить с разработчиками, которые работают над этим.

Например, то, что я узнал, находясь на конференциях почти каждую неделю, посещая конференции на Среднем Западе в Америке, или в Румынии, или в странах, где вы обычно не ездите, но не на крутых конференциях, вот где вы Познакомьтесь с более интересными разработчиками, потому что они должны выполнять повседневную работу.

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

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

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

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

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

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

Все говорят: да, мы получили отличные льготы и тому подобное. Но спросите что-то вроде: « Эй, а что если я стану отцом? Могу ли я работать 4 дня в неделю? Какой у тебя план материнства в этой компании? Что вы делаете, чтобы получить меньшинства в корпорации? Что мы делаем с разнообразием в них?

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

Дэвид:

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

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

Кристиан [12:08] :

Это хорошо, что компании делают это. Нет ничего хуже, чем застрять в одной устаревшей среде, если только вы не являетесь разработчиком в возрасте от 9 до 5 лет, и у вас все в порядке с этим, иди домой и живи с семьей. Это нормально.

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

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

Это не поможет, если вы зайдете в Twitter и подшучиваете по этому поводу. Мы должны отметить, что это не подходит нам как предложение. Таким образом, мы сможем сделать предложения о работе лучше.

Тим:

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

Христианин:

Я много об этом писал — с 2003 года или что-то в этом роде. Даже раньше, например, в 2002 году. Я очень большой защитник прогрессивного совершенствования как лучшего способа что-то построить. Это даже не технология, а подход.

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

Сейчас, к сожалению, все сводится к тому, что наши лучшие практики — это то, о чем мы говорили в 2002, 2003 годах. То, что тогда означало прогрессивное улучшение, говорилось так: « Не полагайтесь на JavaScript вообще. JavaScript будет отключен, и вы не можете этого ожидать.

Я думаю, что это больше не правда. JavaScript не выключен. JavaScript просто ненадежен. JavaScript не может быть загружен. JavaScript может быть медленным. JavaScript может вмешиваться. Сама его природа означает, что он не отказоустойчив, как HTML и CSS. Оба из них, ошибаются, не имеют значения, конечный пользователь все еще что-то получает. В JavaScript одна ошибка и все сломано. Это проблема, с которой сталкиваются многие люди на этом языке.

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

В настоящее время мы можем делать замечательные вещи с помощью JavaScript, например, с помощью Service Worker и indexedDB, а также размещать вещи на самом устройстве, которые позволили бы нам иметь автономную функциональность в Интернете, которой у нас никогда раньше не было. Это никогда не было вариантом. Это должен быть вариант, учитывая, насколько нестабильны возможности подключения в мобильном мире, особенно в тех странах, где сейчас наблюдается рост в сети.

Демонстрация JavaScript как вещи, о которой нужно думать, — я считаю неправильный подход. Нам нужно понять, что JavaScript — это данность. Это везде Это в каждом браузере. Это будет доступно. Существуют сценарии, в которых он не будет доступен и пойдет не так, но это крайние случаи, на которых нет смысла концентрироваться.

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

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

Печальный факт заключается в том, что многие вещи, которые мы реализовали в стеке веб-технологий в период с 2003 года по настоящее время, не дают того, чего мы хотим. Моника Динкулеску на CSS Day обратила меня к этому вопросу, когда она рассказала об элементе ввода. Она говорила о том, как это ужасно и как сломано.

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

Во многих браузерах вы не можете, например, стилизовать большой палец слайдера. Это становится слишком маленьким, чтобы даже использовать. Исходная пословица: если вы не полагаетесь на JavaScript, но позволяете HTML делать свое дело, все будет хорошо, он уже сломан. Это уже сделано.

Точно так же, когда люди говорят, что JavaScript недоступен, это плохо для людей с ограниченными возможностями, это абсолютная чепуха, потому что 90% того, что мы делаем в Интернете прямо сейчас — если мы делаем богатые интерфейсы — нуждаются в JavaScript, чтобы стать доступными. Помещение атрибута ARIA в элемент HTML никак не влияет на вспомогательные технологии. Нам все еще нужен JavaScript, чтобы на самом деле сообщить вспомогательной технологии, что этот атрибут ARIA присутствует и что он пытается что-то вызвать.

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

В настоящее время ссылка с целью _blank Нам нужно использовать JavaScript, чтобы обойти эту проблему безопасности.

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

Я думаю, что это не разовое состояние, прогрессивное улучшение. По определению, это прогрессивно. Сейчас у нас есть хорошая возможность начать владеть нашими интерфейсами. Это все о том, кто несет ответственность за интерфейс. Если мы говорим, что делаем это с помощью JavaScript, то мы также несем 100% ответственность за то, что выходит конечному пользователю. Если мы скажем, что не полагаемся на JavaScript, мы могли бы действительно предложить ужасное, ужасное решение для всех, кто работает подобным образом.

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

Дэвид:

Нет сомнений в том, что сеть умрет, как мы ее знаем в ближайшие пять лет. То, что произойдет, и как оно будет развиваться, все еще может называться Интернетом, но это не будет тем, что мы узнаем. Это способ, которым вещи, кажется, идут.

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

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

Кристиан [19:52] :

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

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

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

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

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

Во многом это похоже на то, что люди думают, что все, что вы говорите, очень, очень глубоко и очень, очень важно, и вы говорите: « Ну, я просто хочу вдохновлять». Я просто хочу показать, что сработало для меня, а что не сработало для меня. Я хочу, чтобы вы подумали об этом.

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

Каждое новое поколение разработчиков должно пройти много проб и ошибок. Вот как мы сделали работу в сети прямо сейчас. Я больше не хочу проходить через метод проб и ошибок. Есть другие люди, которые должны пройти проб и ошибок. У них больше знаний о текущих стеках, и это совершенно здорово для меня.

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

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

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

Это не значит, что вы отстаете. Это просто означает, что вы сделали правильную работу, отправившись на конференцию и узнав о новых вещах. Все в порядке.

Тим:

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

Кристиан [23:32] :

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

Разорвать этот цикл быстрой и качественной доставки поможет вам в дальнейшей карьере. Все очень взволнованы, обращаясь к начинающим разработчикам и говоря: « Эй, я слышал, что вы можете сделать это очень быстро. Можете ли вы сделать это за два дня вместо семи дней, которые были у нас в плане проекта?

Люди влюбляются в это. Это полезно, это чувствует себя довольно хорошо, но это будет означать, что через один или два года вы почувствуете себя измотанным. Вы не собираетесь делать карьеру дольше на этом рынке. Поэтому убедитесь, что вы вкладываете средства в себя, особенно в свое здоровье и психическое здоровье, столько, сколько вкладываете в конечный продукт и то, что вы используете.

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

Я профессионально использовал JavaScript, мне платили за это годами. Я выучил JavaScript, когда написал свою первую книгу об этом, потому что тогда я не мог больше притворяться. Я должен был объяснить это. Обучение, документирование и описание — это, вероятно, лучший способ изучения вещей. Вместо этого, просто, как, О, изучите это и используйте это.

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

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

Дэвид:

Очень здравый совет. Неудивительно, что все смотрят на тебя и думают, что ты все знаешь.

[Смех]

Как наши слушатели могут узнать о вас больше, получить шанс увидеть некоторые вещи, которые вы представили, и прочитать некоторые вещи, которые вы пишете?

Христианин:

Я разместил все в своем блоге, christianheilmann.com . Я также получил мои видео на YouTube . Все мои слайды на SlideShare . Они также являются творческим достоянием, поэтому вы можете использовать их, если хотите. Я также позволяю людям загружать мои вещи и использовать их повторно. Это в основном мой главный трюк. Что бы я ни выдавал, я выдавал себя в качестве творческого сообщества или открытого источника — поэтому, если меня завтра переедет автобус, мои знания будут жить. Я думаю, что это очень важная вещь.

В Твиттере я @ codepo8 с 8 в конце. Это очень простой способ связаться со мной. Я не смогу ответить все время. Я невероятно занят, поэтому, пожалуйста, если я не отвечу в течение нескольких дней, я не сержусь на тебя, я просто не нашел время, потому что я где-то в гостиничном номере, в аэропорту или что-то в этом роде. как это.

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

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

Я думаю, что мы должны частично думать о том же, когда мы публикуем в Интернете. Люди не висят на каждом мире, который мы делаем. Только тролли пытаются сделать это из контекста. Другие люди тоже заняты. Подсчет ваших слов — очень важная вещь.

Дэвид:

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

[Смех]

Огромное спасибо за то, что нашли время и поделились своими знаниями со всеми здесь на версионном шоу.

Христианин:

Не беспокоиться. Будьте добры друг к другу там. Мы все люди. Мы все делаем ошибки. Убедитесь, что вы не отказываетесь от людей только потому, что думаете, что они делают ошибки.

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

Дэвид [28:00] :

Хорошие слова, чтобы закончить. Спасибо огромное!

Христианин:

Пожалуйста.

[Музыкальная интерлюдия]

Тим:

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

Мне действительно нравилось понимать, откуда он, и некоторые вещи, которые он пытается решить прямо сейчас.

Дэвид:

Я знаю, что Вы имеете ввиду. Когда я исследовал его в рамках подготовки к этому шоу, я пытался получить общее представление о том, о чем он говорил, и он настолько широк . Он использует CSS и JavaScript, философию этого, трудоустройство … Он идет во многих разных направлениях.

Трудно понять, есть ли какой-то один фокус, или это вообще хорошо для сообщества разработчиков?

Тим:

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

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

Дэвид:

Я помню, как долго беседовал с некоторыми из моих коллег, пытаясь понять, как практично применять побитовые операторы в JavaScript. В конечном счете, я думаю, что мы вышли с каландрированием как с чем-то, что могло бы быть для него удобным.

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

Тим:

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

Дэвид:

У нас целая аудитория, полная слушателей. Давайте расскажем, как вы используете побитовые операторы в JavaScript. Произведите на нас впечатление!

Тим:

Да, и, пожалуйста, предоставьте подробное и подробное объяснение, чтобы я мог изучить его.

Дэвид:

Прими совет Криса и научи тому, что знаешь. У вас есть эта информация в ваших головах, и, очевидно, у нас двоих ее нет. Мы не единственные. Есть люди, которые будут рады и впечатлены, если вы сможете поделиться чем-то полезным.

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

Тим:

Одна вещь, которая мне действительно понравилась, когда Крис говорил о прогрессивном улучшении, это когда он упомянул, что JavaScript — это то, от чего мы в значительной степени можем зависеть; что вся цель прогрессивного совершенствования состоит в том, чтобы просто предоставить опыт, который просто не сломлен.

Что вы думаете о прогрессивном улучшении в целом, и что он должен был сказать по этому поводу?

Дэвид:

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

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

Сейчас 2016 год, и я думаю, что это большая проблема, с которой люди начинают пытаться бороться с прогрессивным улучшением.

Тим [32:04] :

Мои цели в направлении прогрессивного совершенствования … Я работаю в электронной коммерции. Основная цель любого коммерческого приложения состоит в том, чтобы пользователь мог купить продукт, верно? Моей целью всегда было большинство приложений, которые занимаются электронной коммерцией — когда вы нажимаете кнопку «Купить», Ajax-запрос отправляется с идентификатором продукта в качестве параметра, и вы получаете ответ. Что я обнаружил, так это то, что, когда я впервые начал работать в моей нынешней компании, был очень высокий уровень ошибок JavaScript, что означало, что весьма вероятно, что пользователь не сможет приобрести продукт в определенных сценариях, потому что этот основной фундаментальный опыт был основан на Запрос Ajax.

Тот факт, что он работает на JavaScript, в некотором смысле не имеет ничего общего с прогрессивным улучшением. Я не говорю, что это не было прогрессивным, потому что мы использовали JavaScript, чтобы сделать это. Это не было прогрессивным решением, потому что у нас не было запасного варианта. У нас не было исправлений на случай, если что-то сломалось. Что-нибудь может сломаться, верно?

Это может быть неправильно сформированный HTML, поэтому у вас нет атрибута href в вашей ссылке, и вы не можете перейти на страницу продукта. Это решение полностью без JavaScript или без JavaScript. Проблема, которую мы заметили, заключалась в том, что у нас было много ошибок JavaScript из-за отсутствия тестирования или ошибки разработчика или сторонних скриптов JavaScripts, или, возможно, пользователь скачал расширение для браузера, которое загрязняло глобальное пространство и что-то сломало, что может полностью случиться.

Я думаю, что я пытался проникнуть в мою голову не в том, чтобы обвинить в этом какую-то конкретную технологию. Это было просто для защиты. Когда я говорю о прогрессивном улучшении, я стараюсь запомнить именно это. Дело не в том, что ты не используешь эту технологию. Речь идет о коде в обороне. Создавайте код таким образом, чтобы при работе в наиболее нестабильной среде всех веб-разработок в некоторых случаях было бы неплохо иметь запасной вариант.

Так что для нас, когда вы нажимаете кнопку, и она отправляет Ajax-запрос, возможно, превращаете его в форму, и, если Ajax-запрос не работает, форма отправляется. Это не имеет ничего общего с идеей полагаться на JavaScript, но связано с тем, чтобы сделать ваше приложение немного более оборонительным — в постоянно меняющейся среде.

Дэвид:

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

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

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

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

Тим [35:42] :

Просто еще немного поясню, потому что я много слышу от критиков — я уверен, что вы тоже, Дэвид, — что не имеет смысла говорить о том, чтобы не писать JavaScript. Я пишу JavaScript, может быть, в 98% случаев на работе.

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

Когда вы успешно его сломаете — и большую часть времени для меня это происходит, как только я пытаюсь его протестировать: при первом запуске кода он ломается! Как только это происходит, я спрашиваю себя, как я могу сделать это лучше? Как я могу убедиться, что, даже если я очень стараюсь вызвать здесь ошибку, как я могу заставить эту вещь все еще работать?

Я думаю, что это суть того, к чему стремится идея прогрессивного улучшения.

Дэвид:

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

Да, вы можете повернуть его как можно быстрее, если будете следовать счастливому пути. Вы делаете только то, что, как вы знаете, работает. Вы никогда не тестируете с большим разнообразием переменных и входов, а также на разных устройствах и в разных контекстах.

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

Тим:

Да, и вот в чем дело. Термин прогрессивное улучшение не существовал бы, если бы — и я в этом виноват, так что не … Пот называет чайник чёрным — этот термин не будет существовать, если для всего, что мы создали, мы тестировали на низких скоростях сети, мы тестировали в разные устройства и разные браузеры, и мы пытались сломать его каждый раз, когда что-то выпускали.

Если бы мы это сделали, у нас не было бы этого термина. Эта дискуссия никогда не состоится. Нас часто мучают крайние сроки, или мы пытаемся произвести впечатление на других, или просто получить еще несколько подписчиков в Твиттере… [прочищает горло]@VersioningShow ! [Смех] Вот почему это происходит.

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

Дэвид:

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

Я не думаю, что он на самом деле сказал это, но это был своего рода подтекст.

Тим:

Это подразумевалось.

Дэвид:

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

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

Тим:

Мне действительно нравится, когда Крис затронул идею найма людей умнее вас. Я должен честно говоря, слыша, что это звучит почти так, о нет. Зачем мне это делать? Когда вы действительно думаете об этом, конечно, вы хотите нанять людей умнее вас. Вот так тебе становится лучше. Вот как ты учишься. Это то, что побуждает вас пробовать новые вещи и получать удовольствие от работы.

Дэвид:

Да. Я не хочу работать с людьми, которые глупее меня.

Тим:

Может быть, было бы трудно найти людей, которые глупее меня [смеется] , но вы знаете, что, по крайней мере, в этой работе у меня были одни из лучших опытов работы с людьми, которые наиболее отличаются от меня.

Дэвид:

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

Тим:

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

Дэвид:

Это отличное замечание, чтобы закончить. Я думаю, что это было замечательное шоу. Я действительно доволен Крисом. Я надеюсь услышать от зрителей, что они думают об этом.


Спасибо всем за внимание, все. Нам всегда нравится разговаривать о технологиях со всеми вами.

Тим:

Мы также хотели бы поблагодарить SitePoint.com и наших продюсеров, Адама Робертса и Офели Лехат, за помощь в производстве от Ральфа Мейсона. Пожалуйста, не стесняйтесь, присылайте нам свои комментарии в Twitter — @versioningshow — и дайте нам оценку на iTunes, чтобы сообщить нам, как мы делаем.

Дэвид:

Увидимся в следующий раз и надеемся, что вам понравилась эта версия.