Два базовых типа архитектур (Оценка: +1)

Печать / RSS-лента
Предисловие и для кого эта статья
Добрый день.
Данная статья расчитана быть короткой, так как затрагиваемые здесь вопросы стары как мир и говорить о них долго, просто не имеет смысла. Мы поговорим о двух наиболее часто встречающихся архитектурах программ, это терминальные утилиты и программы с графическим пользовательским интерфейсом (GUI). Что сподвигло меня написать эту статью на сайте wap/web разработчиков спросите вы? Я хотел бы объяснить (или может напомнить), что же из себя представляют программы с различными архитектурами, и в по какому направлению следует идти в том или ином случае. Начнем.

Немного об архитектуре
Архитектура программы понятие довольно абстрактное и многозначное. В общем смысле под архитектурой понимается логическая организация компонентов программы, будь то пакеты, модули или компоненты GUI.
В данной статье мы рассмотрим архитектуры, определяющие взаимодействие модулей программы и GUI с программой.

От простого к сложному: терминальная программа
Любой из вас, кто когда либо изучал программирование, начинал именно с этой типы архитектуры. Терминальная архитектура обычно включает следующие правила работы программы:
1. Программа может получать текстовые данные из вне в виде параметров;
2. Программа может работать с входными и выходными потоками, доступными ей из вне (если вы не знакомы с понятиями потоков, не стоит расстраиваться, мы рассмотрим их чуть позже);
3. Программа может выполнять некоторые операции над имеющимися у нее данными;
4. Программа может возвращать целочисленный результат, информирующий ОС о результате выполнения программы.
Рассмотрим каждый пункт подробнее:
Входные параметры
Если вы поработаете с любыми утилитами ОС Unix, Windows, Linux или Mac, то вскоре поймете, что они могут получать некоторые входные значения, на пример:
cd <имяКаталога> - устанавливает в качестве текущего каталога данный.
Возможность передать программе (в данном случае утилите) некоторые данные и является передачей входных параметров. Программы написанные на таких языках как C/C++, Java и даже PHP могут получать некоторые входные параметры.
IO потоки
Входные (in) и выходные (out) потоки, это специальные абстракции, используемые в программах для обозначения потока данных, который может быть передан (выходной поток) или получен (входной поток) к/из некоторого источника. На пример при записи в файл вы работает с выходным потоком, а при чтении из него - с входным. Многие программы терминальной архитектуры работают с IO потоками терминала, для получения данных от пользователя и выводе их на экран.
Выполнение операций
Естественно, что программа должна уметь что либо делать с данными, иначе теряется смысл ее существования, поэтому останавливаться подробно на этом пункте не будет.
Флаг выполнения
Обычто при вызове программы с помощью ОС (такой как Linux, Windows, Unix, Mac и т.д.) вторая передает ей управление в виде создания нового процесса, в котором выполняется программа, и ожидает от нее некоторый целочисленный результат, информирующий о результате работы. Принято понимать под результатом 0 - удачное выполнение программы, а числа больше 0 означают ошибку в работе программы.
Как это связано с wap/web
Когда вы создаете PHP скрипты, вы по сути создаете маленькие программки, которые вызываются с использованием другой программы, обрабатывающей HTTP запросы (на пример apache). Эта "головная программа" в зависимости от запроса клиента передает управление тому или иному PHP скрипту, а тот, в свою очередь, работая с потоками ввода (на пример из файлов или других программ, таких как СУБД) и вывода (echo передает данные в поток вывода, который в свою очередь передается apache, который передает его в виде тела ответа клиенту). Таким образом при проектировании PHP программ стоит придерживаться терминальной архитектуры вида: получаем данные, обрабатываем их, возвращаем результат в поток вывода (возврат целочисленного результата можно опустить, так как он неявно передается PHP интерпретатором). Но когда речь заходит о DHTML+AJAX+PHP программах, все несколько изменяется.

Автор статьи: Артур (03.01.13 / 17:15)
Архитектура, GUI, терминал
Рейтинг: +1
Просмотров: 954
Комментарии (3) »