[Moscow.pm] Видео с декабрьского Moscow.pm

Denis Evdokimov evdokimov.denis на gmail.com
Сб Янв 11 06:51:31 PST 2014


11 января 2014 г., 16:15 пользователь Михаил Монашёв <
postmaster на softsearch.ru> написал:

> Здравствуйте, Denis.
>
> > Доклад  больше  о  чтении  кода  и  нахождения  в  нём ошибок, чем о
> > директориях.
>
> В  итоге  идеальный  код  так  и  не  родился, ибо не пробовали другие
> подходы, а только решали проблемы в лоб. Тоже поход конечно.
>
Вначале задача казалась настолько тривиальной, что решилась за 10 минут и
работала года 1.5-2 без сбоев. Потом изменились внешние условия, а потом
ещё раз.



>
> Я  просто  в  декабре решал ровно такую же задачу на node.js и понял ,
> что вполне можно обойтись mkdir-ами.
>
Да, уверен что можно.
Тем более, mkdir работает быстрее, чем -d


> > P.S.  Мы  пообщались  с  Монсом  за  пиццей,  он рассказывал о своих
> > граблях при работе с ФС.
>
> Ну  вот,  например,  интересный  вопрос, например: пишем два связанных
> файла  по  мере поступления данных и тут кончается память или место на
> диске  или  количество  открытых  файлов  превышено  или  ещё какая-то
> ошибка. Один файл без другого не имеет смысла. Нужны они всегда только
> оба.  И  хорошо  бы такие не полностью сохранённый файл и второй файл,
> который  может  ещё  писаться,  кстати,  удалить.  Как  это  правильно
> сделать? :-)
>
> Насколько я знаю, такая задача не имеет нормального решения.

Мой дальнейший ответ будет немного не про то, но всё же может пригодиться.

Я всегда работаю с записью на диск через временный файл и переименование.
Это гарантирует целостность одного файла.

Когда нужно гарантировать, что несколько файлов будут соответствовать
друг-другу, я помещаю их в одну директорию, и переименовываю её, у этого
варианта есть очевидные минусы, но для моих задач они не критичны.

Вот код из Makefile, в котором это происходит:
rm -rf $@.tmp
./ip_from_regs.pl $@.tmp
rm -rf $@.bak
[ -d $@ ] && mv -f $@ $@.bak
mv -f $@.tmp $@
rm -rf $@.bak




> --
> С уважением,
>  Михаил                          mailto:postmaster на softsearch.ru
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20140111/275f2b0e/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm