PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 16
ВеликийПрограмист Отправлено: 27 Сентября, 2017 - 12:03:08 • Тема: как Разбивать базу проекта на Domain и Application Logic • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 1389
Bio man пишет:
По хорошему, твой код ничего не должен знать о том, как и где хранятся данные, и как их от туда доставать. Вся эта магия должна быть заключена в 1 месте - в репозиториях. Репозиторий это по сути фасад над хранилищем данных, который предоставляет простой и удобный интерфейс для доступа к данным.


Он не должен знать, но он должен отправлять их на хранение к примеру когда новый клиент зарегистрировался вся validation делается на уровне приложения, но потом то приложение должно дать команду сохранить эти данные, пускай оно не знает как это будет осуществленно дальше, но команда исходит от преложения.

PHP:
скопировать код в буфер обмена
  1. class user {
  2.  
  3.    private $databaseObj;
  4.    private $viewObj;
  5.  
  6.    __consturct($DBObj, $ViewObj) {
  7.        $this->databaseObj = $DBObj;
  8.        $this->ViewObj = $ViewObj;
  9.    }
  10.  
  11.  
  12.    function validate_registration(array $user_fields) {
  13.    
  14.        /* ... Проверить првильность всех полей имя емайл пороль и т.п. */
  15.  
  16.       if ($fields_valid == true) {
  17.           //Приложение не знает куда идут данные просто говорит враперу сохранить
  18.           $status = $databaseObj->add_record("table_users", $user_fields_arr);
  19.  
  20.           if ($status == true) {
  21.               $viewObj->load_page("registration_success.php", "Регистрация OK.")
  22.           } else {
  23.               load_page("system_error.php");
  24.               email_admin();
  25.           }
  26.       }
  27.    }
  28.  
  29.    
  30.    function read_user(int $user_id = '') {
  31.  
  32.       if (!empty($user_id)) {
  33.             //Приложение не знает откуда данные просто говорит враперу считать их
  34.             $user_fields_arr = $databaseObj->get_record("table_users", $user_id);
  35.             $viewObj->load_page("user_edit.php", $user_fields_arr);
  36.       } else {
  37.             //Приложение не знает откуда данные просто говорит враперу считать их
  38.             $user_fields_arr = $databaseObj->get_all_records("table_users");
  39.             $viewObj->load_page("users_table.php", $user_fields_arr);
  40.       }
  41.    }
  42.  
  43. }


Обьяект $databaseObj это простенький wrapper для базы данных MySQL в котором есть generic метод add_record(string $table, array $fields) {...} который данные и добавит в указанную таблицу и даст return true;

1. Можно ли считать generic wrapper $databaseObj полноценным Data Storage Layer или он должен быть чем то большим чтобы так называться?

2А. Приложение знает название таблицы table_users где хоранятся данные, это нарушает правило что оно не должно знать где данные храняться и как?

Если бы я название таблицы перенес из приложения просто бы команду $storage_layer_obj->add_new_user($user_fields_arr); то мне бы пришлось действительно создавать сложный Data Storage Layer с кучей кода какой в этом смысл?

2Б. Я могу подключить одновременно воторую базу если у меня есть этот отдельный слой и просто дать её в другом обьекте и все не надо менять код приложения это плюс.

Но знание приложением название таблицы чему мешает? Ведь допустим я преешел с MySQL на другой движок все равно в любой базе нужно давать название таблице.
ВеликийПрограмист Отправлено: 21 Сентября, 2017 - 09:34:05 • Тема: как Разбивать базу проекта на Domain и Application Logic • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 1389
Я в замешательстве книгу Domain Driven Design Эванса я не читал но вижу в статьях о ней что он предлогает разбить программу на 4 слоя

Presentation Layer
Application (Service) Layer
Domain (Business) Layer
Data Storage Layer

Есть еще статья эта идея не нова ИМХО есть статья Multitier architecture на википедии об том же самом, только вот одно но такое деление это будет соответствовать принципам ООП?

Как это реализовать, а именно разбить на Application и Domain слои есть какие-то примеры?
И зачем нужно Data Storage Layer понятно чтобы можно было легко поменять базу данных, но можно же сделать Wrapper зачем целый отдельный механизм заталкивания в базу какой в этом смысл?
ВеликийПрограмист Отправлено: 21 Сентября, 2017 - 04:26:03 • Тема: Что нужно знать об ООП чтобы получить работу програмиста ОО PHP. • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 1159
andrewkard пишет:
находите вакансии и их требования, и начинаете себя подтягивать.
Да там тоже ничего толко мне пишут скажут что-то вроде "Должен знать MVC и все современные способы и паттерны ОО програмирования" или требуют универсального солдато который будет знать все бак энд фронт энд потом еще локальные сети и прочее не относящееся к програмированию, я ищу работу чисто програмиста бак энд и баз данных, никаким верстальщиком и дизайнером фронт энда принципиально работать не хочу хоть раньше я этим и занимался много лет HTML CSS JS Photoshop теперь хочу уйти от этого исключительно в програмирование.
ВеликийПрограмист Отправлено: 20 Сентября, 2017 - 14:13:15 • Тема: Как правильно осуществить MVC архетиктуру? • Форум: Объектно-ориентированное программирование

Ответов: 8
Просмотров: 1205
Спасибо за хинт.

Мелкий пишет:
Отдельный холивар: готовит ли контроллер все данные для представления или представление может самостоятельно дёргать модели для получения интересующих данных.
Ещё холивар современного веба - а где вообще находятся контроллер и представление, на сервере или на клиенте?
Много там холиваров, с этим mvc.

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

Как контроллер и представление может быть у клиента или о каком клиенте идет речь?

Мелкий пишет:
А кто сказал, что mvc это про ООП? Это в первую очередь концепция разделения ответственности. До жути размытая концепция.

И ещё удивительная вещь - для использования ООП нет необходимости в использовании классов, а с использованием классов можно продолжать писать в функциональном стиле. Ладно, это не для джуниора фокусы Закатив глазки Хотя я серьёзно.

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

Вот это я лично видел у индусов в коде классы, а смысла ноль просто зашили процедурный код в классы и обозвали ООП. Но как можно писать ООП без классов я не особо догоняю?
ВеликийПрограмист Отправлено: 20 Сентября, 2017 - 11:47:28 • Тема: Как правильно осуществить MVC архетиктуру? • Форум: Объектно-ориентированное программирование

Ответов: 8
Просмотров: 1205
Если как ты говориш видел оба способа (контроллер управляет видом + моделью или контроллер просто подает данные в модель, а модель дает в вид) применяются какой ты считаеш лучше?

Читал тут в исходных текстах на Smalltalk-80 изобретатили MVC пишут что контроллер управляет моделью и видом. По моему это не сильно отличается от подхода в обычной процедурке когда есть страницы users.php, new_user_register.php и т.д. и в каждой странице есть своя тимплата Smarty к примеру. Ну и дальше все как всегда php страница там бизнес логика, а в темплате логика репрезентации инфы которую php страница достала из базы.

Я вот в подходе MVC не вижу особой разницы если делать по контроллеру на каждую страницу сайта это чем-то отличается от процедурного подхода кроме перестановки слогаемых и обзыванием крутым словом MVC?
ВеликийПрограмист Отправлено: 20 Сентября, 2017 - 09:57:55 • Тема: Как правильно осуществить MVC архетиктуру? • Форум: Объектно-ориентированное программирование

Ответов: 8
Просмотров: 1205
Есть какието ссылки на источник, а то по картинки из википедии немного не так.
ВеликийПрограмист Отправлено: 20 Сентября, 2017 - 08:40:16 • Тема: Как правильно осуществить MVC архетиктуру? • Форум: Объектно-ориентированное программирование

Ответов: 8
Просмотров: 1205
Куча статей в интернете и каждая по своему описывает MVC.

Как это понял я
1. Модель это логическая база приложения.
2. Вид это просто темплата
3. Контроллер - не совсем понял зачем он нужен, некоторые говорят чтобы управлять моделью и видом, другие говорят что он только собирает команды пользователя и отправляет в модель.

