Задать вопрос
mashletov
@mashletov
Math.random()

Как правильно организовать структуру файлов веб-проекта на Go?

В целях обучения, решил шагнуть чуть дальше, чем helloworld и написать простенький чат.
Вот я создал папку chat в директории (gopath)/src. И что делать дальше я не знаю. Где хранить бекенд на go. Где хранить фронтенд (исходники)? Нужно ли как-то разделять с go-файлами? Может стоит в папке chat создать 2 подпапки backend и frontend и GOPATH указать на backend?
PHP-фреймворки более-менее жестко задают подобные папки (controllers, views, resouces, public, ...), тут же — не ясно.
  • Вопрос задан
  • 1735 просмотров
Подписаться 3 Простой 5 комментариев
Решения вопроса 3
mmmaaak
@mmmaaak
возьми какой-нибудь golang веб фреймворк, желательно чтоб он тоже умел генерить структуру файлов приложения, посмотри как они организовывают, и если сам фреймворк использовать не хочешь, то хоть структуру слизать можно, а вобще туториалов по это теме в интернете есть, например вот
Ответ написан
Комментировать
Maksclub
@Maksclub
maksfedorov.ru
Если хотите близкую MVC — есть фреймворк https://github.com/astaxie/beego

Он вроде как MVC, пример внедрения — компания Gett taxi, у них бекенд был на RoR и чтобы больно не было — решили такой же похожий фрейм взять

об этом на конференции:
https://youtu.be/ppnnuDotxZM?t=8m53s

Вот структура проекта на нем https://beego.me/docs/intro/:
├── conf
│   └── app.conf
├── controllers
│   ├── admin
│   └── default.go
├── main.go
├── models
│   └── models.go
├── static
│   ├── css
│   ├── ico
│   ├── img
│   └── js
└── views
    ├── admin
    └── index.tpl


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



UPD — по структуре:
В Go принято делать в папку /src папку /github.com, в ней делать папку с именем своего аккаунта и в ней уже папку с проектом, то есть ваш проект по хорошему должен лежать в /src/github.com/<username>/<projectname>

мой пример, как видите все внешние либы ставятся сюда же
5ac62bee995ea942939211.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vityachis
@vityachis
Yii2/Laravel Developer
Я считаю что стоит посмотреть не один, а пару фреймворков, как они работают, как все организовано. И например в одном фреймворке может быть что-то удобно, а что-то наоборот мешать и раздражать. Потому и нужно посмотреть пару решений, понять почему сделано именно так и с каждого выбрать самое лучшее. Ведь много ума не нужно что бы просто слизать все :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы