Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.02.28;
Скачать: [xml.tar.bz2];

Вниз

Вспоминая: "Почему программисты не хотят структурировать код"   Найти похожие ветки 

 
Alkid ©   (2009-12-15 09:53) [0]

Помните тут г-н. xayam отжигал, проводя параллели между нормализацией схемы БД и рефакторингом?

:)

Вот, зацените: http://www.agiledata.org/essays/classNormalization.html


 
tesseract ©   (2009-12-15 10:12) [1]

Чёт на 1C похоже. Там тоже похожие схемки.


 
Alkid ©   (2009-12-15 11:20) [2]


> tesseract ©   (15.12.09 10:12) [1]

C 1C не знаком :)


 
Alkid ©   (2009-12-15 11:21) [3]

А вообще узнал об этой байде случайно. У нас тут на работе всех сквозь brainbench пропускают, так там в тесте "OO concepts" была эта "классовая нормализация помянута". Пришлось гуглить.


 
xayam ©   (2009-12-16 22:04) [4]


> Alkid ©   (15.12.09 09:53) 
> Помните тут г-н. xayam отжигал, проводя параллели между
> нормализацией схемы БД и рефакторингом?

и правильно отжигал, это еще долго актуально будет :)


 
KilkennyCat ©   (2009-12-16 22:09) [5]

а мне думалось, это только становится актуальным.


 
vuk ©   (2009-12-17 00:34) [6]

Э... Эту статью предлагается воспринимать, как некое откровение или что? Если там во всех схемах поубирать всё, что оканчивается на "()", получим просто реляционную структуру, которую все при проектировании БД видели. Нормализация БД ни у кого удивления не вызывает?


 
wicked ©   (2009-12-17 01:37) [7]


> Э... Эту статью предлагается воспринимать, как некое откровение
> или что? Если там во всех схемах поубирать всё, что оканчивается
> на "()", получим просто реляционную структуру, которую все
> при проектировании БД видели. Нормализация БД ни у кого
> удивления не вызывает?

не удивляет
меня лично удивляет, что нормализацию применили к ООП - в этом что то есть


 
Anatoly Podgoretsky ©   (2009-12-17 10:08) [8]

> wicked  (17.12.2009 01:37:07)  [7]

И оправдано ли.


 
xayam ©   (2009-12-17 14:42) [9]


> KilkennyCat ©   (16.12.09 22:09) [5]
> а мне думалось, это только становится актуальным.

ну не знаю, книги по рефакторингу у нас сто лет в магазине лежат, а идея там как раз та же самая, только терминология может быть не такая, но кто внимательно читает, тот до этого сам дойдет, используя ассоциативный подход, ИМХО. Но конечно лучше, когда ты представляешь, что такое нормализации, и применяешь это знание к классам более целенаправленно, когда прямо показываются нормальные формы классов. А уж твое дело - выбрать насколько глубоко ты будешь нормализовывать это дело.


 
Alkid ©   (2009-12-17 15:07) [10]


> xayam ©   (17.12.09 14:42) [9]

Не совсем. Чем "рефакторинг вообще" отличается от нормализации классов? Рефакторинг "вообще" ориентируется на нечеткое понятие "code smell", тогда как нормализация на формальные критерии.

Однако, можно заметить, что классы, приведенные в примере, занимаются достаточно тривиальной инкапсуляцией данных. Этим и обуславливается прямая применимость принципов нормализации к ним. Т.е. ничего особенно инновационного в этой идее нет.

Применимы ли эти же принципы к менее тривиальным случаям ООП - вопрос открытый.


 
xayam ©   (2009-12-17 15:16) [11]


> Alkid ©   (17.12.09 15:07) [10]
> Однако, можно заметить, что классы, приведенные в примере,
>  занимаются достаточно тривиальной инкапсуляцией данных.
>  Этим и обуславливается прямая применимость принципов нормализации
> к ним. Т.е. ничего особенно инновационного в этой идее нет.

ты вкладываешь мало смысла в этот процесс, хотя я уже упоминал для чего это делается http://delphimaster.net/view/3-1145872467/ [71]:

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


 
Игорь Шевченко ©   (2009-12-17 15:18) [12]


> ты вкладываешь мало смысла в этот процесс, хотя я уже упоминал
> для чего это делается


Аминазин фарева


 
xayam ©   (2009-12-17 15:44) [13]


> Игорь Шевченко ©   (17.12.09 15:18) [12]
> Аминазин фарева

Игорь, мы же договорились - "только галоперидол", успокаивает :)


 
Alkid ©   (2009-12-17 17:25) [14]


> xayam ©   (17.12.09 15:16) [11]

Нет, я-то как раз не вкладываю в это дело мало смысла.
На уровне общих слов можно много говорить о "избыточности, удобности и т.п.", а ты формализуй это. Например, было бы очень интересно увидеть выкладки на тему нормализации в контексте безопасности.

То, о чем идет речь - это всего лишь ликвидация избыточности.


 
xayam ©   (2009-12-17 18:29) [15]


> Например, было
> бы очень интересно увидеть выкладки на тему нормализации
> в контексте безопасности.

для безопасности только нормализации недостаточно. Безопасность подразумевает как можно большее количество независимых друг от друга проверочных уровней в коде. Пример не дам, это необъятная тема, плюс к тому нужно учитывать не только безопасность, но и все вышеуказанные критерии.

> То, о чем идет речь - это всего лишь ликвидация избыточности.

ты опять занижаешь значимость этого, поэтому не пойдешь дальше, поскольку не веришь в это. По-твоему, нельзя решить все проблемы "по дороге"? Ликвидация избыточности - первый шаг, а сделаешь ли ты следующий - зависит от тебя. Сейчас ты спросишь, что это за следующий шаг? У меня нет ответов на все твои вопросы, в том и проблема, что необъятное невозможно уместить в конкретные слова, какими бы они ни были, потому что каждый вкладывает в каждое слово свое понимание и оно может отличаться от понимания другого человека, даже если смысл конкретного слова формализован и записан в словаре, понимания это прибавляет не всегда, поскольку еще важна и практика в совокупности к теории. Это философия, но я бы хотел, чтобы у каждого программиста она была своя.


 
Игорь Шевченко ©   (2009-12-17 18:36) [16]

xayam ©   (17.12.09 18:29) [15]

У тебя какой выключатель за религиозную пропаганду отвечает ?


 
xayam ©   (2009-12-17 18:46) [17]


> Игорь Шевченко ©   (17.12.09 18:36) [16]
> У тебя какой выключатель за религиозную пропаганду отвечает?

на десятом терминале, третий справа на левой панели. А что? :) Выключить все равно у тебя не получится, недостаточно прав :)
Но если серьезно, то это не имеет прямого отношения к религии. Вера - есть в любой области, но мало кто это замечает. А когда человек это замечает, то любое мало-мальское дело приобретает большой смысл - шаг к еще большему смыслу. Опять же в слова это не уместить, но можно это почувствовать...


 
Игорь Шевченко ©   (2009-12-17 19:00) [18]


> Выключить все равно у тебя не получится, недостаточно прав
> :)


Прав как раз достаточно, не будем развивать эту тему.


 
Alkid ©   (2009-12-17 19:16) [19]


> xayam ©   (17.12.09 18:29) [15]

Э, нет. Ты давай без словоблудия - кратко и по делу, про нормализацию в контексте безопасности. Или - функциональной декомпозиции. Тут есть что сказать. А то опять все про "необъятное", а конкретики - пшик.


 
xayam ©   (2009-12-17 20:42) [20]

скажем, есть такая система http://xayam.com/struct3.jpg
Красным показаны Связи с внешними системами, желтым - внутренними.
Как ты можешь обеспечить ее безопасное функционирование? Что такое безопасность? На сегодня безопасность информационной системы понимается как совокупность мер, применение которых обеспечивает доступность, целостность и конфиденциальность информации.
Что это за меры?
1) Настройка используемого программного обеспечения. Защита не может ограничиваться только написанием защищенного сценария-программы. Можно написать самую лучшую с точки зрения безопасности программу и установить ее на ось/вебсервер с настройками по умолчанию...
2) Фильтрация входной информации. В данном случае, входные параметры передаются с помощь глобальных массивов $_GET, $_POST, $_COOKIE, поэтому эти данные фильтруются в первую очередь. Здесь важно использовать принцип "что не разрешено - запрещено" т.е. сначала запрещаете все и затем создаете разрешенные правила. Например, применительно к регулярным выражением, хорошим тоном является использование, где это возможно, конструкции вида [^...] и т.д.
3) Шифрование. Шифровать желательно весь трафик передаваемый между системами в течении сеанса, но на практике используется необратимое шифрование сохраняемых в бд паролей с помощь md5 и соли...
4) Комплексная защита. Защита подразумевает контроль за, в-первую очередь, многоуровневой системой. К одним уровням Вы можете иметь ограниченный доступ и защита этого уровня - соответствующая настройка конфигурационных файлов, на других Ваших уровнях - разделение/декомпозиция/нормализация уровней между собой и создание Связей между ними. Можно создать такие связи/уровни, прохождение между которыми нужно в целях безопасности в обязательном порядке (например, фильтрация входной информации - может быть выделена в отдельный класс, шифрование - в другой). Но поскольку система многоуровнева, то даже фильтрацию нужно проводить на всех уровнях. Применительно к данному примеру, на апач можно установить/настроить дополнительный фильтрующий модуль mod_sequrity.
5) ...


 
xayam ©   (2009-12-18 19:38) [21]


>  Вспоминая: "Почему программисты не хотят структурировать
> код"

надо было тему назвать Почему программистам не интересно структурировать код


 
Virgo_Style ©   (2009-12-18 21:09) [22]


> надо было тему назвать Почему программистам не интересно
> структурировать код


А вы, друзья, как ни садитесь, ...


 
Anatoly Podgoretsky ©   (2009-12-18 22:32) [23]

> Virgo_Style  (18.12.2009 21:09:22)  [22]

Все равно за второй бутылкой побежите



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.02.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.022 c
2-1261641926
Андрей_11
2009-12-24 11:05
2010.02.28
запрос БД с другого компьютера


15-1261133366
RWolf
2009-12-18 13:49
2010.02.28
OOCalc: показ окна документа


15-1260451652
Владислав
2009-12-10 16:27
2010.02.28
Зависание системы при отладке.


6-1211183591
ivanov
2008-05-19 11:53
2010.02.28
открыватьчужие ссылки в новом окне?


4-1229437908
yul1984
2008-12-16 17:31
2010.02.28
RichEdit и EM_SETSCROLLPOS





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский