Как написать сложное приложение для использования под G-WAN - PullRequest
0 голосов
/ 29 апреля 2018

Я хочу ознакомиться с передовым опытом при разработке приложений с использованием GWAN.

У меня есть небольшое стартовое приложение (но важная часть большого проекта), которое будет использовать C ++ ООП. По крайней мере, это означает, что у меня есть классы для инициализации по HTTP-запросам.

Как я должен структурировать источники, чтобы эффективно и практично использовать их при разработке для GWAN? Нужно ли разрабатывать приложение отдельно и связывать его как разделяемую / статическую библиотеку? Или я могу включить их, и GWAN выполняет сборку, как это делается для сценариев в папке CSP? Я обнаружил, что, если я помещаю их в папку CSP, результатом является сбой при запуске сервера, поскольку происходит сбой с ошибкой из-за отсутствия основной функции в файлах cpp, которые содержат реализации классов. Из-за этого я согласился с тем, что размещение исходников в CSP не является способом выполнения работы, и должен существовать только начальный сценарий, который будет направлять все запросы к приложению.

Еще одна вещь, которая связана с этим, заключается в том, что я изо всех сил пытаюсь найти практическую рабочую среду, которая позволила бы мне быстрее создавать и тестировать в случае, если мне придется создавать библиотеку для использования через CSP. Может быть, я создам способ тестирования приложения отдельно, однако быстрое тестирование в среде GWAN для меня сейчас невидимое решение, которое, я полагаю, уже есть.

Развертывание обновленной версии приложения под GWAN должно произойти как можно проще и быстрее - как это сделать? Я знаю, что этот вопрос, скорее всего, прояснится благодаря признанию ответов на вышеизложенное, но позвольте мне оставить его на всякий случай, если я очень ошибаюсь в своих нынешних представлениях по всей этой теме.

1 Ответ

0 голосов
/ 30 апреля 2018

Каталог /csp должен содержать только точку входа servlets, то есть файл исходного кода с main(), который может быть вызван удаленным клиентом.

Вы можете иметь функции (вызываемые из нескольких сервлетов) в форме исходного кода (или в скомпилированной форме), размещенные в каталогах /includes ( .h) и /libraries ( .c, *. obj, * .a, * .lib).

Быстрая разработка и тестирование могут быть выполнены с помощью сервлета, используемого для тестирования вашего кода, пока он не станет достаточно зрелым для хранения в / includes или /libraries.

.

Для крупных проектов имеет смысл использовать предварительно скомпилированные библиотеки, поскольку это ускорит компиляцию сервлета «на лету» (по сравнению с большой коллекцией включаемых файлов).

И последнее, но не менее важное: G-WAN, предназначенный для бережливого кодирования, C ++ может быть не столь оптимальным для этой цели, как обычный C - просто подумайте о скрытой стоимости конструкторов, их порядке, их иногда избыточных действиях, скрытом распределении памяти и т. д. - в дополнение к огромным накладным расходам времени выполнения C ++, высоким временам компиляции, стандартным библиотекам blackbox и т. д.

В TWD, для Global-WAN (опираясь на G-WAN), мы потратили довольно много времени на переписывание C ++ (нестандартных) библиотек на простом C, с очень ощутимым приростом в плане производительности, ошибок и очистка тупика и использование памяти.

То, что вы не видите, может повредить - и причинить боль, потому что, ну, вы не видите этого, пока не стало слишком поздно.

Надеюсь, это поможет.

...