Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
Алексей КmaytonРазработчику по большему счету лог не нужен.Наоборот! Ему он нужен больше всего! Это единственная объективная информация, оперируя которой можно понять, что произошло при промышленной эксплуатации программы. Давайте просто детализируем этот пункт. В Window/C++/DBMS/Crud - приложении. 1) Если возникла прикладная ошибка - то пользователь получает исчерпывающую информацию на экран. Например - "Ошибка при добавлении формы - Нарушена уникальность индивидуального налогового номера". Программисту здесь как-бы все ясно. 2) Если возникала системная ошибка общего типа. Эдакий себе непревиденный exception. Что выводить пользователю на экран? "ORA-12541: TNS: no listener" ? Непонятно. Каталогизировать все ошибки и дать им смысловые пояснения для пользователя - сложно. Мы уходим в высокий comlexity самой логики отбивания ошибки. Выводить всё на экран - не совсем безопасно. В стеке и переменных могут быть т.н. sensitive-data. Логины пароли. Скорее всего надо вывести общее генерализованное сообщение о проблемах в БД и дать стандартный бланк с телефонами техподдержки. В этом случае имеет смысл залоггировать ошибку для дальнейшего анализа. Но для варианта (1) логгинг скорее всего не нужен. Или мы просто дублируем логику приложения в двух местах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:33 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
maytonАлексей Кпропущено... Наоборот! Ему он нужен больше всего! Это единственная объективная информация, оперируя которой можно понять, что произошло при промышленной эксплуатации программы. Давайте просто детализируем этот пункт. В Window/C++/DBMS/Crud - приложении. 1) Если возникла прикладная ошибка - то пользователь получает исчерпывающую информацию на экран. Например - "Ошибка при добавлении формы - Нарушена уникальность индивидуального налогового номера". Программисту здесь как-бы все ясно. 2) Если возникала системная ошибка общего типа. Эдакий себе непревиденный exception. Что выводить пользователю на экран? "ORA-12541: TNS: no listener" ? Непонятно. Каталогизировать все ошибки и дать им смысловые пояснения для пользователя - сложно. Мы уходим в высокий comlexity самой логики отбивания ошибки. Выводить всё на экран - не совсем безопасно. В стеке и переменных могут быть т.н. sensitive-data. Логины пароли. Скорее всего надо вывести общее генерализованное сообщение о проблемах в БД и дать стандартный бланк с телефонами техподдержки. В этом случае имеет смысл залоггировать ошибку для дальнейшего анализа. Но для варианта (1) логгинг скорее всего не нужен. Или мы просто дублируем логику приложения в двух местах. Пользователь увидит "генерализованное сообщение", обратится в поддержку. Поддержка посмотрит логи, отфильтровав их по дате и аккаунту пользователя, и заведёт ишью в Jira, куда приложет запись из лога. Ишью переведут на разработчиков... У нас это так работает. И тех вопросов, что Вы предлагаете обсуждать выше, у нас почему-то не возникает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 13:27 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
Давайте это к автору. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 13:56 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 14:36 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
maytonАлексей Кпропущено... Наоборот! Ему он нужен больше всего! Это единственная объективная информация, оперируя которой можно понять, что произошло при промышленной эксплуатации программы. Давайте просто детализируем этот пункт. В Window/C++/DBMS/Crud - приложении. 1) Если возникла прикладная ошибка - то пользователь получает исчерпывающую информацию на экран. Например - "Ошибка при добавлении формы - Нарушена уникальность индивидуального налогового номера". Программисту здесь как-бы все ясно.Если мы оформляем прикладные ошибки исключениями, то нам ничего не стоит их залогировать наравне с системными ошибками. Зачем отказывать себе в таком удовольствии? :-) Тем более, что в сложных случаях бывают непонятны место и причины возникновения прикладных ошибок, в этом случае бывает полезно увидеть системные ошибки, которые могут лежать в основе прикладных ошибок. Например, системная ошибка нарушения уникального индекса в БД может быть преобразована в прикладную ошибку вроде: "Сотрудник с таким ИНН уже существует". mayton2) Если возникала системная ошибка общего типа. Эдакий себе непревиденный exception. Что выводить пользователю на экран? "ORA-12541: TNS: no listener" ? Непонятно.Тут согласен, системная ошибка может отбить у пользователя желание пользоваться нашей программой. Может стоит её показать, но в приятном оформлении с фотографией "котика"? Не знаю... mayton Каталогизировать все ошибки и дать им смысловые пояснения для пользователя - сложно.Я бы сказал невозможно. maytonВ этом случае имеет смысл залоггировать ошибку для дальнейшего анализа.Да, именно об этом я и упомянул в предыдущем сообщении. Видимо мы друг друга неправильно поняли. :-) maytonНо для варианта (1) логгинг скорее всего не нужен. Или мы просто дублируем логику приложения в двух местах.Повторюсь, если нам это ничего не стоит, то можно и залогировать, хуже не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 16:49 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
maytonНо для варианта (1) логгинг скорее всего не нужен. Или мы просто дублируем логику приложения в двух местах.И вот ещё что. Если мы говорим о GUI приложении, то MessageBox, отображающий сообщение об ошибке на экране, можно рассматривать как одну из разновидностей хранилищ лога, наряду с хранилищами, пишущими данные лога в файл, БД и т. п. При такой организации отображения сообщения об ошибке никакого дублирования, вроде как, нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 17:46 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
Алексей КЕсли мы оформляем прикладные ошибки исключениями, то нам ничего не стоит их залогировать наравне с системными ошибками. Зачем отказывать себе в таком удовольствии? :-)Логика, построенная на исключениях - моветон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 20:32 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
maytonДавайте просто детализируем этот пункт. В Window/C++/DBMS/Crud - приложении.Повторю уже сказанное: логи пишутся так, чтобы по ним можно было отлаживаться. Вот буквально. Есть проблема, которая воспроизводится только у клиента и обязательна к решению. Единственный источник сведений о проблеме - лог-файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 20:56 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
skyANAАлексей КЕсли мы оформляем прикладные ошибки исключениями, то нам ничего не стоит их залогировать наравне с системными ошибками. Зачем отказывать себе в таком удовольствии? :-)Логика, построенная на исключениях - моветон. Это не просто моветон, рубить по рукам тупым топором! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 05:00 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovПовторю уже сказанное: логи пишутся так, чтобы по ним можно было отлаживаться. В смысле отлаживаться? Зачем? Хороший качественный лог позволяет найти причину ошибки, если надо ещё отлаживаться, то либо это хреновый лог, построенный на стектрейсах исключений (этим болеют в основном ленивые либо неопытные программисты), либо отсутствие возможности получить контекст исполнения из лога (неумение пользоваться структурными логами с вложенными контекстами). Да и как предлагаете отлаживаться, в случае если у программистов нет доступа к реальным данным, и получить их даже ради отладки -- исключено в принципе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 05:07 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
hVosttВ смысле отлаживаться? Зачем? У тебя что, слово "отлаживаться" ассоциируется исключительно с отладчиком и пошаговым исполнением?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 14:35 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
hVosttBasil A. SidorovПовторю уже сказанное: логи пишутся так, чтобы по ним можно было отлаживаться. В смысле отлаживаться? Зачем? Хороший качественный лог позволяет найти причину ошибки, если надо ещё отлаживаться, то либо это хреновый лог, построенный на стектрейсах исключений (этим болеют в основном ленивые либо неопытные программисты), либо отсутствие возможности получить контекст исполнения из лога (неумение пользоваться структурными логами с вложенными контекстами). Да и как предлагаете отлаживаться, в случае если у программистов нет доступа к реальным данным, и получить их даже ради отладки -- исключено в принципе? По сабжу - почти все ораторы правы. Но я встречал кастомеров которые неохотно предосталяли логи либо их предоставление было сопряжено с орг. трудностями. Переписка с индусами и т.п. Вобщем все зависит от того как построено взаимодействие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2017, 15:12 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
hVosttskyANAпропущено... Логика, построенная на исключениях - моветон. Это не просто моветон, рубить по рукам тупым топором!"А судьи кто?" (ц) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 05:15 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovhVosttВ смысле отлаживаться? Зачем? У тебя что, слово "отлаживаться" ассоциируется исключительно с отладчиком и пошаговым исполнением?.. Какие ещё есть варианты? Удивите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 06:11 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
Алексей К"А судьи кто?" (ц) Судьи тут вообще не при чём, это не вопрос фломастеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 06:11 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
maytonНо я встречал кастомеров которые неохотно предосталяли логи либо их предоставление было сопряжено с орг. трудностями Интересный кейс.. не сталкивался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 06:12 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
hVosttDimitry Sibiryakovпропущено... У тебя что, слово "отлаживаться" ассоциируется исключительно с отладчиком и пошаговым исполнением?.. Какие ещё есть варианты? Удивите. Просто слово "Отладка" фактически обозначает любую деятельность по устранению ошибок. В том числе вывод логов. См. https://en.wikipedia.org/wiki/Debugging ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 11:29 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
WebSharperПросто слово "Отладка" фактически обозначает любую деятельность по устранению ошибок. В том числе вывод логов. См. https://en.wikipedia.org/wiki/Debugging Да понятное дело пошёл запускать дебаггер и ставить свои жалкие брейкпойнты. Просто нельзя вот так взять и не выкобениться на ровном месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 12:23 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
hVosttДа понятное дело пошёл запускать дебаггер и ставить свои жалкие брейкпойнты. Просто нельзя вот так взять и не выкобениться на ровном месте Зато теперь вы знаете значение слова, которое употребляете, а это способствует тому, чтобы быть понятым :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 14:35 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
WebSharperhVosttДа понятное дело пошёл запускать дебаггер и ставить свои жалкие брейкпойнты. Просто нельзя вот так взять и не выкобениться на ровном месте Зато теперь вы знаете значение слова, которое употребляете, а это способствует тому, чтобы быть понятым :) В общем и целом, не удивили. И попытка не зачёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 14:44 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
hVosttДа понятное дело пошёл запускать дебаггер и ставить свои жалкие брейкпойнты. Ну, удачи тебе с твоими брейкпоинтами в ловле thread races или memory corruption, случающимся из-за пользовательских данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 15:08 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 16:00 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
maytondbpatchв) писать все ошибки в stderr, а не в stdout, не писать в stderr, если демонизированы, писать в syslog syslog на мой взгляд является ценным ресурсом ОС Linux и я-бы не стал в каждом приложении его использовать. Нет ничего хуже чем прикладной флуд в системном логе. Семантический вопрос разделения прикладного и системного я пока оставляю за кадром. Бох вам судья если вы решили что ваш код системный. Тут важнее осознание значимости момента. syslog это демон (rsyslogd), а писать он может не только в /var/log/messages, а как настроишь. нет, ну конечно всяко интереснее чисто в Java-style переизобрасти мир и построить свой чудный велосипед, с базой данных обязательно (отдельная клиника), но.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 16:06 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
skyANAdbpatchпропущено... И? где открытие? Я вон привел пример того, что в большинстве мест в принципе не принято правильно оформлять логгирвание. И наверное стоит посмотреть хоть куда-то, чтоб увидеть, как на самом деле принято делать в хороших проектах. Потому я и спрашиваю - где есть рафинированные правильные проекты и правила. Смотреть по сторонам на типовой местячковый бардак - никакого смысла вообще нет, это все равно что современную архитектуру изучать по самодельным "пенокурятникам лкуса" и прочие гениальные дачные постройки в округе. Что они могут рассказать?Конференции, митапы и прочие комьюнити. И все материалы конечно же есть в сети. К примеру поищите доклады Анатолия Кулакова из SpbDotNet Community про структурное логирование и сбор метрика. Покажите, расскажите коллегам. митапы? это все смешно. в любой нормальной отрасли есть устоявшиеся прописанные типовые практики, стандартизованные и довольно часто жество требуемые. нет, ну представь, сейчас каждый строитель-архитектор будет ездить на митапы, узнавать, как правильно перекрытия и несущие стены проектировать, ага. а потом по вентиляции тоже на отдельную конференцию. а потом давай переделывать уже сданные проекты. красота! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 16:12 |
|
||
|
правила написания ПО, style guide, но не для форматирования кода, а для функциональности
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovhVosttДа понятное дело пошёл запускать дебаггер и ставить свои жалкие брейкпойнты. Ну, удачи тебе с твоими брейкпоинтами в ловле thread races или memory corruption, случающимся из-за пользовательских данных. Как же плохо вам живётся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 07:08 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39571005&tid=1340205]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 291ms |
| total: | 457ms |

| 0 / 0 |