Еще вопросец сколько моделей и контроллеров должно быть всего один или несколько в каких случаях нужно создавать дополнительный?
ВеликийПрограмист Отправлено: 20 Сентября, 2017 - 05:09:51 • Тема: Что нужно знать об ООП чтобы получить работу програмиста ОО PHP. • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 1159
Недавно начал изучать обьектно ориентированое програмирование, раньше несколько лет писал процедурно, вопрос что нужно знать об ООП чтобы получить работу младшего PHP програмиста.

Сейчас для себя выделил цель понять MVC архитектуру и научиться правильно использовать SOLID и GRASP принципы програмирования, достаточно ли этого как базы для получения работы или нужно знать что то еще об ОО?
ВеликийПрограмист Отправлено: 25 Января, 2016 - 04:27:56 • Тема: Процедурный стиль vs Объектно ориентированное программирование • Форум: Программирование на PHP

Ответов: 31
Просмотров: 4310
Хочу обсудить все за и против в вопросе процедурный стиль против объектно ориентированного программирования.

Давайте сделаем конструктивно чтобы тему не закрылы за флейм и не будем делать такие комменты как "Если ты пишешь процедурный код то ты херовый програмист" или "<Какой то> крутой прогер или мой учитель програмирования в универе смеется над таким вопросом" - так доказываются догмы.

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


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

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


Ели кто то думает что я упал с дуба посмотрите на критику ООП на с википедии.
Спойлер (Отобразить)
ВеликийПрограмист Отправлено: 24 Января, 2016 - 09:52:53 • Тема: Ищ • Форум: Работа

Ответов: 22
Просмотров: 3059
LIME пишет:
если есть достаточное решение зачем его улучшать?
оно достаточно и хорошо

Твоя точка зрения понятна, надо было сразу с этого начинать, можешь в рамочку поставить это твой жизненное кредо.
ВеликийПрограмист Отправлено: 24 Января, 2016 - 09:26:41 • Тема: Ищ • Форум: Работа

Ответов: 22
Просмотров: 3059
Цитата:
открой для себя RESTful и пусть фронтовики дерзают

А мне это нужно? Можешь обьяснить зачем и кем считаешь себя ты почему у тебя такая низкая самооценка?
ВеликийПрограмист Отправлено: 24 Января, 2016 - 09:14:11 • Тема: Ищ • Форум: Работа

Ответов: 22
Просмотров: 3059
Значит по твоему изобретать велосипед снова не стоит или вобще пытаться что то изобретать, наверно ты думаешь что человечество уже достигло пика своего развития и стремиться уже некуда?

Я же не говорил что нужно именно сайт знакомств, если есть свои идеи лучше я готов заняться. Но даже если делать сайт знакомств, есть разные подходы к решению этой задачи и мне хотелось бы сделать более удобный и эффективный сайт чем все уже существующие.
ВеликийПрограмист Отправлено: 24 Января, 2016 - 09:09:27 • Тема: Ищ • Форум: Работа

Ответов: 22
Просмотров: 3059
Все понятно ты судишь о книжке по обложке да название может не особо потому что я допустил опечатку а исправить возможности на этом форуме нету. "Ищу партнера..." было оригинальное название.

Но ты же нашел мою тему и написал в ней так что это не факт что никто больше не ответит.
ВеликийПрограмист Отправлено: 24 Января, 2016 - 09:03:55 • Тема: Ищ • Форум: Работа

Ответов: 22
Просмотров: 3059
Есть такое понятие оффтопик, создай тему ООП против Процедурного стиля в любом разделе дай мне ссылку и я отпишусь там.

Здесь давай лучше по теме, обсудим твоюю точку зрения "у тебя все равно ничего не получится" "никто все равно не ответит", в чем именно ты видишь проблему в моем предложении партнерства в чем "не адекватность" давай также по пунктам как ты сделал выше?
ВеликийПрограмист Отправлено: 24 Января, 2016 - 08:55:42 • Тема: Ищ • Форум: Работа

Ответов: 22
Просмотров: 3059
Друзья товарищи можно не превращать эту тему в "процедурный стиль против объектного" есть миллиард таких дискусий в интернете этот вопрос спорный четкого ответа и доказательств нету ни у одной тороны, это выбор каждого програмиста.

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

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB