• Структура проекта на Golang?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Добрый день.

    Это попытка стандартизировать структуру проекта (многие ориентируются на неё)
    https://github.com/golang-standards/project-layout

    Go-Kit - очень грамотная структура, очень
    https://github.com/go-kit/kit

    И обязательно стоит посмотреть
    https://12factor.net/ru/

    Что касается "Т.е. в одном файле может быть сразу модель, сервис и репозиторий. Есть ли какие-то бестпркатики по этому вопросу?" - то это не совсем так, в одном пакете (папке) может быть и модель, и сервис, и репозиторий". Например вот так:
    yourpackage/service.go
    yourpackage/repo.go
    yourpackage/model.go
    И это всё будет доступно в рамках пакета.

    Лично я использую такую схему:
    cmd/ - команды исполняемого файла
    conf/ - конфиги приложения (env файлы)
    init/ - конфиги logrotated, nginx, systemd и т.д.
    pkg/ - публичные пакеты
    pkg/packagename/ - тут определяются интерфейсы (сервиса, репозитория и т.д.) в разных файлах
    pkg/packagename/endpoints/http - endpoint'ы для HTTP
    pkg/packagename/repo/mysql - реализация репозитория на MySQL
    pkg/packagename/repo/gorm - реализация репозитория на GORM (для примера)
    pkg/packagename/service/ реализация сервиса

    Я написал очень кратко, если что-то не понятно или есть вопросы - пишите, я опишу подробнее
    Ответ написан
    3 комментария
  • Какой удобный, красивый file uploader для vue?

    planc
    @planc

    Самому писать


    <form>
          <div class="form-group">
            <label for="InputFile">File input</label>
            <input type="file" id="InputFile" @change="onFileChange">
            <p class="help-block">Upload image</p>
          </div>
        </form>


    onFileChange (e) {
          let file = e.target.files[0] || e.dataTransfer.files[0]
          let formData = new FormData()
          formData.append('image', file)
          this.$http.post('upload/', formData)
            .then(response => {
              console.log(response)
            }, error => {
              console.log(error)
            })
        }


    image preview:
    https://codepen.io/anon/pen/YrNEZp
    Ответ написан
    1 комментарий
  • Архитектура SPA с использованием Java + Spring и Vue.js?

    yurygolikov
    @yurygolikov
    Как вариант.
    Делаете отдельно два приложения:
    1) Vue + SSR(рендеринг на стороне сервера)
    2) Java REST API

    Из SPA вызываете API.

    Помимо более качественного индексирования поисковиками:
    + Полное разделение логики клиента и сервера, что делает приложение более чистым и прозрачным.
    + Имея полноценный API - вы можете прикрепить к нему какие угодно другие клиентские приложения (мобильные, desktop, терминалы и т.д.)
    Ответ написан
    4 комментария