Microsoft Case Study: Stack OverflowИсточник: msug
От переводчика: ни для кого не является секретом тот факт, что StackOverflow - один из самых интересных и посещаемых сайтов на техническую тематику. Редко можно встретить разработчика, который не слышал о StackOverflow. Данная статья является переводом Stack Overflow Case Study и описывает задумку, процесс реализации и другие детали известного ресурса. Разработчики наблюдают увеличение скорости разработки, лучшую производительность вместе с Model-View-Controller. Когда несколько известных разработчиков решили создать веб-сайт, который призван помогать миру разработчиков обмениваться технической информацией между собой, им было необходимо создать эффективный, масштабируемый и простой в использовании сайт. Это была задача, стоящая перед Джеффом Этвудом (Jeff Atwood), автором блога "Coding Horror" и Джоэлом Спольски (Joel Spolsky), автором блога "Джоэл о программировании" ("Joel on Software"). Так как они планировали создать StackOverflow - сайт с вопросами и ответами для разработчиков, то им необходимо было найти инструмент, который позволял бы использовать подход Model-View-Controller (MVC), который упрощает процесс разработки и разделяет логику приложения от ее представления. Они использовали часть веб-платформы компании Microsoft по названием ASP.NET MVC Framework. Сайт выдерживает 1 миллион просмотров страниц в день и содержит более чем, 500 тыс. вопросов, ответов и соответствующих дискуссий. НачалоДвое известных блоггеров в мире разработки программного обеспечения захотели создать сайт с вопросами и ответами, который мог бы стать неким центром для разработчиков и их вопросов с ответами. "Никто из нас не так глуп, как все мы" ("None of Us is as Dumb as All of Us."). Этвуд и Спольски хотел создать сайт, чтобы разработка сайта была простой и быстрой, а код - масштабируемым. Они были недовольны традиционными подходами к веб-разработки, которые использовали абстрактный слой и потом вставляли код непосредственно в веб-страницы для уменьшения проблем с view states. РешениеЭтвуд и Спольски создали свой сайт - Stack Overflow - с использованием ASP.NET MVC Framework, Visual Studio 2008 и Microsoft .NET Framework 3.5. Сайт, который был создан в течении двух месяцев, очень скоро стал популярным и был достаточно масштабируемым, чтобы поддерживать увеличивающуюся аудиторию. Джоэл Спольски: "Рост Stack Overflow был очень быстрым. После года работа он достиг отметки в более чем миллион просмотров в день и на сегодня является 817-м в списке самых больших сайтов в интернете (со ссылкой на Quantcast). Он достиг отметки 5.2 миллионов людей в месяц." Сейчас сайт насчитывает более чем 500,000 вопросов, соответствующих ответов и дискуссий. Авторы использовали тот же код для создания похожих сайтов, включая Server Fault для системных администраторов и Super User для продвинутых пользователей ("power users"). Джефф Этвуд: "Вы можете использовать родно и то же программное обеспечение для создания Q&A сайтов обо всем. Кто-то может создать Stack Overflow Q&A сообщество для самолетов, или коллекций марок, геологов или в других областях". Stack Overflow был создан с использованием Microsoft Web Platform, который кроме традиционных инструментов включал Windows Server 2008, Internet Information Services (IIS) 7 и Microsoft SQL Server 2008.
ПреимуществаРазрабатывая Stack Overflow с использованием ASP.NET MVC Framework, .NET Framework 3.5, Visual Studio 2008 и других продуктов платформы Microsoft Web, мы получили сайт с большой производительностью и небольшим временем разработки. Разработчики отметили. Что тестирование и поддержка кода была простой благодаря ASP.NET MVC Framework. Высокая производительностьКоманда разработчиков Stack Overflow была потрясена производительностью сайта, который они создали. Джефф Этвуд: "Наш сайт работает определенно быстрее, чем если бы мы создавали его с классической abstraction-based архитектурой..NET Framework берет на себя "ответственность" за большую скорость, которую мы видим, но и ASP.NET MVC сіграло не последнюю роль из-за своей легкости, что увеличило производительность." Быстрая разработкаРазработчики Stack Overflow разработали четкое разделение кода, бизнес-логики и моделей данных с использованием ASP.NET MVC Framework. Разработчики также отметили гибкость в управлении HTTP на низком уровне, которую предоставлял ASP.NET MVC. Джефф Этвуд: "Мы сэкономили время, так как Microsoft разработал MVC framework и нам не пришлось разрабатывать свой аналог. ASP.NET MVC - это простой фреймворк, который позволяет разработчикам работать очень эффективно. Он очень хорошо сочетается с нашими представлениями, как должна выглядеть веб-разработка. Разработчики любят архитектуру ASP.NET MVC. Реализация MVC компанией Microsoft хорошо спроектирована в том смысле, что она инкапсулирует многие вещи, которые должен выполнять разработчик - замечательная начальная база и "чистый" фреймворк, позволяющий писать далеко не базовые вещи. Мы ни разу не столкнулись с чем-либо, что не могли бы сделать с MVC framework." Открытость фреймворка была хорошо отмечена со стороны разработчиков.
Упрощенный процесс тестирования и поддержки кодаКоманде Stack Overflow понравился поход к разделению кода и представления и они убедились, что код, написанный с MVC подходом, легко тестируется и поддерживается. Джефф Этвуд: "Вместе с MVC вы имеете более логичную логическую структуру приложения. Храня логику приложения в контроллере или модели, вам проще становится создавать, тестировать и поддерживать код. MVC позволяет более гибко контролировать HTML, чем в случае использования абстрактного слоя, что также может затруднить тестирование и поддержку кода." Развитое сообществоЭтвуд отметил развитое сообщество вокруг ASP.NET MVC Framework. Разработчикам нравится иметь реализацию MVC и использовать ее вместе с Visual Studio, .NET Framework и другими компонентами платформы Microsoft Web. Джефф Этвуд: "На протяжении бета-периода множество ошибок идентифицированы членами технического сообщества. Отличие было в том, что нам некогда было ждать, пока Microsoft исправит все ошибки. Кто-то из сообщества отправил свои исправления, потому как у него не было доступа к коду. Сообщество реагирует более быстро, чем может компания. Мы просто загрузили fix и были счастливы." Этвуд позитивно отметил тот факт, что Microsoft будет продолжать развивать Framework. Джефф Этвуд: "Главное правило программирования - никогда не писать то, что можно купить или получить бесплатно. Реализация MVC была необходимой. Microsoft создала продукт, полностью поддерживаемый сообществом разработчиков. Очень приятно знать, что Microsoft будет развивать и поддерживать MVC framework по той причине. Что есть большое количество тех, кому нравятся.NET Framework, C# и Visual Studio. Нам нравятся эти продукты. Одной из причин разработки Stack Overflow было показать людям, что можно создавать поразительные вещи, используя стэк технологий Microsoft." |