История Одного Реинжиниринга Или Rnainspace V.1.3. Демо

Недавно был такой пост Правила разработки сложных систем.

История одного проекта , где автор описывает, как он успешно «покопался» в одном проекте, а потом всё выкинул и переписал с нуля.

Я попробую рассказать противоположную историю.

Здесь около месяца назад я безуспешно пытался представить демо-версию одной из своих разработок (см.

Часть №7. RNAInSpace - программа для полуавтоматического проектирования РНК в космосе ).

Оказалось, что в загрузчиках нет одного модуля, отвечающего за отображение графики.

Вкратце, проект RNAInSpace — это программное обеспечение для полуавтоматического проектирования РНК в космосе.

Обеспечивает 3D-визуализацию структуры РНК, позволяет изменять ее и за счет связи с модулем RNAWorld позволяет автоматизировать некоторые этапы сворачивания РНК.

Чтобы разобраться в теме, я написал здесь ряд статей: От белков к РНК , Мат. критерии , Как уменьшить количество витков цепи? , Как оценить ход сворачивания одноцепочечной РНК? , Ограничения на методы оптимизации в играх с соперником и без него , Одна фундаментальная проблема , Введение в сворачивание многоцепочечной РНК Но эту статью можно обсуждать и не зная предметной области; кстати, заодно проверим, можно ли судить о качестве ПО, не зная семантики предметной области (я утверждаю, что это возможно).

Так вот эта 3D визуализация (модуль RNAInSpaceDisplay) не работала на некоторых компьютерах.

Для реализации графики я использовал существующий проект ВМД 1.8.7 .

Ниже рассказ о том, как я адаптировал VMD 1.8.7 под свои нужды.

Для начала давайте проверим, подходит ли вам этот проект , Вы можете скачать это здесь .

Комментарии по использованию описаны в статье.

Часть №7. RNAInSpace - программа для полуавтоматического проектирования РНК в космосе .

Единственное, добавлен каталог RNAInSpaceDisplay, где находится .

exe. Если у вас не запускается графика, то запустите этот .

exe — мне важно знать, это связь между C# и C++, или это проблема с графикой.

Сразу предупреждение: RNAInSpaceDisplay.exe не имеет вывода (удаляем задачу через диспетчер задач).

Для интересующихся темой сразу обсудим развитие этого ПО и проекта в целом.

А ниже я расскажу немного только о графическом модуле.

Изначально VMD 1.8.7 написан на C++ и содержит около 85 000 строк чистого кода (без пустых строк, комментариев и т.п.

).

После моей адаптации код содержит 25 000 строк (около 100 файлов) — в общем, это тоже немало.

Адаптировался во многом механически - выкинул из ВМД весь пользовательский интерфейс (который довольно убогий), кроме графического окна, удалил ветки для операционных систем, отличных от Windows (другие поддерживать не собираюсь), и все, что прилипло.

.

Сразу скажу код там ужасный, с бородой, написан вообще на ООП, но все очень переплетено и завязано на пользовательский интерфейс от VMD (видимо разработчики не слышали о MVC).

В целом качество кода VMD, написанного в Университете Иллинойса, оставляет желать лучшего.

Но у него есть один большой плюс — он без проблем работает и компилируется под Windows. Конечно, при адаптации пришлось привести его в «божественный вид» — воткнуть в проект Microsoft Visual C++ 2010, написать класс-обертку для вызова всего необходимого и сделать .

dll, которую потом использую из C#.

Реинжиниринг в первой версии занял около недели, а недавно — еще неделю.

Более того, в 50% случаев я форматировал код (заменял пробелы на табуляции - это делал сам редактор полуавтоматически, но скобки расставлять приходилось, так как не могу переварить стиль, когда скобки не расположены) один ниже другого).

Собственно, я до сих пор не понимаю, почему на ряде машин это не работает. С тех пор я перешёл на Windows7 x64, с WindowsVista x32. Сейчас протестировал на этих двух операционных системах - у меня все работает. Но попутно я составил схему подключения классов UML. Предлагаю на обсуждение.



История одного реинжиниринга или RNAInSpace v.1.3. Демо

Здесь в высоком разрешении, чтобы вы могли рассмотреть детали.

Это лучшее, что получилось после реинжиниринга :) было гораздо хуже.

Но как видим, это уже достаточно ужасно.

Почему и как это исправить? Давайте обсудим эту тему.

Но главное (!) — это не повод выкидывать и переписывать с нуля.

Теги: #Работа с 3D-графикой #3d-графика #демо #теория игр #складывание белка #кибернетика #реинжиниринг #складывание РНК

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.