Читаем Справочник программиста в стихах. От проектирования до внедрения полностью

Глобальное проектирование прежде всего (Big Design Up Front)

Прежде всего подумать стоит

И спроектировать систему.

И это, может, сэкономит

Нам кучу времени, проблемы

Предотвратив на ранних сроках.

Так изменить ТЗ – не долго,

А код бессмысленный намного

Дороже написать без толку.

Предметно-ориентированное проектирование (Domain-driven design, DDD)

Для проектирования кода

На основании бизнес-правил –

То бишь проблемного подхода –

Модель предметную составим.

Система, как набор моделей

Предметной области, позволит

Облегчить построение в целом

Её структуры и ускорит

Её развитие в дальнейшем.

Понизит сложность изучения

Частей системы для скорейших

Их написания и внедрения.

Придерживайся простоты (Keep it simple, stupid, KISS)

Усложняя, упрощай –

Избегай ненужных дебрей,

В простоте все сохраняй,

Ищи лучшее решение.

Чем система проще будет,

Тем надёжнее она,

Усложнение всё погубит,

И запутает весьма.

Бритва Оккама (Occam’s Razor, OR)

Не нужно сущность создавать,

Когда ей нет особой роли.

Не нужно нового, когда

Подходит то, что есть дотоле.

Не повторяйте себя (Don’t Repeat Yourself, DRY)

Не надо повторять себя –

Решай единожды задачи.

Ведь если надо будет взять

И сделать что-либо иначе,

Во всех повторах повторить

Придётся эти изменения

И ничего не пропустить –

Довольно сложно в выполнении.

До написания кодов

Полезно изучить систему:

Вполне возможно, код готов

И кем-то был когда-то сделан.

Вам это не понадобится (You Aren’t Gonna Need It, YAGNI)

Пишите только то, что надо,

Прямо сейчас, а не в грядущем.

Это уменьшит вам затраты.

Не нужно делать, что не нужно.

Преждевременная оптимизация (Avoid Premature Optimization)

Не нужно слишком рано код

Оптимизировать упорно.

И лишь когда проект готов,

Оптимизации достойна

Становится программа вся.

И начинать полезно будет

С тех мест, что явно тормозят,

От остального не убудет.

<p><strong>Глава 10. Проектирование слоёв, звеньев и подсистем</strong></p>

Границы и зависимости подсистем

Чтоб нам систему развивать

Удобно было и приятно,

Её полезно разделять

Так, чтобы было не затратно

В дальнейшем части отделить

В процессы, сервисы и службы,

Или обратно совместить

Как монолит – бывает нужно.

Сей выбор можно отложить

И написать систему в целом

Так, чтобы можно было жить

Ей в разных звеньях и разделах.

Как независимую часть

Отдельным модулем, проектом –

В основе – лучше прописать

Всю бизнес-логику. При этом

Взаимодействия вокруг –

Фреймворки, базы данных

И интерфейсы – в виде слуг

И плагинов непостоянных.

Слои абстракции

Для упрощения создания

Больших систем их делят на

Слои, что больше пониманья

Дают для каждого звена.

Слои в себе скрывают сложность,

Давая только интерфейс

Для тех что выше и возможность

Замены внутренностей здесь.

Слои, что ниже, в общем целом,

О верхних знать не должны,

Над ними могут, между делом,

И новые быть введены.

Глобальных данных быть не может,

Всё состояние – внутри.

Конкретных связей, функций – тоже –

Лишь интерфейсы между них.

Благодаря такой структуре

Слои возможно заменять.

Внутри слоёв в архитектуре

Всю сложность лишнюю скрывать.

Звенья

Систему можно разделить

На несколько частей, к примеру,

На сервер и клиент. Решить,

Как будет лучше это сделать,

Обычно, первый из шагов

Архитектуры приложения.

Ряд слабосвязанных узлов

Отдельных называют звенья.

Файл-сервер

Для файл-серверных систем

Предполагается возможность

