софтуерната конфигурация

Защо трябва да изберете?

Професионални програмисти, този въпрос може да изглежда странно. За начало, тъй като често има ясна липса на разбиране за важността на тази възможност. В този случай, се оказва, програмата, като каменен блок с надписи, издълбани върху него - ако искате да промените етикета, трябва да се направи нов камък.

Има и друга крайност - когато почти всичко се извършва в настройките. Тези програми приличат на разлива, и за да работи, трябва да прочетете tolmud описания и конфигуриране на стотици параметри, освен често взаимосвързани неестествен начин.

Както винаги, трябва да се намери среден път - от една страна, ние трябва да се опитаме да задоволи капризите на различни потребители, от друга страна, е необходимо да се гарантира, че по-голямата част от потребителите не е нужно да конфигурирате нищо.

Какво точно трябва да се коригира.

Например, доста често срещана ситуация - Задайте свързването към базата данни. Начинаещите програмисти често пишат нещо като това:

По този начин програмата е свързана с конкретно JDBC драйвер. Използвайте друг шофьор, например за заместване на един мост на RMI-пълномощник или, в случай на Oracle, OCI на Thin вече не е възможно без прекомпилиране.

Начини за съхраняване на настройките.

В обектно-ориентираното програмиране всичко представени като обекти. Настройки са най-добре разгледани в същото време като свойствата на някои обекти, които се съхраняват в конфигурационните файлове. Начинът, по който настройките се четат и записват е тясно свързана с файловия формат и избраната стратегия за управление. Помислете идеална възможност:
  1. Персонализиране обект не трябва да съдържа знания за формата на файла и прочетете режим / запис. Това ще даде възможност, ако е необходимо, да замени един от начините за друг.
  2. Повечето от настройките трябва да се извършва от програма (подменюто или отделна програма за настройка). Това значително улеснява живота на един човек, който се занимава с управление. Повечето "yuniksoidov" може да предизвика неразбиране :-), но редактирането на текстови файлове в света днес не може да се направи в много случаи.
  3. трябва да бъдат определени разумни стойности по подразбиране за липсващите параметри. С други думи - това е необходимо, че по-голямата част от потребителите да работят с програмата, ще трябва да се направи най-малко настройки. Обикновено това не оставя добро първо впечатление на програмата, тъй като тя често е - най-важното нещо.

За съжаление, този идеал е доста трудно да се направи на практика. Първото изискване е свързана с развитието на универсален механизъм за запазване на обекти. Такива системи вече са готови, но често те не са подходящи за някои параметри. Разработване на система за същото - няма сила на всички.

Разумен по подразбиране за често това е просто невъзможно да си представим. Например, какво да облече, както името на SMTP-сървъра? В случай на Unix-базирани системи, можете да опитате да се сложи Localhost, но за Windows-базирани свят е рядко някой ще направи.

Помислете за най-често срещаните варианти са:

име Ини-файл.

име Ини-файла - това е най-често срещаният вариант в ерата на Windows 3.x. Сега на прозорци програми стана измества чрез съхраняване на настройките в системния регистър. Въпреки INI - това е една от най-простата конфигурация от възможности за съхранение. За съжаление, доста често, тази простота прави курорта до различни трикове. Типичен INI-файл:

В Java, няма стандарт клас да четат INI-файлове, но това не е проблем. защото формат е много проста, че е лесно да го направите сами:

Имоти файлове.

Този формат е често срещана в Unix-света. Той още по-лесно INI файлове, защото не съществува понятие от секции - всичко се състои от ключове и стойности. Един пример за типичен файл:

В Java има готови клас четене / запис на тези файлове (java.util.Properties), но има някои проблеми. В първо четене не е възможно да зададете кодирането на файла, което означава, че проблемът с българските букви. На второ място стандартната функция за запис съхранява данните в реда на ключове хеш стойности, което означава - как тя ще се хареса. Но също така е лесно да се разреши - достатъчно, за да напише четец / pisalku.

XML-файлове.

Този формат е подходящ за различни цели, включително за съхраняване на настройки. XML-базиран формат акцентира върху структурата на дървото, което е съвсем естествено начин се показва на обектите. Един пример за типичен файл:

За четене и писане на такива файлове са специални библиотеки - така наречените XML-ПАРСЕРИ. Такива парсъри вече направи доста, така че да го напишат сами няма смисъл - просто изберете отдясно. две стандартен софтуер интерфейс е проектиран за парсъри - събитие (SAX) и йерархична (DOM). Има и ПАРСЕРИ със своя интерфейс. Размерът на буркан-с анализатора може да варира от няколко килобайта за мегабайт - в зависимост от поддържаните интерфейси и възможности.

За XML също е автор на няколко библиотеки, за да спаси Universal (сериализиране) обекти в XML файлове. Тези библиотеки позволяват на алгоритъм за разделяне на опазването на самия обект, който, както вече споменахме, има много предимства.

Сериализирането.

Бази данни.

Използването на скриптове - това е един от най-екстремните начини за конфигуриране. Те позволяват максимална гъвкавост се постига в програмата, поради издаването на логика навън. Използването на скриптове също трябва да знае кога да спре - крайния клиент ви плаща за програмата, ключова задача, а не за друг преводач или съставител, за които той ще трябва да се сложи още един програмист. И се оказва, тъй като през тази шега - каква програма не да започнете да пишете, всичко се оказва компилатора.

Но често, без скриптове наистина трудно. Типични примери - алгоритми внос / износ, алгоритми, проверка на данните. Можете да приготвите стандартен набор, и допълнително да персонализират сценария за да отговарят на специфичните изисквания на клиентите.

Примерна програма конфигурация на XML.

Пример за съдържанието на конфигурационния файл:

Като XML-анализатора се използва Sun-ovsky анализатора в режим на DOM. На този прост пример не можем да видим някакви предимства на XML за същия свойства файла. Те стават видими само в доста комплексни програми, където тя става необходимо да се съхраняват и натрупват подобни параметри, или съдържанието на обекти с вложени нива на две или повече.