софтуерната конфигурация
Защо трябва да изберете?
Професионални програмисти, този въпрос може да изглежда странно. За начало, тъй като често има ясна липса на разбиране за важността на тази възможност. В този случай, се оказва, програмата, като каменен блок с надписи, издълбани върху него - ако искате да промените етикета, трябва да се направи нов камък.
Има и друга крайност - когато почти всичко се извършва в настройките. Тези програми приличат на разлива, и за да работи, трябва да прочетете tolmud описания и конфигуриране на стотици параметри, освен често взаимосвързани неестествен начин.
Както винаги, трябва да се намери среден път - от една страна, ние трябва да се опитаме да задоволи капризите на различни потребители, от друга страна, е необходимо да се гарантира, че по-голямата част от потребителите не е нужно да конфигурирате нищо.
Какво точно трябва да се коригира.
Например, доста често срещана ситуация - Задайте свързването към базата данни. Начинаещите програмисти често пишат нещо като това:
По този начин програмата е свързана с конкретно JDBC драйвер. Използвайте друг шофьор, например за заместване на един мост на RMI-пълномощник или, в случай на Oracle, OCI на Thin вече не е възможно без прекомпилиране.
Начини за съхраняване на настройките.
В обектно-ориентираното програмиране всичко представени като обекти. Настройки са най-добре разгледани в същото време като свойствата на някои обекти, които се съхраняват в конфигурационните файлове. Начинът, по който настройките се четат и записват е тясно свързана с файловия формат и избраната стратегия за управление. Помислете идеална възможност:- Персонализиране обект не трябва да съдържа знания за формата на файла и прочетете режим / запис. Това ще даде възможност, ако е необходимо, да замени един от начините за друг.
- Повечето от настройките трябва да се извършва от програма (подменюто или отделна програма за настройка). Това значително улеснява живота на един човек, който се занимава с управление. Повечето "yuniksoidov" може да предизвика неразбиране :-), но редактирането на текстови файлове в света днес не може да се направи в много случаи.
- трябва да бъдат определени разумни стойности по подразбиране за липсващите параметри. С други думи - това е необходимо, че по-голямата част от потребителите да работят с програмата, ще трябва да се направи най-малко настройки. Обикновено това не оставя добро първо впечатление на програмата, тъй като тя често е - най-важното нещо.
За съжаление, този идеал е доста трудно да се направи на практика. Първото изискване е свързана с развитието на универсален механизъм за запазване на обекти. Такива системи вече са готови, но често те не са подходящи за някои параметри. Разработване на система за същото - няма сила на всички.
Разумен по подразбиране за често това е просто невъзможно да си представим. Например, какво да облече, както името на 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 за същия свойства файла. Те стават видими само в доста комплексни програми, където тя става необходимо да се съхраняват и натрупват подобни параметри, или съдържанието на обекти с вложени нива на две или повече.