|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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
-
|