All streams
Search
Write a publication
Pull to refresh
4
0
Send message
Из аналогичного примера — если тебе твой работодатель из-за счётной ошибки прислал лишние деньги — ты обязан их вернуть

Вот только размер зарплаты официально зафиксирован, ровно как и курс валюты в системах Тинькоффа. Тут скорее правильным аналогом будет "работодатель ошибочно в трудовом договоре прописал не ту сумму". Ну удачи в возврате выплаченного обратно :)


Мне когда лишнего начисляли, просто определяли это в счет следующей зарплаты, в итоге никто ничего не терял.

Накосячил Тинькофф, а виноват клиент.


Гипотетическая ситуация — купил молоко за 50 р., затем задним числом у тебя магазин списал еще 100500, "помните, вы покупали неделю назад молоко? Мы это, ошиблись, и вы нам теперь должны 100500". Ну это ж так не работает.


И аргумент про обогащение странный. Банки на каждом углу рекламируют про "с нами выгодно", всякие кэшбеки, акции и прочее. Почему клиент должен считать иначе, что выставленный курс это не то самое "с нами выгодно"?

Non compete clause где-то имеет юридическую силу кроме США?

Не скажу за всех, но лично мне больше импонируют блоги, где есть комментарии. Если есть комментарии, значит есть реальная аудитория, значит ресурс "живой" и на него можно обратить внимание, т.к. есть ещё подтип полумёртвых блогов со всякой seo-водой, на них время тратить не хочется.

Следующая новость — Почта Россия получила запрос от РКН и готовит ответ :)

В статье просто пример, или вы так и пишите — голый запрос в БД напрямую в контроллере?

И всё та же фобия угловых скобок и мания на круглые

Что значит "всё та же"? Почему вы думаете, что избегание угловых скобок это нечто иррациональное ("фобия", "мания")?


Угловые скобки усложняют парсер и делают его контексто-зависимым, т.к. A<B> C можно интерпретировать по-разному: это то ли шаблон, то ли сравнение "больше/меньше". Именно поэтому в Go тоже отказались от них.


Ну ок, вы же новый язык придумываете — как насчёт того, чтобы определить целочисленные типы, явно задающие возможность переполнения

Они даже до типа Vector2/4 не додумались, хотя SSE/AVX уже в каждом утюге есть

Это звучит как ваши рандомные хотелки, почему именно они должны быть в языке, а не что-то другое? Как минимум, 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 — мутабельная структура, которую требуют некоторые стандартные интерфейсы, у которой нет защищённых геттеров и сеттеров

Вы говорили именно про рейс-кондишны в http.Request, мне стало интересно именно про это. Ответа я так и не получил.


Почему бы изначально не сделать http.Request интерфейсом?

В Go идиоматично вводить интерфейсы на уровне консьюмера и не абстрагировать раньше времени. Structural typing позволяет приводить к любому интерфейсу, который нужен. Где-то, возможно, нужна мутабельность, где-то нет. Где-то нужны геттеры на всё, где-то только на подмножество. Зависит от потребителя. Могу предположить, что поэтому это не интерфейс.


В качестве примера можете поисследовать код Caddy

Ну тут вопрос скорее к Caddy, если это действительно проблема, можно было бы ввести свой интерфейс. Могу предположить, что проблема в интеропе с существующим кодом, где используется http.Request? В теории можно накостылять функцию-конвертер, которая транслирует между стандартными типами и своими. Нужно смотреть в конкретные примеры.


Хотя опять же, нет смысла это делать, отрицая наличие проблемы.

Я не отрицаю проблемы, просто на практике не встречался с ней, поэтому и интересны примеры. Кто знает, может быть, у нас есть потенциальные проблемы.

Я так и не понял, в чём проблема. Обычно фильтры/middleware выполняются на той же горутине, и ставить мьютексы нет нужды. В Caddy как-то по-другому? Не помню, что бы встречал рейс-кондиншны на http.Request, т.к. middleware работают под той же горутиной, а если нужно что-то обработать в новой горутине, то архитектурно не совсем верно туда кидать весь http.Request вместо конкретных данных, которые нужны. Можете привести пример, где приходится ставить мьютексы?

По ссылке - обычный баг, которых сотни/тысячи в любой либе, не вижу причин заострять внимание на нём.

Рейс-кондишны приходится отлавливать регулярно, ведь http.Request, который передаётся по цепочке обработчиков (в том числе сторонних) — это мутабельная незащищённая структура

В каких случаях это проявляется? В целом выглядит странно передавать реквест извне горутины, которая его обрабатывает.

Сортировка в стандартной либе это наверное самая известная проблема, в т.ч. авторы Go в курсе, что решение такое себе. Сейчас есть инициатива сделать по-нормальному после добавления дженериков.

Information

Rating
Does not participate
Registered
Activity