как правильно синхронизировать данные с файлами в gui-софте?
От: Дикс Россия http://thedowntown.ru
Дата: 29.03.11 12:21
Оценка:
долго думал в какую ветку это писать, остановился здесь

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

с одной стороны все просто:
при запуске грузим все файлы в память, предоставляем интерфейс для их редактирования и кнопку Сохранить
по окончании какой-то части работы автосохраняются в файлы

но тут уже начинаются проблемы:
— если прога вылетит — в файлах останутся старые данные, при перезапуске все начнется по новому
— если файлы большие — грузить их все в память неправильно. а они будут большие
— некоторые из них просто должны накапливать информацию, редактировать их не надо — следовательно и загружать тоже

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

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

Вообще, я хочу чтобы вы поделились секретом, как это устроено у вас (загрузка, синхронизация, использование по мере работы)
Но также напишу несколько конкретных вопросов:

— в какой момент стоит сохранять данные в файл? только при нажатии на кнопку, постоянно при работе, при переключении вкладок софта(делал и такое )
— нужен ли людям редактор файлов в проге? или заставлять их править текстовые файлы будет правильнее и более универсально?
— стоит ли позволять указывать внешние файлы для работы и запоминать пути к ним?
(т.е. надо указать список имейлов — человек нажал на кнопку и в стд окне выбора файла — указал свой файл с имейлами, софт запоминает этот путь и всегда использует тот файл)
— если файл весит допустим 5 мб текста и я весь его гружу в память — плохо ли это? с учетом того, что мы живем в эпоху террабайтных винтов и многогигабайтной оперативки. Может ли софт от этого тормозить?

Добавлю, что пишу я на python 3.2 + pyqt4
http://thedowntown.ru — Даун Таун, треш креативы о Науме и мёртвом городке
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.