Для Go не обязательно открывать браузер ручками, есть такой же проект как Tauri, называется Wails. Но конечно нативное всегда будет лучше, даже Fyne для Go будет лучше, чем любой webview по производительности и потреблению ресурсов. Лично сравнивал между Wails и Fyne, второй выигрывает по CPU, GPU и памяти, проигрывает только по удобству конструирования не стандартного UI, всё-таки для веба есть уйма фреймворков.
Очень странно, у меня после каждого мажорного обновления MacOS, Parallels переставал работать, необходимо было каждый год покупать новую версию. В один момент меня это достало и я установил VMWare, который бесплатен для личного пользования. Использую его, вместо аналогов, из за возможности авто снапшотов время от времени.
Подобный подход с опциями используется в GRPC и Goland хорошо справляется(всё из списка на скрине это валидные опции кроме tabnine, это AI), особенно если использовать комбинацию Shift+Ctrl+Space , чтобы автодополнение учитывало тип.
Сейчас набирает популярность Templ, позволяет писать шаблон почти как код на go и преобразуется в go код после генерации(с нормальными типами, а не просто map), то есть никакого парсинга шаблонов в рантайме. Мне понравился, но поддержка редакторов пока скудная.
Из бесплатных: ImHex (кроссплатформенный и open-source), шаблоны описываются си-подобным языком. Из платных: Synalyze It! (MacOS) и он же под Windows - Hexinator, тут уже шаблоны настраиваются через GUI.
Скорее всего, он использует сайты, как gpt4free, только мимикрирует как реверс прокси и из за этого его можно спокойно использовать во многих программах и плагинах.
Всё так же, как и с вызовом через функцию, ни кто не указывает имя параметра при вызове функции и всё нормально и ни вызывает ни у кого проблем. И в статье явно делалось замечание, что это вообще нереально и вон какой го плохой.
Так же, IDE спокойно подсвечивает имена полей, если их не указать явно, поэтому не вижу никаких проблем.
Претензия высосана из пальца, так как го выдаёт ошибку если не все поля инициализированы в структуре, но он сам указал, чтобы остальные поля были default, указав ключ-значение.
Этот код не скомпилируется:
package main
import "log"
type Params struct {
a int32
b int32
}
func work(p Params) {
log.Printf("Working with a=%v, b=%v", p.a, p.b)
}
func main() {
work(Params{
47,
}) // <- Error: too few values in struct literal
}
Так же, из опыта: в соло, игру можно пройти менее чем за 8 часов.
Я выбивал ачивку «Недотёпам здесь не место», получилось с первого раза за ~7:23 с минимальной эволюцией жуков(чтобы не тратить силы на оборону), но получится такой говнокодзавод с лапшеобразными конвейерами и трубами, что потом его только сжечь… Пруф, я нанят?)
У меня в сети напряжение гуляет от 218 до 244 Вольт (в зависимости от времени суток).
Желающие могут посмотреть на снапшот мониторинга из графаны, замеров напряжения на UPS за неделю. Снапшот тут.
500мб это компилятор го, сам образ для работы приложения не нужен.
С помощью многоэтапной сборки можно запустить go приложение в докере вообще без базового докер образа, просто from scratch.
А для чего такие сложности с настройкой? Для этих целей существует docker-machine с драйвером generic, который настроит сервер и клиент одной командой: docker-machine create -d generic --generic-ip-address {ip-address} {docker-vm-name}
На сервере даже докер руками ставить не надо, docker-machine сам всё установит, нужен докер только на клиенте.
Как я помню, докер из brew ставится без зависимостей, только сам бинарь, что позволяет, опять же, убрать ручной труд.
Получается статью можно было сжать до нескольких строк:
Покупаем VPS
Устанавливаем докер на Мак: brew install docker docker-machine
и запускаем настройку связи с сервером docker-machine create -d generic --generic-ip-address {ip-address} {docker-vm-name}
P.S. Если docker-vm-name назвать как default то это машина будет использоваться по умолчанию.
Ошибка в го, это любая структура, у которой есть метод `Error() string`
«Сложные» ошибки есть в стандартных пакетах, а в своих проектах обычно хватает оборачивания ошибки в свою ошибку с описанием, благо в Go1.13 завезли это в стандартную библиотеку Работа с ошибками в Go 1.13
Для Go не обязательно открывать браузер ручками, есть такой же проект как Tauri, называется Wails.
Но конечно нативное всегда будет лучше, даже Fyne для Go будет лучше, чем любой webview по производительности и потреблению ресурсов. Лично сравнивал между Wails и Fyne, второй выигрывает по CPU, GPU и памяти, проигрывает только по удобству конструирования не стандартного UI, всё-таки для веба есть уйма фреймворков.
Очень странно, у меня после каждого мажорного обновления MacOS, Parallels переставал работать, необходимо было каждый год покупать новую версию. В один момент меня это достало и я установил VMWare, который бесплатен для личного пользования. Использую его, вместо аналогов, из за возможности авто снапшотов время от времени.
На сколько вижу в документации, тип big.Int имеет методы Add/Mul/Div/Mod и т.д. Поэтому не совсем понимаю, зачем необходимо конвертировать во float64?
Для работы с бд есть тип в стандартной библиотеке
https://pkg.go.dev/database/sql#Null
Скрытый текст
Подобный подход с опциями используется в GRPC и Goland хорошо справляется(всё из списка на скрине это валидные опции кроме tabnine, это AI), особенно если использовать комбинацию
Shift+Ctrl+Space
, чтобы автодополнение учитывало тип.Сейчас набирает популярность Templ, позволяет писать шаблон почти как код на go и преобразуется в go код после генерации(с нормальными типами, а не просто map), то есть никакого парсинга шаблонов в рантайме.
Мне понравился, но поддержка редакторов пока скудная.
Спасибо за статью.
Но разве UseCase должен преобразовать Markdown в HTML?
Что если нам понадобится, в будущем, REST API для блога или мы захотим читать блог через терминал с диска со специальным форматированием для него?
Думаю таким должен заниматься UI слой, получая только модель с данными.
Из бесплатных: ImHex (кроссплатформенный и open-source), шаблоны описываются си-подобным языком.
Из платных: Synalyze It! (MacOS) и он же под Windows - Hexinator, тут уже шаблоны настраиваются через GUI.
Судя по ответу автора в дискорде, там не всё так честно
https://discord.com/channels/1055397662976905229/1106944669474099294
Скорее всего, он использует сайты, как gpt4free, только мимикрирует как реверс прокси и из за этого его можно спокойно использовать во многих программах и плагинах.
Сири спрашивает, что вы имеете ввиду, сегодня (такая дата) или завтра (такая дата)
Всё так же, как и с вызовом через функцию, ни кто не указывает имя параметра при вызове функции и всё нормально и ни вызывает ни у кого проблем.
И в статье явно делалось замечание, что это вообще нереально и вон какой го плохой.
Так же, IDE спокойно подсвечивает имена полей, если их не указать явно, поэтому не вижу никаких проблем.
Претензия высосана из пальца, так как го выдаёт ошибку если не все поля инициализированы в структуре, но он сам указал, чтобы остальные поля были default, указав ключ-значение.
Этот код не скомпилируется:
Можно забекапить с помощью этого скрипта https://github.com/josegonzalez/python-github-backup
Бэкапит не только репозитории с issue/pr, но и wiki, gists, и может бекапить ещё и репозитории помеченные stars.
(упомяну @krak, чтобы 2 комментария не писать)
Я выбивал ачивку «Недотёпам здесь не место», получилось с первого раза за ~7:23 с минимальной эволюцией жуков(чтобы не тратить силы на оборону), но получится такой говно
кодзавод с лапшеобразными конвейерами и трубами, что потом его только сжечь…Пруф, я нанят?)
Желающие могут посмотреть на снапшот мониторинга из графаны, замеров напряжения на UPS за неделю.
Снапшот тут.
500мб это компилятор го, сам образ для работы приложения не нужен.
С помощью многоэтапной сборки можно запустить go приложение в докере вообще без базового докер образа, просто from scratch.
docker-machine create -d generic --generic-ip-address {ip-address} {docker-vm-name}
На сервере даже докер руками ставить не надо, docker-machine сам всё установит, нужен докер только на клиенте.
Как я помню, докер из brew ставится без зависимостей, только сам бинарь, что позволяет, опять же, убрать ручной труд.
Получается статью можно было сжать до нескольких строк:
Покупаем VPS
Устанавливаем докер на Мак:
brew install docker docker-machine
и запускаем настройку связи с сервером
docker-machine create -d generic --generic-ip-address {ip-address} {docker-vm-name}
P.S. Если docker-vm-name назвать как default то это машина будет использоваться по умолчанию.
«Сложные» ошибки есть в стандартных пакетах, а в своих проектах обычно хватает оборачивания ошибки в свою ошибку с описанием, благо в Go1.13 завезли это в стандартную библиотеку Работа с ошибками в Go 1.13
В комментариях к оригиналу дали ссылку на готовое онлайн приложение, которое создаёт графы
https://anvaka.github.io/vs/?query=habr