Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Фреймворк Yesod

Глава 22 из книги "Архитектура приложений с открытым исходным кодом", том 2.

Оригинал: Yesod
Автор: Michael Snoyman
Перевод: Н.Ромоданов

22.6. Усвоенные уроки

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

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

Поскольку это был мой первый крупный кусок кода на языке Haskell, я во время разработки Yesod узнал много нового о языке. Я уверен, что у многих может возникнуть чувство: «Как же я смог написать код, наподобие этого?». Даже при том, что исходный код был не такого калибра, как код Yesod, который есть у нас на данный момент, он был достаточно добротным с тем, чтобы стать толчком к росту проекта. Второй урок заключается в следующем:

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

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

Когда Грег Вебер (Greg Weber) поднялся на борт в качестве еще одного ведущего проекта Yesod, он положил использовать много стандартов кодирования, которых катастрофически не хватало. Что еще усугубляло проблемы, это некоторые трудности, присущие экспериментированию с инструментальным набором разработчика на языке Haskell, а именно наличие большого количества пакетов, которые использовались в Yesod. С тех пор одной из целей всей команды разработчиков Yesod было создание стандартных сценариев и инструментов для автоматизации сборки проекта. Большинство из этих инструментов вернулись на своем пути развития обратно в исходное сообщество любителей языка Haskell. Последний урок состоит в следующем:

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


Вернуться к началу статьи.