Maks
Ну и результатом является картинка где отмечены дифы изображений
Maks
Сама картинка это набор байт группами по 4. 1 пиксель это первые 4 байта каждый отвечает за rgba
Maks
Ну я про итоговую говорю, там было 4 характеристики на выходе. Хотя может быть и чет путаю и было 3. Не суть.
ZeroX
Здравствуйте у меня вопрос есть ли MVC веб-фреймворки на Go? При этом с нормальным skeleton, а не как revel
ZeroX
Чтобы каждый роут и метод отдельно не указывать
ZeroX
А то это ппц
Maks
Ты конечно можешь это сделать
Maks
но это архитектурно не правильно
ZeroX
Хм?
Maks
Как ты хочешь роуты и методы прописывать?
Maks
В го нет аннотаций и это компилируемый язык. Там нет такого что он сканит директорию и берет оттуда контроллеры и из них все методы получает и на них ссылается. Это не пхп и не питон)))))))
G
Только если через рефлекшин. Но это будет медленно и неоправданно
Maks
Тем более ты хочешь скелетон я так понимаю вместе с фронтом? То есть что бы у тебя был SSR?
Alexander
Можно на кодогенерации сделать. Но это не так сильно нажо
Maks
ну о том и речь.
Maks
Это наоборот не удобно и проще наделать ошибок.
Alexander
Звучит как кодогенерация
В пыхе ты можешь определить функцию, которая ищет не найденный класс. Автолоадинг
ZeroX
Да нет ты немного не понял, я не говорю прописывать её, просто хотя бы дважды её не указывать как в reval
Maks
Ну если взять голый го, то у тебя есть http.HandleRequest который принимает роут и метод
G
gin какой-нибудь. package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }) r.Run() }
ZeroX
В гине он не соблюдается
G
Прикручиваешь туда шаблонизатор любой и получаешь V. А что там у тебя в M - сервисный слой или сразу дблинк - уже твоё дело.
Alexander
https://github.com/beego/beego
Maks
что значит не соблюдается. Джин по сути просто роутер с мидлваром
ZeroX
А сразу из коробки нету такого ?
Alexander
Не пойдёт?
ZeroX
Щас
ZeroX
https://github.com/beego/beego
Вот то что надо
ZeroX
Подходит мне спасибо
ZeroX
О аннотация через комменты
ZeroX
Круто
ZeroX
Мне вот интересно в го когда нибудь ооп завезут нормальное ?
ZeroX
Почему аннотации зло?
ZeroX
Джава да, но ооп по типу как Python нет
ZeroX
Или C++
ZeroX
В Python просто все - это объект
ZeroX
Класс - это объект, переменная объект, и т.д
ZeroX
Функция это объект
Alexander
Мне вот интересно в го когда нибудь ооп завезут нормальное ?
ну это же фишка, что оно есть, но не такое как везде
ZeroX
Ну как в чистом си
ZeroX
Псевдо ооп
Alexander
нет, и еще раз нет
Emil
Это псевдо ООП для тех, кому зачем-то нужно ооп
ZeroX
Ну типа структурное ооп
Alexander
абсолютно ООПшное ООП
ZeroX
абсолютно ООПшное ООП
Но при этом язык не ооп
ZeroX
Страно да ?
Alexander
как писать будешь
Alexander
язык ООП, а писать в си стиле ты и на пхп можешь
Alexander
на любом языке тащемта например
Maks
Джава да, но ооп по типу как Python нет
Питон с его не строгой типизацией такое себе. Компилируемые языки с нулбезопасными переменными и типами данных прелестны тем, что ты практически всегда уверен в том что данные пришли нужного типа) В питоне я как то пробовал указать тип данных в методе и передать другой тип - в итоге он принимает не верный тип. Это имхо супер тупо. Даже пыха такого не позволяет.
Maks
Ага. Он подсказывает иде что там и как должно быть, но на работу не влияет)
Alexander
- У вас типы на работу влияют? - Нет, только ИДЕ подсказывают. - Убогое.
Alexander
да ладно, в пыхе вся возможная типизация разбивается об непотопляемый array, который и вектор, и мапа, и немножко линкед лист, и элементы там могут лежать совершенно разные
ZeroX
Чувак омг честное слове
ZeroX
Щас бы типизация работе программы бы мешала
Maks
Тебе типизация работе мешает ?
Типизация помогает писать более надежный код
Alexander
Как и в питоне нет?
не знаю. я для себя смысла не увидел еще одно пхп учить, только как бы более правильное
Alexander
помогает, именно что помогает, но работу за тебя не делает
ZeroX
Чем помогает ?
Maks
Не помогает
Как не помогает. Вот без типизации ты передаешь в метод извне параметр, был инт стал объект. Ты внутри не поменял работу и всё, программа падает. С типизацией этого не случится. Особенно это заметно на всяких событиях, подписчиках
Emil
Alexander
ну начнем с того, что любой код помогает писать, так как можно отследить что именно куда приходит. а так, очевидно, что если вместо инта пришло "ffds::ldf6", то ничего хорошего ты не получишь
Alexander
падение лучше некорректной работы
Alexander
а ошибка компиляции лучше падения
ZeroX
падение лучше некорректной работы
И там тупо можно преобразовать тип
Maks
Что бы преобразовать нужно знать из какого типа в какой нужно преобразовать)))
ZeroX
Нет
ZeroX
Нужно знать только в какой тебе нужно
ZeroX
А из какого там не имеет значения
Maks
ffds::ldf6 в инт вернет 6?