Здравствуйте, Reset, Вы писали:
S>>и логи при креше часто не успевают записаться на диск
R>Делаешь mmap'ed файл и пишешь в эту память как в циклический буфер. При нормальном выходе из приложения пишешь туда метку, что файл закрыт корректно (или обнуляешь его, например). При старте приложения проверяешь эту метку. Если ядро ОС будет работоспособно при падении приложения — данные будут записаны в файл после остановки приложения. Если же у тебя произошел креш по причине падения питания, например, то и логи тебе эти не нужны.
KP>Почему ролик стоит посмотреть — рассказывают как и почему ищут, что хотят заказчики и т.д. Зачем я это смотрел? Ну... я до сих пор считаю что понаеду в Мск в будующем... наверное
странное желание. я понял бы, если в отпуск, матрешек там на Арбате прикупить, но на ПМЖ, да еще из такой страны...
Здравствуйте, merge, Вы писали:
M>ну да, сделать продукт который кроме тебя никто не вкурит, тестить на проде фидбэком от юзеров
С отладчиком намного проще исправить какой-то баг, чем без него. Часто проще под отладчиком понять в чём проблема и потом её исправить.
Но такой подход не работает, если проблема у заказчика, где-то со специфическим окружением, вызвана ошибкой многопоточного кода.
Поэтому всё равно будут ситуации, когда отладчик не спасёт. Хорошие логи, тесты, архитектура намного важнее.
Ещё, когда пользуешься отладчиком, ты рассматриваешь отдельное дерево, но часто не видишь весь лес. Я не отговариваю от отладки, это очень мощный инструмент, но он не заменит решения всех проблем.
P.S. Как люди пользуются вимом при отладке, я не понимаю. И дело не в отладчике, а в навигации по коду.
Здравствуйте, alzt, Вы писали:
A>С отладчиком намного проще исправить какой-то баг, чем без него. Часто проще под отладчиком понять в чём проблема и потом её исправить. A>Но такой подход не работает, если проблема у заказчика, где-то со специфическим окружением, вызвана ошибкой многопоточного кода.
Это если под отладчиком хоть что-то воспроизводится.
A>Поэтому всё равно будут ситуации, когда отладчик не спасёт. Хорошие логи, тесты, архитектура намного важнее.
По мне так самое важное в отладчике это, в крайнем случае это единственное что я использовал последние годы. Тест шлёпнулся — глянул почему по быстрому.
gdb program core -ex "thread apply all bt" -ex "quit" > program.dump
A>P.S. Как люди пользуются вимом при отладке, я не понимаю. И дело не в отладчике, а в навигации по коду.
Здравствуйте, Sharov, Вы писали:
S>А кто данные запишет, приложение, которое упало?
Системный вызов write() только копирует буфер в ядро(если не используется DIRECT_IO) и помечает страницы для записи. Аналогично и с mmap() — данные всегда записывает ОС. В том числе после падения приложения, и для write(), и для mmap().
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, Reset, Вы писали:
S>>и логи при креше часто не успевают записаться на диск
R>Делаешь mmap'ed файл и пишешь в эту память как в циклический буфер.
В чем выигрыш?
Можно использовать обычный write(), затем fflush() чтобы libc скинуло кеш в ядро, и, если нужно, fsync() чтобы ядро сбросило свои страницы на диск. После этого данные будут на диске и сохранятся при креше системы. В большинстве случаев этого достаточно.
При использовании mmap() просто не нужен fflush(), для гарантии записи все равно нужен msync().
R>Можно журнал сбрасывать на диск принудительно, если нужно быстрее, но опять же это будет делаться асинхронно, т.е. приложение не будет ждать.
Асинхронный fsync() хотели добавить в linux, но насколько мне известно пока это не сделано.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, kaa.python, Вы писали:
KP>Отличный город, прекрасные люди, интересная работа. Только климат говно, но не может же всё быть идеально
Над климатом работа тоже ведётся.
Здравствуйте, Пофигист, Вы писали:
П>Над климатом работа тоже ведётся.
Угу. Будет 3 месяца в году + 50 в тени, а оставшееся время будет около нуля и -50 зимой
KP>Ты знаешь, читабельность кода если ты следуешь PEP8 сильно возрастает. Сообщать об этом может быть и не обязательно, но сделать автоформатирование на сохранении очень хорошая идея.
А потом кто-то с такими настройками делает pull request в твой репозитарий, исправив одну строчку, но чтобы понять это тебе приходится отревьюить 50 файлов с исправлениями в каждой второй строчке.(
Здравствуйте, jahr, Вы писали:
KP>>Ты знаешь, читабельность кода если ты следуешь PEP8 сильно возрастает. Сообщать об этом может быть и не обязательно, но сделать автоформатирование на сохранении очень хорошая идея. J>А потом кто-то с такими настройками делает pull request в твой репозитарий, исправив одну строчку, но чтобы понять это тебе приходится отревьюить 50 файлов с исправлениями в каждой второй строчке.(
Так изменения будут в основном в пробелах или переносах, которые diff может игнорировать. Поэтому отследить это одно изменение может быть не трудно.
Здравствуйте, jahr, Вы писали:
J>А потом кто-то с такими настройками делает pull request в твой репозитарий, исправив одну строчку, но чтобы понять это тебе приходится отревьюить 50 файлов с исправлениями в каждой второй строчке.(
Я крайне против того чтобы смешивать в одном PR форматирование и изменения в логике. Но при этом я не могу придумать ни одной причине не следовать PEP8.
Здравствуйте, jahr, Вы писали:
J>А потом кто-то с такими настройками делает pull request в твой репозитарий, исправив одну строчку, но чтобы понять это тебе приходится отревьюить 50 файлов с исправлениями в каждой второй строчке.(
Специально для таких случаев в IDE есть настройка, которая позволяет автоформатировать только измененные строки.
Довольно странно в очередной раз слышать об огромных зарплатах в IT. В городе где я живу, хватает дорогих квартир в новостройках за 10млн.+ (голые стены) и ремонты потом в них за 12-16. И по словам моего друга, который десятилетиями занимается дизайном и ремонтом таких квартир ( по образованию программист, в отличие от меня) ни один IT ещё ничего у него не заказывал. Или это статьи из параллельной реальности?
S>Довольно странно в очередной раз слышать об огромных зарплатах в IT. В городе где я живу, хватает дорогих квартир в новостройках за 10млн.+ (голые стены) и ремонты потом в них за 12-16. И по словам моего друга, который десятилетиями занимается дизайном и ремонтом таких квартир ( по образованию программист, в отличие от меня) ни один IT ещё ничего у него не заказывал. Или это статьи из параллельной реальности?
Ну как бы да, свет клином не сошелся на ИТ. Владелец небольшой автомойки на оживленной трассе может имет месячный доход в 1М рублей, а у некоторых таких автомомек целая сеть. Так что даже если ты умеешь "крутить" в голове красное-черное дерево, не стоить думать, что ты повелитель вселенной.