Задать вопрос
Профиль пользователя заблокирован сроком с 29 августа 2016 г. и навсегда по причине: Снова мат
  • Практика с AngularJS?

    copal
    @copal
    Сергей Протько: конечно нет... "абстрактные и приватные классы", "модификаторы доступа", "паттерны", "коллекции" и прочее - это не фундаментальные основы. архитектуру же обычно из выжатых гномов делаю. А я все о ерунде какой-то говорю.
  • Практика с AngularJS?

    copal
    @copal
    Сергей Протько: для меня слова "абстрактные и приватные классы", "модификаторы доступа", "паттерны", "коллекции" и прочее, как песня. Это для меня неизбежная архитектура. А вот функциональщина, это в моем понимание способ обработки-выполнения данных.
  • Практика с AngularJS?

    copal
    @copal
    Сергей Протько: я хочу игры делать и я не представляю, как это персонаж может быть не объектом. Для меня вполне нормально что объект имеет свойство, которое при необходимости можно менять, а не пересоздавать его заново. Для меня параллель с реальным миром, это хорошо, ведь если кто-то поменяет имя, то его не придется убивать и перерождать заново. Не логично это ведь.
  • Практика с AngularJS?

    copal
    @copal
    Сергей Протько: у меня есть определенная цель, достижение которой я не вижу без ооп, по этому я и зациклен на ооп, признаю, но поделать ничего не могу и не хочу.
  • Практика с AngularJS?

    copal
    @copal
    lega: Сергей Протько: сознаю что про инжектор и ооп я погорячился.
  • Практика с AngularJS?

    copal
    @copal
    Сергей Протько: я не буду оспаривать Ваше мнение относительно подходов программирования и взглядов, но вот по поводу что в реакте не нужны диспетчеры в компонентах... Ну вот пока его там нет я могу из кнопки send выполнить logout... Да можно сказать что при любом раскладе можно изменить... Но вот лично я предпочитаю розетки и выключатели в закрытых коробках, хотя при желании и туда можно гвоздь воткнуть...
    Возьмите и несколько дней не пользуйтесь инжектором из angular, вот тогда вы узнаете что ооп, это божественный дар.
  • Практика с AngularJS?

    copal
    @copal
    Сергей Протько:
    ну это уже проблема сервисного слоя а не UI-компонентов, нет?

    это проблема js-разработчиков, которые отвергают ооп и говорят что он избыточен. Вот по этому компоненты и не имеют собственного EventDispatcher, как должны. И именно единый инстенс EventDispatcher дает возможность делать любые изменения в коде из любого места. Но это js-разработчики считают хорошим подходом. Мастадонты видно не могут адаптироваться под современный мир и считают инстенсы там, где я только нажимаю кнопочку, говоря что создание Event инстенса не уместен и избыточен и приводит к замедлению всего приложения. В то время как в gamedev, где реально события фигачут в несколько десятков потоков, даже мысли об отказе от ооп отвергаются и караются. Есть над чем подумать, да?)
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Искренне хочу Вам посоветовать метеор и знаете почему? Потому что в нем mvc реализовано наиболее правильно и наиболее законченно. Но под капотом скрывается монстер.
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Вы представляете сколько будет кода после компиляции + модули из кода ниже ?
    import React from 'react';
    import {Component} from 'react';
    
    export default class HorizontalNavigation extends Component{
        constructor(props){
            super(props)
        }
    
        render(){
            return (
                <div>
                    <Panel>
                        <ButtonGroup>
                            <ButtonLink>
                                <Link>push mi</Link>
                            </ButtonLink>
                        </ButtonGroup>
                    </Panel>
                </div>
            );
        }
    }

    Будет больше сотни строк, а могло бы быть вот так
    <div>
        <ul>
            <li><a href=""></a></li>
        </ul>
    </div>

    Но почему-то Вы выбрали реакт..
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: ну это полный абсурд! Какие нафиг вычисления накладны? Сменить имя или сменить число, это накладно? Человек который считает создания события при нажатии на кнопку накладным, должен питаться спичечкой отламывая атомы за атомом от пищи.

    А имутабильность для чего? Я никогда ещё не сталкивался, чтобы мои код перекрывал друг-друга. Я даже представить себе такую ситуацию не могу, если конечно не писать рулон в одном файле СПЕЦИАЛЬНО.

    А Вы знаете что сам реакт реализует ооп парадигму, которая заставляет создать приметивное меню вот так -
    import React from 'react';
    import {Component} from 'react';
    
    export default class HorizontalNavigation extends Component{
        constructor(props){
            super(props)
        }
    
        render(){
            return (
                <div>
                    <Panel>
                        <ButtonGroup>
                            <ButtonLink>
                                <Link>push mi</Link>
                            </ButtonLink>
                        </ButtonGroup>
                    </Panel>
                </div>
            );
        }
    }


    import React from 'react';
    import {Component} from 'react';
    
    export default class Panel extends Component{
        constructor(props){
            super(props)
        }
    
        render(){
            return (
                <div className="panel">{this.props.children}</div>
            );
        }
    }


    import React from 'react';
    import {Component} from 'react';
    
    export default class ButtonLink extends Component{
        constructor(props){
            super(props)
        }
    
        render(){
            return (
                <li className="button-link">{this.props.children}</li>
            );
        }
    }


    import React from 'react';
    import {Component} from 'react';
    
    import Event from './../Event';
    
    
    export default class Link extends Component{
        constructor(props){
            super(props)
        }
    
        static propTypes = {
            link: React.PropTypes.string
        };
    
    
        a_clickHandler(event){
            event.preventDefault();
        }
    
        render(){
            return <a href={this.props.link} onClick={this.a_clickHandler}>{this.props.children}</a>;
        }
    }


    Вот после этого Вы говорите о мышином писке-функциональном подходе????
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: а где же тогда это имя хранится, если его нет? А если его уже присвоили, то значит есть способы присвоеть его ещё раз, иначе бы вселенная сколлапсировала бы.
    Где значение хранится?
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: то есть, функциональное программирование, это детский сад или повседневная рутина любого программиста. Единственно что не все наверное это знают...
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: приложение это дом, а архитектура приложения, это правила по которым строят дом. И вот значит у меня есть сложный алгоритм поднятия людей на лифте, который тоже реализован по стейт-машин с его множественными реле переключателями. И вот лифт в моем понятии, это не дом. У Вас разве не так?

    Функционально, это наверное вычисление количество операций требуемое для изменения графа-состояний...
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: и ещё, в презентациях говорят, что их подход всегда при одном и том же значении вернет один и тот же результат. А бывает иначе? Вы можете сделать метод объекта который будет принимать одно и тоже значение, а результаты отдавать разные?
    Вот путь он будет принимать n а возвращать return n+n и передавая туда сто раз 2, результат что будет меняться?
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: я понял, Вы не об архитектуре, а об способе обработки данных. Ведь стейт-машина не является архитектурой, это же способ обработки-вычисления-изменения состояния чего-либо. Ведь Вы же не скажите что стейт-машина, должна хранить картинки
    Но в мое понятии архитектуры очень легко вписывается стейт-машина. Я вообще не представляю как без нее можно жить. Но тем не менее это не архитектура.

    А ещё больше всего мне не нравится когда говорят что это не обектный подход а функциональный... В js нет функций, в ней только объекты. По этому согласитесь, что странно объекты называть функциями, а способ вычисления - архитектурой...
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: да я не ругаюсь, это Вам так почему-то кажется. Возможно читая мои слова Вы представляете конкретного человека, который, как видимо, на Вас орал. Нет, я даже не собираюсь об этом думать.
    Я просто не могу понять Вас... Какую документацию мне нужно читать и зачем? Правильно ли я понимаю, что мне нужно читать документацию к flux, чтобы узнать как это ноухао кто-то придумал, но в момент прочтеня забыть о том, что эту парадигму я узнал очень много лет назад и она во всех умных книжках по java архитектуре называется mvc?

    То есть Вы считает что если в доках о флакс написано что это не mvc, то это как мантра в которую нужно верить и всячески отвергать открывающих правду?
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: а в чем моя неадекватность? В том что я рассказал Вам о mvc скрывая названия, а после привел в подтверждение кусок статьи? Вы mvc называете flux и говорите что он лучше mvc...
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: Вы наверное если и слышали, то только о серверном mvc, у которого представление нет, да и то на сервере не mvc, а подобие ему.
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: ну я не знаю... Вы мне советуете оторваться от mvc и чето найти, а сами-то Вы о mvc что-нибудь читали? Вот с вики -
    Концепция MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента:

    Модель (англ. Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.
    Представление, вид (англ. View). Отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) с графическими элементами.
    Контроллер (англ. Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции.
    Важно отметить, что как представление, так и контроллер зависят от модели. Однако модель не зависит ни от представления, ни от контроллера. Тем самым достигается назначение такого разделения: оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели.

    Для реализации схемы Model-View-Controller используется достаточно большое число шаблонов проектирования (в зависимости от сложности архитектурного решения), основные из которых «наблюдатель», «стратегия», «компоновщик»[6].

    Наиболее типичная реализация отделяет вид от модели путем установления между ними протокола взаимодействия, используя аппарат событий (подписка/оповещение). При каждом изменении внутренних данных в модели она оповещает все зависящие от неё представления, и представление обновляется. Для этого используется шаблон «наблюдатель». При обработке реакции пользователя представление выбирает, в зависимости от нужной реакции, нужный контроллер, который обеспечит ту или иную связь с моделью. Для этого используется шаблон «стратегия», или вместо этого может быть модификация с использованием шаблона «команда». А для возможности однотипного обращения с подобъектами сложно-составного иерархического вида может использоваться шаблон «компоновщик». Кроме того, могут использоваться и другие шаблоны проектирования, например, «фабричный метод», который позволит задать по умолчанию тип контроллера для соответствующего вида.
  • Как правильно обновлять-перерендеревать компоненты?

    copal
    @copal Автор вопроса
    Андрей Антропов: и назовите мне другие архитектурные парадигмы на которых строят приложения?