Alexander Kuklev (akuklev) wrote,
Alexander Kuklev
akuklev

Категоризация software

Хочу попробовать ввести классификацию программ и выделить парадигмы программирования, удобные для их создания. Речь идёт только о программах для персональных компьютеров и широкого круга пользователей.

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

Automation: Scripts of all purposes.
    Create a user account, run defragmentation every week, insert a signature at the end of a letter.

Особенности структуры: Скрипты и этим всё сказано. Наиболее удобная форма — последовательность комманд, которые нужно выполнить. Процедуры и ООП использовать можно, но их использование не нужно навязывать.

Applied programming: Internet/Intranet services and applications, Viewers, Editors, IDEs, Standalone applications, Games
    Google maps или заказ билетов Detsche Bahn — примеры интернет сервисов. Бухгалтерская система — standalone или intranet application. Маленькая программка для рассчёта знаков зодиака — тоже standalone.
К прикладным программам не относятся программы, напрямую контактирующие с устройствами, сетевыми протоколами etc. Прикладные программы используют уже готовый framework.

Особенности структуры: Чётко разделённые frontend и backend. Backend — либо локальный, либо serverside, либо распределённый движок с чётким интерфейсом, через который осуществляется коммуникация с frontend'ом и сторонними программами. Backend'ы — вотчина ООП. Отдельные методы просты и коротки, а схемы систем часто огромны.

Frontend контактирует с Backend'ом и обеспечивает пользовательский интерфейс. Тут ООП нужен только в рамках XUL DOM.


Service programming: Программы, создающие тот самый framework, который затем используют прикладные.
    Примеры: Apache, MySQL, wine
+
System programming: Operating system, its components and low level extensions & device multiplexers (eg. window managers, sound mixers).

Особенности структуры: Очень неоднородна. Тут используется и низкоуровневое программирование, и высокоуровневая модулярная структура.

Utility programming: Небольшие программы, на низком уровне работающие с сетью или устройствами для решения служебных задач.
    Примеры: Defragmentator, Partition manager, CPU temperature indicator

Особенности структуры: Простой UI, за которым стоит низкоуровневая работа с системой. ООП требуется минимально.

Driver programming: Drivers for devices
Особенности структуры: Сплошной низкий уровень.

Overlay programming: Программы, прицепляющиеся в виде посредников на стандартные интерфейсы системы и делающие всю работу в целом удобнее.
    Примеры: Puntoswitcher, Spellchecker, Screen capture

Особенности структуры: В зависимости от возможностей, предоставляемых системой. Если оверлей на интерфейсе системой не предусматривается — извращённый низкоуровневый dirtyhacking. Иначе: см. след. кат.

Component and plug-in programming: Создание компонентов и расширений для существующих программ и операционной системы.
    Примеры: Модули поддержки разных файловых систем для mount, расширенные UI-компоненты для встраивания в диалоговые окна и сайты.

Особенности структуры: Создаются компоненты с заранее оговоренным интерфейсом и набором возможностей. Программирование сходно с имплементацией одного отдельно взятого класса. В особо изощрённых случаях компонент может иметь собственную архитектуру, которая лишь привязывается к интерфейсу классом-wrapper'ом. «Собственная архитектура» подпадает либо под категорию Applied, либо под категорию Service.

X-Posted to: ru_programming
Subscribe

  • Прогресс

    Десять дней назад, вторая ступень SpaceX'овского корабля Starship своим ходом слетала своим ходом на десять километров вверх, и усмепшно приземлилась…

  • О водосбережении

    Как известно, питьевая вода во многих странах дефицитный ресурс. И даже в дождливой Германии летом иногда случаются засухи, в результате которых она…

  • 36

    Традиционный деньрожденный пост. Год выдался необычный. :)

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments