Kirill
ну вот и понятно
Kirill
на их _облако_ я не смотрю, я смотрю на baremetal
Рубикон
А жирную ноду c2L не с первой попытки запустить возможно..
Kirill
взял developer service и доволен
Alexey
Я тоже только на bare пока смотрю
Рубикон
Оно лаголо суток двое назад .. и нет опции .. "по возможности запустить"
Kirill
а мне ок %)
Kirill
у меня лагов нет)
Nikita
на их _облако_ я не смотрю, я смотрю на baremetal
Ну мне нужна была именно облачная платформа. Типа количество серверов овер их мощность. Так просто задумана архитектура приложения, которое я думал попробовать смасштабировать за счет дешевых скейлевеев.
Рубикон
у меня лагов нет)
В смысле консоль тпращило
Nikita
За бэреметал ничего не могу сказать, но например можно перезагружать сервак и все. Я просто сделал ребут и больше не смог ничего сделать в панели, подключиться по ссш, пытался загрузиться через рекавери скрипты, бестолку
Рубикон
В амстердаме
Kirill
В амстердаме
а mtr что говорил?
Рубикон
А хз, там вообще все железо выкупили (глянь там в консоль сейчас)
Kirill
не всё, есть ещё немного) а в Париже C1 вполне доступен тем временем
Nikita
Еще у скейлвеев есть странное свойство беспричинно ломаться. Например подключаешь стораж и сделал ошибку в fstab, что очень легко, из-за устаревшей доки, например. И получишь геморой на 40 минут, чтобы починить
Рубикон
Там бекар машины возможен только при полном выключении
Nikita
Кстати да
Рубикон
А потом надрачиаай тыкалку включения, пока железо освободиться
Nikita
погоди. так беспричинно или ты сделал ошибку в fstab?
Последний раз у меня было беспричинно, где я психанул. Что именно произошло, почему весь сервер отвалился и я даже не мог загрузиться через рекавери скрипт, не знаю
Рубикон
А ещё у них ядра .. "свои, особенные" .. по логам обещают позволить сови накатывать .. когда-нибудь, ога
Kirill
тогда выяснилось, что у них сломался гипер с моей виртуалкой и тачка с бэкапами этого гипера
Nikita
Я вообще красноглазю с линуксом с шестого класса, серьезно, что делать когда что-то отвалилось я прекрасно знаю)
Kirill
и тишина ;D
Anton
http://devdocs.io/go/ можно ли это считать за документация к Го?
Anton
просто на офф сайте не нашел
Kirill
нет
Kirill
и как ты мог не найти https://godoc.org/-/go ?
Kirill
и https://golang.org/pkg/
Anton
golang doc загуглил
Nikita
я с 9 лет
интересно при каких обстоятельствах, у нас в школе на компы убунту поставили, мне стало интересно и мне препод по информатики вручул диск,
Kirill
интересно при каких обстоятельствах, у нас в школе на компы убунту поставили, мне стало интересно и мне препод по информатики вручул диск,
а я просто забил на школу, накопил на первые месяцы за простой сервак и пошёл красноглазить. параллельно учил си
Kirill
Откуда-то же должна была мотивация взяться :)
мотивация? я хотел интернет-радио запустить и там, помимо прочего, крутить музыку, которую писал
Oleksii
Был бы кто-то у меня, кто меня раньше наставил на путь истинный)
Kirill
у меня изначально не было
Nikita
Вообще если стерпеть глючное управление скейлея, при хорошем терпении, наличии времени и полного понимая что ты делаешь, за такую цену, можно рили конфетку сдлать
Oleksii
Всегда нравилось такое, но видимо недостаточно. Перебивался геймингом до конца школы, а там уже взялся за голову.
Kirill
спустя годы познакомился с @demeliorator и понеслась
Kirill
кстати, давно тут не было ссылки на grame: https://github.com/gramework/gramework кто не смотрел, смотрите :)
Nikita
мотивация? я хотел интернет-радио запустить и там, помимо прочего, крутить музыку, которую писал
А мне родители в детстве комп купили, я с ним поигрался, мне стало неинтересно и я его даже не включал месяцами. Потом как-то провели интернет и все поменялось
Oleksii
Уже вижу, соррян :)
Kirill
Kirill
пушнул ещё линк на джирку, там ещё процесс не налажен, ибо opensource лицензию только выдали, но можно регаться и таски приносить)
Nikita
в основном - я
Я тут вынашиваю идею декларативного рест-фрейморвка, на основе того, что я накостылял для проекта, который сейчас сам поддерживаю.
Nikita
а таки чем он отличается от gramework?)
Уклоном на бизнес логику. В чем суть. Как устроено рест-приложение. 1. Приходит рест запрос. Есть модель описывающая параметры рест-запроса. 2. Формируется "бизнес"-запрос из контроллера. 3. Дальше запрос передается какому-то сервису 4. Сервис включает себя репозитории, дто и т.п. 5. Формируется "ответ" Мне хотелось бы решить задачу такого рода
Kirill
я вот пока идею не словил)
Nikita
я вот пока идею не словил)
Ну вот пока то, что у меня есть в одном проекте, где я экспериментирую (кстати, совсем не пет-проджект, но чувствую себя свободно в нем) https://pastebin.com/n85sF8hK
Nikita
Суть в том, что мы декларативно описываем бизнес-логику и как и куда мы делегируем дальше
Nikita
Плюс это все должно быть легко тестируемо, все должно соединяться через DI контейнер
Kirill
ну вот смотрю я на скинутый код и не понимаю, зачем тут 1) mvc 2) ctrl.Auth, который bool, = false, хотя у bool дефолт - false 3) Init() методом вместо New() 4) поля типа route, method и т.д., которые должны быть приватными, являются публичными потом непонятно, как ты предполагаешь матчить роуты
Kirill
O(n) на каждый запрос? O(log n) из-за wildcard?
Kirill
где n = количество роутов * на количество методов
Kirill
декларативка - хорошая штука, но нельзя забывать о производительности и простоте
Kirill
если что - я не агрюсь, так что без обид)
Nikita
ну вот смотрю я на скинутый код и не понимаю, зачем тут 1) mvc 2) ctrl.Auth, который bool, = false, хотя у bool дефолт - false 3) Init() методом вместо New() 4) поля типа route, method и т.д., которые должны быть приватными, являются публичными потом непонятно, как ты предполагаешь матчить роуты
Я пока еще все очень прибизительно делаю, пруфофконцепт, но суть примерно такая. 1. Я вообще хотел из пакета http прикрутить, там что-то временно не сложилось. 2. Не очевидно же. Человек смотрит в декларацию контроллера и видит, что он работает без auth 3. Как бы мы декларативно создаем тип и методы в нем, где в рантайме уже выяснияем, как с ним работать. 4. Там в тоге создается более высокоровневый тип в рантайме, в котором есть только хендлер http
Kirill
в грейме с матчингом всё понятно - radix tree и всё
Nikita
1. wut? как это связано? 2. спорно. и так, и так, видно, что работает без auth. потом, auth ты вряд ли сделаешь достаточно универсальным и безопасным, чтобы скрывать его работу от программиста 3. и? это не ответ на мой вопрос) 4. так а матчинг как у тебя работает?
1. Ну будет не mvc.POST, а http.POST, понятно же 2. Там частный случай, каждый контроллер в приложении может иметь собственные параметры, а его обработка декларативная описана последовательностями middleware 3. Ответ. Конструктор New() просто создаем экземляр типа. Дальше фреймворк получает его информацию. Дальше смотрит, как тип сконструировать, дальше какие зависимости передать, и так по цепочке 4. Внутри лежить labstack/echo 😀
Nikita
если что - я не агрюсь, так что без обид)
Та не, пока же все еще только в голове крутится, нужно чтобы кто-то херами пообкладывал
Kirill
Та не, пока же все еще только в голове крутится, нужно чтобы кто-то херами пообкладывал
ты меня плохо знаешь, я сейчас добрый и совсем не обкладываю херами)
Nikita
1. да не сам пакет, а mvc в целом 2. вот и возвращаемся обратно к первому вопросу. зачем контроллеры? 3. не ответ. да, New() создаёт экземпляр типа. тебе его и так, и так нужно создавать. зачем делать login{}, а потом где-то l.Init(), если можно сделать сразу NewLogin()? 4. сожалею %)
1. Та понятно мвц очковое название, это так, эволюционировало, что я думал, как правильно было бы организовать мвц-фреймворк. 2. В них же вся суть. В контроллере мы декларативно описываем, как обработать бизнес-логику, ради чего же все и задумывалось. 3. New() нужен, чтобы скрыть тип на уровне пакета. Пакет нам открывает доступ только к конструктору типа и его интерфейсу. 4. Бывало и хуже. :)
Nikita
ты меня плохо знаешь, я сейчас добрый и совсем не обкладываю херами)
Ну мне же интересно, как все концептуально правильно решить. Интересно, как делают по-другому
Kirill
1. Та понятно мвц очковое название, это так, эволюционировало, что я думал, как правильно было бы организовать мвц-фреймворк. 2. В них же вся суть. В контроллере мы декларативно описываем, как обработать бизнес-логику, ради чего же все и задумывалось. 3. New() нужен, чтобы скрыть тип на уровне пакета. Пакет нам открывает доступ только к конструктору типа и его интерфейсу. 4. Бывало и хуже. :)
1. ок, давай другими словами. я спрашиваю - нахера ты тащишь в гошку mvc? зачем в гошке чужая раковая опухоль? 2. суть в декларативщине, но ты по привычке привязал к контроллерам 3. да. мы делаем интерфейс, убираем оттуда Init() и ждём инициализированный инстанс 4. https://github.com/smallnest/go-web-framework-benchmark#basic-test он вот просто среди прочей серой массы, даже не свалился в говно и не начал бороться за первенство
Zloy-Dobry
В чяти адово завоняло пыхапэ