Я предложил бы взглянуть на шаблон Roberston's Volere здесь . Они - часть Атлантической Системной Гильдии, вместе с людьми как Tom DeMarco и Timothy Lister известности "Peopleware".
, Поскольку шаблон защищен авторским правом, я не воспроизведу его здесь, но дам Вам некоторые основные заголовки:
существуют намного больше, но это должно дать Вам общее представление. Самая интересная часть шаблона является оболочкой требований, которая перечисляет функциональные требования на своего рода карте сигнала. Снова защищенный авторским правом, но действительно ценный.
Взгляд здесь в главе 9.
Верно, WSGI - это определение программного API Python, а FASTCGI - это определение протокола подключения сокетов, не зависящее от языка. Фактически они находятся на разных уровнях, причем WSGI является более высоким уровнем. Другими словами, можно реализовать WSGI поверх того, что так случилось, чтобы использовать FASTCGI для связи с веб-сервером, но не наоборот.
В общем, FASTCGI, являющийся протоколом подключения сокета, означает, что вам всегда нужны некоторые тип программного интерфейса сверху, чтобы использовать его. Для Python одним из таких вариантов является WSGI. Поскольку FASTCGI - это всего лишь средство для достижения цели, в этом случае нельзя действительно сравнивать его производительность с WSGI, потому что WSGI не является сопоставимым протоколом подключения сокетов, а является пользователем самого FASTCGI.
Можно попробовать сравнить производительность различных языковых интерфейсов поверх FASTCGI, но в целом это само по себе бессмысленно, поскольку нижний сетевой уровень и обработка запросов сервера не являются узким местом. Вместо этого код вашего приложения и база данных будут.
Это разные вещи. WSGI - это специальный интерфейс Python для написания веб-приложений. Существуют оболочки для любого протокола веб-сервера, обеспечивающие интерфейс WSGI. FastGCI (FCGI) - один из таких протоколов веб-сервера. Итак, WSGI - это уровень абстракции, а CGI / FastCGI / mod_python - это то, как фактические веб-серверы взаимодействуют с приложением. Некоторый код должен переводить собственный интерфейс в WSGI (есть модуль CGI в wsgiref
, есть flup
для FastCGI и т. Д.). Также существует mod_wsgi для Apache, который выполняет перевод непосредственно в модуле Apache, поэтому вам не нужна оболочка Python.