Эпизод 109 подкаста SitePoint теперь доступен! Мы говорим о происхождении и истории Shopify, роли программного обеспечения как услуги в электронной коммерции и Ruby on Rails.
Скачать этот эпизод
Вы можете скачать этот эпизод в виде отдельного файла MP3. Вот ссылка:
-
Подкаст SitePoint № 109: Shopify с Коди Фаузером(MP3, 33:54, 32,6 МБ)
Стенограмма интервью
Луи: Привет и добро пожаловать в еще один эпизод подкаста SitePoint. Со мной сегодня на шоу у нас есть Коди Фаузер, Коди — технический директор Shopify, очень популярной платформы электронной коммерции на основе Ruby on Rails, так что, привет, Коди.
Коди: Привет, как дела?
Луи: У меня все хорошо, как ты?
Коди: Отлично.
Луи: Отлично. Поэтому, прежде чем мы углубимся в разговоры о Shopify и об электронной коммерции и, возможно, немного поговорим о Rails, не могли бы вы сначала немного рассказать о том, что вы имеете в качестве веб-разработчика?
Коди: Да, еще в тот день, когда я увидел сообщение о Slashdot, в котором разбирается разработка Ruby on Rails, и поэтому я подумал, что мне стоит посмотреть поближе, и оказалось, что это решило все проблемы, с которыми я столкнулся в рамках инфраструктуры веб-разработки на время, так что это было приятно. И оттуда я сразу же начал и все больше и больше времени посвящал программированию на Ruby on Rails, и в конце концов я связался с Тобиасом Латке, который основал Shopify и был в основной команде Rails и в итоге присоединился к команде Shopify.
Луи: Хорошо. И только для тех, кто слушает, кто не знаком с Shopify, вы хотите немного поговорить о том, что такое Shopify?
Коди: Вы как-то бьете по голове своим вступлением, но Shopify — это хостинговая платформа для электронной коммерции, у нас сейчас на платформе более 13 000 продавцов, и в основном Shopify включает в себя все, что нужно торговцу, чтобы быстро приступить к работе в онлайн-бизнесе. и с минимальным риском, и цель в том, что им не нужен собственный ИТ-отдел для управления своим интернет-магазином, они внедряют свой дизайн и могут самостоятельно управлять повседневными операциями своего бизнеса.
Луис: Хорошо, так что для вас, ребята, является ли самый большой различие между Shopify и множеством других платформ электронной коммерции, требуются ли им, скажем, немного больше технических способностей внутри компании?
Коди: Да, Shopify — это простое элегантное решение, поэтому есть и другие решения для электронной коммерции, в которых есть все функции, которые когда-либо были нужны для электронной коммерции, но это не то, чем мы занимаемся, Shopify скрывает всю сложность под красивым пользовательским интерфейсом. Он интуитивно понятен и прост в использовании, а также Shopify идеально подходит для людей, которые хотят экспериментировать с новыми идеями или начать работу с новым продуктом или экспериментировать с минимальным риском. Им не нужно тратить много времени на настройку инфраструктуры или хостинга, нет больших сборов за установку или чего-то в этом роде, так что вы действительно можете перейти от нуля до 100 за минуты.
Луи: Точно. И для вас это то, что вы видите как существующее, я думаю, это одна из вещей, которые меня интересуют, так это то, что существует так много платформ электронной коммерции, которые были там раньше и которые появились с тех пор, я думаю о В тот день, когда я думаю о ZenCart и OSCommerce, я думаю, что они назывались, а совсем недавно — Magento, так что есть все эти платформы электронной коммерции, которые люди устанавливают и разрабатывают собственные темы и решения своими силами. Считаете ли вы, что с течением времени эта роль будет играть все меньшую или меньшую роль или что, по вашему мнению, все еще есть место в определенных организациях, у которых есть ресурсы, и вы, ребята, действительно нацелены на совершенно другой рынок?
Коди: Да, я думаю, что с течением времени я думаю, что типы решений, устанавливаемых самостоятельно, как бы переходят в более крупный бизнес, где у людей есть выделенные ИТ-ресурсы для управления программным обеспечением. Для людей, у которых нет этих ресурсов под рукой, просто слишком много времени и / или дорого обходиться для обслуживания серверов и обновления, и никто не хочет просыпаться среди ночи с SMS-сообщением о том, что их сайт электронной коммерции, который поддерживает их бизнес в автономном режиме, поэтому наличие программного обеспечения как услуги действительно решает все эти проблемы для вас.
Луи: Точно. И когда вы начали работать с Shopify, я понял, что Тобиас уже разрабатывал его, и была ли она уже живой и функционирующей платформой, когда вы пришли на борт, или где вы были там, когда она была представлена публике?
Коди: Итак, в тот день, когда Тоби на самом деле построил магазин сноубордов, он хотел выйти в интернет с этим бизнесом по сноуборду, и он изучил всю линейку доступных продуктов, и он просто не нашел ни одного продукта, действительно отвечающего его требованиям, он очень, вы знаете, он возлагает большие надежды на типы программного обеспечения, которые он любит использовать, и он не нашел ничего, что действительно отвечало бы его требованиям, поэтому он работал, в основном начал работать над Shopify, или как его называли Snow Devil, магазин сноубордов, день, когда был выпущен Rails, самый, самый первый публичный релиз, так что он хакнул об этом в своем доме около года или около того, а потом я поднялся на борт за несколько месяцев до запуска в 2006 и помог получить все последние функции отшлифованы и с тех пор здесь.
Луи: Точно. Так что это действительно интересно. Я помню еще в ранние времена Rails, когда было много критики в отношении Ruby и Rails как платформ, которые не могли масштабироваться; в то время было не так много приложений, я имею в виду, что теперь у нас есть Twitters и GitHubs, а также множество больших приложений на основе Ruby on Rails, но я помню, что на ранних этапах Shopify была одной из них. вы увидите на домашней странице Ruby on Rails, где они говорили: «Посмотрите, это пример приложения, построенного на Rails и масштабируемого, так что вы, ребята, были там с самого начала».
Коди: Да, определенно. И вы знаете, что мы многим обязаны этому размещению на домашней странице Ruby on Rails, особенно когда мы начинали с нуля компании в первые дни, у нас только что появилось невероятное сообщество Rails, и они действительно помогали нам в течение всех этих лет ,
Луи: Точно. Итак, возвращаясь к — я знаю, что банально спрашивать любого, кто разрабатывает приложение на Rails, о вечном вопросе масштабирования, но вы нашли какие-нибудь проблемы с Rails? Несколько недель назад я взял интервью у Тома Престона-Вернера из GitHub, и его утверждение было таково, что нет, Rails никогда не был, или Ruby никогда не был узким местом в плане масштабирования своего приложения; С какими проблемами вы, ребята, столкнулись с точки зрения масштабирования?
Коди: Вы знаете, что для нас все это компромисс, поэтому, если вы хотите разрабатывать программное обеспечение очень быстро и выводить свой продукт на рынок, очевидно, вы пишете не на ассемблере или в C-коде, а в том, что у вас есть продукт. выход на рынок, и у вас есть клиенты, означает, что вам придется беспокоиться о проблемах масштабирования, и, таким образом, вы знаете, как твиттеры и тому подобные вещи, где они действительно стали успешными и имели проблемы, это своего рода хороший процесс, в котором они получили до выхода на рынок, а затем они оптимизировали пути кода, которые действительно горячие и вызывают проблемы, и это своего рода та же техника, которую мы использовали, когда мы используем инструмент мониторинга New Relic, и он сообщает нам, где все ужасные части нашего приложения есть, но обычно они не имеют отношения к Ruby как таковому, просто мы делаем неоптимальные запросы к базе данных или делаем просто плохой код в целом, поэтому мы действительно не чувствуем, что Ruby вообще нас сдерживает ,
Луи: Точно. Еще одна вещь, которая действительно интересна в Shopify, это то, что они одни из немногих, или, я думаю, в настоящее время они увеличивают количество веб-сервисов, имеющих своего рода встроенный магазин приложений, поэтому я думаю, что первое место, которое я помню, было несколько из приложений 37signals вы можете исправить меня, если я ошибаюсь, и я думаю, что я также видел, что у FreshBooks есть подобные вещи, где у них есть набор плагинов, которые, я думаю, похожи на то, что вы увидите с плагинами для самостоятельного решения, такого как WordPress или Drupal, за исключением того, что это своего рода приложения, которые вы просто включаете на стороне сервера, а некоторые из них являются платными приложениями. Вы хотите немного поговорить о том, что за мыслительный процесс привел к его разработке и как он работает для вас?
Коди: Вы знаете, что Apple App Store был для нас огромным источником вдохновения, и на самом деле наличие магазина приложений — это просто отличный способ сделать ваш основной продукт очень простым, компактным и элегантным, потому что у людей всегда есть одно требование, которого нет у программного обеспечения ». и, таким образом, если вы всегда реализуете все эти функции, которые нужны всем, то ваше программное обеспечение быстро станет неинтуитивным, раздутым и сбивающим с толку, поэтому мы можем не только позволить людям разрабатывать пользовательские функциональные возможности, которые им нужны, мы также можем использовать наши собственная платежная платформа, позволяющая им взимать деньги за свое приложение, и она легко интегрируется в Shopify с магазином продавца, так что это своего рода выигрыш для всех участников. У нас было немало, несколько стартапов Y Combinator и тому подобное, использовали Shopify как своего рода испытательную площадку для новых идей, новых бизнес-концепций, а затем, когда они доказали, что идеи работают на платформе Shopify, тогда они могут распространить это на общий рынок.
Луи: Итак, когда вы говорите, распространяйте это на общий рынок, вы подразумеваете, что это своего рода продающий продукт, который они продвигают в розничную продажу, или вы имеете в виду, что они как бы расширяют свою платформу с технологической точки зрения и строят поверх своего API, чтобы расширить свой сайт и платформу?
Коди: Поскольку у нас так много продавцов, это отличный способ проверить, является ли концепция действительной или нет, поэтому у нас есть довольно популярное приложение для чата, где вы можете встроить чат в свой магазин, чтобы вы знали, что он не ограничивается сайтом электронной коммерции. Просто у нас была хорошая пользовательская база, простой API и биллинговая платформа, которая позволяла им создавать прототипы своего продукта и очень быстро выводить его на рынок, а затем, когда они узнали, что это хорошая идея, они могут предложить это и начало завоевывать другие нишевые рынки и расширять их горизонты.
Луи: Хорошо, извини, мне кажется, я тебя неправильно понял; Я думал, что вы говорите о продавцах, но на самом деле вы говорите о разработчиках приложений.
Коди: О да, извините, я сосредоточился на разработчиках приложений там.
Луис: Да, это действительно интересно, так что вы фактически предоставили платформу для разработчиков. Считаете ли вы, что многие разработчики ваших приложений также работают в Ruby on Rails или это довольно широкий круг людей, потому что API — это просто REST и JSON?
Коди: Да, есть множество разработчиков Rails, но, как вы сказали, поскольку мы предлагаем XML и JSON, вы знаете, PHP или любую другую технологию, с которой кто-то хочет использовать для создания приложения, прекрасно. Мы предоставляем действительно отличные инструменты для людей, начинающих работать с Ruby, так что, вероятно, это поможет внедрению Ruby on Rails с нашим API, но да, он определенно открыт для всех, кто заинтересован в интеграции с ним.
Луи: Точно. Я хочу вернуться, немного обойти кругом и поговорить о возможной электронной коммерции в целом. Как я говорил ранее, было много решений, когда вы, ребята, начинали, поэтому некоторые из них были бесплатными решениями, а некоторые — хост-решениями, а также платным установленным программным обеспечением, что было сделано вы, ребята, думаете, что у вас был продукт, который мог бы конкурировать по твердой цене и что-то вроде регулярного выставления счетов, за которое люди, возможно, не привыкли платить за электронную коммерцию, они как о, я Просто скачайте программное обеспечение с открытым исходным кодом и поместите его на хостинг по пять долларов в месяц, и я готов. Что же дало вам, ребята, уверенность в том, что люди будут готовы заплатить за более профессиональное решение, как мне кажется?
Коди: Да, как я уже упоминал ранее, Тоби действительно просматривал каждый продукт на рынке, и все его переживания были свежи в его памяти, когда он начинал работать над Shopify в первые дни, так что в основном цель была еще до запуска. было просто решить каждую болевую точку, которую он испытывал во время запуска своего магазина сноубордов, поэтому, как только у нас появилась Shopify, мы фактически взяли дизайн у Snow Devil и реализовали весь магазин за 20 минут. Так что на самом деле все эти болевые точки были решены, и речь шла не о других продуктах, не о том, что мы думаем, что мы можем быть лучше, чем другие продукты, просто, если мы решаем эти проблемы, то другим людям нравится Мы также будем использовать продукт, так что он полностью или более не нужен.
Луи: Да. Ранее вы также говорили о том, что для некоторых небольших организаций или людей, которые только начинают свою деятельность и хотят протестировать продукт или что-то в этом роде, что-то вроде Shopify — отличный способ сделать это с низким риском, и что другой тип Самостоятельно установленные решения могут по-прежнему быть жизнеспособным вариантом для крупных организаций с их собственными внутренними ИТ-отделами, но я думаю, что у вас, вероятно, есть также несколько клиентов, которые являются более крупными организациями, которые могли бы поддерживать свое собственное решение, но решили пойти с программным обеспечением как сервисное решение, это точно?
Коди: Да, это действительно так. Например, Ровио, который продает, ну, в общем, игру Angry Birds, которую все знают, они продают свои плюшевые игрушки с Shopify, так что он определенно подходит для более крупных организаций, таких как эта, которые занимаются разработкой игр, и я Я уверен, что они не хотят получать счета от своей команды электронной коммерции и команды OPS за управление серверами электронной коммерции, потому что они сосредоточены на создании прибыльных игр, так что у нас просто отличные отношения.
Луис: Да, я полагаю, что это будет иметь место во многих организациях, где, если вы просто посмотрите на стоимость найма, обучения и поддержки команды для разработки вашего собственного решения, тогда издержки — это больше, чем платить вам, ребята, немного прибыль, чтобы заботиться обо всем этом.
Коди: Точно. И вы знаете, что бесплатное решение с открытым исходным кодом выглядит дешево, пока вы не учитываете все время, и что в один прекрасный момент оно может выйти из строя, мы наняли людей по вызову 24/7, чтобы убедиться, что наш сервис работает, поэтому вы не можете на самом деле поставить стоимость доллара на это.
Луи: Да. Может быть, я немного переключусь здесь и начну разбираться с более отвратительными вещами, многие из нашей аудитории — люди типа веб-разработчиков, поэтому я хочу дать им немного жира, чтобы пережевать. Что касается расширения или, может быть, даже просто создания вашей платформы, потому что электронная коммерция — это одно из тех хитрых решений, которое не просто похоже на создание CMS, это более сложное решение, которое включает в себя множество движущихся частей, каковы некоторые из самые большие проблемы, с которыми вы, ребята, столкнулись при разработке и масштабировании вашей платформы?
Коди: Чтобы быть по-настоящему общим, я буду вдаваться в подробности, но мы подумали, что электронная торговля — это то, с чем мы справимся, и мы все перейдем к следующему бизнесу, мы думали об этом четыре года назад, и мы все еще пытаемся связать все воедино, так что просто невероятно сложная среда, в которой вы имеете дело с финансовыми транзакциями, плюс вы пытаетесь упорядочить вещи сквозным с точки зрения выполнения и инвентаризации и иметь интуитивно понятный контроль и все эти виды Для нас всегда было непросто просто попытаться замаскировать сложность, которая присуща электронной коммерции за интуитивным интерфейсом, но этого, наверное, достаточно, чтобы спорить.
Луис: Интересно подумать об этом, я думаю, с точки зрения более высокого уровня, я имею в виду тот факт, что что-то, что может показаться основным бизнесом, мы просто собираемся создать платформу электронной коммерции, мы должны покончить с к настоящему времени, но все эти постоянные усовершенствования и постоянная работа продолжаются, и снова вы говорите о вещах, связанных с финансовыми операциями; Я предполагаю, что есть большая разница между созданием CMS, где, если кто-то публикует комментарий, и он теряется в пустоте, это не такая уж большая проблема, но терпимость к ошибкам в электронной коммерции намного ниже.
Коди: Точно. И вот одна из вещей, о которых я собирался коснуться, это просто попытаться смоделировать все правильно, чтобы каждая попытка совершить финансовую транзакцию имела записанную историю, чтобы вы никогда не могли — никогда не было потери данных, это действительно критически важно, но помимо этого, поскольку у нас есть новые онлайн-магазины для мамы и поп-музыки, а также крупные Rovio-типы, существует просто невероятное разнообразие того, на что похожи наши продавцы, что они делают и какие веб-сайты делают так что трудно действительно точно описать одного из них, чтобы однажды кто-то мог перейти на Опру, и внезапно его сайт был захвачен, поэтому мы должны быть в состоянии справиться с этим, а также с тем фактом, что они могут разработать весь фронтенд их магазина использует свои собственные Liquid и HTML, что непредсказуемо, потому что мы не контролируем это. Так что есть только много чего сделать, много кеширования и убедиться, что мы можем справиться со всеми этими странными сценариями, о которых вам, возможно, не придется беспокоиться о других типах продуктов, где все защищено за экраном входа в систему.
Луи: Да. Так что это одна из тех вещей, которые довольно интересны, потому что вы, ребята, должны что-то вроде того, чтобы предоставлять программное обеспечение людям, которым вы также должны его разместить, и, как вы говорили, если один из ваших клиентов внезапно получает огромный приток трафика, который вы должны убедиться, что ни на чьих сайтах это не затрагивается.
Коди: Да, именно так. И у нас был кто-то на Рождество, зарегистрировавшийся в четверг, и он был показан на телешоу в США в понедельник или во вторник, и в тот день он совершил миллион транзакций из продуктов по пятьдесят долларов, так что в какой-то момент они были выполняя более 300 заказов в минуту, так что вы действительно получите эти сумасшедшие всплески там, где вы их просто не ожидаете.
Луи: Если я не ошибаюсь, вы, ребята, вроде как передаете на аутсорсинг даже ваш хостинг, так что вы не делаете это на месте, у вас есть соглашение с Rackspace, верно?
Коди: Да, мы в настоящее время в Rackspace, так что да, у нас есть большой кластер серверов.
Луи: Вы, ребята, динамически масштабируете свой кластер или это то, с чем вы все-таки справляетесь, по-прежнему вручную?
Коди: Мы работаем с серверами с открытым исходным кодом, поэтому на самом деле это не так — да, поэтому мы используем облако для определенных сервисов, но основное приложение находится на серверах с открытым исходным кодом, поэтому, если мы хотим увеличить масштаб, нам нужно получить больше серверов. поэтому мы просто уверены, что у нас слишком много ресурсов для обработки любых всплесков, которые мы можем увидеть.
Луи: Точно. Хорошо, так что, возможно, переходя от проблем, с которыми вы сталкиваетесь, есть что-нибудь — может быть, просто позвольте вам отвлечься на минуту, есть ли что-то особенно крутая проблема, над которой у вас был шанс поработать, так как вы были в Shopify или даже над чем-то, над чем ты сейчас работаешь, над которым ты думаешь, что это очень весело, или, может быть, это вызов, который не так уж и плох, как вызов или препятствие, но над чем тебе было весело работать?
Коди: Да, я думаю, что в целом, все, что вы делаете, является довольно удовлетворительным, потому что в тот момент, когда мы внедряем программное обеспечение, и мы используем его обычно один раз в день или чаще, в зависимости от того, есть ли какой-то код, который нужно выдвинуть, но в тот момент, когда код выходит, перед всеми этими магазинами и всеми этими пользователями и всем этим трафиком, так что, безусловно, все, что вы пишите, действительно удовлетворяет, но есть только некоторые из вещей, которые я написал, вся система выставления счетов для выставления счетов клиентам и просмотр того, как это сохранилось до последнего несколько лет — это вполне удовлетворительно, инфраструктура управления платежами и обработкой заказов в Shopify — тоже нечто; огромное количество платежей и заказов, проходящих через, ошеломляет, и это было довольно забавно. Тоби и я всегда шутим, что лучшая работа в организации — это Ops Dev, поэтому мы оба хотели бы получить доступ к серверам на каком-то программном уровне с точки зрения управления конфигурацией, так что у меня была возможность многому помочь, или помочь команде Ops до того, как мы перейдем в Rack Space, и автоматизируем все с помощью системы управления конфигурацией Chef, что также было очень приятно.
Луи: У вас, ребята, сейчас довольно большая команда? сколько всего сотрудников у вас на данный момент?
Коди: Я думаю, что сейчас у нас всего более 60 сотрудников, поэтому мы начали очень серьезно относиться к инженерно-конструкторскому аспекту, и теперь мы строим, потому что продукт очень зрелый и действительно потрясающий, так что теперь мы строим больше разработчиков маркетинговой команды и добавление людей в службу поддержки и все те другие аспекты, на которые мы действительно не обращали внимания в тот день, но теперь, когда мы расширяем бизнес, мы добавляем много таких типы. Так что очень интересно, когда команда из трех или четырех человек до 60 лет, безусловно, является большим изменением.
Луи: Да. Я хотел двигаться дальше и немного поговорить об открытом коде. Причина, по которой я хочу рассказать об этом, заключается в том, что, как я уже говорил, я брал интервью у несколько недель назад у Тома Престона-Вернера из GitHub, и я говорил о его позиции в области открытого исходного кода, и он сказал, что в их бизнесе одна из вещей, которые они — или способ, которым они подходят к открытому исходному коду кода, который они пишут, — это то, что они в некотором роде фокусируются на низкоуровневых инфраструктурных вещах, так что, подобно сетке привязок Ruby Git, они были разработаны в открытом коде, Jekyll, что-то для создание статических HTML-страниц для страниц GitHub, но вы, ребята, довольно активно разрабатывали ActiveMerchant, который представляет собой Ruby Gem, чтобы добавить, если я не ошибаюсь, поддержку электронной коммерции к Rails, верно?
Коди: Это интересно, потому что для нас ActiveMerchant фактически является нашей инфраструктурой, и поэтому он просто абстрагирует интерфейс между всеми различными поставщиками платежей по всему миру, поэтому теперь он поддерживает более 50 или 60 платежных шлюзов. И поэтому, в то время как GitHub их инфраструктура находится на более низком уровне, они взаимодействуют с Git, мы взаимодействуем с поставщиками платежей, поэтому для нас ActiveMerchant — это часть инфраструктуры, у нас такой же менталитет, что мы открываем исходные тексты, которые не Это своего рода основная бизнес-логика продукта, поэтому для нас ActiveMerchant — это инфраструктура, и мы на самом деле получили огромную выгоду от ее открытого использования. Сейчас я думаю, что мы, вероятно, написали с нуля менее половины шлюзов, которые он поддерживает, а остальные — возможно, даже больше, но остальные просто приходят через сообщество, и это здорово, потому что кто-то добавит Платежный шлюз для Дании или где-то в этом роде, и все, что нам нужно сделать, это отредактировать один файл конфигурации в Shopify, и мы сможем поддержать этого провайдера платежей в Shopify, так что это огромная выгода для нас.
Луи: Это было чем-то, что существовало до того, как вы начали, ребята, или это было то, что вы создали, работая над Shopify?
Коди: Когда я начинал с Shopify ActiveMerchant, я думал, что один шлюз, который Тоби в основном запустил в те времена, у него был один шлюз, один или два, для провайдера в Канаде, а затем я начал добавлять много к этому, и теперь это там, где оно сегодня, так что это довольно впечатляет.
Луи: Хорошо, я хотел снова переключиться и закончить, было действительно интересно говорить о виде электронной коммерции и технических проблемах вашего бизнеса, в частности. Я хотел немного рассказать о Rails, в частности, и о вашем мнении о некоторых вещах, происходящих в мире Ruby и Rails. Итак, Rails 3 был выпущен совсем недавно, вы, ребята, очень внимательно следите за циклом обновления, или вы перешли на конкретную версию и бежите от этого?
Коди: Так что, да, мы очень внимательно следим за этим, мы не следим за ним так же внимательно, как раньше. Я помню, что однажды мы работали на Edge Rails около года, определенно мы больше этого не делаем, но также потому, что изменения, которые происходят сейчас, вы знаете, между версиями Rails 2 и 3 были довольно радикальными, поэтому Есть много точек между тем, что было слишком нестабильно, чтобы быть на Edge, и вести бизнес, поэтому мы в основном были просто привязаны к основным релизам, но я считаю, что мы были одними из первых крупных магазинов Rails или крупных продуктов, которые я угадайте, чтобы переключиться на Rails 3, и мы были там счастливы. Таким образом, мы действительно следим за основными выпусками сейчас или за точечными выпусками, а затем за основными обновлениями, но мы не следуем за Edge с такой преданностью, как раньше, просто потому, что это иногда слишком рискованно.
Луи: Да, конечно, через него проходит столько же денег, сколько вы, ребята. Что вы думаете о Rails 3; как вы находите это складывается?
Коди: Я думаю, что это фантастическое изменение, Yehuda Katz и Carl Lerche действительно проделали большую работу по очистке внутренних органов, это просто потрясающе. Как и с ActiveRelation, ActiveModel, теперь все это небольшие неприятные моменты, теперь вы можете просто использовать что-то из ActiveModel и получать проверки в обычном классе или в обычной модели, которые не поддерживаются ActiveRecord, так что просто действительно открывается, вроде расширяет хороший чистый код, который вы можете получить от Rails, но распространяет его на все ваши модели и все части вашего программного обеспечения.
Луи: Точно. Одна из вещей, которая появилась совсем недавно в Твиттере, это то, что команда Rails объявила о том, что предстоящий Rails 3.1 будет поставляться с CoffeeScript, встроенным по умолчанию, поэтому я хотел бы узнать ваше мнение об этом, потому что я думаю, что это произошло на прошлой неделе или около того, и учитывая то, что я был с вами на шоу, я хотел посмотреть, что вы думаете об этом или это то, за чем вы немного следили?
Коди: Да, мы довольно много об этом говорили в офисе, и я думаю, когда вы посмотрите на CoffeeScript, вы поймете, почему они это делают, и CoffeeScript выглядит просто великолепно.
Луи: Итак, я собираюсь немного отступить для всех, кто слушает и кто не знаком с этим, в первую очередь с CoffeeScript, в первую очередь, а затем с полемикой, так что вы можете просто немного рассказать о том, что CoffeeScript для блага слушателей?
Коди: Да, так что CoffeeScript, по сути, является языком, который компилируется в JavaScript, но он больше похож на Ruby, он просто много — имеет действительно чистый синтаксис, поэтому, если вы хотите посмотреть, как он выглядит, домашняя страница CoffeeScript красива и имеет сравнение в реальном времени того, что CoffeeScript сгенерирует в JavaScript.
Луи: Точно.
Коди: И поэтому он в основном просто позволяет вам писать JavaScript, но в более лаконичном виде Ruby-подобного синтаксиса и выглядит просто красиво, я могу определенно понять, почему он привлекателен для разработчиков Ruby.
Луи: Точно. И поэтому возникли некоторые противоречия, я думаю, что некоторые люди против этого, потому что либо они не знакомы с ними, либо им кажется, что они все еще хотят писать JavaScript старомодным способом; Как вы думаете, есть ли в вашем офисе, например, люди, которые принимают разные стороны?
Коди: Я думаю, что все здесь очень рады этому, но я думаю, что дело в том, что когда вы смотрите — я думаю, что спор был просто в том, что он был помещен в Gemfile по умолчанию, поэтому, когда вы генерируете новое приложение Rails, CoffeeScript и я думаю, что люди просто чувствуют, что CoffeeScript — это всего лишь небольшая часть того, что должна делать ваша веб-инфраструктура, но Rails — это самоуверенное программное обеспечение, и если вам оно действительно не нравится, вы можете просто прокомментировать эта строка и до свидания CoffeeScript, так что в конце концов это не так уж и сложно, и, как и все остальное, я уверен, что они собираются добавить множество действительно изящных инструментов, чтобы помочь разработчикам работать с CoffeeScript в Рельсы также.
Луи: Это вы, ребята, уже использовали или использовали в прошлом?
Коди: На самом деле мы не слишком много разрабатывали с CoffeeScript, как это было на радаре, но сейчас мы уделяем этому гораздо больше внимания и рады видеть, что у нас сейчас есть несколько проектов, но они Вы новенькие, так что, да, мы определенно смотрим на это серьезно.
Луи: Еще один, я думаю, более мелкий спор, который возник немного в мире Rails, есть своего рода спор между различными доступными средами тестирования; Я знаю, что многие в мире Rails являются большими поклонниками RSpec, но я думаю, что основная команда Rails в некотором роде привязана к Test :: Unit, который по умолчанию поставляется в комплекте с Rails. Где вы, ребята, попадаете в этот спектр, который вы используете в Shopify?
Коди: Так как Shopify настолько стар, что мы начали с Test :: Unit, и мы все еще используем его, мы изучали несколько различных опций, таких как Shoulda и RSpec, в различных плагинах и вещах, которые мы написали, и я думаю, что RSpec фантастический читать; Я считаю, что это немного больше — труднее привлечь новых разработчиков в проект, использующий RSpec, потому что это как бы многое делает. Я чувствую, что Test :: Unit своего рода самый базовый вид, вы знаете, вы утверждаете что-то, что-то еще, нет никакой динамики, на самом деле не происходит никакой магии, это просто то, что вы видите, это то, что вы получаете, так что это действительно красиво и просто , Мы пытаемся использовать Следует, чтобы воспользоваться некоторыми из контекста и тому подобного, но потом мы в итоге отказались от этого, поэтому сейчас мы просто придерживаемся Test :: Unit, не говоря уже о том, что мы ‘ Я буду там вечно, но это такой огромный объем работы, который, пока работает ваш набор тестов, вы знаете, после того, как у вас есть тысячи и тысячи тестов, и если кто-то будет сидеть и переписывать их все, на самом деле вы этого не получите большая выгода, если вы сравните это с, возможно, добавлением новых функций в программное обеспечение.
Луи: Да, абсолютно.
Коди: Я думаю, в конце концов, это личное предпочтение, и в итоге вы получаете хорошее приложение, пользователь вашего приложения не видит, какой тестовый фреймворк вы используете, он просто хочет убедиться, что он работает и я думаю, что вы можете получить надежное тестируемое программное обеспечение либо с помощью фреймворка, либо с помощью библиотеки тестирования.
Луис: Хорошо, хорошо, это обертка для того, о чем я хотел поговорить в отношении Rails, просто коснитесь некоторых вещей, которые я видел, недавно всплыл в сообществе Rails, и я решил, что воспользуюсь тем, чтобы вы линия, чтобы говорить об этом. Прежде чем мы закроем, есть ли что-то, о чем вы хотели бы поговорить, о том, что происходит с Shopify, есть ли что-нибудь, какие-либо намеки, которые вы можете высказать в отношении того, что мы могли бы увидеть в будущем?
Коди: В конце месяца у нас будет действительно большое объявление, о котором я ничего не могу сказать, но это действительно захватывающе. Вот почему я проверил с вами, чтобы увидеть, когда вы собираетесь транслировать подкаст, потому что я надеялся, что смогу что-то сказать об этом, но просмотр нашей домашней страницы и нового сайта, вероятно, поймет это в конце месяца. , so that’s really exciting, other than that just lots of exciting features, we’re always trying to improve the software for the users by releasing customer accounts for the merchants so that their customers also can have accounts at their stores, it’s a long desired featured.
Луи: Хочешь немного прояснить, что ты имеешь в виду под этим?
Коди: Да, в принципе, в начале мы считали, что проверка будет бесплатной, поэтому вы должны пройти через нее, ввести свой адрес, свой адрес электронной почты и все остальное, и тогда у вас не будет аккаунта с хранить в конце этого. Таким образом, одна из вещей, которая нужна или нужна оптовикам и другим, — это возможность на самом деле создать учетную запись клиента, поэтому мы разработали довольно сложный вид CMS с возможностью на самом деле создавать учетные записи клиентов, и поэтому клиент может фактически войти в витрины и управление, просматривать их заказы и историю и тому подобное, а затем есть тонна новых функций, которые могут отчасти построить это позже.
Луис: Так что это будет важно, например, для любого типа продавца, который продает цифровые продукты, я думаю о нас здесь, в SitePoint, если вы хотите увидеть все купленные вами электронные книги, это то, что очень ценно, если у вас есть учетная запись и вы можете войти и просто посмотреть эти вещи.
Коди: Да, именно так. И мы расширили шаблон жидкостей вплоть до клиентской области, чтобы у продавцов был свой дизайнер, или они могли сами настроить внешний вид пользовательской области, так что это тоже довольно интересно. Да, помимо этого, я предполагаю, что еще одна довольно интересная вещь, которая появится, заключается в том, что мы собираемся добавить возможность для продавцов иметь целую мобильную тему, чтобы они могли в основном развиваться, прямо сейчас у них есть тема, которая выглядит как и чувствовать их магазины, но у них будет второстепенная тема, которая представлена только для мобильных клиентов, так что это будет действительно приятно.
Луи: Вы обрабатываете обнаружение пользовательского агента и перенаправление на своем конце, это что-то, над чем клиент имеет какой-то контроль, это что-то полностью обработанное бэкэндом Shopify?
Коди: То есть, похоже, что мы разработали его прямо сейчас на уровне бэкэнда, так что мы все еще как-то выясняем, как именно разрешить, например, как выполнить сопоставление, так что потенциально вы могли бы — сценарий использования, который мы имеем сейчас это мобильная тема, но потенциально вы можете просто сопоставить любую функцию запроса, такую как пользовательский агент или что-то в этом роде, и представить другую тему, поэтому мы все еще в курсе того, как мы собираемся решить эту проблему, но Да, возможно, просто выбирая пользовательские агенты и подбирая тему.
Луи: Точно. Потрясающие. Что ж, мы определенно с нетерпением ждем вашего большого объявления, я хотел бы, чтобы вы могли пригласить вас на шоу примерно через месяц, чтобы мы могли поговорить об этом, но мы обязательно будем смотреть домашнюю страницу Shopify и блог Shopify, чтобы посмотрим, что будет.
Коди: Да, это действительно супер захватывающе. Я действительно хотел бы поговорить об этом, потому что это супер захватывающе.
Луи: Да, с такими вещами всегда плохо, когда у тебя есть то, о чем ты хочешь поговорить, и ты знаешь, что не можешь. Что ж, спасибо большое, Коди, за то, что пришли сегодня на шоу, было приятно пообщаться с тобой, очень ценю это.
Коди: Да, и здесь спасибо, что приняли меня.
Луи: Не беспокойся. Если слушатели хотят, чтобы вы могли найти вас в Интернете, у вас есть личный блог или учетная запись в Твиттере, куда люди должны идти, чтобы не отставать от вас?
Коди: Да, только мое полное имя, так что codyfauser.com и то же самое для Твиттера, так @codyfauser .
Луи: Хорошо, ясно и просто.
Коди: И еще одна последняя вещь, которую стоит упомянуть, в настоящее время работает над книгой под названием Rails 3 в двух словах для Reilly, и вы можете проверить это на Railsinanutshell.com, и поэтому у нас есть версия книги Creative Commons, так что нацеленный на Rails 3 и там есть полная книга по Rails 3, так что вы можете проверить это и, надеюсь, она скоро появится в магазинах.
Луи: Это круто. Хорошо, еще раз большое спасибо, Коди.
Коди: Да, спасибо тебе тоже.
Луи: Не беспокойся. До свидания.
Коди: Пока.
Тема музыки Майка Меллы .
Спасибо за прослушивание! Не стесняйтесь сообщить нам, как у нас дела, или продолжить обсуждение, используя поле комментариев ниже.