Как правильно объяснять?

Тема в разделе "WASM.HEAP", создана пользователем click_and_die, 28 мар 2007.

  1. click_and_die

    click_and_die New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    192
    Пишу программу для бухгалтерии.

    Учу их (бухов) работать с файлом констант.

    Вот часть файла:

    Код (Text):
    1. /**
    2.     -- МОДУЛЬ КОНСТАНТЫ --
    3. Этот файл содержит набор статических констант,
    4. предназначенных для идентификации машин в вашей сети,
    5. имен пользователей, способов соединения с базами данных
    6. и других параметров, необходимых для правильной работы системы
    7.  
    8. При изменении этого файла необходимо провести компилляцию
    9. модуля КОНСТАНТЫ
    10.  
    11. **/
    12. .....
    13.  
    14. public static final String LocalHostName = "192.168.0.1"; // Локальный хост
    15. public static final String RootName = "root";  // Имя администратора БД
    16. public static final String RootPassword = ""; // Пароль администратора БД
    17.  
    18. public static final String MainDatabaseName = "blackoffice"; // Главная БД
    19.  
    20. public static final String RemoteHostname = "192.168.0.1"; // Удаленный хост
    21. public static final String RemotePortNumber = "80/blackoffice"; // Номер порта удаленного хоста
    22.  
    23. public static final String DataBaseListener = "dbquery.php"; // серверная программа для обмена данными с БД
    24.  
    25. public static final int VectorLength = 4096; // Длина результирующего вектора
    26. /**
    27. ВНИМАНИЕ!
    28.         Если вы не специалист - НЕ ИЗМЕНЯЙТЕ длину вектора.
    29.         Слишком маленькое значение приведет к неверным рассчетам
    30.         А слишком большое - к краху вашей операционной системы
    31.  **/
    32.  
    33. ...
    БУХИ НАУЧИЛИСЬ менять значения, выучили правила приведения типов и поняли как компилировать заголовочный файл, но одно мне не понятно...
    ПОЧЕМУ даже при наличии устрашающего предупреждения их тянет изменить длину результирующего вектора?
    Из-за этого У ВСЕХ БУХОВ в разное время упали оси.

    Может как-то иначе надо разъяснять?
     
  2. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    :)
    Тут проще будет шифровать значение, а при неверной расшифровке значения из файла (чего-нибудь контрольное именно к этому параметру приписать), брать значение по умолчанию (прямо в коде).
    Ты, как специалист, всегда сможешь изменить значение (ты алгоритмы знаешь), а завалить систему бух не сможет.
    Думаю так.
    Удачи!
     
  3. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    click_and_die
    Можно разнести информацию на две части - одна для ламеров, которая будет в самом начале, другая - для специалиста, которая будет в конце, как можно дальше от ламерской. И снабдить эту вторую часть какими-то страшными комментариями так, чтобы твоих констант они попросту бы не заметили. Тогда бухи как пить-дать во вторую секцию не полезут.
    Плюс, то что тебе посоветовал ksu_ant.
     
  4. click_and_die

    click_and_die New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    192
    Спасибо... стоит задуматься над разбиением файла на части
     
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    click_and_die
    А зачем вообще это понадобилось. В смысле компиляция бухами.
    Первый раз о таком слышу. Честно говоря развеселило. -).
    И что за VectorLength, и почему из-за неё должно что-то падать?
     
  6. click_and_die

    click_and_die New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    192
    Booster
    VectorLength определяет предельно допустимый объем транзакции. Это прямая тропинка в RAM. Сам вектор хранит данные транзакции и управляет ими (методы POP PUSH ADD etc...). Но по нашим наблюдениям он работает как обезьяна с гранатой:) Я эксперементировал с увеличением его длины. У меня могла вырубиться клава или мышь, или не стого ни с сего начинал печатать принтер какието иероглифы. Это в лучшем случае... В худшем - крах ОС.

    Других способов ИЗМЕНЕНИЯ КОНСТАНТ я не знаю. А если потребуется подключиться не к 192.168.0.1 а к 192.168.0.5? Изменил константу, перекомпилировал модуль (make constants) и работай дальше!
     
  7. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    а что конф. файл использовать религия не позволяет?
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Я таких программ никогда не видел, в которых надо что-то перекомплировать, при изменении адреса.
    И оси у вас какие-то странные, падучие -). Обычно делают динамическое выделение памяти, а не жёсткую фиксацию размера массива.
     
  9. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    я не очень понимаю контекст проблемы, но можно написать генератор этого файла констант, который бы на входе (от бухгалтера) брал какой-либо простой файл со значениями констант (вроде ini-файла) и применял к нему жесточайшие проверки на корректность значений.
     
  10. click_and_die

    click_and_die New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    192
    Вектор - это прототип стека.

    Была бы моя воля - я бы создал меню НАСТРОЙКИ а в нем - диалог с виджетами...
    Но не мне решать. У меня очень жесткие системные требования.

    Зря я объяснил юзерам что от этой переменной зависит скороть работы программы. Они теперь думают, что чем она больше - тем лучше.

    А бухам нравится компилить и значения менять. Еще они умеют создавать собственные классы (Примитивные только) но говорят что очень удобно при редактировании электронных документов. Зам ГлавБуха попробовал апишную функцию createRandomCode (long size, int ISOTime, char[] key). Теперь у меня в ТЗ приписка: реализовать механизм электронной подписи.:)))
     
  11. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    Бухгалтеру !!!??? Компилятор в руки ???????!!!!! Ну вы батенька даёте ... мда
     
  12. click_and_die

    click_and_die New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    192
    И отладчик.

    У нас идут испытания нового подхода к автоматизации.
    Раньше на звонок "У меня не работает" я отвечал: сейчас приду и гляну... а теперь - "Ну запусти в отладчике да посмотри, что у тебя там за проблема". Эффект - звонков стало ГОРАЗДО МЕНЬШЕ.

    Я даю юзерам полный доступ к исходникам (не ко всем. ) Они хорошо понимают ООП, но некоторые вещи их мозгам не понятны.
     
  13. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    Интересно, а сколько им платят и тебе за такой ПОДВИГ ??? и что значит хорошо понимают ООП ?
     
  14. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    click_and_die
    IMHO, очень странный подход. Разделение труда испокон веков было средством повышения производительности и качества.
    Представляю, сколько времени бухгалтера убивают на отладку и модернизацию, и качество получившихся программ.
     
  15. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    click_and_die
    Не ну продвинутые у Вас бухи, круто.
    Обычно даже работа вручную с простым конфигом, у простого юзверя вызывает протест, и на какое-то время наблюдается зависание мозга.
     
  16. yellowC4t

    yellowC4t New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2007
    Сообщения:
    14
    ИМХО гораздо проще было бы использовать конфиг и прикрутить к софтине интерфейс к нему... хм странный подход какой то... :/ Не пойму в чём смысл ? Скажи ты ни как не связан с экспериментами на обезьянах ? ;)
     
  17. click_and_die

    click_and_die New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    192
    yellowC4t

    Яуже говорил, что проще! Но сис требования жесткие. Прежде чем создать кнопку, я толжен 100 раз подумать, стоит ли ее создавать и как это повлияет на производительность системы?
    Чем можно заменить тот или иной элемент интерфейса? Как лучше организовать параметры запуска самой программы? Да да, программа с параметрами CommandLine запускается
     
  18. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    click_and_die
    Так получилось или нет?
    Просто еще можно предложить в коде контролировать допустимость диапазона значений вектора и, исходя из этого, принимать решение о том, какую цифру использовать в работе.
    Например, ты знаешь, что программа нормально работает при диапазоне значений длины вектора от 3500 до 4500. Вот и смотри, если бух ввел что-то не то, принимай значения по умолчанию.
    А так - я конечно не знаю, какие у вас бухи, но, почти уверен, что по закону подлости, всегда найдется человек, который завалит систему, если ее возможно завалить просто поменяв цифру в конфиге (или хидере). Все равно - защита от дурака нужна, если шифровать не хочешь, тем более, в денежных прогах (ты сам писал, что при определенных значениях, расчеты бывают неточными).
    Тут уж как не объясняй... Прийдет новичок, стажер и т.д. и все :dntknw:
     
  19. Avoidik

    Avoidik New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2004
    Сообщения:
    288
    Адрес:
    Russia
    как было уже сказано, конфигурацию занести в ini-файл к примеру
     
  20. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Бухгалтеры компеллируют в месте... Душераздирательное зрелище! Ну напиши уже инструкцию вроде "Длину вектора разрешается менять только по согласованию с администратором сисетмы. Несанкционированное изменение приводит к возникновению критических сбоев в работе компьютера", ознакомь под роспись - и расслабься :)