Move pelican site to obsolete-pelican subdirectory. Copy site-opengamestudio en/ru and index here
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
Title: Разработка через создание примеров
|
||||
Date: 2018-06-27 00:00
|
||||
Category: News
|
||||
Slug: example-driven-development
|
||||
Lang: ru
|
||||
|
||||
![Screenshot][screenshot]
|
||||
|
||||
Эта статья описывает то, как создание третьего кросс-платформенного примера
|
||||
OpenSceneGraph привело нас к разработке через создание примеров.
|
||||
|
||||
**ИЗМЕНЕНИЯ ОТ 2018-08**: третий пример был переименован в четвёртый в связи
|
||||
с причинами, изложенными в [следующей статье][article-2018-august].
|
||||
|
||||
**Третий кросс-платформенный пример OpenSceneGraph**
|
||||
|
||||
Третий кросс-платформенный пример OpenSceneGraph содержит реализацию
|
||||
[удалённой отладки, работающей на всех поддерживаемых платформах][osgcpe-03].
|
||||
Этот пример относится не столько к OpenSceneGraph, сколько к поддержке
|
||||
различных платформ.
|
||||
|
||||
Удалённое взаимодействие ныне предполагает использование HTTP(s) поверх
|
||||
TCP/IP. Таким образом, первая идея реализации подразумевала встраивание сервера
|
||||
HTTP в приложение, чтобы клиенты HTTP могли взаимодействовать с этим сервером.
|
||||
Однако, раздача HTTP на различных платформах имеет свои сложности:
|
||||
|
||||
* на десктопах есть межсетевые экраны (firewalls)
|
||||
* на мобилках есть ограничения по работе фоновых процессов
|
||||
* веб-браузеры являются клиентами HTTP по дизайну
|
||||
|
||||
Эти ограничения подтолкнули нас к созданию посредника между отлаживаемым
|
||||
приложением и пользовательским интерфейсом отладки.
|
||||
[Брокер отладки][debug-broker], небольшое приложение Node.js, стало тем самым
|
||||
посредником. Брокер отладки не имеет внешних зависимостей, поэтому его легко
|
||||
использовать практически везде. Благодаря тому, что брокер отладки - это
|
||||
серверное приложение, его достаточно настроить лишь раз и использовать для
|
||||
любого количества приложений.
|
||||
|
||||
И [пользовательский интерфейс отладки][debug-ui],
|
||||
и [брокер отладки][debug-broker] используют JavaScript, т.к. мы хотели сделать
|
||||
эти инструменты максимально доступными без предварительной установки. Данное
|
||||
решение привело нас к реализации инструментов именно для веб-браузеров.
|
||||
Десктопное приложение потребовало бы дополнительных усилий на установку и
|
||||
поддержку, что лишь усложнило бы работу с инструментами.
|
||||
|
||||
**Разработка через создание примеров**
|
||||
|
||||
После создания третьего примера мы осознали важность и достоинства разработки
|
||||
новых функций вне основного проекта:
|
||||
|
||||
* освобождение основного проекта от шума изменений (commit noise)
|
||||
* публичное освещение новой функции приглашает всех к её изучению, критике и улучшению
|
||||
|
||||
Когда мы делимся нашими знаниями:
|
||||
|
||||
* мы обязаны создавать документацию, объясняющую происходящее (в том числе для нас самих позже)
|
||||
* мы обязаны сторониться непродуманных решений, т.к. они повредят нашей репутации
|
||||
|
||||
С этого момента все новые функции вроде обработки ввода, загрузки раскладок
|
||||
Маджонга, кэширования ресурсов и т.п. мы будем сначала реализовывать в виде
|
||||
примеров. Мы называем этот подход разработкой через создание примеров.
|
||||
|
||||
На этом мы заканчиваем описание того, как создание третьего
|
||||
кросс-платформенного примера OpenSceneGraph привело нас к разработке через
|
||||
создание примеров.
|
||||
|
||||
|
||||
[screenshot]: {attach}/images/2018-06-27-example-driven-development.png
|
||||
[article-2018-august]: {filename}/articles/2018-08-21-examples-and-dependencies-ru.md
|
||||
|
||||
[osgcpe-03]: https://github.com/OGStudio/openscenegraph-cross-platform-examples/tree/master/03.RemoteDebugging
|
||||
[debug-broker]: https://github.com/OGStudio/debug-broker
|
||||
[debug-ui]: https://github.com/OGStudio/debug-ui
|
||||
|
||||
Reference in New Issue
Block a user