Пагода: стартовый комплект веб -разработки для программистов GO

В 2020 году Майк Стефанелло влюбился в Go.

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

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

«Я сидел там, просто думая:« У меня на самом деле нет ответа на этот вопрос », — сказал он. «Я не хочу возвращаться ко всем вещам в PHP, которые я использовал ранее. Я люблю Go. Я очень навязчик, и у меня не было ответа на этот вопрос».

Из этого разочарования и исследования родилась Пагода.

«Это было больше о любви к Go и любви к веб -разработке», — сказал он. «Не то чтобы я думал о том, какой язык я должен использовать, чтобы попасть в Интернет — я начал в веб -разработке».

Пагода: стартовый комплект для Go

Пагода не является рамкой — Стафанелло подчеркивал это неоднократно. Это стартовый комплект для веб -разработки, который обеспечивает библиотеки frontend и backend, склеившиеся Code Go. GO генерирует HTML-серверную сторону для создания веб-страниц.

Подход Starter Pack может показаться странным для того, чтобы разработать разработчиков, которые привыкли во вселенной фреймворков JavaScript, но разработчики бэкэнд хотят, чтобы они были простыми, если им придется работать с фронтом, сказал Стефанелло новому стеку.

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

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

«Ничего против них», — добавил он. «Очевидно, это все удивительные проекты, но это просто сводится к личному выбору. Если вы являетесь разработчиком бэкэнда, вы хотите сосредоточиться на фронте как можно меньше».

Но почему бы не сделать пагоду в рамках Go? Поскольку сообщество GO, похоже, не заинтересовано в этом, сказал он. Принимая во внимание, что в PHP есть мега -особая рамка — Ларавель — в ходе нет эквивалента, сказал он.

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

«Если вы новичок в том, чтобы идти, это сбивает с толку: почему нет ни одного, и почему людям это не нравится?» Стефанелло сказал. «Но я думаю, что чем больше вы используете, тем больше вы начинаете ценить это».

Pushup — это исключение в том, что это веб -разработка Go. Существует также Gobuffalo, который отмечает на своем сайте, что это может быть структурой, но вместо этого описывает себя как «экосистема Go Web-Development», которая является «в основном экосистемой Go и JavaScript библиотеки, курируемых, чтобы сопрягаться».

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

«Они, как правило, слишком раздуты», — сказал он. «Они, как правило, действительно заставляют закономерности, где вы должны это сделать».

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

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

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

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

«Я в основном делаю для вас много работы, а затем вы можете взять на себя оттуда», — сказал он. «Вам не нужно беспокоиться, не перестаю ли я его поддерживать, потому что, как только вы скопируете стартовый комплект, он ваш — 100% его — это ваше».

Пагодный фронт

Пагода включает в себя три библиотеки для фронта:

  • HTMX, который обеспечивает доступ к переходам AJAX, CSS, веб -разметкам и событиям сервера непосредственно в HTML. «Красота чего-то вроде HTMX заключается в том, что он позволяет вам иметь это поведение типа AJAX, где вам не нужно делать полностраничные перезагрузки»,-сказал он. «Это такая функциональность, которую вы ожидаете, или вы многое видите в одностраничных приложениях, основанных на JavaScript. Вы можете использовать столько или столько, сколько хотите, но без необходимости писать линию JavaScript, вы можете принимать регулярные HTML и создавать действительно хорошую интерактивность на вашем сайте».
  • Alpine.js, который, по словам Стефанелло, был очень похож на jQuery, но для современной сети. Это минимальный инструмент для сочинения поведения непосредственно в разметке. «Что действительно приятно в этом, так это то, что все это работает внутри — по большей части — ваш HTML, так что вам даже не нужно на самом деле писать отдельный JavaScript», — сказал он. «Вы можете просто добавить кучу альпийских тегов и некоторые объявления и рассказать HTML, что делать. И действительно довольно замечательно, как далеко вы можете зайти с этим. Это проект, который мне действительно нравится использовать».
  • Булма, простая в использовании структуру CSS. «Это просто очень легко-вы просто бросаете несколько занятий, и у вас есть довольно приличный пользовательский интерфейс»,-сказал он.
  • Если вам не нравятся эти библиотеки, вы можете их переключить. Например, Tailwind может заменить Булму, сказал он, и это может быть сделано за считанные минуты.

    Бэкэнд пагоды

    На бэкэнде пагода включает в себя:

  • Эхо: высокопроизводительная, расширяемая, минималистская веб-структура.
  • ENT: мощный ORM для моделирования и запроса данных.
  • Gomponents: HTML -компоненты, написанные в Pure Go. Они приводят к HTML 5 и позволяют легко создавать многоразовые компоненты.
  • Опять же, Стефанелло подчеркнул, что любая из этих библиотек может быть заменена — на самом деле, в этом месяце он заменил шаблоны GO на Gomponents.

    «Если вы когда -нибудь проходите через какие -либо сообщества GO, будь то Reddit, Slack, Discord или что -то в этом роде, есть много разочарования в шаблоне — особенно когда дело доходит до HTML, они оставляют многое, чтобы быть желаемым», — сказал он.

    Он перечислял проблемы: они не безопасны для типа; Если у кода ошибка, вы не можете сказать, пока не запустите приложение; Трудно передать данные между различными шаблонами; И, наконец, сложно заставить их компилировать так, чтобы это было легко использовать в веб -приложении.

    Gomponents — это библиотека, созданная Markus Wüstenberg, и она делает HTML 5, что позволяет легко создавать многоразовые компоненты.

    «Это было, вероятно, самое большое изменение кода, которое я сделал в проекте […] С тех пор, как проект начался,-сказал он.-Это было большое фундаментальное изменение, чтобы уйти от шаблонов стандартных библиотеков GO до использования стороннего решения ».

    Согласно документации, SQLite предоставляет основное хранилище данных, а также постоянные, фоновые очереди на фоновые задачи. Тем не менее, это может быть заменено, если разработчик предпочитает использовать Postgres или Redis.

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

    Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Loraine Lawson — ветеран -репортер, который в течение 25 лет освещал технологические проблемы от интеграции данных до безопасности. Прежде чем присоединиться к новому стеку, она работала редактором Banking Technology Site Bank Automation News. Она … читайте больше от Лорейн Лоусон

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *