Developing — различия между версиями
Материал из Русский WINE
(не показаны 3 промежуточные версии ещё одного участника) | |||
Строка 1: | Строка 1: | ||
== Особенности разработки в фирме Etersoft продукта WINE@Etersoft == | == Особенности разработки в фирме Etersoft продукта WINE@Etersoft == | ||
− | |||
− | |||
===1.WINE@Etersoft представляет собой видоизменённую и доработанную версию Open Source проекта Wine (www.winehq.org)=== | ===1.WINE@Etersoft представляет собой видоизменённую и доработанную версию Open Source проекта Wine (www.winehq.org)=== | ||
Строка 11: | Строка 9: | ||
* Открытая - это код Wine, содержащий наши исправления ошибок, наши реализации функций и прочие доработки. В идеале весь код открытой части должен быть принят в основное древо проекта Wine. Это наш вклад в развитие в проект Wine. | * Открытая - это код Wine, содержащий наши исправления ошибок, наши реализации функций и прочие доработки. В идеале весь код открытой части должен быть принят в основное древо проекта Wine. Это наш вклад в развитие в проект Wine. | ||
− | |||
− | |||
===2. Разработка открытой части выглядит примерно так:=== | ===2. Разработка открытой части выглядит примерно так:=== | ||
− | |||
* Выбирается, либо назначается ошибка, зарегистрированная в базе данных ошибок bugs.etersoft.ru. | * Выбирается, либо назначается ошибка, зарегистрированная в базе данных ошибок bugs.etersoft.ru. | ||
* Разработчик изучает ошибку, исследует причины, приводящие к возникновению этой проблемы. | * Разработчик изучает ошибку, исследует причины, приводящие к возникновению этой проблемы. | ||
− | * Определяются механизмы, модули, участки кода [[ | + | * Определяются механизмы, модули, участки кода [[WinAPI]] (реализованные в Wine), в которых прослеживается ошибка. |
* Пишутся кросс-тесты демонстрирующие наличие этой ошибки в Wine и отсутствие её в Windows. | * Пишутся кросс-тесты демонстрирующие наличие этой ошибки в Wine и отсутствие её в Windows. | ||
* Затем происходит исправление ошибки. Возможны два варианта: | * Затем происходит исправление ошибки. Возможны два варианта: | ||
Строка 24: | Строка 19: | ||
** В коде Wine найдено место, в котором возникает ошибка, но не ясны причины, приводящие к возникновению её. Если есть возможность исправить эту ошибку и при этом не нарушается функционирование других частей Wine, то программист создаёт патч и добавляет его в папку hack. Это говорит о том, что пока не ясно как верно с точки зрения АРХИТЕКТУРЫ проекта Wine исправлять данную ошибку, но поскольку исправление обеспечивает нужную функциональность требуемого приложения, то для удобства клиентов, возможно использование этого решения в качестве ВРЕМЕННОГО. Естественно со временем данная ошибка должна быть исправлена более корректным способом. | ** В коде Wine найдено место, в котором возникает ошибка, но не ясны причины, приводящие к возникновению её. Если есть возможность исправить эту ошибку и при этом не нарушается функционирование других частей Wine, то программист создаёт патч и добавляет его в папку hack. Это говорит о том, что пока не ясно как верно с точки зрения АРХИТЕКТУРЫ проекта Wine исправлять данную ошибку, но поскольку исправление обеспечивает нужную функциональность требуемого приложения, то для удобства клиентов, возможно использование этого решения в качестве ВРЕМЕННОГО. Естественно со временем данная ошибка должна быть исправлена более корректным способом. | ||
* После добавления патча ошибка закрывается и сообщается тестировщику о необходимости проверить и подтвердить исправление ошибки. | * После добавления патча ошибка закрывается и сообщается тестировщику о необходимости проверить и подтвердить исправление ошибки. | ||
− | |||
− | |||
===3. Взгляд на использование reverse engineering (обратной разработки)=== | ===3. Взгляд на использование reverse engineering (обратной разработки)=== | ||
+ | При работе над проектом Wine запрещено использовать знания и наработки, полученные путём изучения исходного кода Windows и дизассемблированием модулей. Отсылая патч в рассылку wine-patches@winehq.org, разработчик подтверждает, что знаком и согласен с этими требованиями. Вместо обратной разработки используется метод написания кросс-тестов (тестов исполняемых под Wine и под Windows), которым получают необходимые знания о работе функций. Также эти тесты являются юнит-тестами проекта Wine, так как позволяют проводить диагностику работоспособности Wine после добавления новых участков кода. | ||
− | + | [[Категория:WINE@Etersoft]] | |
− | + | {{Wine}} | |
− | [[Категория:WINE]] | + |
Текущая версия на 12:51, 12 февраля 2018
Особенности разработки в фирме 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 после добавления новых участков кода.