Мерль
Go Reliability and Durability at Dropbox https://about.sourcegraph.com/go/go-reliability-and-durability-at-dropbox-tammy-butow
Slava
https://www.youtube.com/playlist?list=PL2ntRZ1ySWBdD9bru6IR-_WXUgJqvrtx9
Daniel
отправлять их в разных горутинах
Anonymous
Про антипаттерны офигенный доклад
Anonymous
Много чего я использую из того, что чувак считает антипаттерном, например именнованные параметры возврата и if-else
Ivahaev
В старом докладе Дмитрия Вьюкова есть пример.
Anonymous
А на мастерклассах видео не снимали но вот презенташка по мастерклассу debuggging/profiling https://github.com/campoy/go-tooling-workshop
Мерль
Много чего я использую из того, что чувак считает антипаттерном, например именнованные параметры возврата и if-else
Ну, именованый возврат имхо удобен и нужен когда тебе нужно перехватывать паники внутри функции и оборачивать их в error
Anonymous
проблема в том что можно написать if, где неявно создать присвоением одноименную переменную, но уже в локальном скопе, синтаксически все верно, но работать будет неправильно
Anonymous
и это действительно путает
Daniel
ну вот это единственный случай, когда в нем реально есть смысл
Anonymous
а перехват паник - да, по другому не работает
Anonymous
в смысле чтобы при панике таки вернуть какое-то значение отличное от дефолтного
Anonymous
но вообще если ты перехватываешь панику и при этом что-то возвращаешь
Anonymous
то это признак говнокода )
Anonymous
хотя таких либ овермного на томже гитхабе
Мерль
то это признак говнокода )
Причём не факт, что твоего, мда
Daniel
но вообще если ты перехватываешь панику и при этом что-то возвращаешь
это может быть признак чужого говнокода - некоторые либы паникуют там, где вполне можно возвращать ошибку
Anonymous
А когда вообще можно паниковать?
Aleksandr
это может быть признак чужого говнокода - некоторые либы паникуют там, где вполне можно возвращать ошибку
сторонние либы всегда должны возвращать ошибку имхо, если нет нормального отлова паник (типа как try/catch)
Aleksandr
а конечный потребитель уже сам решит критичная для него ситуация или нет
Мерль
Когда что-то произошло, что нувсёпиздец и нужно упасть прямо сейчас Например, в функции-конструкторе, там лучше упасть сразу, но с подробный объяснением, что не так
Anonymous
Типа если пиво в падике из руки выпало?
Anonymous
Или боярышник пролился?
Anonymous
Серьёзно, маты уже глаз режут
Anonymous
панику обычно кидает самый верхний уровень проги
Anonymous
либа не имеет право
Daniel
да ладно
Daniel
null pointer exception тебе откуда угодно может приехать
Anonymous
Нафига вам дженерики?
Anonymous
тут стикеры запрещены что ли
Mike
да
Mike
а еще тут запрещено обсуждать нормальные языки
Mike
только го
Anonymous
прост в правилах нет ничего
Anonymous
:l
Ruslans
надо отца спросить
Ruslans
@twentydraft
Anonymous
Дженерики и обработку ошибок тоже если что - нельзя обсуждать.
Anonymous
менеджеры пакетов тоже
Anonymous
Прост интересно че все в них уперлись
Мерль
Aleksandr
прост в правилах нет ничего
с другой стороны зачем нужны правила, чтобы не постить школоло-стикеры?
Мерль
Anonymous
А?
здесь стикеры запрещены?
Мерль
Как бы ничто не мешает игнорировать вопрос, если не хочется
Anonymous
У кого-то даже были гоферские стикеры.
Ruslans
А?
поясни за стикеры, говорят запрещены
Daniel
Прост интересно че все в них уперлись
это некий продвинутый механизм - параметрические типы. модно.
Mike
Мерль
поясни за стикеры, говорят запрещены
Пока не спамите, то всё в порядке
Anonymous
мхм
Anonymous
какой-то админ меня не любит тогда
Aleksandr
ребят, просто мера должна быть. когда ты постишь стикер, подтверждающий твои слова - ок, когда просто вбрасываешь телку - задумайся, нахрена ты это делаешь в чате про программирование во время разговора о нем же?
Мерль
Темплейты как в с++?
Только безопаснее и удобнее
Anonymous
null pointer exception тебе откуда угодно может приехать
Это непредвиденная ситуация и баг
Anonymous
Я про вызов паник писал
Daniel
Я про вызов паник писал
вполне может сложится ситуация, когда ты обнаружил ошибку, и восстановлению оно не подлежит.
Anonymous
панику обычно кидает самый верхний уровень проги
Я думаю наоборот. Панику может кидать только стандартная либа на тех оперциях, где нельзя ещё и вернуть код ошибки. Например, операция деления. Все остальные должны возвращать ошибку.
Daniel
коллеги, паника - это когда вы хотите, чтобы программа ваша упала и напечатала стектрейс
Daniel
потому как расчитывать на то, что панику вашу перехватят, вы не можете, это не exception
Daniel
например - вам в либу на вход приехало нечто, чего вы не ждали совсем.
Michael
😂😂😂
Daniel
лучше, конечно, поиграть в интерфейсы, чтобы это компилятор поймал
Daniel
но бывает, что и не получается
Daniel
всякое бывает
Daniel
ждать, что в следующий раз приедет что-то более приемлемое, вы не можете - скорее всего, приедет такое же
Daniel
вот тут можно кинуть панику
Mike
я вообще считаю что нужно никогда не паниковать