You are here: Foswiki>Gnumed Web>DevelopmentGuidelinesRu (21 Mar 2013, IvanLykov)EditAttach

Руководство разработчика

Руководство по кодировке и модульному дизайну

строковая обработка/кодирование

  • не существует такой вещи как обычный текст
  • всегда внутренне используйте Unicode
  • соотвественно encode()/decode() в пределах IO
    • подключение БД (gmPG2.py consumes/produces unicode)
    • файлы (используйте codecs.open(..., encoding=...)
    • ввод пользователя (wxPython consumes/produces u'' unicode strings)
  • то, что предлагает psycopg2 не является совершенным, но это рекомендуемый способ закавычивания, когда недоступен параметр передачи вне запроса и, таким образом, дает некоторую защиту от атак инъекции SQL (см. здесь и здесь тоже): не создавайте запросы на объединение строк, а лучше всегда используйте аргументы запроса %s + (в этом gmPG2.py предлагает удобство)

i18n

  • обрамите с помощью _() все строки UI
  • для замещения вместо %s всегда используйте только %(tag)s
    • этим способом можно изменить порядок перестановки в намеченном языке
  • для форматирования меток времени используйте gmDateTime.py::pydt_strftime()
  • как избежать ошибок, обсуждается на проекте KDE

доступ к бэкэнду

  • всегда используйте промежуточное программное обеспечение
  • не вставляйте напрямую SQL в код интерфейса - кроме, как для привязанных специалистов
  • из-за ограничений при реализации наследования в PostgreSQL никогда не пишите в clin_root_item, или рискуете повреждением данных
    • чтобы не допустить этого, для этой родительской таблицы в правилах необходимо назначить запрещение доступа на запись, а если нужно иметь незащищенную родительскую таблицу где-нибудь в схеме, дайте знать

подробнее

  • НЕ смешивайте табулирование и пробелы при отступе (табулирование предпочтительнее, однородные пробелы приемлемы)

  • каждая панель графического интерфейса должна быть черным ящиком, связанная с другими панелями через сообщения

Координаторы важных областей

область координатор
схема базы данных KarstenHilbert
начальная загрузка схемы KarstenHilbert
аспекты i18n KarstenHilbert
объекты промежуточного/коммерческого ПО KarstenHilbert, CarlosMoro
концептуальный дизайн GUI Richard Terry
пакетирование (Debian) Андреас Тилле
пакетирование (Gentoo) DavidGrant
Вики Джим Буссер
веб-сайт Тони Лембке
управление релизом SebastianHilbert

  • персональные данные & контакты: свяжитесь с Яном Ричардом
  • см. RoadMap для включения в список требуемых / желаемых / планируемых функций
  • устаревший пост по нему на: http://mail.gnu.org/archive/html/gnumed-devel/2003-11/msg00119.html
  • DevelopmentProcess дает общий обзор, как идеи и потребности людей должны объединиться непосредственно в проект


редко необходимые рекомендации

Руководство VCS

  • Код, тестирование, повторные испытания, убедитесь, что вы не ввели новые ошибки, если не уверены, свяжитесь с автором этого кода или администратором.
  • Для чего-либо значительного, если не получили достаточной обратной связи в разумные сроки, запросите снова. Без обсуждения не означает одобрение.
  • Желательно вставить README в каталог test, объясняющий, как запускать код, насколько считаете, ваш код может быть опробован другими, например, если он не работает внутри, иначе неизмененные рамки gnumed, или иным образом, требует пояснений. Свяжитесь с нами. Ваш код может быть отличным, и было бы обидно, если мы не используем его, потому что мы не знаем о нем или как его использовать.
  • внимательно посмотрите, какой код уже в VCS, используйте существующий код, когда возможно, улучшайте существующий код, при необходимости
  • закомментируйте свой код (то есть комментируйте все, даже если это может показаться для вас глупым! ); некомментированный код (новые файлы и т.д.) не будет принят в основной ствол. Некоторая информация об ограничениях комментирования из Epydoc здесь
  • предоставляйте раньше и чаще ПРЕДСТАВЛЕННЫЙ прогон кода и объявите изменения в списке

  • Если код, как сумасшедший в испытательной зоне, и добавляете новые функции к файлам, вы не отвечаете (вы не добавили его первоначально или не брали обязанность сохранения файла) за незавершенные существенные изменения без обращения к парню, который отвечает за этот файл.
  • исходная http://mail.gnu.org/archive/html/gnumed-devel/2003-11/threads.html#00126 тема gnumed-devel

Управление иллюстрациями

Сведения о пакетировании

Дизайн производительности

-- JamesBusser - 24 Sep 2004
Topic revision: 21 Mar 2013, IvanLykov
 
Download.png
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback
Powered by Olark