Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Все ли ОК в коде? Боюсь, что нет :), Покритикуйте пожалуйста(я учусь) 
:(
    Опции темы
Win MK 32
Дата 24.5.2009, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Во-первых, глаз режет обилие ЗАПРОСОВ и циклов(){ рядом с ними...
Во-вторых, кол-во уровней списка заданно заранее. На деле оно может быть любым. Как его определить?
В общем что не так и как придти к решению прошу рассказать smile Все найду, все прочитаю, все исправлю, если бужду знать.
P.S. Достаточно ли я привел кода? echox("<ul>",10) выводит 10 раз тег ul. Этот файл инклюдится_однажды, все необходимое уже включено.
Код

<?php
$levels = 10;

function print_statement($statement0,$level=1){
    global $db,$levels;
    if($level <= $levels){
        $level0 = $level;
        $rProductions = $db->query("SELECT * FROM productions WHERE sid=".$statement0['sid']);
        while($production = mysql_fetch_assoc($rProductions)){
            $rStatements = $db->query("SELECT * FROM statements WHERE sid=".$production['s1id']." OR sid=".$production['s2id']);
            while($statement = mysql_fetch_assoc($rStatements)){
                echox("<ul>",$level0);
                echo "<li id='s_".$statement['sid']."' ondblclick='dblclick(this);' onkeydown='keydown(event,this);'>".$statement['stext']."</li>\n";
                echox("</ul>",$level0);
                $level++;
                print_statement($statement,$level);
            }
        }
    }
}

$rProductions = $db->query("SELECT * FROM productions");
while($production = mysql_fetch_assoc($rProductions)){
    if(!mysql_result($db->query("SELECT count(*) AS count FROM productions WHERE s1id=".$production['sid']." OR s2id=".$production['sid']),0)){
        $rStatements = $db->query("SELECT * FROM statements WHERE sid=".$production['sid']);
        while($statement = mysql_fetch_assoc($rStatements)){
            echo "<li>".$statement['stext']."</li>";
            print_statement($statement);
        }
    }
}
?>

PM   Вверх
bars80080
Дата 24.5.2009, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



да, обилие запросов режет глаз

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

т.е. для пункта 2.3.3, это 
Код

1
2
    2.1
    2.2
    2.3
        2.3.1
        2.3.2
        2.3.3
            2.3.3.1
            2.3.3.2
        2.3.4
    2.4
3
4


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


Цитата(Win MK 32 @  24.5.2009,  21:41 Найти цитируемый пост)
кол-во уровней списка заданно заранее. На деле оно может быть любым. Как его определить?

обычно в такой ситуации не определяют количество уровней, а пишут две функции, стартующую и рекурсивную, которая обращается сама на себя с одним запросом внутри


PM MAIL WWW   Вверх
Win MK 32
Дата 24.5.2009, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



bars80080, спасибо за ответ!

Цитата(bars80080 @  24.5.2009,  20:11 Найти цитируемый пост)
обычно в такой ситуации не определяют количество уровней, а пишут две функции, стартующую и рекурсивную, которая обращается сама на себя с одним запросом внутри

Ну у меня вроде бы как раз так.



В общем это экспертная система, а дерево выводится в ее админке. И это не простое дерево smile
Экспертная система представляет из себя 5 таблиц. Первые две к делу не относятся (это вопросы questions(qid,qtext) и q2s(qsid,qid,sid) - соотнесение вопросов и утверждений).

Далее третья таблица statemnts(sid,stext) - утверждения, и последяя productions(pid,s1id,s2id,sid) - связи между утверждениям.
Связи между утверждениями(условия) в таблице productions хранятся в таком виде. Если Если s1id==1 и s2id==1, то  sid==1 (другими словами: если утверждения A и B верны, то утверждение C тоже верно).



Дело просто в том, что у меня начало немного другое. Сначала я ищу и вывожу финальные выводы из таблицы statements. Финальные - это те, которые удовлетворяют условию
Код
if(!mysql_result($db->query("SELECT count(*) AS count FROM productions WHERE s1id=".$production['sid']." OR s2id=".$production['sid']),0)){

т.е. не встречаются на месте утверждения A или на месте утверждения B в таблице productions. А уже потом последовательно все A и B для предыдущих C.
PM   Вверх
source777
Дата 24.5.2009, 22:37 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Отличный пример кода, чтобы показать как не надо программировать!
Тут есть и невнятные идентификаторы(имена функций, переменных, столбцов в БД), и низкоуровневое общение с БД, и сырой SQL, и вложенные циклы, и "магические"(читай: непонятно нафиг нужные) действия типа "выводит 10 раз тег ul" вокруг одного единственного элемента li, и "глобальная" переменная $levels, и навязчивый JavaScript, и смешение бизнес-логики с отображением. 
В общем, если развёрнуто записать все замечания к этому коду, то получится целая книжка. Впрочем книжка на сходную тему(по критике большего количества таких же неудачных примеров кода) уже есть, когда прочитаешь, обращайся за дальнейшими советами... smile 


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Win MK 32
Дата 24.5.2009, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



source777, большущее спасибо!!!  smile Если бы вы написали книгу на русском электронном языке, я бы ее купил бы первым! smile
Позвольте вступить с вами в диалог. Мне необходимо раскрыть несколько моментов для понимания.


В общем про логику и отображение, про навязчивый JS я знаю. Догадываюсь как избежать таких недочетов (особенно с первым).

Цитата(source777 @  24.5.2009,  20:37 Найти цитируемый пост)
Тут есть и невнятные идентификаторы(имена функций, переменных, столбцов в БД)

А вот про это есть в книге? Мне это очень интересно, т.к. я слышал много мнений, а своего не выработал. Пишу как получится (одинаково для всего web-приложения).
Цитата(source777 @  24.5.2009,  20:37 Найти цитируемый пост)
"магические"(читай: непонятно нафиг нужные) действия типа "выводит 10 раз тег ul" вокруг одного единственного элемента li

Тут я могу заблуждаться. Но я считал, что список 1, 1.1, 1.1.1 должен быть таким в HTML:
Код

<ul>
<li>1</li>
<ul><li>1.1</li></ul>
<ul><ul><li>1.1.1</li></ul></ul>
</ul>

Если нет, то поправьте пожалуйста прямо сейчас. Вроде бы основывался на знаниях полученных в HTMLbook.ru.
Или вы имеет в виду что-то другое? Алогоритм? Тогда уточите пожалуйста, а то я не понял вас.

Цитата(source777 @  24.5.2009,  20:37 Найти цитируемый пост)
и "глобальная" переменная $levels

А как лучше поступить? Не понял.



P.S. Очень рад, что вы не сказали, что вместо
Код

if(statement()){
  fx();
} 

Надо писать такой нечитаемую и сомнительно красивую хокку:
Код

if ( statement() )
{
  fx();
} 

Ибо якобы это не соответствует вселенским стандартам. smile
PM   Вверх
ksnk
Дата 24.5.2009, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата

я считал, что список 1, 1.1, 1.1.1 должен быть таким в HTML:
...
<ul><ul><li>1.1.1</li></ul></ul>


Такое , наверное, даже валидацию не пройдет... В ul может вставляться только li и никто более. Такая-же песня, как с таблицами, строки-ячейки. 



Это сообщение отредактировал(а) ksnk - 24.5.2009, 23:16


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Photon
Дата 25.5.2009, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 10
Всего: 12



Код

<ul>
    <li>1
        <ul>
            <li>1.1
                <ul>
                    <li>1.1.1</li>
                </ul>
            </li>
        </ul>
    </li>
</ul>


Вот это совершенно правильный с точки зрения валидатора код


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
source777
Дата 25.5.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Цитата(Win MK 32 @  24.5.2009,  23:09 Найти цитируемый пост)
А вот про это есть в книге? 

да, там целая глава этому посвящена. Лучше почитать конечно вышеназванную книгу, но для начала можно краткий обзор. 
Цитата(Win MK 32 @  24.5.2009,  23:09 Найти цитируемый пост)
Пишу как получится (одинаково для всего web-приложения).

Ну если никому свой код не показывать, то можно и так, если тебе понятно... А вот если ты хочешь уметь работать в команде или получать быструю помощь на форумах, то придётся тебе научиться правильному именованию. На этот счёт есть несколько весьма популярных конвенций, но одна идея встречается во всех: идентификатор должен раскрывать смысл, стоящей за ним сущности любому человеку, даже далекому от программирования, но знающему английский язык. Поверь, никому не охота разбираться что значит "print_statement", "rProductions", "s2id", "statement0", "level10", "stext", etc. И даже твои объяснения на этот счёт никому не интересны. Код, для объяснения которого надо написать комментариев в два раза больше, чем кода, это уже не код, а силос для интерпретатора/компилятора! Подобная схема именования уменьшает твои шансы получить бесплатную помощь в десятки раз.


Цитата(Win MK 32 @  24.5.2009,  23:09 Найти цитируемый пост)
я считал, что список 1, 1.1, 1.1.1 должен быть таким в HTML
нет, правильный вариант привёл Photon.


Цитата(Win MK 32 @  24.5.2009,  23:09 Найти цитируемый пост)
А как лучше поступить? Не понял.
Функция не должна зависеть от внешнего окружения, только от своих параметров или результатов других функций вызванных внутри данной. Опять же отсылаю к книге, т.к. пересказывать данную тему неинтересно, она довольно заезжена и резюмирована утверждением "функция не должна иметь побочных эффектов".

Цитата(Win MK 32 @  24.5.2009,  23:09 Найти цитируемый пост)
Надо писать такой нечитаемую и сомнительно красивую хокку
как расставлять скобки - это далеко не самая важная дилемма.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Win MK 32
Дата 25.5.2009, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Цитата(source777 @  25.5.2009,  10:49 Найти цитируемый пост)
Поверь, никому не охота разбираться что значит "print_statement", "rProductions", "s2id", "statement0", "level10", "stext", etc. 

Если задуматься над этими недочетами, то что-то я даже и не знаю как вместо этого называть перменные и таблицы в БД. Надеюсь после прочтения книги все придет.

А как надо называть таблицу, где хрянятся связи между таблицами questions и statements? (один к одному) Я решил q2s, но похоже это неудачная идея.

Добавлено через 1 минуту и 59 секунд
То же самое: я следовал таким рассуждениям, если в таблице можно создать столбец sid (statement id), то если их два типа, то будет s1id и s2id.

Добавлено через 2 минуты и 28 секунд
P.S. Вообще предчувствую что все мои вопросы излишны и придется месяц читать книгу.
PM   Вверх
source777
Дата 25.5.2009, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Цитата(Win MK 32 @  25.5.2009,  19:59 Найти цитируемый пост)
А как надо называть таблицу, где хрянятся связи между таблицами questions и statements? (один к одному)

Для связи 1 к 1 вообще промежуточных таблиц не надо, RTFM по теории баз данных. А связующие таблицы для связей многие ко многим принято называть либо questions_statements, либо QuestionsStatements в зависимости от того какой стиль используется для именования таблиц underscore или CamelCase. Любой другой стиль именования в данном случае будет не очевиден.

Кстати что за идентификатор такой неудачный "statements"? У любого программиста какая первая ассоциация с этим словом? if-statement, statement block и т.д. Ты же не транслятор пишешь... Или дальше "productions", что за производства такие, хз.

Цитата(Win MK 32 @  25.5.2009,  19:59 Найти цитируемый пост)
если в таблице можно создать столбец sid 
Нельзя, если ты хочешь работать программистом, а не обфускатором, то будь любезен изъяснять свои мысли яснее, внешний ключ в данном случае должен называться statement_id, a не sid.

Цитата(Win MK 32 @  25.5.2009,  19:59 Найти цитируемый пост)
если их два типа, то будет s1id и s2id
ох....ельно просто, их два типа, значит 1 и 2, железная логика, а что это за типы и чем они отличаются люди, читающие твой код, откуда понять должны? это у тебя что корни квадратного уравнения? Если нет, то никаких 1, 2, .. быть не должно.


Цитата(Win MK 32 @  25.5.2009,  19:59 Найти цитируемый пост)
Вообще предчувствую что все мои вопросы излишны и придется месяц читать книгу. 
Можешь прямо с 11 главы и начать!


Цитата(Win MK 32 @  25.5.2009,  19:59 Найти цитируемый пост)
что-то я даже и не знаю как вместо этого называть перменные и таблицы в БД.
Попробуй описать что должен сделать данный код простым русским языком, чтобы даже ребёнок понял. После подобного упражнения идентификаторы, подобные тем что ты тут использовал, тебе будут разве что в кошмарных снах встречаться.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Win MK 32
Дата 26.5.2009, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Цитата(source777 @  25.5.2009,  20:41 Найти цитируемый пост)
либо questions_statements, либо QuestionsStatements в зависимости от того какой стиль используется для именования таблиц underscore или CamelCase.

Я вот о чем подумал. Допустим имя одной из таблиц имеет два слова в названии. Как используя лишь один из этих стилей отличить стыковку двух сущностей от разделения слов?

Questions
NewStatements
QuestionsNewStatements - может лучше комбинировать стили? - Questions_NewStatements

А есть такой стиль? - newStatements, questionsNewStatements (первая буква маленькая)


Цитата(source777 @  25.5.2009,  20:41 Найти цитируемый пост)
это у тебя что корни квадратного уравнения? 

Ну можно сказать, что сравнение подходящее. Потому что у меня это два условия. Если выполняется A и выполняется B, то C. s1id, s2id и sid соответственно. Это я не спорю, а спрашиваю. Что думаете?

Цитата(source777 @  25.5.2009,  20:41 Найти цитируемый пост)
Попробуй описать что должен сделать данный код простым русским языком, чтобы даже ребёнок понял. После подобного упражнения идентификаторы, подобные тем что ты тут использовал, тебе будут разве что в кошмарных снах встречаться.

Сложность в том, что я когда садился за разработку и делал таблицы в БД я не знал точной структуры своего кода и алгоритма. Я только знал что-то вроде такого:
Прямой ход (фронт-энд): "
1. ну задает вопросы; 
2. ну потом по номеру вопроса устанавливает верность утверждения; 
3. ну делает выводы из двух утверждений для опредления верности третьего утверждения;
4. ну если третье утверждение НЕ встречается в других строках таблицы продукций(это термин дал научный руководитель), то оно 
5. финальное - помечаем как финальное;
6. ну, что, кончились вопросы? Выводим все финальные утверждения"

Админка(основной г...-код приведен в первом посте): 
1. выводим все финальные утверждения (те самые С, удовлетворяющие п.4 фронт-энд)
2. после всех финальных выводим причинные утверждения (те самые A и B)
3. выводим вопросы для тех утверждений, верность которых устанавливается засчет вопроса".

Но даже теперь написав г/код я не могу сформулировать так, чтобы ребенок или просто не программист хорошо понял. Кстати как формулировка 1-6, 1-3? Нормальная или очень плохо?
PM   Вверх
source777
Дата 26.5.2009, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Цитата(Win MK 32 @  26.5.2009,  01:14 Найти цитируемый пост)
Как используя лишь один из этих стилей отличить стыковку двух сущностей от разделения слов?
Если место стыковки не очевидно, то названия для самих таблиц выбраны неудачно.

Цитата(Win MK 32 @  26.5.2009,  01:14 Найти цитируемый пост)
может лучше комбинировать стили? - Questions_NewStatements
не лучше.

Цитата(Win MK 32 @  26.5.2009,  01:14 Найти цитируемый пост)
А есть такой стиль? - newStatements, questionsNewStatements 
есть, но для таблиц в БД и кода на скриптовых языках его применять не стоит.

Цитата(Win MK 32 @  26.5.2009,  01:14 Найти цитируемый пост)
у меня это два условия. Если выполняется A и выполняется B, то C. s1id, s2id и sid соответственно. Это я не спорю, а спрашиваю. Что думаете?
Я думаю, что это плохо, когда в одной таблице более одного внешнего ключа ссылается на другую таблицу. Оставь только statement_id, а остальные связи(их кстати может быть больше двух) реализую через связь многие ко многим.

Цитата(Win MK 32 @  26.5.2009,  01:14 Найти цитируемый пост)
Но даже теперь написав г/код я не могу сформулировать так, чтобы ребенок или просто не программист хорошо понял.

В этом и есть главная проблема: ты сам не понимаешь что делает твой код, зачем он это делает и почему именно так, а не иначе. Начни сначала и пока ты на русском языке, не пользуясь терминологией, связанной с программированием(можно использовать терминологию предметной области, но не сочинять её, а именно использовать общепринятые термины из теории экспертных систем, для этих терминов должен быть глоссарий с ссылками на пояснение термина), не сможешь сформулировать то, что должен делать код так, чтобы никаких доп. вопросов по этому объяснению ни у кого не возникало, к кодированию(и тем более к проектированию структуры БД) даже не думай приступать.

Цитата(Win MK 32 @  26.5.2009,  01:14 Найти цитируемый пост)
Кстати как формулировка 1-6, 1-3? Нормальная или очень плохо? 
Я ничего не понял из такого объяснения, так что плохо. Не надо никаких "ну", всё должно быть точно и не допускать никаких толкований в разные стороны. Не упоминай в описании базу данных, она вообще является не частью программы, а лишь средством для обеспечения персистентности объектов слоя предметной области.




--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Win MK 32
Дата 26.5.2009, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Цитата(source777 @  26.5.2009,  12:34 Найти цитируемый пост)
Оставь только statement_id, а остальные связи(их кстати может быть больше двух) реализую через связь многие ко многим.

А что еще буде в такой таблице кроме statement_id?

Добавлено через 3 минуты и 42 секунды
Цитата(source777 @  26.5.2009,  12:34 Найти цитируемый пост)
В этом и есть главная проблема: ты сам не понимаешь что делает твой код, зачем он это делает и почему именно так, а не иначе.

Преподаватель три раза мне уточнял что нужно сделать. Первый раз вообще почти все переложил на меня. Потом подробнее. Третий раз более менее алгоритм (но на словах и в виде примеров А В С). В итоге я три раза делал эту экспертную систему и переписывал код с нуля заново тоже три раза (и прямой ход и админку).
Мне не понятно как можно полностью представлять себе структуру, когда только в процессе программирования выясняются тонкости работы с сессиями (а там именно я храню результаты работы экспертной системы).

Добавлено через 6 минут и 13 секунд
Или тот же JS в админке. До разработки я очень слабо себе представлял принцип использования JS в приложениях. И лишь только сейчас кое-что стал понимать.
PM   Вверх
source777
Дата 26.5.2009, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Цитата(Win MK 32 @  26.5.2009,  14:58 Найти цитируемый пост)
Мне не понятно как можно полностью представлять себе структуру, когда только в процессе программирования выясняются тонкости работы с сессиями

Тонкости в при проектировании тебя вообще не должны интересовать, пойми сначала что нужно сделать! А как сделать - это дело техники.

Цитата(Win MK 32 @  26.5.2009,  14:58 Найти цитируемый пост)
А что еще буде в такой таблице кроме statement_id?
А я откуда знаю? Я вообще с твоим ТЗ не знаком... Почитай что выдаёт Google, может тогда поймёшь что ты пытаешься сделать...


Цитата(Win MK 32 @  26.5.2009,  14:58 Найти цитируемый пост)
В итоге я три раза делал эту экспертную систему и переписывал код с нуля заново тоже три раза (и прямой ход и админку).

Ну и ещё 100 раз перепишешь с таким подходом. Ты что про ООА/П никогда не слышал?


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Win MK 32
Дата 26.5.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



ООА/П - это объектно-ориентированная архитертура / проектирование?
Если да, то слышал и начинал читать про паттерны. Но меня смутило то, что отношение к PHP не имеет никакого (там только по C++(никогда не програмировал на нем, только слышал), SmalTalK(впервые слышу).
Читал по PHP про паттерны проектирования и не понял какое это имеет отношение к дейстивительности. Все примеры покзались оторванные от реаьности реальных задач. Я понимаю, что это может быть не правдой, но пока я в этом убедился. Может быть я далеко не про все паттерны проектирования читал, но я еще не нашел такой задачи, где бы они были применимы (ни на JS, ни на PHP кстати).

P.S. У нас в группе задание по сложной экспертной системе (простую как и все одногрупники я уже сделал, причем в начале семестра) выполняют еще три человека. И никто из них даже не читал про патерны проектирования и вроде бы те из них, кто программирует на PHP не применяюсь ООП. Это я к тому, что у меня перед глазами даже примеров нет к которым надо стремиться.

Добавлено через 5 минут и 14 секунд
Цитата(source777 @  26.5.2009,  13:46 Найти цитируемый пост)
А я откуда знаю? Я вообще с твоим ТЗ не знаком... 

Я бы с удовльствием начал с теории, а закончел бы правильно спроектированной и лаконично скодированной системой. Но ТЗ нам не давали, а только сказали предложить свою систему с учетом некоторых требований (требования относительно конкретные - от А и В зависит С и т.д., но не достаточные для формирования ТЗ). Тем более что на создание ЭС дали месяц. А тепреь и вовсе неделя остается (но я уже сделал 90%).

Значит вывод какой? Я заканчиваю это г/ЭС и потом летом уже занимаюсь программированеим серьезно, а не на урвоне ВУЗа?

Это сообщение отредактировал(а) Win MK 32 - 26.5.2009, 16:32
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0670 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.