Ответы пользователя по тегу Go
  • Использование языка программирования Go для веб проекта?

    dmnBrest
    @dmnBrest
    Salesforce for money. Python, Go, Ruby for soul.
    FireGM прав. Очень не хватает батареек, информации в нете мало. Сам просидел с ним наверное месяц - делал один web проект "чисто на Go". Разработка ооооочень медленная. Тоже самое, что хотел сделать на Go, потом на Rails, а потом и на Flask (для интереса) сделал за пару дней. Да, hello world на Go смотрятся красиво и делаются быстро, но как только копнешь глубже все становится не так радужно. Я бы для Go пока отвел дополнительную роль "ускорителя" для проекта написанного на других платформах. Всякие админки, части, которые не требуют супер скорости лучше писать используя популярные фреймворки.
    Ответ написан
    Комментировать
  • Как вы отлаживаете web приложение на Go?

    dmnBrest
    @dmnBrest Автор вопроса
    Salesforce for money. Python, Go, Ruby for soul.
    Накидал простой способ, наверное по такому принципу работают все логеры, которые выводят в браузере красивые панели с отладочной информацией.
    в обработчике запроса создается массив строк, к который складываются сообщения (в перспективе массив строк можно усложнить и сделать массив структур, которые будут содержать тип сообщения и текст).
    в конце после всех выводов браузер добавить еще один рендер специального шаблона (для блока ошибок) в который передать этот массив. Получится что к вашей странице еще добавится дополнительный блок с отладочной информацией, который уже в шаблоне с помощью css можно как угодно разукрасить.
    var dLog []string
    dLog = append(dLog, "test message 1")
    dLog = append(dLog, "test message 1")
    dLog = append(dLog, "test message 1")
    ...
    err = templates["dlog"].ExecuteTemplate(w, "base", dLog)

    шаблон
    {{ define "base" }}
    <hr/>
    <div style="color: #FF0000;">
        <h2>Debug log:</h2>
        {{ range . }}
            <p>{{.}}</p>
        {{ end }}
    </div>
    {{ end }}
    Ответ написан
    Комментировать
  • Как сделать функционал remember me в web приложении на Go?

    dmnBrest
    @dmnBrest Автор вопроса
    Salesforce for money. Python, Go, Ruby for soul.
    В общем вычитал в интернете что в самой session cookie ничего менять не надо, а нужно просто создавать еще одну куку remember_me которая будет содержать что-то совсем секретное, что позволит на стороне сервера определить пользователя и залогинить. А уже в этой самой куке ставить MaxAge какой нужен.

    Вот тут очень классно про это написано и не только про это, но и про всю систему авторизации в целом.
    stackoverflow.com/questions/549/the-definitive-gui...
    про remember_me там советую почитать
    fishbowl.pastiche.org/2004/01/19/persistent_login_...
    Ответ написан
    Комментировать
  • Как исправить проблему с http.FileServer?

    dmnBrest
    @dmnBrest Автор вопроса
    Salesforce for money. Python, Go, Ruby for soul.
    Нашел ответ.
    stackoverflow.com/questions/20702221/http-fileserv...
    По ходу проблема с Vagrant и shared forder. Прямо мой случай!
    Ответ написан
  • Как вы обрабатываете ошибки в Web приложении на Go?

    dmnBrest
    @dmnBrest Автор вопроса
    Salesforce for money. Python, Go, Ruby for soul.
    Нашел такой интересный сервис
    https://deferpanic.com/
    Ответ написан
  • Html sanitizer в Go?

    dmnBrest
    @dmnBrest Автор вопроса
    Salesforce for money. Python, Go, Ruby for soul.
    Ответ написан
    Комментировать
  • Как вы обрабатываете связи в Базе Данных в приложении на Go?

    dmnBrest
    @dmnBrest Автор вопроса
    Salesforce for money. Python, Go, Ruby for soul.
    Пришел к такому варианту. Что можете сказать по этому поводу?

    есть две структуры:
    type User struct {
    	Id  int
    	Username  string 
    }
    type Article struct {
    	Id  int   
    	Title  string
    	User  User
    }

    Достаю данные и укладываю в Article вот таким способом:
    rows, _ := DB.Queryx(SELECT a.title as title, u.username FROM articles a LEFT JOIN users u ON a.user_id = u.id)
    for rows.Next() {
    	a := Article{}
    	err = rows.Scan(&a.Title, &a.User.Username)
    	glog.Infoln(aa)
    }


    Вроде работает, но все прелесть от sqlx пропала - структура заполняется стандартным Scan из database/sql вручную.
    Ответ написан
  • Go IDE

    dmnBrest
    @dmnBrest
    Salesforce for money. Python, Go, Ruby for soul.
    Поставил Golang plugin на InteliJ IDEA 13 из репозитория - работает отлично. Может не видеть зависимостей в файлах проекта из-за ненастроенной Project SDK в File -> Project Structure. Играюсь уже больше месяца никаких глюков.
    Единственный недостаток - в репозитории старая версия, ей уже почти год. Чтобы использовать новую версию надо самому компилировать плагин из исходников в github и уже только под новую 14 версию IDEA (которая еще только в бета). Я с новой версией мучался, потом забил и вернулся на старую, стабильную под 13 версию. Кстати разработчики плагина активно ведут разработку и фикс багов, очень быстро отвечали на мои вопросы по багам. Так что жду новую 14 версию IDE и официальную версию плагина.
    Ответ написан
    1 комментарий