Информация об изменениях

Сообщение Re[41]: Новости C#12 от 23.11.2023 12:12

Изменено 23.11.2023 12:15 ·

Re[41]: Новости C#12
Здравствуйте, Serginio1, Вы писали:

S>·>Ну добавь лог-стейтмент в это одно место.

S>Мне жалко тратить время. Я лучше потрачу на создание автомата.
Ты потратишь на порядки больше времени на отладку этого автомата и ещё потом на отладку отладочного кода.

S>>> Зачем если есть алгоритм создания обертки? Это проще, чем писать метод с параметрами и запихивать эти параметры в логи

S>·>Можно просто написать код, который делает что надо в нужном месте.
S>·>Ты предлагаешь писать генератор, который генерит этот же код, комментарий чтобы отметить вместо вставки, и код, который это всё связывает?
S> Да это проще чем на каждый чих писать обертки. Проще написать генератор кода по комментарию.
В современных редакторах есть разные макросы и шаблоны. Это всё автоматизируется. Вставится нужный кусочек кода, который можно тут же поглядеть и подправить если не совсем подходит. Это не проблема которая должна решаться в компиляторе.

S>Суть обертки это тот же AOP вывести в лог значения параметров и результат.

S>И таких мест может быть множество. Можно и все вызовы в методе обернуть.
S>И его нужно сделать один раз, а использовать потом постоянно. И наверняка уже кто то напишет генератор.
Потом тебе надо будет бороться со сценариями которые я упомянул тут
Автор: ·
Дата: 23.11 14:54
.
Потом тебе надо будет бороться с некоторыми значениями, которые надо как-то по особенному логгировать (скажем, параметром передаётся огромная коллекция и выводить её в лог устанешь, да и не надо).
Потом тебе надо будет придумывать как через этот комментарий протащить небольшой кусочек логики (ну там не весь HugeRequest param залоггировать, а только param.Id).
Потом ты нахрен плюнешь и пожалеешь о потраченном времени.

S>·>Эти твои проблемы решаются гораздо проще и надёжнее, без магии. Поэтому надо резать Оккамом.

S> С InterceptsLocation намного ускоряется создание кода для отладки.
Ты просто дальше носа не видишь.

S> Кроме того InterceptsLocation хорошь при AOT когда нужно выкосить рефлекшн, динамическую компиляцию итд.

S>В зависимости от опции компилятора, мы можем использовать разные версии
Не дай боже потом такой код придётся как шаред-компонент выложить. Будешь выклдадывать несколько бинарных версий с разными комбинациями ключей компилятора.
Re[41]: Новости C#12
Здравствуйте, Serginio1, Вы писали:

S>·>Ну добавь лог-стейтмент в это одно место.

S>Мне жалко тратить время. Я лучше потрачу на создание автомата.
Ты потратишь на порядки больше времени на отладку этого автомата и ещё потом на отладку отладочного кода.

S>>> Зачем если есть алгоритм создания обертки? Это проще, чем писать метод с параметрами и запихивать эти параметры в логи

S>·>Можно просто написать код, который делает что надо в нужном месте.
S>·>Ты предлагаешь писать генератор, который генерит этот же код, комментарий чтобы отметить вместо вставки, и код, который это всё связывает?
S> Да это проще чем на каждый чих писать обертки. Проще написать генератор кода по комментарию.
В современных редакторах есть разные макросы и шаблоны. Это всё автоматизируется. Вставится нужный кусочек кода, который можно тут же поглядеть и подправить если не совсем подходит. Это не проблема которая должна решаться в компиляторе.

S>Суть обертки это тот же AOP вывести в лог значения параметров и результат.

S>И таких мест может быть множество. Можно и все вызовы в методе обернуть.
S>И его нужно сделать один раз, а использовать потом постоянно. И наверняка уже кто то напишет генератор.
Потом тебе надо будет бороться со сценариями которые я упомянул тут
Автор: ·
Дата: 23.11 14:54
.
Потом тебе надо будет бороться с некоторыми значениями, которые надо как-то по особенному логгировать. Скажем, параметром передаётся огромная коллекция и выводить её в лог устанешь, да и не надо. А массив надо, ВНЕЗАПНО окажется, выводить надо через String.Join. И ещё 100500 частных случаев.
Потом тебе надо будет придумывать как через этот комментарий протащить небольшой кусочек логики (ну там не весь HugeRequest param залоггировать, а только param.Id).
Потом ты нахрен плюнешь и пожалеешь о потраченном времени.

S>·>Эти твои проблемы решаются гораздо проще и надёжнее, без магии. Поэтому надо резать Оккамом.

S> С InterceptsLocation намного ускоряется создание кода для отладки.
Ты просто дальше носа не видишь.

S> Кроме того InterceptsLocation хорошь при AOT когда нужно выкосить рефлекшн, динамическую компиляцию итд.

S>В зависимости от опции компилятора, мы можем использовать разные версии
Не дай боже потом такой код придётся как шаред-компонент выложить. Будешь выклдадывать несколько бинарных версий с разными комбинациями ключей компилятора.