Някой може ли да ми обясни защо трябва да пиша на OOP?

tedo96

Registered
Някой може ли да ми обясни защо трябва да пиша на OOP, а не на процедурен код?
 
Никой не те задължава да пишеш на ООП :)
Просто ако свикнеш да пишеш на ООП, ще видиш колко ще ти е по-лесно.
За малки проекти, дори е препоръчително да си пишеш кода процедурно.
Но за големи проекти, ООП-а си е потребност.
 
Да, никой не ме задължава, но всеки ми казва, че е много по добре да пиша така.
Искам да разбера точно с какво превъзхожна процедурния код.
 
1. По-подредено
2. По-разбераемо
3. Ако се разровиш в обяви за php програмисти почни навсякъде търсят и ООП
4. По-лесно се работи в екип.


Можеш и да видиш и този урок на Иван Ванков:
http://nau4i.me/index.php?option=com_content&view=article&id=122:2009-12-27-20-21-06&catid=44:oop&Itemid=76

На около 21-вата минута говори за предимствата и недостатъците на ООП.
Успех 8)
 
xmmm каза:
1. По-подредено
2. По-разбераемо
3. Ако се разровиш в обяви за php програмисти почни навсякъде търсят и ООП
4. По-лесно се работи в екип.

Можеш и да видиш и този урок на Иван Ванков:
http://nau4i.me/index.php?option=com_content&view=article&id=122:2009-12-27-20-21-06&catid=44:oop&Itemid=76

На около 21-вата минута говори за предимствата и недостатъците на ООП.
Успех 8)

За 3 и 4 си прав, за 1 и 2 това зависи от това кой пише.

А на автора на темата ще му кажа - ООП е създадено с цел, възможно най добре да се моделират нещата от реалния живот с код.По прочети малко за Design Patterns(Шаблони за дизайн - Не уеб дизайн!) и ще ти се изяснят много неща :)
 
RegexSux каза:
xmmm каза:
1. По-подредено
2. По-разбераемо
3. Ако се разровиш в обяви за php програмисти почни навсякъде търсят и ООП
4. По-лесно се работи в екип.

Можеш и да видиш и този урок на Иван Ванков:
http://nau4i.me/index.php?option=com_content&view=article&id=122:2009-12-27-20-21-06&catid=44:oop&Itemid=76

На около 21-вата минута говори за предимствата и недостатъците на ООП.
Успех 8)

За 3 и 4 си прав, за 1 и 2 това зависи от това кой пише.

Е колкото и не знаеш ООП е много по-подредено и разбераемо от процедурния код.В процедурния код всичко ти е наблъскано,и трябва да всеки 2 реда да пишеш коментари да разбереш какво е това,и защо е там :D Въпреки,че сега уча ООП и не трябва много много да се обаждам съм сигурен в това :lol:
 
Възможно НАЙ-елементарно обяснено.

Всичко се цепи на функций и после не ти се налага да променяш целия код ако си решил да правиш нещо ново, а просто функцията.


ПРИМЕР:

Правил заявша до базата данни.

Докато правиш заявката и минаваш през една от функцийте ти, тази функция се свръзва с друга за да се увери, че първо имаш връзка с базата данни, после като вижда, че имаш се свръзва с друга функция която първо трябва да обезопаси заявката после функцията си изпълнява заявката и ти я връща.

Просто с OOP всичко работи заедно. Да кажем сега, че кодът ти не е писан на OOP и ти си направил нова база данни в която искаш да ти се записваш съобщения с грешки които потребителите са видяли. Хубаво, ама трябва да отваряш всяка страница по отделно да търсиш кода си и да го променяш. (Представи си да имаш над 20 страници които ползват това.)

С ООП просто добавяш още една функция която да се свръзва към друга база данни и да записва там грешката след което във функцията със заявката я правиш просто след самата заявка да проверява дали заявката е успешна и ако е да си я изкара ако ли не, да премине към функцията която записва грешката в другата база данни.

---------------------------

Не знам дали разбра примера опитах се да го обесня възможно най-просто с нагледен пример.
 
Идеята е следната, в ООП си имаш определени класове, за определени действия.
Примерно, имаш си един клас за потребителите, а методите му се грижат за всичко покрай тези потребители. Тоест, имаш си метод за ауторизция, метод за ъпдейтване на данните, метод за ... всичко.

Така се получава добре структуриран код, защото ако ти се наложи да промениш едно от горе изброените действия, ти ще знаеш къде да го търсиш.

Това базова, другите добри страни на ООП писането е наследяването, и как може в единия метод да ползваш променлива, създадена в друг. Няма да ти се налага да го предаваш като параметър на функцията, няма нужда да го сетваш като глобална променлива. Тоест, имаш пълен достъп до създадената променлива, можеш да махаш/слагаш/променяш всичко, в зависимост от обстовятелствата.

Но за да разбереш наистина смисъла от ООП, просто ти трябва праткика. Може да ти изглежда доста примитивно, но с времето ще го разбереш :)
 
qazxsw каза:
Възможно НАЙ-елементарно обяснено.

Всичко се цепи на функций и после не ти се налага да променяш целия код ако си решил да правиш нещо ново, а просто функцията.


ПРИМЕР:

Правил заявша до базата данни.

Докато правиш заявката и минаваш през една от функцийте ти, тази функция се свръзва с друга за да се увери, че първо имаш връзка с базата данни, после като вижда, че имаш се свръзва с друга функция която първо трябва да обезопаси заявката после функцията си изпълнява заявката и ти я връща.

Просто с OOP всичко работи заедно. Да кажем сега, че кодът ти не е писан на OOP и ти си направил нова база данни в която искаш да ти се записваш съобщения с грешки които потребителите са видяли. Хубаво, ама трябва да отваряш всяка страница по отделно да търсиш кода си и да го променяш. (Представи си да имаш над 20 страници които ползват това.)

С ООП просто добавяш още една функция която да се свръзва към друга база данни и да записва там грешката след което във функцията със заявката я правиш просто след самата заявка да проверява дали заявката е успешна и ако е да си я изкара ако ли не, да премине към функцията която записва грешката в другата база данни.

---------------------------

Не знам дали разбра примера опитах се да го обесня възможно най-просто с нагледен пример.
Надявам се може да обясниш защо с структурен код трябва да добавям на 100 места нещо ново.Ако ти го правиш така, прави го.Аз и в структурния код си обсмилям нещата и го правя така, че в бъдеще да мога максимално лесно да обновявам нещата.Ако не сте ходили на лекции/уроци по ООП, идете и ще ви обяснят за структурно vs. OOP програмиране.Никой няма да ви говори за подреденост или нещо подобно а за архитектури на приложения и подобни :)
 
Я си представи, че пишеш система за голяма социална мрежа на PHP. В колко страници ще ти се наложи да взимаш информация за потребител по userID, име или някакъв друг критерий?
 
OOП не е само начин за структуриране на код, а начин на мислене. Ако не се научиш да мислиш така, ще стане така, че ще пишеш процедурен код в класове и ще си мислиш, че е Обектно-ориентиран.

http://bg.wikipedia.org/wiki/%D0%9E%D0%B1%D0%B5%D0%BA%D1%82%D0%BD%D0%BE_%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%B0%D0%BD%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5
 
RegexSux каза:
Надявам се може да обясниш защо с структурен код трябва да добавям на 100 места нещо ново.Ако ти го правиш така, прави го.Аз и в структурния код си обсмилям нещата и го правя така, че в бъдеще да мога максимално лесно да обновявам нещата.Ако не сте ходили на лекции/уроци по ООП, идете и ще ви обяснят за структурно vs. OOP програмиране.Никой няма да ви говори за подреденост или нещо подобно а за архитектури на приложения и подобни :)


Май не ти се е налагало от 1 база данни някой да ти каже да превключиш на друга до сега? :)
 
ООП - комуникация между обектите. Работи се по-лесно в екип (както казаха), нещата са ти по-организирани, написваш клас за конкретно нещо което върши определени му действия. Мисля, че ти посочиха по-горе закакво става дума. Голям плюс също са наследяването (extend-ването) на класовете, както и абстрактните класове.
 
До извода, че трябва да се пише на ООП ще достигнеш сам :)

Ако искап да ускориш този процес - пиши 4-5 месеца на чисто C.
 
RegexSux каза:
xmmm каза:
1. По-подредено
2. По-разбераемо
3. Ако се разровиш в обяви за php програмисти почни навсякъде търсят и ООП
4. По-лесно се работи в екип.

Можеш и да видиш и този урок на Иван Ванков:
http://nau4i.me/index.php?option=com_content&view=article&id=122:2009-12-27-20-21-06&catid=44:oop&Itemid=76

На около 21-вата минута говори за предимствата и недостатъците на ООП.
Успех 8)

За 3 и 4 си прав, за 1 и 2 това зависи от това кой пише.

А на автора на темата ще му кажа - ООП е създадено с цел, възможно най добре да се моделират нещата от реалния живот с код.По прочети малко за Design Patterns(Шаблони за дизайн - Не уеб дизайн!) и ще ти се изяснят много неща :)
Мда аз съм против ООП :)
И пиша адски подредено и разбираемо :)
Даже ООП ми е пълна манджа.
Предимствата е ако кандидатсваш за работа всички заблудени работодатели си мислят, че е по добро :)
Истината е че е същото :)
За големи, за малки проекти си ползвам пхп :) пак мода да си ползвам функции и без класове :) и без да се вкарвам в некви филми
 
Всеки с мнението си.

Да те питам.
Защо има ООП езици, защо има ООП защо като пишеш ООП ти е 100% по малък кода и 100% по подреден, защо работодателите изискват ООП, защо всяка 1 фирма или поне 90 процента от фирмите изискват ООП ?Имаш мнение, но оспори хората които са постнали над твоя пост.
 
niker каза:
Мда аз съм против ООП :)
И пиша адски подредено и разбираемо :)
Даже ООП ми е пълна манджа.
Предимствата е ако кандидатсваш за работа всички заблудени работодатели си мислят, че е по добро :)
Истината е че е същото :)
За големи, за малки проекти си ползвам пхп :) пак мода да си ползвам функции и без класове :) и без да се вкарвам в некви филми

Горките заблудени програмисти по света. :) Горките заблудени работодатели дето не искат да взимат на работа заблудени хора дето ще им обясняват как е същото, а на първия проект над който ще работят повече от 2ма програмиста ще стане огромна каша.

Запази си темата в любими и я отвори след една година. Ще видиш колко смешно ще ти звучи мнението :)
 
Пишете на C.
После пишете на Java.
После Haskell.
После PHP.
И накрая Python.

И няма да имате проблем с парадигмите и стиловете :)
 
Учил съм C++, но на едно доста слабо ниво. След това започнах с PHP и от скоро ми се върти в главата да започна да пиша обектно ориентирано.
Мерси за коментарите! :)
 

Back
Горе