Zloy-Dobry
Опять, хочу заметить.
Kirill
вот да. [2]
Nikita
1. ок, давай другими словами. я спрашиваю - нахера ты тащишь в гошку mvc? зачем в гошке чужая раковая опухоль? 2. суть в декларативщине, но ты по привычке привязал к контроллерам 3. да. мы делаем интерфейс, убираем оттуда Init() и ждём инициализированный инстанс 4. https://github.com/smallnest/go-web-framework-benchmark#basic-test он вот просто среди прочей серой массы, даже не свалился в говно и не начал бороться за первенство
1. Та мвц понятное дело не катить на бекенде с рестом, тем более на го. Я просто раньше кормился будучи разработчиком на дотнете. Когда хтмл рендерили на сервере, поступал запрос, он обрабатывался. Формировался респонс и передавался шаблонизатору, который генерил страницу на основе ViewModel. Сейчас страницы на сервере генерят только пхпшники. 2. Ну блин, можно назвать не контроллер, а "экшн" или "РеквестПроцессор" какой-то 3. К сожалению, когда мы получаем информацию о типе, в го нет конструкторов, потому эти значения можно получить только лишь экспортируя экземляр типа через переменную пакета, либо придумывать свои инициализаторы. 4. Та похер на те бенчмарки. 99% обработки запроса занимает IO, а не парсинг хттп-запроса
Aleksandr
ребят, а что вы вообще под mvc то понимаете? присутствие структуры с названием Controller?
Kirill
1. Та мвц понятное дело не катить на бекенде с рестом, тем более на го. Я просто раньше кормился будучи разработчиком на дотнете. Когда хтмл рендерили на сервере, поступал запрос, он обрабатывался. Формировался респонс и передавался шаблонизатору, который генерил страницу на основе ViewModel. Сейчас страницы на сервере генерят только пхпшники. 2. Ну блин, можно назвать не контроллер, а "экшн" или "РеквестПроцессор" какой-то 3. К сожалению, когда мы получаем информацию о типе, в го нет конструкторов, потому эти значения можно получить только лишь экспортируя экземляр типа через переменную пакета, либо придумывать свои инициализаторы. 4. Та похер на те бенчмарки. 99% обработки запроса занимает IO, а не парсинг хттп-запроса
1. забывай наконец-то mvc %) 2. это всё вытекает из вопроса 1. 3. wuuuuuuut? о чём ты блин 4. далеко не всегда.
Aleksandr
а то я вот в go style пилю хэндлеры с res/req с сервисом внутри и это mvc
Kirill
ребят, а что вы вообще под mvc то понимаете? присутствие структуры с названием Controller?
у него там в примере вполне себе MVC, и контроллер, и модель, и вьюха - все на месте
Aleksandr
у него там в примере вполне себе MVC, и контроллер, и модель, и вьюха - все на месте
ну ты понимаешь, что контроллер - это http handler, модель - бизнес-слой, а вьюха - response?
Aleksandr
ты как-то по другому свои гошечки делаешь?
Aleksandr
я смотрел
Kirill
у меня _вообще_ нет ассоциации с mvc
Aleksandr
ассоциации нет, а mvc есть
Aleksandr
в mvc http request приходит в точку входа, называемую в контексте парадигмы controller (в go это http handler), дальше запрос идет в модель (это бизнес-слой приложения), а бизнес слой возвращает данные клиенты (view, оно же http response с помощью response writer). В общем-то парадигме mvc следует большинство веб (и не только) приложений, в т.ч. и на го.
Aleksandr
а вот что ты хотел сказать: зачем ты тащишь mvc как в php? выкинь, и делай в go style
Aleksandr
не, не надо. я просто за точность формулировок
Aleksandr
это да. даже на пхп уже от контроллеров уходят, юзая похожие на go http handler'ы
Заур
неменого не понимаю.В чём отличие хендлера от контроллера?
Aleksandr
в контексте mvc ни в чем
Aleksandr
хэндлер это и есть контроллер mvc
Aleksandr
но тут речь зашла про контроллер как его делали в пхп - то есть несколько экшнов в одном классе
Aleksandr
типа логически объединенные экшны
Заур
ааа
Aleksandr
в общем есть контроллер как понятие mvc, а есть реализации в различных языках - handler в go, контроллер с экшнами в php итд
Заур
по-моему начинаю понимать, спасибо)
Заур
а в чём проблема контроллеров как класса
Заур
я раньше на рельсах писал
Заур
вполне себе норм было
Aleksandr
а зачем? почему не использовтаь отдельные экшны/хэндлеры?
Заур
ну наверно типо можно в одном месте собирать специфичный для данной rest сущности код
Заур
всякие обработчики параматров и тп
Заур
ну типо да) Но для обычных сайтов, интернет магазинов, соц сетей и тп, вроде самое-то для всего остального не знаю
Nikita
Мля, я только сейчас допер о чем вы. В асп.нете, к примеру, логика работы с юзерами организовывалась в UsersController, в котором были экшены Register, Login, RestorePassword, AnotherHrenoten
Nikita
Я совсем не о тех контроллерах говорил, а о том, что подразумевалось в понимании экшнн
Aleksandr
я о том говорю: экшн = хэндлер
Заур
эм. ты в какую-то другую степь пошел. все сайты в общем-то обычные.
обычные сайты имел в виду где рест работает. Просто на хабре пару раз встречал жалобы, что у них рест плохо работает. И в паре книг читал про это.
Kirill
народ, меня тут подзадолбала ширина контента гитхаба на 20" экране, поэтому вот https://userstyles.org/styles/153877/full-width-github
Slach
Народ, а вот помогите решить концептуальный вопрос: есть 5-6 утилиток командной строки у которых есть какой то набор flag параметров которые могут подгружаться из Yaml Конфига набор параметров в чем то совпадает в чем то расходится плюс хочется иметь возможность любой параметр сконфигурировать через переменные окружения поглядел awesome-go в буду юзать https://github.com/spf13/viper https://github.com/spf13/сobra НО хочу сделать какой то базовый пакет должен быть reusable код который инициализируется для общих параметров и потом раскидывается в какую то структуру структура имеет базовый тип в этом базовом пакете и наследуемые структуры уже в утилитках не понимаю как организовать код чтобы не было кучи копипаста в каждой из утилиток
Denis
привет, друзья! а есть спецы по DDD в чатике?
Aleksandr
есть
Заур
Такое ощущение, что бест практис и запреты это просто решение какого-то человека или группы основанное чисто на своём мнении
Заур
Идёшь в один язык, там топят за одно
Заур
Идёшь в другой, там топят совсем за другое и ругают предыдущих
Заур
Вот сейчас прохожу кодогенкрацию в го. Прописывать генерацию кода в комментариях? Вы серьезно?
Заур
Почему нельзя было ввести какие-нибудь специальные макросы
Заур
Или препроцессорный язык
Заур
Или дж******и?
Или дже****ки))
Vsevolod
Или дж******и?
опасные слова )
Nikita
Или препроцессорный язык
Тогда будет по скорости компилироваться как сишка и вообще не поддаваться статическому анализу.
Заур
Тогда будет по скорости компилироваться как сишка и вообще не поддаваться статическому анализу.
Имел в виду для кодогенерации. В го многие старые вещи по новому сделаны, почему бы не взглянуть и здесь с новой стороны
Nikita
Имел в виду для кодогенерации. В го многие старые вещи по новому сделаны, почему бы не взглянуть и здесь с новой стороны
Офигенно же придумано. Сгенерировал код - тут тебе и интелисенс, анализ, вся херня. А так в случае с макросами все будет раскрываться только во время компиляции
Anonymous
Имел в виду для кодогенерации. В го многие старые вещи по новому сделаны, почему бы не взглянуть и здесь с новой стороны
Есть мнение, что нужно наоборот делать всё традиционно. Например, форматирование дат.
Nikita
То есть фронт должен генерить хтмл шаблон?
В смысле, а где еще, может на пхп, что ли?
Anonymous
В смысле, а где еще, может на пхп, что ли?
Вот кстати, а если фронт тормозит? То есть бэкенд отрабатывает быстрее чем фронт рендерит шаблон.
Anonymous
Может рендерить на сервере таки?
Anonymous
Всё.
Anonymous
Получил запрос, отработал, отрендерил шаблон, отдал.
Nikita
Стоит только формочку добавить и все, лол
Anonymous
Никуа не лол.
Anonymous
127.0.0.1:80/login 127.0.0.1:80/sign 127.0.0.1:80/list
Anonymous
javascript шлёт ансихрон на бэкенд, бэкенд отдаёт json к примеру.
Oleg
Асинхрон?
А как по другому?
Oleg
Без асинхронности вся страница колом станет.
Anonymous
Люди, подскажите, как выглядит распространённая практика размазывания кода по файлам. Будет много пакетов, хотелось бы как-то структурировать. К примеру, где хранить интерфейсы, структуры, методы?