From 9425ee6ed097e608340912647fa97b817d093cbd Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sat, 19 Oct 2019 00:05:20 +0300 Subject: [PATCH] =?utf8?q?=D0=92=D1=81=D1=91=20=D0=B3=D0=B5=D0=BD=D0=B8?= =?utf8?q?=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B5=20--=20=D0=BF=D1=80=D0=BE?= =?utf8?q?=D1=81=D1=82=D0=BE.=20=D0=9E=D1=81=D0=BE=D0=B1=D0=B5=D0=BD=D0=BD?= =?utf8?q?=D0=BE=20=D0=B2=20Go?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 в них. Ведь всё вышеперечисленное так просто сделать, но додуматься до этого дано не всем, чему завидую! -- 2.48.1