Пишу программу для бухгалтерии. Учу их (бухов) работать с файлом констант. Вот часть файла: Code (Text): /** -- МОДУЛЬ КОНСТАНТЫ -- Этот файл содержит набор статических констант, предназначенных для идентификации машин в вашей сети, имен пользователей, способов соединения с базами данных и других параметров, необходимых для правильной работы системы При изменении этого файла необходимо провести компилляцию модуля КОНСТАНТЫ **/ ..... public static final String LocalHostName = "192.168.0.1"; // Локальный хост public static final String RootName = "root"; // Имя администратора БД public static final String RootPassword = ""; // Пароль администратора БД public static final String MainDatabaseName = "blackoffice"; // Главная БД public static final String RemoteHostname = "192.168.0.1"; // Удаленный хост public static final String RemotePortNumber = "80/blackoffice"; // Номер порта удаленного хоста public static final String DataBaseListener = "dbquery.php"; // серверная программа для обмена данными с БД public static final int VectorLength = 4096; // Длина результирующего вектора /** ВНИМАНИЕ! Если вы не специалист - НЕ ИЗМЕНЯЙТЕ длину вектора. Слишком маленькое значение приведет к неверным рассчетам А слишком большое - к краху вашей операционной системы **/ ... БУХИ НАУЧИЛИСЬ менять значения, выучили правила приведения типов и поняли как компилировать заголовочный файл, но одно мне не понятно... ПОЧЕМУ даже при наличии устрашающего предупреждения их тянет изменить длину результирующего вектора? Из-за этого У ВСЕХ БУХОВ в разное время упали оси. Может как-то иначе надо разъяснять?
Тут проще будет шифровать значение, а при неверной расшифровке значения из файла (чего-нибудь контрольное именно к этому параметру приписать), брать значение по умолчанию (прямо в коде). Ты, как специалист, всегда сможешь изменить значение (ты алгоритмы знаешь), а завалить систему бух не сможет. Думаю так. Удачи!
click_and_die Можно разнести информацию на две части - одна для ламеров, которая будет в самом начале, другая - для специалиста, которая будет в конце, как можно дальше от ламерской. И снабдить эту вторую часть какими-то страшными комментариями так, чтобы твоих констант они попросту бы не заметили. Тогда бухи как пить-дать во вторую секцию не полезут. Плюс, то что тебе посоветовал ksu_ant.
click_and_die А зачем вообще это понадобилось. В смысле компиляция бухами. Первый раз о таком слышу. Честно говоря развеселило. -). И что за VectorLength, и почему из-за неё должно что-то падать?
Booster VectorLength определяет предельно допустимый объем транзакции. Это прямая тропинка в RAM. Сам вектор хранит данные транзакции и управляет ими (методы POP PUSH ADD etc...). Но по нашим наблюдениям он работает как обезьяна с гранатой Я эксперементировал с увеличением его длины. У меня могла вырубиться клава или мышь, или не стого ни с сего начинал печатать принтер какието иероглифы. Это в лучшем случае... В худшем - крах ОС. Других способов ИЗМЕНЕНИЯ КОНСТАНТ я не знаю. А если потребуется подключиться не к 192.168.0.1 а к 192.168.0.5? Изменил константу, перекомпилировал модуль (make constants) и работай дальше!
Я таких программ никогда не видел, в которых надо что-то перекомплировать, при изменении адреса. И оси у вас какие-то странные, падучие -). Обычно делают динамическое выделение памяти, а не жёсткую фиксацию размера массива.
я не очень понимаю контекст проблемы, но можно написать генератор этого файла констант, который бы на входе (от бухгалтера) брал какой-либо простой файл со значениями констант (вроде ini-файла) и применял к нему жесточайшие проверки на корректность значений.
Вектор - это прототип стека. Была бы моя воля - я бы создал меню НАСТРОЙКИ а в нем - диалог с виджетами... Но не мне решать. У меня очень жесткие системные требования. Зря я объяснил юзерам что от этой переменной зависит скороть работы программы. Они теперь думают, что чем она больше - тем лучше. А бухам нравится компилить и значения менять. Еще они умеют создавать собственные классы (Примитивные только) но говорят что очень удобно при редактировании электронных документов. Зам ГлавБуха попробовал апишную функцию createRandomCode (long size, int ISOTime, char[] key). Теперь у меня в ТЗ приписка: реализовать механизм электронной подписи.))
И отладчик. У нас идут испытания нового подхода к автоматизации. Раньше на звонок "У меня не работает" я отвечал: сейчас приду и гляну... а теперь - "Ну запусти в отладчике да посмотри, что у тебя там за проблема". Эффект - звонков стало ГОРАЗДО МЕНЬШЕ. Я даю юзерам полный доступ к исходникам (не ко всем. ) Они хорошо понимают ООП, но некоторые вещи их мозгам не понятны.
click_and_die IMHO, очень странный подход. Разделение труда испокон веков было средством повышения производительности и качества. Представляю, сколько времени бухгалтера убивают на отладку и модернизацию, и качество получившихся программ.
click_and_die Не ну продвинутые у Вас бухи, круто. Обычно даже работа вручную с простым конфигом, у простого юзверя вызывает протест, и на какое-то время наблюдается зависание мозга.
ИМХО гораздо проще было бы использовать конфиг и прикрутить к софтине интерфейс к нему... хм странный подход какой то... :/ Не пойму в чём смысл ? Скажи ты ни как не связан с экспериментами на обезьянах ?
yellowC4t Яуже говорил, что проще! Но сис требования жесткие. Прежде чем создать кнопку, я толжен 100 раз подумать, стоит ли ее создавать и как это повлияет на производительность системы? Чем можно заменить тот или иной элемент интерфейса? Как лучше организовать параметры запуска самой программы? Да да, программа с параметрами CommandLine запускается
click_and_die Так получилось или нет? Просто еще можно предложить в коде контролировать допустимость диапазона значений вектора и, исходя из этого, принимать решение о том, какую цифру использовать в работе. Например, ты знаешь, что программа нормально работает при диапазоне значений длины вектора от 3500 до 4500. Вот и смотри, если бух ввел что-то не то, принимай значения по умолчанию. А так - я конечно не знаю, какие у вас бухи, но, почти уверен, что по закону подлости, всегда найдется человек, который завалит систему, если ее возможно завалить просто поменяв цифру в конфиге (или хидере). Все равно - защита от дурака нужна, если шифровать не хочешь, тем более, в денежных прогах (ты сам писал, что при определенных значениях, расчеты бывают неточными). Тут уж как не объясняй... Прийдет новичок, стажер и т.д. и все
Бухгалтеры компеллируют в месте... Душераздирательное зрелище! Ну напиши уже инструкцию вроде "Длину вектора разрешается менять только по согласованию с администратором сисетмы. Несанкционированное изменение приводит к возникновению критических сбоев в работе компьютера", ознакомь под роспись - и расслабься