• Доклад/видео о react js?

    miraage
    @miraage
    Старый прогер
    React - библиотека для рендеринга.
    Разумеется, что он должен использоваться в связке с другими библиотеками.
    Мой фаворит - Redux. Еще есть Flux.
    Ответ написан
    Комментировать
  • Что будет с SPA в таком случае?

    @WapGeaR
    Программист
    Ну смотря как reducer сделан.

    Если вкратце - он запишет данные при получении, туда, куда вы указали.
    Ответ написан
    3 комментария
  • Дает ли большую пользу серверный рендеринг React?

    @vsuhachev
    Дает возможность не дублировать код, если нужно отдавать поисковикам контент, который рендерится через react. Если у вас только корзина на react то вам оно ненужно, если весь магазин - тогда желательно, если хотите быть проиндексированным.
    Ответ написан
    Комментировать
  • Зачем нужен Redux?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Погуглите "Event Sourcing". Тут та же идея, только Event Sourcing это только управление состоянием (тобиш модель) а Flux - это MVC + Event Sourcing. А Redux это Flux + single source of truth.

    Если у вас нет по сотне состояний на скрин, вам это все не очень то надо. А вот если отслеживать состояния боль - то вот такие штуки спасают.
    Ответ написан
  • Стоит ли переходить с Angular 1.x на React?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    добиться изоморфности на нем можно только через PhantomJS.


    Не только, если вы погуглите, там было масса попыток прикрутить virtualdom и т.д. но все это кастыли.

    они пихают контроллеры и модели прямо во вьюхи

    Там как бы... нет ни моделей ни контроллеров. Компоненты реакта это чисто view. Данные должны приходить туда извне.

    А если вы один их тех, кого сильно смущает наличие HTML в JS файле - ну... попробуйте как-то успокоиться и понять что важно, что есть разделение на шаблоны и логику, а то что все в одном файле - это детали. Лично я так и в Angular делаю и мне это кажется весьма удобным.

    это 500 кб кода + JQuery

    jQuery вам зачем? Там же virtual dom, jquery вообще не нужен. Ради HTTP? есть отдельные библиотечки. Опять же вы можете компоненты ангуляра второго использовать.

    На Angular 2 не смотрел, просто не успел, но слышал, что он тоже может server-render.


    Да может, более того проще чем с React (ну как минимум за счет того что все готово и заточено под инфраструктуру ангуляра, а реакт все готовят как хотят).

    еще смотрел Ember, но он мне кажется тем же Angular 1.x

    Ember пожалуй лучший из этой тройки, но вокруг него мало шумихи... а стало быть и комьюнити меньше, зато у них вообще нет никаких проблем с процессами и инфраструктурой.
    Ответ написан
    Комментировать
  • Кто может поделиться простой сборкой старткитом под react es6+browserify\webpact etc?

    Laiff
    @Laiff
    Front-end developer
    Считается лучшим для старта с горячей заменой используется react redux router webpack etc...
    https://github.com/erikras/react-redux-universal-h...
    Активное комьюнити у проекта
    Ответ написан
    Комментировать
  • Как начать путь кибернетика?

    valerium
    @valerium
    Изобретая велосипед
    Во-первых, поступите в любой вуз на специальность «вычислительная техника и программирование» или любую смежную. Это самое простое и очевидное начало. Позволит погрузиться в тему и получить общие знания (включая очень важные фундаментальные знания в математике).

    Во-вторых, осознайте, что «минимум сухой теории» и «сложные технические задачи» — это взаимоисключающие параграфы. Либо хавать теорию огромной ложкой за обе щеки, либо быдлокодить скриптики на PHP (без претензий к самому PHP, просто как пример). Инженер в первую очередь решает задачу, а не использует инструмент. Можно быть виртуозом гаечного ключа и отвёртки, но чтобы спроектировать автомобиль, этого мало.

    Ну и в-третьих, определитесь с задачей, которая интересна, и под неё выбирайте инструменты. Для десктопных приложений в моде C#, нестареющей классикой считается C++, имеет множество преимуществ Java и её производные вроде Scala (это к вопросу блокнот с анимацией). Для работы с текстами (составление компиляций) неплохо подходят скриптовые языки, вроде Python, Ruby, JavaScript, Perl.

    И в-четвёртых, больше никогда не говорите, что HTML и CSS — это программирование. Это вёрстка, она к программированию имеет очень мало отношения. Но раз Вы кое-что в этом понимаете, попробуйте начать с изучения JavaScript, как раз умение верстать и понимание DOM пригодятся. И инструменты знакомые.
    Ответ написан
    Комментировать
  • Какой принцип работы LESS? Каким образом получается CSS на выходе?

    @timfcsm
    XMLHttpRequest ответ всему... отправляем запрос, в ответ получаем текст из файла - парсим, лепим из этого CSS - вставляем в head в теге style
    Ответ написан
    3 комментария
  • Что написать в почасовой ставке в профиле на Upwork?

    edli007
    @edli007
    full stack, team lead
    middle разработчик получает от 10 долл. в час
    Ответ написан
  • Какой фреймворк выбрать для интернет-магазина?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Почитайте про reactjs и redux (reactjs наиболее четко описывает суть компонентов а redux описывает как вообще все это работает в сборе). Какой именно фреймворк или решение вы выберите роли особо не играет, так как почти все приходят к схеме описываемой redux (с минимальными отличиями и изменениями).

    Скажем тот же angular2. На самом деле он не сильно отличается от 1-ой версии, если вы следили за развитием идей и т.д. Скажем компоненты, их форсят во втором ангуляре (а так же в reactjs), но использовать этот подход без боли можно было уже с angular 1.3. Сейчас с angular 1.5 все еще проще. Есть компоненты (как отдельная сущность поверх директив, для angular 1.3-1.4 есть полифил), есть декораторы для компонентов (директивы расширяющие поведение компонентов). Главное не пользоваться контроллерами как независимой сущностью (ну разве что только для ресолва состояний и проброса в компоненты), а внутри компонентов не дергать сервисы для получения состояния (хотя есть опять же исключения).

    далее, ни react ни angular из коробки не предоставляют вам ничего для организации вашего приложения. То есть, штуки типа контейнеров зависимостей и базовые какие-то вещи вроде ангуляровских инфраструктурных сервисов не в счет. У вас полная свобода действий. Хотите мутите нормальный сервисный слой, хотите - практикуйте идеи redux с одним общим состоянием приложения и деревом редьюсеров прокидывающие части состояний по компонентам...

    Словом... все на самом деле не так сильно различается. Оно только кажется так, а идеи сейчас идут примерно одни у теже у всех. Декларативный UI, независимые компоненты, функциональщина...
    Ответ написан
    Комментировать
  • Как на Ассемблере наиболее простым методом вывести хоть что-то в консоль?

    @nirvimel
    Для начала вам надо определиться под какую архитектуру процессора и под какую ОС вы пишите. 16-битный код для DOS (похоже вы это имели в виду в своем примере) будет собираться и работать под Windows, но это не будет Windows-приложением.

    Тут представлены примеры хеллоу-вордов под разные ОС. Несмотря на то, что транслятор другой, несложно переписать под tasm.
    Ответ написан
    4 комментария
  • Сравнение времени в строковых переменных на JS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    не решение. но намек на него

    function timeToDate(time) {
        var chunks = time.split(':');
        var date = new Date();
        date.setHours(Number(chunks[0]));
        date.setMinutes(Number(chinks[1]));
    
        return date;
    }


    еще можно moment.js использовать.
    Ответ написан
    Комментировать
  • Как лучше построить модуль Транзакции в symfony?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    0) Никаких TransactionBundle. Вы эту логику не сможете реюзать, а значит нет смысла делать бандл. Почитайте symfony best practice. У вас должен быть один AppBundle и все, больше ничего. Вы можете пытаться выносить какие-то части инфраструктуры, которая не привязана к бизнес логике в отдельные бандлы для последующего реюза, но бизнес логику приложения реюзать не выйдет.

    1) почитайте про event sourcing. Этот способ хранения данных идеален для платежных транзакций, собственно в банках и т.д. этот подход и используют десятилетиями, да даже та же база данных хранит лог транзакций.

    2) уберите flush их сервиса и вынесите его в контроллер. flush коммитит транзакцию в базу, и нам надо это делать когда мы завершили работу с оными а не "где-то посередине".

    3) оборачивать это добро в еще одну транзакцию глупо, потому что... доктрина и так сделает транзакцию. В любом случае по хорошему это надо делать в декораторе.

    4) call_user_func_array в вашем случае - пример плохого решения.

    5) по умолчанию persist использовать нужно только для тех сущностей, которые мы только что создали (в нашем случае - транзакция), либо тех которые мы явно вынули из unit of work (а у нас нет вызова $em->detach).

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

    7) сервисы менеджеры - отстой. Называйте сервисы нормально.

    8) вместо кучи сервисов можно ввести разные объекты транзакций. Например FundTransaction, IncomTransaction и т.д. У вас же в сервисах почти весь код дублируется. А так можно было бы всю логику с этими операциями сложить прямо в сущности.

    9) НИКАКИХ DIE! даже для дебага.

    public function transactionAction(Request $request)
    {
        $data = $request->request;
        $transactionDTO = new TransactionDTO(
             // вообще я бы тут просто ID пользователя возвращал... но я упорот по изоляции приложения от UI
             $this->get('security.token_storage')->getToken()->getUser(), 
             $data->get('sender_account_type'),
             $data->get('recipient_account_type'),
             $data->get('amount')
        );
        // с исключениями разберется фронт контроллер
        $this->get('app.transaction_processor')->process($transactionDTO);
        // вот теперь сохраняем изменения
        $this->get('doctrine.orm.entity_manager')->flush();
    
        return new Response(null, 201); // создали новую запись в журнале транзакций
    }


    class TransactionProcessor
    {
          private $transactionsRepository;      
    
          public function __construct(TransactionRepository $repository)
          {
               $this->transactionsRepository = $repository;
          }
    
          public function process(TransactionDTO $dto)
          {
                // create это статический метод фабрика у абстрактного класса Transaction
                // читать шаблон проектирования "абстрактная фабрика".
                $transaction = Transaction::create($dto->getSender(), $dto->getRecipient(), $dto->getAmount());
                
                $this->transactionsRepository->add($transaction);
          }
    }


    дальше мне по логике не понятно, почему у вас одна транзакция на двух человек, полюбому у sender-а будет один тип транзакции а у ресивера другой. Можно запомнить кому мы чего передавали и только.
    Ответ написан
    7 комментариев
  • Стоит ли уже писать js-скрипты на ECMAScript 2015+?

    @Y0Y
    Babel. Многие используют, не отказывайте себе в ES2015.
    Ответ написан
    Комментировать
  • Когда стоит использовать ReactJS?

    @WapGeaR
    Программист
    Используй как душе угодно, тем более если блог твой личный.
    А для интернет магазина то почему нет? Там много инфы, много компонентов - смело делай на реакте.
    Ответ написан
    Комментировать
  • Нужно ли при POST запросе делать reducer в redux'е?

    Laiff
    @Laiff
    Front-end developer
    Никита Гущин Верно заметил, про сохранение статуса, только уточню, что место для добавления вызовов это middleware, ибо в противном случае редьюсер будет иметь сайд-эффекты, которых иметь не должен.
    Например для отправки запросов может быть интересен этот мидл https://github.com/alanrubin/redux-simple-promise
    Так же для локализации всех сайд-эффектов есть очень интересный проект https://github.com/redux-effects/redux-effects , сейчас я им пользуюсь в своем проекте
    Ответ написан
    Комментировать
  • Angular 2.0 будет на JS или только на TypeScript?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    API для JS будет таким же как и для TypeScript (просто уберите типы), ES2015 же. Для ES5 angular тоже будет работать примерно с тем же API.
    Ответ написан
    Комментировать
  • Объясните простыми словами как работает Redux?

    Laiff
    @Laiff
    Front-end developer
    Отличный мануал от самого Дани https://egghead.io/series/getting-started-with-redux
    Документация переведенная на русский https://github.com/rajdee/redux-in-russian там почти все есть.
    Есть еще приятная статья на хабре чисто по базовым принципам, но в некоторых местах не полная habrahabr.ru/post/269831
    Ответ написан
    3 комментария
  • Бекенд для приложения на реакте. Какой он у вас?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    С каким бекендом Вы предпочитаете связывать свое приложение?


    Обычно REST/HTTP API/RPC прячут нюансы реализации бэкэнда. Так что без разницы, лишь бы апишка была удобная.

    Каков Ваш стек в этом плане?

    php, symfony2, postgresql. В любом случае разработчика SPA это волновать должно в последнюю очередь.

    Так же интересует выбор баз (MySql, MongoDB....)

    никогда не используйте mongodb как основное хранилище. Любая реляционная база на простых задачах (а на простых задачах nosql не нужен) будет проще и эффективнее. Говорю это основываясь на своем горьком опыте. Храните в mongodb агрегации денормализованных данных для ускорения выборок из реляционок. то есть в mongodb должны быть либо простые независимые данные (логи например) либо read-only данные.
    Ответ написан
    7 комментариев