Библиотека сайта 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. Последний урок состоит в следующем:
Сразу решайте, как сделать так, чтобы ваш проект был доступным для других.
Вернуться к началу статьи.