|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
Пустые дебаг методы vs полное выпиливание с проекта26.01.2017, 20:57. Показов 3222. Ответов 48
Метки нет (Все метки)
Добрый вечер,
Моё мнение: если макрос - то особо не поиграться с шаблонами и отсутствие статического проверки типа если методы пустышки - то будет ли создаваться под них стек и вызов, или компилятор с оптимизирует всё это дело?
0
|
||||||
| 26.01.2017, 20:57 | |
|
Ответы с готовыми решениями:
48
Пустые методы в перечислении java.util.concurrent.TimeUnit Выпиливание экземпляра класса самим собой |
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 27.01.2017, 16:15 | |||
|
пользователям по барабану. зачастую они даже не знают об их существовании. сами же логи должны отражать состояние системы настолько детально, насколько это возможно, что бы по ним можно было понять, что вообще происходит. который крутится на машинках, которые находится на другом конце света? раз в 3 часа, или в 3 дня, или в 3 недели происходит зависание сервиса никто не знает какого именно. никто не знает почему. и никто не может угадать на какой именно машинке это случится в след. раз. в нашей тестовой среде баг не воспроизводится. расскажите мне, как вы будете это отлаживать? как вам поможет ваш отладчик? юнит-тесты вам уже не помогли. -------------------------------------------------------------- если баг воспроизводится только в боевых условиях, то и ловить его нужно тоже на бою я активирую логгер, у которого под контролем все критичные и не очень точки. особенно вызовы низкоуровневого апи. и сделаю апдейт боевых машин. как только в след. раз какая нибудь из них встанет колом, а у меня на руках будет вся история развития болезни. ну а после ремонта можно будет опять отключить логгер
3
|
|||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||||
| 27.01.2017, 16:34 | |||||
Сам об этом говорил...
0
|
|||||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 27.01.2017, 16:38 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||
| 27.01.2017, 16:51 | |||||||||
|
есть ещё вот такой интересный дизайн:
http://rextester.com/RBHL49675
что бы запихивать в лог готовые данные, мы запихиваем в него функции-добывальщики данных. однако, если логгер в выключенном состоянии, то он их дергать не будет. по этому издержки на выключенный лог минимальны. киллер-фича: такой подход позволяет запускать/отключать логгирование удаленно. и получать логи самой разной детализации хоть прямо к себе на почту. Добавлено через 3 минуты что б потом в случае проблем, можно было по шагам глянуть, что происходило и куда привело. удаленный процесс крашнулся. а у вас на руках трасса вызова функций, и значения всех критических данных. клева жеж? Добавлено через 1 минуту потому что пользователь - она, а не программист. программист - разработчик. Добавлено через 4 минуты
3
|
|||||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||
| 27.01.2017, 16:59 | ||||
Имея доступ на диск где лежит программа можно воспользоваться отладчиком. Тут речь именно о багах а не средо-зависимых крешах которые к логике самой программы не имеют прямого отношения(лишь косвенно)
0
|
||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||
| 27.01.2017, 20:11 | |||||
|
как именно вы собрались отлаживать стрипованный релизный бинарь? а логгер - то самое ПО, с помощью которого отлавливают ошибки. такое впечатление, как будто бы вы отлаживать умеете только свой собственный проект на локальной машинке. где нибудь в дебаге в пошаговой отладке. пользователь вам вообще ничем не поможет. максимум на что он способ: "что-то не работает". вы сами по ssh, или ещё как то будете заходить на удаленную машинку, выкачивать оттуда логи, смотреть в каком состоянии система, и тп. и логи никто не отменял. вообще по уму, годная система логгирования в случае краша должна уметь аварийные действия: прислать логи о происшествии, перезапустить сервис, и тп.
0
|
|||||
| 27.01.2017, 20:40 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 27.01.2017, 21:04 | ||
|
и суметь сохранить накопленные данные. и оповестить о происшествии. в случае краша, собственно, логгер - единственный компонент системы, который ещё на плаву. и который может что то сделать. на него вешается некий произвольный обработчик. в котором можно прописать какие то конкретные действия. например: послать логи разрабам, и перезапустить сервис.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 27.01.2017, 21:20 | |
|
1
|
|
| 27.01.2017, 22:25 | |
|
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||||||||||||
| 27.01.2017, 23:33 | |||||||||||||
|
Добавлено через 23 минуты Лучше просто в тех местах где логируются критические сбои вызвать ответственные компоненты по тем операциям которые нужно выполнить в случае возникновения проблемы. Например
0
|
|||||||||||||
|
Ушел с форума
|
|
| 28.01.2017, 09:47 | |
|
MrGluck, у нас на работе такие триллеры постоянно.
Так что hoggy все верно пишет. Хорошо продуманная система логирования повышает шансы на успешную диагностику таких трудных багов.
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 28.01.2017, 10:35 | ||
|
Под багом как правило подразумевается определенная ошибка в логике программы, которую программист не заметил сразу. Если где либо в коде используется логирование, то это как правило те места, где разработчик понимает "вот в этом куске кода могут возникнуть проблемы при определенных условиях", и соответственно пишет в лог, если такая ситуация возникает. Логи конечно же в каком то случае могут служить для отловки багов, но это лишь "полезный побочный эффект" их использования а не прямое назначение, как это позиционируется в данной теме. И тогда финальный киллер-вопрос тем, кто позиционирует логгер в первую очередь как "баг хантер". Вопрос: а что если в самом логгере есть баг? Как тогда багнутый логгер поможет отдебажить это, если он сам не работает? Думаю теперь должно быть очевидно, что дебаг и лог никак не связаны друг с другом
0
|
||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 28.01.2017, 10:41 | ||
|
Потому и зацепило, что жизненно)
0
|
||
|
Ушел с форума
|
|||||
| 28.01.2017, 22:24 | |||||
|
там заблудишься. Когда ошибка случится, ты даже не сможешь понять, с какого конца к ней подступиться и где вообще искать концы. Логи позволяют диагностировать именно логические ошибки в ПО, т.е. когда приложение не падает, но ведет себя не так, как было задумано. Если логирование делалось "по уму", то при наличии воспроизведения можно очень быстро хотя бы определить проблемный компонент, остальное, как правило, уже дело техники. У нас в продуктах компании логирование давно стало обычной практикой и сейчас практически любой баг-репорт, который приходит, в обязательном порядке содержит архив с логами соответствующих компонентов. А компонентов много... ретроспективе, а также в том, чтобы иметь возможность быстро оценить ее реакцию на те или иные изменения. Как правило, это используется для диагностики ошибок, хотя их можно использовать, например, для анализа производительности и для других задач. Причем логи особенно хороши для неинтерактивных приложений, не имеющих графического интерфейса - службы, серверы, подгружаемые модули/плагины и т.д.
друг друга Как и ассерты, как и юнит-тесты, как и контракты и т.п., они позволяютповышать качество софта и облегчать диагностику ошибок.
3
|
|||||
| 28.01.2017, 22:36 [ТС] | |
|
0
|
|
|
Ушел с форума
|
|
| 28.01.2017, 22:36 | |
|
И еще хотел бы вот что добавить на счет логов.
По логам иногда можно узнать много интересного по поводу программного окружения. Например, клиент пишет: у меня не работает такая-то функция. Код ошибки такой-то, система Windows 7, вот скриншот. Ты достаешь соответствующую версию софта, ставишь на Windows 7, запускаешь - и все работает. УМВР, как говорится. Что делать? Как искать ошибку? Начинаешь смотреть логи. Оказывается, что у клиента Windows 7 стоит на Citrix. А еще там какой-то израильский антивирус. И еще машина в домене, название которого содержит кириллические имена (просто подозрительно, но все же). И т.д. Когда ты проинсталлишь весь этот софт себе на тестовый стенд, то вдруг обнаружишь, что и у тебя теперь функция тоже перестала работать. Вот оно, воспроизведение ошибки. А там, где воспроизведение, там и до исправления рукой подать (в 99% случаев). У нас на работе такие "триллеры" - обыденность. Клиентов много, компьютеров десятки и сотни тысяч, разные окружения, настройки, политики, софт и т.д. Логи реально помогают докапываться до сути. Не представляю, что без них делать.
2
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 28.01.2017, 22:39 [ТС] | |
|
Убежденный, странный у вас софт если падает от названия домена и установленного антивируса) Прям вижу уже на обороте диска с игрой системные требование : "не устанавливайте AVAST и не используйте хостинга Trololo"
0
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||
| 28.01.2017, 22:57 | ||||
|
Ух сколько написал ))
0
|
||||
| 28.01.2017, 22:57 | |
|
Посоветуйте методы раскрутки для белого проекта Дисковод не читает пустые dvd-r/rw и пустые cd-rw диски. дебаг Дебаг процедуры
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли
Введение: Экологический рынок как игра с нулевой суммой
Традиционная экология долгое время. . .
|
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ
Введение: Синдром «цифрового учебника»
Современные большие языковые модели (LLM) обладают колоссальным. . .
|