За последние 24 часа нас посетили 14898 программистов и 1712 роботов. Сейчас ищут 1322 программиста ...

Какие форумы вы хотите?

Тема в разделе "php.ru/forum/", создана пользователем Anonymous, 6 фев 2006.

  1. Basilio

    Basilio Случайный прохожий

    С нами с:
    6 апр 2016
    Сообщения:
    191
    Симпатии:
    54
    Может быть, он имел в виду предложить создать категорию "Объектно-ориентированное программирование", а в ней создать несколько подфорумов, каждый для обсуждения различных, связанных с ООП, вопросов?
    Так сказать - раздел для высоконаучных рассуждений об основах.
     
  2. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    А чем не устраивает обсуждать вопросы по ооп в существующих форумах, как делали до сих пор?) в общем, не понимать моя
     
  3. Basilio

    Basilio Случайный прохожий

    С нами с:
    6 апр 2016
    Сообщения:
    191
    Симпатии:
    54
    Моя тоже теряться в догадках.
     
  4. Kutuz

    Kutuz Новичок

    С нами с:
    10 апр 2016
    Сообщения:
    15
    Симпатии:
    0
    Похоже я первый кто такое предлагает, да Basilio прав, речь идет о разделах. Я просто как человек неизвестный допустим неумеха, решил с людьми на форуме практики по архитектурам обсуждать, зашел на этот форум и что-то кроме процедурника мне в глаза ничего не бросается, темы конечно можно создавать, но имхо этим темам нужен соответствующий раздел, если дискутировать по поводу АОП, тем может быть достаточно много, 1 тема = 1 подход в проектировании)) Вообще это просто моё личное предложение, если что не так, то считайте я просто форумом ошибся)
     
  5. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Здесь нет тем чисто по процедурке. И процедурка, и ооп смешаны
     
  6. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    В данном случае ты просто ошибся форумом. Если "неизвестный". А если "неумеха" - то обсуждать с тобой такие практики - это будет вроде пятиклассников обсуждающих - как и куда приснунуть.
     
  7. Kutuz

    Kutuz Новичок

    С нами с:
    10 апр 2016
    Сообщения:
    15
    Симпатии:
    0
    А это что форум исключительно для "Известных"? типа вип ложи? Звезды голливуда?) тогда мне интересно что есть "звездный путь", как этого достичь?)))
    Читая темы аудитории, я догадывался что ошибся форумом, одни только темы в разделе "PHP для профи" меня поразили (критике конечно не место, но тема "Зависает сокет", "Многопоточное скачивание файла" у профи (профессионала) это норм? или это нормальный уровень для "профи в пыхе", и не удивительно почему пыху дном называют)), вообще сложилось впечатление что известный здесь только какой-то Доктор Попов, тогда я - не известный :D.
    Да, меня мало кто знает в разработке, потому-как работаю я один , и занят исключительно Архитектурными решениями , поэтому нет времени у меня прославляться.
     
  8. Basilio

    Basilio Случайный прохожий

    С нами с:
    6 апр 2016
    Сообщения:
    191
    Симпатии:
    54
    По-моему, это обычное для старожилов поведение: если пришел кто-то новый и активно предлагает новые порядки - надо его замочить. :)
     
  9. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Ты ошибся форумом не потому, что неизвестный. Просто ты несешь какую-то хрень, если честно. Тут никто ничем не хвастается, только вот ты пришел и стал петь, насколько ты крут. А мог бы придти, влиться в сообщество, помогать новичкам, выкладывать свои интересные решения (кстати для этого, внезапно, есть отдельная тема). Но нет. "Мы круты, а вы тут херней страдает ."
     
  10. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Наоборот. Форум начинающих. Ну... и не кончающих ;) Ну, как ты и заметил. Может, конечно, и можно подтянуть уровень, но это долгое и неблагодарное занятие... зачем, когда есть пхпклаб ;)
     
  11. Kutuz

    Kutuz Новичок

    С нами с:
    10 апр 2016
    Сообщения:
    15
    Симпатии:
    0
    Спасибо, я все понял)
     
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Kutuz, не сдавайся! Создай тему, назови АОП. И вперед! Кому интересно будут обсуждать.
     
  13. Basilio

    Basilio Случайный прохожий

    С нами с:
    6 апр 2016
    Сообщения:
    191
    Симпатии:
    54
    @Kutuz, мы в тебя верим, создавай. Лично я с удовольствием поучаствую в подобной дискуссии. А если она разрастется во что-то серьезное - там и раздел попросим.
     
    artoodetoo нравится это.
  14. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Неужели до аспектно-ориентированного программирования дорос? Ых-ха-ха-ха
     
  15. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Похоже. )
    --- Добавлено ---
    Я не знаю что это такое. Я знаю только ООП )). А абстракция один из разделов ООП
     
  16. Kutuz

    Kutuz Новичок

    С нами с:
    10 апр 2016
    Сообщения:
    15
    Симпатии:
    0
    Если эффективно, то можно и аспектами заняться, сам я пока не сталкивался с аспектно-ориентированными проектами, тыкнул бы кто)
    абривеатурой АОП я подразумеваю Абстрактно Ориентированное Программирование, а ООП это просто объекты инкапсуляция и наследование.
    На пхпклабе в принципе есть раздел "Вопросы по теории программирования"
    Паттерны , Абстракции , это все укладывается можно сказать в теорию
     
  17. Basilio

    Basilio Случайный прохожий

    С нами с:
    6 апр 2016
    Сообщения:
    191
    Симпатии:
    54
  18. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Нет, на самом деле, ООП трактуют много шире обычно.
    Написано же - EDD :)
     
  19. Basilio

    Basilio Случайный прохожий

    С нами с:
    6 апр 2016
    Сообщения:
    191
    Симпатии:
    54
    Что это?
     
  20. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    With Frisbee you can start enjoying the next level of programming: exception driven development.
    =)
     
  21. Basilio

    Basilio Случайный прохожий

    С нами с:
    6 апр 2016
    Сообщения:
    191
    Симпатии:
    54
    Ах да, действительно!
     
  22. Kutuz

    Kutuz Новичок

    С нами с:
    10 апр 2016
    Сообщения:
    15
    Симпатии:
    0
    Проектирование архитектуры оперируя в основном исключениями?) решение вижу в первый раз) для себя увидел здесь обработчик событий
    Исключение === событие, такие события могут рождать цепочки обязаностей, перекидывая от одного обработчика данные к другому, такое событие может являться только "перебивающим" следующих слушателей Observable так как в его основе лежит выброс исключения, а будучи подмешанный EDD в событийную среду (инверсионое управление) можно расширив архитектуру варьировать и задавать приоритеты , тем самым подмешивая традиционных слушателей в очередь выполнения, так-же события рождаемые исключением внутри какого-нибудь компонента или подкомпонента, приводят к завершению текущего процесса компонента и передаче события (вылету) на "Фасадный слой" системы, где может далее использоваться рекурсия событий как традиционных так и исключающих, и соответственно на каждом уровне (каждой цепочке) обработчики производят действия, могут собирать данные(которые в итоге, где-нибудь можно обработать), производить действия в системе (запускать работу с компонентами - которые так-же могут привести к исключающим событиям).
    Это все напоминает цепочку обязанностей)
    Код (Text):
    1.  
    2. interface EventInterface{
    3.  
    4.      //...some structure
    5.  
    6.     public function getName();
    7.  
    8. }
    9. interface ListenerInterface{
    10.  
    11.      //some structure, other setters
    12.  
    13.     public function isPreferredEvent(EventInterface $event);
    14.     public function __invoke(EventProcess $ep, ListenerProcess $lp);
    15. }
    16. abstract class Listener implements ListenerInterface{
    17.      // abstraction
    18.     /** @var   string[] */
    19.     protected $preferred_event = [];
    20.    
    21.  
    22.     public function isPreferredEvent(EventInterface $e){
    23.          return in_array($e->getName(),$this->preferred_events,true);
    24.     }
    25. }
    26. class ExceptionListener extends Listener{
    27.       protected $_handler;
    28.       public function __construct($event,$handler){
    29.           $this->preferred_event = !is_array($event)?[$event]:$event;
    30.           $this->setHandler($handler);
    31.       }
    32.       public function setHandler(callable $handler){
    33.             $this->handler = $handler;
    34.       }
    35.       public function __invoke(EventProcess $ep, ListenerProcess $lp){
    36.             if($this->handler){call_user_func($this->handler,$ep,$lp);}
    37.       }
    38. }
    39.  
    40. abstract class ExceptionEvent extends \Exception implements EventInterface{
    41.      public function getName(){
    42.            return 'e:'.get_class($this);
    43.      }
    44. }
    45. class SimpleExceptionEvent extends ExceptionEvent{
    46.      
    47. }
    48. class ExceptionEventManager{
    49.     protected $_listeners = [];
    50.     public function setListeners(array $listeners){
    51.             $this->_listeners = $listeners;
    52.             return $this;
    53.     }
    54.     public function __invoke(\Exception $e){
    55.            if($e instanceof ExceptionEvent){
    56.                   // call listeners collection
    57.            }
    58.     }
    59.  
    60. }
    61. $manager = new ExceptionEventmanager();
    62. $manager->setListeners([
    63. (new ExceptionListener('e:blabla1',function(){  throw new SimpleExceptionEvent('blabla2',$example_data); })),
    64. (new ExceptionListener('e:blabla2',function(){  throw new SimpleExceptionEvent('blabla3',$example_data); }))
    65. ]);
    66. set_exception_handler($manager);
    67.  
    68. // other code
    69. throw new SimpleExceptionEvent('blabla2',['info' => 'MOE DATA']);
    сорри за оффтоп

    Здесь на лицо, гибрид. К слову таких вод возможностей скрестить достаточно много)
    Сам я разрабатываю почти все с нуля, я стараюсь не пользоваться либами-обертками, за все практики и время я написал достаточно компонентов, и бывают случаи что отдельные по смыслу и тематике компоненты , по реализации и по структуре похожи - а с виду и не скажешь
    например: сравните ABAC(https://habrahabr.ru/company/custis/blog/258861/#obligation) и Конечный Автомат(РВ) (https://habrahabr.ru/post/166777/)
     
    #97 Kutuz, 13 апр 2016
    Последнее редактирование: 13 апр 2016
  23. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Это была шутка...
     
  24. Basilio

    Basilio Случайный прохожий

    С нами с:
    6 апр 2016
    Сообщения:
    191
    Симпатии:
    54
    В каждой шутке есть доля шутки. ;)