Найти - Пользователи
Полная версия: NoteFinder
Начало » Python проекты » NoteFinder
1
ZeroDivisionError
Добрый вечер.

Помню, я был в своё время предметом троллинга в pythonua@:

GFORGX: All:
Большой Лис: /me достал попкорн

wiz: цирк не состоялся
wiz: GFORGX (gforgx@jabbus.org) ушел
Google всё помнит, угу ;)

Так вот, ныне признаю, код NF на то время был ужасен чуть более, чем полностью. Представлял из себя мешанину кода нагенерированного pyuic4, копипасты и прочего. Ненужные классы были налеплены на каждый чих. Нисколько не думал об архитектуре проекта, влеплял неюзабельную систему плагинов и т. д.

Начиная с НГ медленно всё переписывал полностью - написал парсер для своего собственного формата конфигурации, сделал базовый класс CommonApplication - и уже от него наследовал классы интерфейсов - DaemonApplication (сервит RSS блокнотов и управляет напоминаниями), ConsoleApplication, GuiApplication (интерфейс на Qt). Классы бэкендов наследовал от dict вместо старых классов с ужасными методами а-ля getNotes, реализовал интерфейс для подключения модулей - поисковых функций, функций сортировки заметок по определённым свойствам, бэкендов, хэндлеров для различных типов заметок - File, Directory, Note, Image, Task, Scrap, etc., сделал собственный загрузчик плагинов вместо использования pkg_resources и egg entry points, которые требовали установки самих плагинов - сейчас достаточно кинуть скрипт, содержащий функцию main, которой передаётся в качестве аргумента инстанция приложения. Ну, в общем, изменено внутри многое. В ближайших планах - добавить DbusInterface и адекватно портировать некоторые вещи из старого кода - бэкенды dokuwiki, opera, icalendar, etc.

Код сейчас храню в hg-репозитории на bitbucket, http://bitbucket.org/gforgx/notefinder
slav0nic
васис дас?) напиши в первом посте хотя б что это такое;)
ZZZ
ZeroDivisionError, а корованы там грабить можно?
Вот объясни, раз программа на Qt, то на кой, прости, хер там свой формат файла конфигурации? Ну если уж так хочется читаемости, при соответствующей мощности, возьми yaml и радуйся. Поверь, хватит за глаза! А если не хватит, то это первый признак, что ты делаешь что-то не то.

Касательно архитектуры – сначала хоть приблизительно продумай, пару uml'ек нарисуй… А только потом пиши код. Иначе мешанина так мешаниной и останется.
ZeroDivisionError
slav0nic
васис дас?) напиши в первом посте хотя б что это такое;)
PIM. Ранее было менеджером заметок :)
ZeroDivisionError
ZZZ
ZeroDivisionError, а корованы там грабить можно?
Вот объясни, раз программа на Qt, то на кой, прости, хер там свой формат файла конфигурации? Ну если уж так хочется читаемости, при соответствующей мощности, возьми yaml и радуйся. Поверь, хватит за глаза! А если не хватит, то это первый признак, что ты делаешь что-то не то.

Касательно архитектуры – сначала хоть приблизительно продумай, пару uml'ек нарисуй… А только потом пиши код. Иначе мешанина так мешаниной и останется.
Продумывал долгое время. Без UML-ек (спасибо, как-то не хочется).
ZZZ
ZeroDivisionError
Без UML-ек (спасибо, как-то не хочется).
А между прочем очень зря. Серьёзно рекомендую научиться использовать сей язык. Помогает не запутаться в написанном.

Добавленно:
Ну или хотя бы mind map
ZeroDivisionError
ZZZ
ZeroDivisionError
Без UML-ек (спасибо, как-то не хочется).
А между прочем очень зря. Серьёзно рекомендую научиться использовать сей язык. Помогает не запутаться в написанном.

Добавленно:
Ну или хотя бы mind map
Хм, да говорю же - не приемлю схематическое представление какой-бы то ни было информации. Наверное, в том числе и поэтому NF не умеет майндмапы :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB