[О блоге] [наверх] [пред] [2019-10-19 00:05:20+03:00] [9425ee6ed097e608340912647fa97b817d093cbd]
Темы: [go]

Всё гениальное -- просто. Особенно в Go

https://blog.golang.org/go1.13-errors
Прочитал сегодня вот блогпост о добавлении всего двух фунок в errors
библиотеку в Go и о том, что могло бы быть полезно добавлять ровно один
простой Unwrap() error метод в свои ошибки. Но они показывают зато
насколько можно упростить код (и повысить читаемость) этими простейшими
изменениями/советами. Ничего из этого не пробовал, явно должно пройти
прилично времени чтобы осознать и прочувствовать всю красоту и мощь
нововведений касающихся обработки ошибок, но чувствую что это дико
понравится!

И не могу нарадоваться удобству работе с модулями. Сколько лет сидел на
Python и постоянно страдал от их убогого пакетного менеджера,
невозможности использования разных версий одной библиотеки,
невозможности прибить гвоздями не только версию, но вот и чётко заданных
хэш для её аутентификации. Модули в Go очень просты, топорны и очень
продуманны! Причём и для use-case-а "я всему доверяю, хочу просто
сделать go get и получить счастье", до use-case-а когда хочу в tarball
всё чётко прибитое гвоздями самостоятельно помещать.

Сегодня вот релизил GoGOST и перед релизом надо проверить эту новую
версию в составе стороннего ПО. "redirect" директива в go.mod прозрачно
позволяет использовать моё обновление. Удаляем потом эту одну строчку
после релиза и начинает использоваться модуль скачиваемый извне.

Возможность разбиения пакета на любое количество файлов -- невероятно
удобно! Просто нарадоваться не могу этому уже сколько лет. Опять же,
сегодня надо было перенести часть некоторых фунок в GoGOST, вынести их
из внутреннего проекта. Почти всё закончилось просто переносом
нескольких файлов и изменению package XXX в них.

Ведь всё вышеперечисленное так просто сделать, но додуматься до этого
дано не всем, чему завидую!

    [оставить комментарий]