Малко глупаво въпросче - MVC

Msecurity

Registered
Здравейте колеги
От няколко дни чета и чета ...и се чудя - има ли някакви твърди стандарти за "MVC", освен основната идея - дизайна да е отделен от изпълняващият код...
Гледах всякакви примери - CI, къстъм mvc-та и т.н ... и голяма част ми се сториха безмислени - 1000 реда код и 10 файла, за нещо което може да се направи с 20 реда и не повече от 2/3 файла например...
И по това което разбрах - MVC се използва основно за големи проекти?!?
Какво му пречи и за малките - например фирмен сайт с 5 страници...
Основно в мойте проекти използва класове и функции... , но реших да пробвам и MVC ... но всичките тези уроци и коментари... единствено ме отказват от това MVC.
И въпроса е: какви са му плюсовете и минусите?
И дайте някакъв тъп прост пример на MVC например да визуализирам ето този код:

PHP:
$sss = mysql_query("SELECT * FROM test") or die (mysql_error());
while($s = mysql_fetch_assoc($sss)) {
echo '<p>'.$s['zaglavie'].'</p>';
}
И какво пречи ако правя голям проект и не е MVC?

ПП: сори за "безмислените редове в темата" :D
Поздрави :P
 
И аз не съм фен на Mvc и ООП като цяло и си ползвам процедурен код на всякъде, освен ако изришно не ми кажат - НЕ ГО ПОЛЗВАЙ. Според мен няма лошо да си пишеш на процедурен код, но ако правиш някакъв супер голям проект е добре да използваш ООП, защото просто правиш ядрото и останалият код го наследява, не се страхуваш да не презапишеш някоя променлива, по-лесно е за другите когато ти видят кода и т.н. и някак си се постига една по-добра и 'по-роботизирана' система - така да се каже.

Това е мое мнение, не е нужно да се съгласяваш с мен. :D :?:
 
Аз съм в същото положение, чета и се чудя... От скоро започнах да четя за MVC моделите и единствения плюс, който за момента виждам/откривам е четимоста на кода ...
 
Не е само по-добра четливост на кода има много други предимства. В началото като почнах да пиша ООП и ми беше странно, но като му свикнах разбрах че е супер. С ООП и МВЦ имаш много-по голям контрол над кода така да се каже. Ако искаш да преправиш нещо не трябва да ровиш из кода и да търсиш кое къде си го написал. Също така нямаш повтаряемост на кода, и в някой момент ако ти се наложи да промениш нещо сменяш само на едно място и то се отразява на всякъде. Това важи и за визуализацията и за останалия код. Имаш инструменти които ги няма в процедурния, ще дам за пример свойствата, но има и други. По-този начин можеш да правиш нещата много по-лесно и с много по-малко код. Може да се говори много-по темата, но аз специално никога не бих се върнал към процедурния код. Като знам какви врътки съм правил преди и какво ровене по кодове само защото съм забравил нещо да напиша и ми става лошо :) .
 
И въпроса е: какви са му плюсовете и минусите?
И дайте някакъв тъп прост пример на MVC например да визуализирам ето този код:

PHP code:
$sss = mysql_query("SELECT * FROM test") or die (mysql_error());
while($s = mysql_fetch_assoc($sss)) {
echo '<p>'.$s['zaglavie'].'</p>';
}

И какво пречи ако правя голям проект и не е MVC?

След един месец ще решиш да си прекръстиш таблицата. Дотогава ще си написал горния код 10 пъти, веднъж за да изведеш count(*), веднъж за топ 20, веднъж за резултати от днес .... И когато се наложи да поправяш всичко по отделно, ще те домързи да отваряш всеки файл и да търсиш и ще кажеш на ide-to (примерно) да смени всяко 'test' с 'user_test'.. Но ще се окаже, че ползваш функция от php с буквите test в себе си. Ctrl+R/f5, Alt+tab. (10 пъти). Ще напр....

... три часа по-късно ...
 
Така е, но зависи и до голяма степен как си структурираш кода, това е идеята и на oop и mvc (до някъде), така че, ако можеш да постигнеш същото и с процедурен код, не виждам защо да не се ползва. :idea: :?:
 
Както аз пиша кода, ще поправям само на 1 място, заявките са ми в отделен файл, като функции и реално използвам 1 функция / заявка / колкото пъти ми трябва бе да я пиша 100 пъти, insert,delete,select всичко ми е разделено, разделям си кода с класове, и така с няколко класа и няколко функции всичко ми е четливо и уж подредено.
Например за страницата "article", използвам няколко файла:
article.php - извиква функции и класовете - като всяка част на страницата е разделена - бара, статии, странициране и т.н
aricle-class.php - всички класове,
article-function - само php функциите, който използвам в article-class,
а всички заявки са ми в отделни файлове - select.php - всички селеки, insert.php, и т.н
Може да не е правилно, но ми върши работа - всичко е подредено, четливо и т.н.
И поради тази причина се чудя защо ми е MVC?!? Като и сега всичко ми е подредено, уж разделено и четливо?
 
Ако приложението ти използва MYSQL за единствен източник на данни, то начинът, който използваш ще ти е достатъчен.

Но какво става ако трябва да използваш други технологии и източници?
Ако се наложи да кешираш?
Ако трябва да се логваш с интернет директории (Active Directory) ?
Ако трябва да обработваш други бази от данни (солидното приложение за счетоводство на шефа от преди 20 години с 2GB-ов файл с данни)?

А ако трябва да сравняваш данните с тези от друга технология / протокол?

Вместо да енкапсулираш всички тези данни в модели / обекти, ще пишеш излишна логика във всеки файл?

Естествено ще си преструктурираш файловата система, а може би и данните.

Но защо? Защо са ги писали тези добавки към езика, защо са измислени тези стандарти? Не е защото трябва да направят живота на програмиста по-черен!

Ето защо..
- Защото не сте работили по наистина сложни проекти.

По сложните проекти не се работи сам, а в екип.
Eкипът трябва да мисли и пише до колкото е възможно по еднакъв начин.
Единствения начин това да стане, е като се използват утвърдени стандарти - като MVC.

Вече не сме 70/80/90-те, че да гоним производителност.
Съвременните съвръри с лекота се справят и с най-трудоемките задачи.
Да не говорим, че динамичните езици не са подходящия избор за това.
 

Back
Горе