Хранения данных в файлах. Всем

К ним должен быть открытый доступ.

Двухзвенная архитектура клиент-сервер

Двухзвенная архитектура

Предполагает два звена

И два подхода, как структура,

И логика разделена.

Удаленный доступ к данным (Remote Data Access, RDA)

В модели RDA (Эрдэа), иначе –

Доступа к удаленным данным –

Вся логика и все задачи

На стороне клиент-программы,

А в базе лишь хранение данных.

При этом больше трафик и

Выше возможность нежеланных

Вмешательств с третьей стороны.

DBS (Database Server)

В модели сервера баз данных,

Иначе – в DBS (Дэбээс)-модели –

Клиент – собрание форм экранных,

А логикой владеет сервер.

Но мощь хранимых процедур,

Которыми реализуют

Здесь логику, и их структур,

Пред кода силами пасуют.

Многозвенная архитектура

Сервер приложений (Application Server, AS)

В модели «сервер приложений»

Есть основные три звена:

«Клиент» ведёт отображение,

А серверов, обычно, два.

«Сервер баз данных» для хранения.

И сервер приложения, где

Проходят бизнес-вычисления.

Быть может не один вполне.

Модель подобная сложнее,

Но есть и целесообразность:

Поддержка проще и прямее,

Гораздо выше безопасность.

Многозвенная web-архитектура

Перейти на страницу:

Похожие книги

Все под контролем: Кто и как следит за тобой
Все под контролем: Кто и как следит за тобой

К каким результатам может привести использование достижений в сфере высоких технологий по отношению к нашей частной жизни в самом ближайшем будущем? Как мы можем защитить свою частную жизнь и независимость в условиях неконтролируемого использования новейших достижений в этой сфере? Эта проблема тем более актуальна, что даже США, самая свободная демократия мира, рискует на наших глазах превратиться в государство всеобщего учета и тотального контроля.Книга талантливого публициста и известного специалиста по компьютерным технологиям Симеона Гарфинкеля – это анализ тех путей, по которым может осуществляться вторжение в частную жизнь, и способов, с помощью которых мы можем ему противостоять.

Симеон Гарфинкель

Публицистика / Прочая компьютерная литература / Документальное / Книги по IT
Тайны и секреты компьютера
Тайны и секреты компьютера

Эта книга предназначена для тех, кто самостоятельно осваивает мир информационных технологий. Программирование в среде Microsoft Office, устройство сетей Internet и Fidonet, работа системы электронной почты, структура системного реестра Windows и файловой системы, строение жидкокристаллических дисплеев и проблема наличия различных кодировок русского языка, — про все это рассказывается в ней. Многообразие тем и легкий стиль изложения сделают ее вашим спутником на долгое время, и вы всегда сможете найти в ней нужную именно в данный момент информацию.Если Вы интересуетесь компьютерными технологиями, желали бы расширить свои знания и умения в этой области, то она Вам наверняка понравится.http://comptain.nm.ru

Антон Александрович Орлов , Антон Орлов

Фантастика / Фэнтези / Прочая компьютерная литература / Книги по IT / Зарубежная компьютерная, околокомпьютерная литература
Компьютерная обработка звука
Компьютерная обработка звука

Возможности современных программ и компьютеров, а также их относительная доступность по цене позволяют выполнять серьезную работу по обработке звукового материала – в том числе и профессиональную – не только на специализированной звуковой рабочей станции в студии звукозаписи, но и на персональном компьютере, в домашней студии.В книге, которую вы держите в руках, рассмотрены основные методы обработки звука при помощи персонального компьютера, совместимого с IBM PC. Приводится подробное описание их использования на примере наиболее распространенных в России программ обработки звука, работающих под управлением операционной системы Microsoft Windows: Sound Forge, WaveLab, SAW Plus 32, Samplitude 2496, Cakewalk Pro Audio, а также программы ведения нотной записи Finale 98.

Александр Петрович Загуменнов

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT