Нужен совет пофессионалов своего дела

Fortop

Новичок
Недоволен.

ActiveRecord - не самый простой паттерн для понимания. И рекомендовать начинать изучение ООП с него - не слишком разумная идея.

Для начала вариант с автомобилем и телегой вполне подойдет.
А паттерны стоит изучать с чего-нибудь попроще. Вроде фабрики, реестра, синглтона.
 

Krishna

Продался Java
Ребята, вот по пробовал с регистрацией:
Скажите честно БРЕД?
Ты похоже ничего не понял из того, что тебе написал fixxxer, особенно про "простое правило".
 

Духовность™

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

рекомендовать начинать изучение ООП с него - не слишком разумная идея.
При чем тут изучение ООП? Я рекомендую его не для изучения ООП, а для того, что бы ТС мог создать объект типа User, про который написал Amdy. Причем тут вообще фабрика, реестр и сингелтон? ТС-у нужно абстрагировать регистрацию от БД, возложив на некий шлюз работу по сохранению/удалению/изменению данных пользователя.
 

Fortop

Новичок
Автор оригинала: triumvirat Не самый простой?) По моему, проще быть не может. Тем более, автор его интуитивно реализовывает в виде класса регистрации.
Во-первых, я привел примеры более простых паттернов.
А во-вторых, не путайтесь в паттернах - не все то, что само себя сохраняет в базе, является реализацией AR.

Автор оригинала: triumvirat
При чем тут изучение ООП?
При том что ТС только начал изучать ООП, и заниматься изучением паттернов или не дай бог их реализацией, при этом плавая в самом ООП - это откровенно глупая идея.
Но Вы рекомендуете ТС заняться именно этим.
 

boko

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

Просто до этого писал на функциях.

Тут придумал проект, хочу красиво всё сделать мало ли....

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

в любом случае всем огромное спасибо.
 

Krishna

Продался Java
я признаюсь что не до конца понимаю классы или может быть 90% не понимаю, скорей всего не могу разобраться.
Это нормально. У всех сначала проблемы, потому что ООП это не просто ещё одна программерская технология, это абсолютно другая парадигма программирования, то есть другой подход к созданию программы. Нужно перестроить своё мышление.

Твоя главная ошибка - ты думаешь, что классы это просто средство организации функций созданных в процедурном стиле проектирования в какие-то тематические группы, сиречь классы (так думает большинство новичков), а это не так.
Классы это другой, принципиально новый подход к декомпозиции прикладной задачи в код. Ты должен мыслить не функциями и данными, а Сущностями из прикладной области.
Просто регистрация пользователя не самый наглядный пример и не самая удачная задача для начала разбирательства с ООП.

http://www.ozon.ru/context/detail/id/2847621/

Вот эту книжку можно почитать, там есть введение в ООП подход в контексте PHP.
 

boko

Новичок
Я попробую расписать класс User.

К примеру у меня есть Пользователь, что я могу с ним делать и что я могу от него взять.

1. У него должен быть ID и я могу получать его ID.

2. У него должно быть имя, заранее мы не знаем его так как он новый .

3. У него должен быть пароль заранее мы не знаем его.

4. У него должен быть email, заранее мы не знаем его.

4. У него должна быть дата регистрации, заранее мы не знаем ее.


Потом у меня есть Регистрация:

0. наследую Пользователя.
1. Получаю Юзера.
2. Проверяю на наличие в системе.
3. Регистрирую

Потом у меня есть Логин:

0. наследую Пользователя.
1. Проверяю на наличие в системе.
2. Пишу сессию и кукизы
3. Проверяю LoggedIn или нет.
 

Krishna

Продался Java
Регистрация - это действие, а не сущность. Таким образом, исходя из простого правила классом она быть не может, а тем более никаким образом не может наследовать пользователя.

Наследование это уточнение, создание более конкретной сущности. Автомобиль -> Грузовик - это наследование. Потому что Грузовик_есть_Автомобиль. (Потомок есть частный случай Предка).
А Регистрация ни в коей мере не является частным случаем Пользователя.
В случае класса Пользователя хорошим примером для наследования будет класс Администратор.
 

boko

Новичок
А кажется начинаю понимать Вторая попытка:

Я попробую расписать класс User.

К примеру у меня есть Пользователь, что я могу с ним делать и что я могу от него взять.

1. У него должен быть ID.

2. У него должно быть имя, заранее мы не знаем его так как он новый .

3. У него должен быть пароль заранее мы не знаем его.

4. У него должен быть email, заранее мы не знаем его.

5. У него должна быть дата регистрации, заранее мы не знаем ее.

Методы
6. Сохранять, изменять и удалять юзера.


Потом у меня есть Опции относящиеся к Пользователю:

1. Вход в систему
2. Выход из системы
3. Регистрация
3. Проверка Юзера userExist();
4. Брать ID getId();
5. Сохранять, редатктировать и брать сообщение.
6. и.т.д.
 

Духовность™

Продвинутый новичок
это откровенно глупая идея
ля-ля тополя я фактически начал именно с этого. Можно сейчас начать советовать ТС изучать Буча, программировать на SmallTalk и т.д. Но лучше если он сразу начнет что-то делать и доставать форум вопросами.

В данном случае ему нужен ActiveRecord или шлюз для понимания того, как можно создавать класс User, сохранять его данные в БД и изменять их. А так же удалять.

Во-первых, я привел примеры более простых паттернов.
ЗАЧЕМ они нужны в контексте этой задачи? Мы не изучаем в этой теме паттерны, мы решаем конкретную задачу.
 

Krishna

Продался Java
triumvirat
ЗАЧЕМ они нужны в контексте этой задачи? Мы не изучаем в этой теме паттерны, мы решаем конкретную задачу.
Без обид, но вот именно поэтому ты периодически задаёшь шокирующие вопросы типа этого - по той простой причине, что исповедуешь подход "некогда топор точить - дрова рубить надо!".

Иногда нужно "день потерять, чтобы потом за 5 минут долететь" (ц).

-~{}~ 13.02.10 21:12:

Что касается совета по существу прикладной области (если сроки жмут ппц, а "попробовать ООП хочется так, что мочи нет терпеть") - я бы советовал сделать класс Пользователь, но саму регистрацию делать без его использования, в привычном традиционном подходе. Read only класс тут освоить будет гораздо проще.
 

Духовность™

Продвинутый новичок
Krishna
я задаю такие вопросы потому, что начал писать "на классах" ещё тогда, когда вообще не понимал сути ООП. Дохрена лет назад это было. И у меня выработались определенные консервативные привычки писать так, а не иначе. Вот и все.

Тем не менее, я правда не понимаю, зачем Fortop предлагает ТС изучат сингелтон и фабрику. Почему бы не изучить устройство двигателя внутреннего сгорания? Мы сейчас о чем говорим вообще? Вы читали, что автору надо?

boko
Вот почитай: http://phpclub.ru/talk/showthread.php?s=&threadid=110230&
http://phpclub.ru/talk/showthread.php?s=&threadid=107386&
 

boko

Новичок
да,

я всё прекрасно понимаю нужно время и опыт, как говорится опыт приходит со временем.

Спасибо за поддержку.
 

Krishna

Продался Java
я задаю такие вопросы потому, что начал писать "на классах" ещё тогда, когда вообще не понимал сути ООП. Дохрена лет назад это было. И у меня выработались определенные консервативные привычки писать так, а не иначе. Вот и все.
Ты задаешь такие вопросы потому, что ты до конца так и не разобрался в этой самой сути. Потому что "рубить надо, некогда точить. Работает - и нормально" :) Объяснять привычками непонимание основных принципов наследования нелепо :)

-~{}~ 13.02.10 21:25:

Тем не менее, я правда не понимаю, зачем Fortop предлагает ТС изучат сингелтон и фабрику. Почему бы не изучить устройство двигателя внутреннего сгорания? Мы сейчас о чем говорим вообще? Вы читали, что автору надо?
Вырвано из контекста. Он сказал, что с этого надо начинать знакомство с паттернами, а не советовал ТСу немедленно освоить синглтон с фабрикой.
 

Духовность™

Продвинутый новичок
Krishna
ладно, я не буду спорить с Sun Certified Programmer. Посоветуйте теперь с Fortop изучить ТС устройство ТУ-154, авось поможет.
 

Krishna

Продался Java
triumvirat

Я что пытаюсь донести (и не я один в этом топике):
Изучать такие глобальные темы, как ООП, надо последовательно. Мелкими шажками, разобравшись сначала с основами, создав себе надёжную базу.
Наскоком налетать сразу на серьёзные задачи можно и даже получится их как-то решить, но твой "замок знаний" будет стоять на хлипком фундаменте. И в каких то ситуациях периодически будет непонимание того, что происходит. Не надо торопиться, не надо жалеть тратить время на изучение и повторение вроде бы простых вещей.
 

Духовность™

Продвинутый новичок
Он сказал, что с этого надо начинать знакомство с паттернами
блин, да где это написано? Чье это авторитетное мнение? Что за бред?

Человек у вас спросил конкретную вещь. Пользователь->регистрация. Я ему посоветовал более-менее подходящий под задачу паттерн. Ему же советуют изучать то, что ВООБЩЕ НИКАК не связано с его задачей. Пц.
 
Сверху