Kirill
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
Aleksandr
ты как-то по другому свои гошечки делаешь?
Kirill
Aleksandr
я смотрел
Kirill
Kirill
у меня _вообще_ нет ассоциации с mvc
Aleksandr
ассоциации нет, а mvc есть
Aleksandr
в mvc http request приходит в точку входа, называемую в контексте парадигмы controller (в go это http handler), дальше запрос идет в модель (это бизнес-слой приложения), а бизнес слой возвращает данные клиенты (view, оно же http response с помощью response writer).
В общем-то парадигме mvc следует большинство веб (и не только) приложений, в т.ч. и на го.
Aleksandr
а вот что ты хотел сказать: зачем ты тащишь mvc как в php? выкинь, и делай в go style
Kirill
Nikita
Aleksandr
не, не надо. я просто за точность формулировок
Kirill
Aleksandr
это да. даже на пхп уже от контроллеров уходят, юзая похожие на go http handler'ы
Заур
неменого не понимаю.В чём отличие хендлера от контроллера?
Aleksandr
в контексте mvc ни в чем
Aleksandr
хэндлер это и есть контроллер mvc
Заур
Aleksandr
но тут речь зашла про контроллер как его делали в пхп - то есть несколько экшнов в одном классе
Aleksandr
типа логически объединенные экшны
Заур
ааа
Aleksandr
в общем есть контроллер как понятие mvc, а есть реализации в различных языках - handler в go, контроллер с экшнами в php итд
Заур
по-моему начинаю понимать, спасибо)
Заур
а в чём проблема контроллеров как класса
Заур
я раньше на рельсах писал
Заур
вполне себе норм было
Aleksandr
а зачем? почему не использовтаь отдельные экшны/хэндлеры?
Заур
ну наверно типо можно в одном месте собирать специфичный для данной rest сущности код
Заур
всякие обработчики параматров и тп
Aleksandr
Заур
ну типо да) Но для обычных сайтов, интернет магазинов, соц сетей и тп, вроде самое-то
для всего остального не знаю
Aleksandr
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
есть
Заур
Такое ощущение, что бест практис и запреты это просто решение какого-то человека или группы основанное чисто на своём мнении
Заур
Идёшь в один язык, там топят за одно
Kirill
Заур
Идёшь в другой, там топят совсем за другое и ругают предыдущих
Заур
Заур
Вот сейчас прохожу кодогенкрацию в го. Прописывать генерацию кода в комментариях? Вы серьезно?
Заур
Почему нельзя было ввести какие-нибудь специальные макросы
Заур
Или препроцессорный язык
Anonymous
Nikita
Или препроцессорный язык
Тогда будет по скорости компилироваться как сишка и вообще не поддаваться статическому анализу.
Anonymous
Заур
Nikita
Anonymous
1. Та мвц понятное дело не катить на бекенде с рестом, тем более на го. Я просто раньше кормился будучи разработчиком на дотнете. Когда хтмл рендерили на сервере, поступал запрос, он обрабатывался. Формировался респонс и передавался шаблонизатору, который генерил страницу на основе ViewModel. Сейчас страницы на сервере генерят только пхпшники.
2. Ну блин, можно назвать не контроллер, а "экшн" или "РеквестПроцессор" какой-то
3. К сожалению, когда мы получаем информацию о типе, в го нет конструкторов, потому эти значения можно получить только лишь экспортируя экземляр типа через переменную пакета, либо придумывать свои инициализаторы.
4. Та похер на те бенчмарки. 99% обработки запроса занимает IO, а не парсинг хттп-запроса
То есть фронт должен генерить хтмл шаблон?
Anonymous
Может рендерить на сервере таки?
Nikita
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 к примеру.
Anonymous
Oleg
Без асинхронности вся страница колом станет.
Anonymous
Люди, подскажите, как выглядит распространённая практика размазывания кода по файлам. Будет много пакетов, хотелось бы как-то структурировать. К примеру, где хранить интерфейсы, структуры, методы?