1. Python / Говнокод #28188

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try:
        self._api = caller(self.url)
    except ValueError as e:
        logging.error(f"Не удалось инициализировать класс API: ({str(e)})")
        raise ValueError(str(e))

    Запостил: hvx, 24 Мая 2022

    Комментарии (43) RSS

    • Справедливости ради нужно сказать, что правильно обрабатывать и логировать ошибки -- одно из самых сложных умений. Нужны десятки лет опыта, чтобы научиться. Я не иронизирую
      Ответить
      • Какой Doctorate in PHP )))
        Ответить
        • В PHP, замечу, такой проблемы нет: Там принято выдавать ошибки пользователю в браузер посреди кусков HTML. А уж он-то как-то разберется!

          Пока тупые С++ники ебутся с дампами и символами чтобы понять где ошибка, PHP разрабочтик просто просит у пользователя скриншот экрана, и всё понимает

          Плохо только если перед ошибкой случился таг <script> например: тогда на экране ее не видно, но видно во view source
          Ответить
          • Кстати, а если вызвать ob_start(), это поможет, или ошибки тоже попадут в буфер?
            Ответить
            • Если я правильно помню, такое приведет к ошибкам в шапке, а дизайн и красоту вывалит ниже.
              Ответить
              • Тоесть PHP сайт даже в случае ошибок всё равно красиво отобразится, да?

                А ваш С++ падает в отвратительную кору в случае любой, даже самой тупой ошибки, ахахаха
                Ответить
                • Раньше вёрстку все равно могло попидорасить, если страница начинается не с <html>. Как сейчас, не знаю
                  Ответить
          • Ты зря иронизируешь. В PHP ошибки также дублируются в лог.
            Ответить
            • Это в ненужных "фреймворках", по умолчанию -- нет. Это же не "perl"
              Ответить
            • Который хостер тебе не даст почитать, ибо не уплочено
              Ответить
      • логирование для тех, кто до сих пор не слышал про трейсинг
        Ответить
        • о, золотой молоток прибежал! А конфигурационные файлы для тех, кто до сих пор не слышал про базы данных. А базы данных для тех, кто до сих пор не слышал про распределенные базы данных.
          Ответить
          • > А конфигурационные файлы для тех, кто до сих пор не слышал про базы данных.

            Опровергаю. Как и заявлено выше, налицо непонимание проблематики. ,Подптсм: серьзное лицо.
            Ответить
            • Золотой молоток ожидаемо слился. Пойду, заменю исключеня в своем пет проекте на трейсинг, желательно сразу в EWT, eBPF или в облако
              Ответить
              • Используй кафку. Чтобы по-хипстерски было.
                Ответить
                • Хочу Amazon CloudWatch Logs

                  Кстати, надо бы пропатчить утилиту "ls", которая по-еблански пишет ошибки в STDERR вместо трейстинга
                  Ответить
                  • А отправлять через асинкинхо будешь?
                    Ответить
                    • конечно. А внутри будет protobuf. Кстати, TCP сосет ,так что у меня будет лучше свой протокол поврех UDP
                      Ответить
                      • А свой протокол выложишь на гитхаб отдельным проектом с «лицензией»?
                        Ответить
                        • Конечно. А потом буду ездить по конференциям, и рассказывать, как внедрение моего протокола позволило ускорить разработку, и удешевить проект

                          Скажем, govnokod.xyz стал бы намного лучше с моим протоколом
                          А уж если в нем логинг на трейсинг заменить...
                          Ответить
                          • Потом запишешь видел как правильно готовиться к публичным выступлениям?
                            Ответить
                      • поверх PHP
                        Ответить
                  • Ну как, пропатчил?
                    Ответить
              • ебпф-то откуда вытащил?

                мы про всякую высокоуровневую штуку типа https://opentracing.io/
                Ответить
              • Почему не lttng? Там flexible configuration, integration with linux kernel и essential techniques such as per-CPU buffering.
                Ответить
                • ого, надо бы ознакомиться. Буду писать профайлер -- обязательно погружусь:)

                  Забавно, что там в альтернативах есть как раз и ebpf (bpf изначально делали вообще для libcap вроде) и порт божественного DTrace на линукс (на dTrace яблоки сделали красивый инструмент Instruments и еще всякое
                  Ответить
                • Да, ты прав, lltng наиболее близкий к EWT, и кстати есть даже туда чтобы одно (CTF) в другое конвертить и к dtrace/instruments

                  &gt;Там flexible configuration
                  Верно, там можно включать/выключать трейсы по условиям

                  &gt; integration with linux kernel
                  Верно, можно по-сути на одном графе видеть сисколы или какие-нить пробы из едра и свобственные счетичики. Но нужен модуль, конечно

                  &gt;essential techniques such as per-CPU buffering.
                  Верно, там буферы крутятся вокруг ядра чтобы срать в локальный кеш ядра

                  Результаты совершенно потрясающие: несколько миллионов событий насрал с таймингом типа ` real 0m0.120s`

                  Буду пользоваться
                  Ответить
        • Только ситхи возводят всё в абсолют.
          Ответить
        • Это разные сущности совершенно, как дебагер и профайлер.

          Логирование это высокоуровневые отдельные события, которые интересны обслуживающему систему персоналу. Место на диске кончилось, сервер недоступен. Это, в общем, алерты.

          Трейсинг нужен чтобы разбирать сложные случаи, и предсказывать просадку перформанса.

          В операционках эти понятия различаются с древнейших времен:

          в NT есть логи, а есть счетчики, а есть отдельно трейсинг для программистов

          в юниксе есть syslog, а есть sar, а есть отдельно трейсеры типа вот lttng/dtrace для программистов

          Это три совершенно разных вида петухов
          Ответить
      • raise
        Десятки лет опыта
        Ответить
    • Мерзче этого шинтакшиша разве только те, кто на нем прогает.
      Ответить
    • Ответить
    • Ну допустим в нашей шарашке есть слащавый парень, великий прогромист. Знает питон. О майн год, какой огромный догм для тешания чсв! Площадь была закидана арбузными корками и розами. Когда он проходит по коридорам, ему рукоплещут все коллеги. Или это в ушах шумит? Я бы соснул ему, да ебало не в моем вкусе.
      Ответить

    Добавить комментарий