Из аналогичного примера — если тебе твой работодатель из-за счётной ошибки прислал лишние деньги — ты обязан их вернуть
Вот только размер зарплаты официально зафиксирован, ровно как и курс валюты в системах Тинькоффа. Тут скорее правильным аналогом будет "работодатель ошибочно в трудовом договоре прописал не ту сумму". Ну удачи в возврате выплаченного обратно :)
Мне когда лишнего начисляли, просто определяли это в счет следующей зарплаты, в итоге никто ничего не терял.
Гипотетическая ситуация — купил молоко за 50 р., затем задним числом у тебя магазин списал еще 100500, "помните, вы покупали неделю назад молоко? Мы это, ошиблись, и вы нам теперь должны 100500". Ну это ж так не работает.
И аргумент про обогащение странный. Банки на каждом углу рекламируют про "с нами выгодно", всякие кэшбеки, акции и прочее. Почему клиент должен считать иначе, что выставленный курс это не то самое "с нами выгодно"?
Не скажу за всех, но лично мне больше импонируют блоги, где есть комментарии. Если есть комментарии, значит есть реальная аудитория, значит ресурс "живой" и на него можно обратить внимание, т.к. есть ещё подтип полумёртвых блогов со всякой seo-водой, на них время тратить не хочется.
И всё та же фобия угловых скобок и мания на круглые
Что значит "всё та же"? Почему вы думаете, что избегание угловых скобок это нечто иррациональное ("фобия", "мания")?
Угловые скобки усложняют парсер и делают его контексто-зависимым, т.к. A<B> C можно интерпретировать по-разному: это то ли шаблон, то ли сравнение "больше/меньше". Именно поэтому в Go тоже отказались от них.
Ну ок, вы же новый язык придумываете — как насчёт того, чтобы определить целочисленные типы, явно задающие возможность переполнения
Они даже до типа Vector2/4 не додумались, хотя SSE/AVX уже в каждом утюге есть
Это звучит как ваши рандомные хотелки, почему именно они должны быть в языке, а не что-то другое? Как минимум, Vector2/Vector4 спокойно решается добавлением в stdlib как интринзика, не обязательно иметь в первой публичной версии.
Ну а в разделах «обработка ошибок» и «распараллеливание кода» нет вообще ничего, типа «присылайте нам свои идеи»
Если бы удосужились ознакомиться с проектом, то знали бы, что идея сделать проект публичным появилась всего 3 недели назад, чтобы раньше получить фидбек от сообщества — до этого язык делался приватно и разработка ещё не завершена.
Его не просто так добавили по принципу "красивое/не красивое" — текущий синтаксис определения типов в C++ сильно контексто-зависимый (в зависимости от контекста, можно одну и ту же конструкцию интерпретировать по-разному из-за ambiguity), что сильно усложняет грамматику, компилятор и добавляет когнитивной нагрузки разработчику. Выбранный синтаксис избегает таких проблем.
Он использовал имеющийся от Quake1 (idtech 1), который знал хорошо, в то время как Кармак не стоял на месте и параллельно запилил idtech 2. Потом решили переделать на idtech 2, ну и все дедлайны поехали.
В 2016 году Ромеро обещал сделать Blackroom и потом тишина. Вангую, что опять закончится тем же. Судя по википедии, он объявлял о новом шутере в 2012, 2014, 2016 годах. В 2019-м заявил, что всё ещё работает над Blackroom. Тут вот в 2022 снова новый шутер.
главное, что требуется много лишних телодвижений, из-за того, что http.Request — мутабельная структура, которую требуют некоторые стандартные интерфейсы, у которой нет защищённых геттеров и сеттеров
Вы говорили именно про рейс-кондишны в http.Request, мне стало интересно именно про это. Ответа я так и не получил.
Почему бы изначально не сделать http.Request интерфейсом?
В Go идиоматично вводить интерфейсы на уровне консьюмера и не абстрагировать раньше времени. Structural typing позволяет приводить к любому интерфейсу, который нужен. Где-то, возможно, нужна мутабельность, где-то нет. Где-то нужны геттеры на всё, где-то только на подмножество. Зависит от потребителя. Могу предположить, что поэтому это не интерфейс.
В качестве примера можете поисследовать код Caddy
Ну тут вопрос скорее к Caddy, если это действительно проблема, можно было бы ввести свой интерфейс. Могу предположить, что проблема в интеропе с существующим кодом, где используется http.Request? В теории можно накостылять функцию-конвертер, которая транслирует между стандартными типами и своими. Нужно смотреть в конкретные примеры.
Хотя опять же, нет смысла это делать, отрицая наличие проблемы.
Я не отрицаю проблемы, просто на практике не встречался с ней, поэтому и интересны примеры. Кто знает, может быть, у нас есть потенциальные проблемы.
Я так и не понял, в чём проблема. Обычно фильтры/middleware выполняются на той же горутине, и ставить мьютексы нет нужды. В Caddy как-то по-другому? Не помню, что бы встречал рейс-кондиншны на http.Request, т.к. middleware работают под той же горутиной, а если нужно что-то обработать в новой горутине, то архитектурно не совсем верно туда кидать весь http.Request вместо конкретных данных, которые нужны. Можете привести пример, где приходится ставить мьютексы?
По ссылке - обычный баг, которых сотни/тысячи в любой либе, не вижу причин заострять внимание на нём.
Рейс-кондишны приходится отлавливать регулярно, ведь http.Request, который передаётся по цепочке обработчиков (в том числе сторонних) — это мутабельная незащищённая структура
В каких случаях это проявляется? В целом выглядит странно передавать реквест извне горутины, которая его обрабатывает.
Сортировка в стандартной либе это наверное самая известная проблема, в т.ч. авторы Go в курсе, что решение такое себе. Сейчас есть инициатива сделать по-нормальному после добавления дженериков.
Вот только размер зарплаты официально зафиксирован, ровно как и курс валюты в системах Тинькоффа. Тут скорее правильным аналогом будет "работодатель ошибочно в трудовом договоре прописал не ту сумму". Ну удачи в возврате выплаченного обратно :)
Мне когда лишнего начисляли, просто определяли это в счет следующей зарплаты, в итоге никто ничего не терял.
Накосячил Тинькофф, а виноват клиент.
Гипотетическая ситуация — купил молоко за 50 р., затем задним числом у тебя магазин списал еще 100500, "помните, вы покупали неделю назад молоко? Мы это, ошиблись, и вы нам теперь должны 100500". Ну это ж так не работает.
И аргумент про обогащение странный. Банки на каждом углу рекламируют про "с нами выгодно", всякие кэшбеки, акции и прочее. Почему клиент должен считать иначе, что выставленный курс это не то самое "с нами выгодно"?
*все сложнее
Non compete clause где-то имеет юридическую силу кроме США?
Не скажу за всех, но лично мне больше импонируют блоги, где есть комментарии. Если есть комментарии, значит есть реальная аудитория, значит ресурс "живой" и на него можно обратить внимание, т.к. есть ещё подтип полумёртвых блогов со всякой seo-водой, на них время тратить не хочется.
Следующая новость — Почта Россия получила запрос от РКН и готовит ответ :)
Молодец, но не все умеют.
В статье просто пример, или вы так и пишите — голый запрос в БД напрямую в контроллере?
Здесь большое число примеров, постоянно пополняется: https://www.reddit.com/r/dalle2
Что значит "всё та же"? Почему вы думаете, что избегание угловых скобок это нечто иррациональное ("фобия", "мания")?
Угловые скобки усложняют парсер и делают его контексто-зависимым, т.к.
A<B> C
можно интерпретировать по-разному: это то ли шаблон, то ли сравнение "больше/меньше". Именно поэтому в Go тоже отказались от них.Это звучит как ваши рандомные хотелки, почему именно они должны быть в языке, а не что-то другое? Как минимум, Vector2/Vector4 спокойно решается добавлением в stdlib как интринзика, не обязательно иметь в первой публичной версии.
Если бы удосужились ознакомиться с проектом, то знали бы, что идея сделать проект публичным появилась всего 3 недели назад, чтобы раньше получить фидбек от сообщества — до этого язык делался приватно и разработка ещё не завершена.
Заинтересовало прилагательное в заголовке:
ФАТАЛЬНЫЙ, -ая, -ое; -лен, -льна, -льно. [лат. fatalis] Роковой, неотвратимый, неизбежный; загадочно-непонятный
Что такое "фатальный пожар"?
Почему это атавизм? Какой вариант не "атавизм"?
В Go требуется писать var, только если переменная сразу же не устанавливается в какое-то значение. В 99% случаев это просто "hello := 5"
Его не просто так добавили по принципу "красивое/не красивое" — текущий синтаксис определения типов в C++ сильно контексто-зависимый (в зависимости от контекста, можно одну и ту же конструкцию интерпретировать по-разному из-за ambiguity), что сильно усложняет грамматику, компилятор и добавляет когнитивной нагрузки разработчику. Выбранный синтаксис избегает таких проблем.
У меня другая ассоциация — толстый мужик поглаживает живот после обеда. Рядом — урна для мусора. Хорошо поел.
Он использовал имеющийся от Quake1 (idtech 1), который знал хорошо, в то время как Кармак не стоял на месте и параллельно запилил idtech 2. Потом решили переделать на idtech 2, ну и все дедлайны поехали.
В 2016 году Ромеро обещал сделать Blackroom и потом тишина. Вангую, что опять закончится тем же. Судя по википедии, он объявлял о новом шутере в 2012, 2014, 2016 годах. В 2019-м заявил, что всё ещё работает над Blackroom. Тут вот в 2022 снова новый шутер.
Вы говорили именно про рейс-кондишны в http.Request, мне стало интересно именно про это. Ответа я так и не получил.
В Go идиоматично вводить интерфейсы на уровне консьюмера и не абстрагировать раньше времени. Structural typing позволяет приводить к любому интерфейсу, который нужен. Где-то, возможно, нужна мутабельность, где-то нет. Где-то нужны геттеры на всё, где-то только на подмножество. Зависит от потребителя. Могу предположить, что поэтому это не интерфейс.
Ну тут вопрос скорее к Caddy, если это действительно проблема, можно было бы ввести свой интерфейс. Могу предположить, что проблема в интеропе с существующим кодом, где используется http.Request? В теории можно накостылять функцию-конвертер, которая транслирует между стандартными типами и своими. Нужно смотреть в конкретные примеры.
Я не отрицаю проблемы, просто на практике не встречался с ней, поэтому и интересны примеры. Кто знает, может быть, у нас есть потенциальные проблемы.
Я так и не понял, в чём проблема. Обычно фильтры/middleware выполняются на той же горутине, и ставить мьютексы нет нужды. В Caddy как-то по-другому? Не помню, что бы встречал рейс-кондиншны на http.Request, т.к. middleware работают под той же горутиной, а если нужно что-то обработать в новой горутине, то архитектурно не совсем верно туда кидать весь http.Request вместо конкретных данных, которые нужны. Можете привести пример, где приходится ставить мьютексы?
По ссылке - обычный баг, которых сотни/тысячи в любой либе, не вижу причин заострять внимание на нём.
В каких случаях это проявляется? В целом выглядит странно передавать реквест извне горутины, которая его обрабатывает.
Сортировка в стандартной либе это наверное самая известная проблема, в т.ч. авторы Go в курсе, что решение такое себе. Сейчас есть инициатива сделать по-нормальному после добавления дженериков.