Developing — различия между версиями

Материал из Русский WINE
Перейти к: навигация, поиск
(Новая страница: « == Особенности разработки в фирме Etersoft продукта WINE@Etersoft == ===1.WINE@Etersoft представляет собой…»)
 
Строка 18: Строка 18:
 
* Выбирается, либо назначается ошибка, зарегистрированная в базе данных ошибок bugs.etersoft.ru.
 
* Выбирается, либо назначается ошибка, зарегистрированная в базе данных ошибок bugs.etersoft.ru.
 
* Разработчик изучает ошибку, исследует причины, приводящие к возникновению этой проблемы.
 
* Разработчик изучает ошибку, исследует причины, приводящие к возникновению этой проблемы.
* Определяются механизмы, модули, участки кода [http://wiki.etersoft.ru/WinApi WinApi] (реализованные в Wine), в которых прослеживается ошибка.
+
* Определяются механизмы, модули, участки кода [[WinApi]] (реализованные в Wine), в которых прослеживается ошибка.
 
* Пишутся кросс-тесты демонстрирующие наличие этой ошибки в Wine и отсутствие её в Windows.
 
* Пишутся кросс-тесты демонстрирующие наличие этой ошибки в Wine и отсутствие её в Windows.
 
* Затем происходит исправление ошибки. Возможны два варианта:
 
* Затем происходит исправление ошибки. Возможны два варианта:
** В коде Wine найдена ошибка и программист пишет патч, исправляющий её. Патч добавляет в папку Check нашего cvs. Со временем исполнитель добивается чтобы и тест и патч были приняты в основное дерево Wine.
+
** В коде Wine найдена ошибка и программист пишет патч, исправляющий её. Патч добавляет в папку Check нашего cvs. Со временем исполнитель добивается, чтобы и тест и патч были приняты в основное дерево Wine.
** В коде Wine найдено место, в котором возникает ошибка, но не ясны причины, приводящие к возникновению её. Если есть возможность исправить эту ошибку и приэтом не нарушается функционирование других частей Wine, то программист создаёт патч и добавляет его в папку hack.Это говорит о том, что пока не ясно как верно с точки зрения АРХИТЕКТУРЫ проекта Wine исправлять данную ошибку, но поскольку исправление обеспечивает нужную функциональность требуемого приложения, то для удобства клиентов, возможно использование этого решения в качестве ВРЕМЕННОГО. Естественно со временем данная ошибка должна быть исправлена более корректным способом.
+
** В коде Wine найдено место, в котором возникает ошибка, но не ясны причины, приводящие к возникновению её. Если есть возможность исправить эту ошибку и при этом не нарушается функционирование других частей Wine, то программист создаёт патч и добавляет его в папку hack. Это говорит о том, что пока не ясно как верно с точки зрения АРХИТЕКТУРЫ проекта Wine исправлять данную ошибку, но поскольку исправление обеспечивает нужную функциональность требуемого приложения, то для удобства клиентов, возможно использование этого решения в качестве ВРЕМЕННОГО. Естественно со временем данная ошибка должна быть исправлена более корректным способом.
 
* После добавления патча ошибка закрывается и сообщается тестировщику о необходимости проверить и подтвердить исправление ошибки.
 
* После добавления патча ошибка закрывается и сообщается тестировщику о необходимости проверить и подтвердить исправление ошибки.
  
Строка 30: Строка 30:
  
 
При работе над проектом Wine запрещено использовать знания и наработки полученные путём изучения исходного кода Windows и дизассемблированием модулей. Отсылая патч в рассылку wine-patches@winehq.org считается что разработчик патча знаком и согласен с этими требованиями. В качестве обратной разработки используется метод написания кросс-тестов (тестов исполняемых под Wine и под Windows), благодаря которому получают необходимые знания о работе функций. Так же эти тесты являются юнит-тестами проекта Wine, так как позволяют проводить диагностику работоспособности Wine после добавления новых участков кода.
 
При работе над проектом Wine запрещено использовать знания и наработки полученные путём изучения исходного кода Windows и дизассемблированием модулей. Отсылая патч в рассылку wine-patches@winehq.org считается что разработчик патча знаком и согласен с этими требованиями. В качестве обратной разработки используется метод написания кросс-тестов (тестов исполняемых под Wine и под Windows), благодаря которому получают необходимые знания о работе функций. Так же эти тесты являются юнит-тестами проекта Wine, так как позволяют проводить диагностику работоспособности Wine после добавления новых участков кода.
 +
 +
[[Категория:WINE]]

Версия 15:57, 2 марта 2014

Особенности разработки в фирме Etersoft продукта WINE@Etersoft

1.WINE@Etersoft представляет собой видоизменённую и доработанную версию Open Source проекта Wine (www.winehq.org)

Состоит из двух частей:

  • Закрытая - содержит интеллектуальную собственность компании Etersoft, с ключевыми изменениями, обеспечивающие работоспособность поддерживаемых приложений. Так же в ней содержатся наработки, которые не относятся напрямую к WinAPI и проекту Wine, но нужны для полноты продукта.
  • Открытая - это код Wine, содержащий наши исправления ошибок, наши реализации функций и прочие доработки. В идеале весь код открытой части должен быть принят в основное древо проекта Wine. Это наш вклад в развитие в проект Wine.


2. Разработка открытой части выглядит примерно так:

  • Выбирается, либо назначается ошибка, зарегистрированная в базе данных ошибок bugs.etersoft.ru.
  • Разработчик изучает ошибку, исследует причины, приводящие к возникновению этой проблемы.
  • Определяются механизмы, модули, участки кода WinApi (реализованные в Wine), в которых прослеживается ошибка.
  • Пишутся кросс-тесты демонстрирующие наличие этой ошибки в Wine и отсутствие её в Windows.
  • Затем происходит исправление ошибки. Возможны два варианта:
    • В коде Wine найдена ошибка и программист пишет патч, исправляющий её. Патч добавляет в папку Check нашего cvs. Со временем исполнитель добивается, чтобы и тест и патч были приняты в основное дерево Wine.
    • В коде Wine найдено место, в котором возникает ошибка, но не ясны причины, приводящие к возникновению её. Если есть возможность исправить эту ошибку и при этом не нарушается функционирование других частей Wine, то программист создаёт патч и добавляет его в папку hack. Это говорит о том, что пока не ясно как верно с точки зрения АРХИТЕКТУРЫ проекта Wine исправлять данную ошибку, но поскольку исправление обеспечивает нужную функциональность требуемого приложения, то для удобства клиентов, возможно использование этого решения в качестве ВРЕМЕННОГО. Естественно со временем данная ошибка должна быть исправлена более корректным способом.
  • После добавления патча ошибка закрывается и сообщается тестировщику о необходимости проверить и подтвердить исправление ошибки.


3. Взгляд на использование reverse engineering (обратной разработки)

При работе над проектом Wine запрещено использовать знания и наработки полученные путём изучения исходного кода Windows и дизассемблированием модулей. Отсылая патч в рассылку wine-patches@winehq.org считается что разработчик патча знаком и согласен с этими требованиями. В качестве обратной разработки используется метод написания кросс-тестов (тестов исполняемых под Wine и под Windows), благодаря которому получают необходимые знания о работе функций. Так же эти тесты являются юнит-тестами проекта Wine, так как позволяют проводить диагностику работоспособности Wine после добавления новых участков кода.