WINE/Разработчику/Методика

Материал из Русский WINE
Перейти к: навигация, поиск
Wackowiki-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была автоматически перемещена с old.wiki.etersoft.ru.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Vostok: Всё безнадёжно устарело.. Для сотрудников Etersoft необходимо внести существенные изменения о взаимодействии разработчиков с другими подразделениями и рекомендовать к обязательному прочтению всем начинающим.


Методика разработки

Необходимые знания

  1. Умение читать и писать на техн. английском.
  2. Основы работы с patch, diff, git.
  3. Представление о WinAPI.
  4. Использование поисковых систем.
  5. Умение тестировать и писать тестовые программы.
  6. Базовые представления об удобстве использования GUI.

Общий подход к работе над адаптацией к программе

I этап

  1. Установить программу
  2. Записать наблюдаемые визуальные дефекты и проблемы с функциональностью
  3. Локализовать проблемное место
  4. Запросить исходники проблемной части, которые помогут написать код, воспроизводящий ситуацию
  5. Оценить трудоёмкость работы по исправлению в человекоднях

II этап

  1. Выполнить необходимые доработки согласно плану
  2. Провести полное тестирование результата
  3. Проверять отсутствие регрессии на каждом новом шаге развития WINE (раз в неделю)

III этап

  • Осуществлять поддержку и оперативное исправление замечаний

Работа с проблемой

  1. Создать описание в багзилле
  2. Найти причину проблемы
  3. Создать контрольные тесты
  4. Выставить предложения по исправлению
  5. Реализовать исправления после их утверждения
  6. При этом необходимо максимально использовать и дополнять имеющиеся тесты.

Тестирование

  1. План тестирования
  2. Логи тестирования
  3. Сводная таблица результатов.

Примерный план работы по каждой задаче

Должно быть сформулировано прохождение каждой проблемы от появления до решения.

  1. Формулирование видения проблемы извне (внешне, с точки зрения пользователя) - какой диалог как себя не так ведёт.
  2. Анализ кода с целью получения общего представления и определения проблемных мест
  3. Создание описание функции на англ., включая поведение в сложных ситуациях (для начала можно на русском). При этом описать входы и выходы (что передаётся и возвращается, в каких ситуациях). По сути, это техн. задание ТЗ) - но чтобы было с чем сверяться. При этом изучить и систематизировать имеющийся в сети материал.
  4. Cоздание программы для тестирования в различных режимах, в большинстве случаев это оформляется как программа, воспроизводящая проблему - небольшой код, который неверно работает в WINE. Программа должна компилироваться средствами winegcc.
  5. Определиться, что не работает, что работает не так; сформулировать что надо сделать
  6. Согласно имеющейся информации написать автоматический тест (каталог tests), если это возможно. Тест должен выполняться на Windows семейства NT начиная с NT4
  7. Составить план работ с оценкой трудоёмкости и сроков (дата начала и завершения)
  8. Приступить к выполнению, корректируя п. 3-5

Как вносить исправления

По всем пунктам, где требуется решить проблему,

  • сначала желательно воспроизвести ситуацию отдельной программой или тестом для wine;
  • потом - либо написать хак (не совсем корректный патч, который делает что проблема убирается, но не факт, что это правильное решение и годится для других);
  • либо внести полные исправления в функцию, с комментариями к ней.


Все сделанные патчи должны отправляться в Eterwine patches maillist с указанием веток, к которым следует применить исправление.

Если получено корректное исправление и для него написан тест для wine, то патч вместе с тестом можно отправить в рассылку wine-patches@ апстрима.


Тесты для функций

Тесты для функций пишутся следующим образом:

1. Вызывается функция

2. Сверяется результат её выполнения (возвращаемое значение) с эталоном

3. Сообщается результат сравнения.


В тестах для WINE для сообщения о прохождении теста используется функция ok.


Функция ok (int bool, char* format, ...)

Выводит сообщение об ошибке, с указанием номера строки, а также

текст, содержащийся в строке format, если bool не истина (bool == 0).

Параметр format и последующие аргументы интерпретируются так же, как параметры функции

printf

Wine
Search.png
Программы работающие в WineСкачатьШкольный Wine
WINE@Etersoft Общие сведенияУстановка на 64-битные ОСОсобенности разработкиПатчи для WINE@EtersoftАдминистративная установкаДополнительные компонентыКак получить WINE@Etersoft?Лицензия на документациюГлоссарийИспользование аппаратных ключей защиты в LinuxДополнительная информация • [ Совместная работа | по CIFSпо NFS ] • Изменение системных ограниченийРегистрация продуктаПошаговая инструкция по установке rpm-пакетовОбращение в службу поддержкиТерминальные решенияУстановка WINE@EtersoftПодписка на обновленияНастройка WINE@EtersoftРазработчикуEnterpriseЧто такое WINE@Etersoft SQLВозможностиСреда для запуска приложений WindowsИспользование WINE@EtersoftFAQ по использованию WINE@EtersoftОсновные командыWINE@Etersoft/LocalЧто такое WINE@Etersoft Local
Программы Запуск БЭСТ 4+Запуск Консультант+ (сетевой версии)ГарантF1Инфо-Бухгалтер 8.xНалогоплательщик ЮЛ
1C Отличия от обычного WineМестоположение базы 1С1C: Предприятие 7.7 в WINEНастройка 1С 7.7 для работы с SQL-серверомУстановка 1С: Предприятия 8.1Установка 1С: Предприятия 8.1 в трёхзвенном режиме
Пользователю
Помощь Использование WinecfgИспользование Regedit
Легальность DCOM95IE5DCOMMSXML
Утилиты для работы с Wine WinetricksWineToolsQ4WinePlayOnLinuxIEs4LinuxWine-DoorsSwine
Разработчику
Компоненты WindowsЗапрет отключения защиты программыУправление обработчиком исключенийStraceNTИзмерение скорости функций WinAPIGLУстройство чтения смарт-картПрофилированиеТесты для проверки интерфейсовНаписание тестов в системе WineАутентификация в домене ADРепозитории
Помощь Создание патчейНаписание приложения под wineОтправка патчейСборка eterhackСборка wine-public
Отладка Способы отладкиWINEDEBUGWinedbg
Разработка WINE
1CODBCWinHelpКомпасМетодикаТестирование доступаЦветаФайловый диалогТестированиеЛитератураИзображенияWin32ШрифтыФайловые блокировкиСсылкиКлючи защитыRPMWineGeckoListViewУпаковка Wine
Производителю
Родственные проекты
LUKReactOSARWINSSCrossOver
Прочее
PageSetupDlgFreeBSDWwr