Задать вопрос
  • Объясните простыми словами как работает 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 комментариев
  • Для совсем новичка в программировании php или ruby?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    У вас вся проблема вообще не в том месте.
    Стартап - это бизнес идея. Код сайта для групона - вообще самая мелкая вещь в вашем проекте, и ее можно просто взять и заказать у кого-нибудь под ключ. А вот договориться с клиентами, которые будут через вас продавать свои товары со скидкой - это вообще не айтишный вопрос.
    Если вы думаете, что наклепать сайт и на этом все - вы жестоко ошибаетесь.

    p.s. сам пытался подобный проект провернуть, но конкуренты были слишком жесткие. И собственно сам сайт - это реально самое мелкая проблема.
    Ответ написан
    2 комментария
  • Crystal, Elixir, Golang. Куда ехать рельсовику?

    @malroc
    Я честно говоря его пока не вижу, этого "будущего мэйнстрима".
    Ясно что Ruby on Rails потихоньку устаревает.
    Почти весь мэйнстримный вспомогательный инструментарий сейчас разрабатывается под Node.js: gulp, bower, babel, postcss (ещё не мэйнстрим но видимо будет). Опять же почти весь вспомогательный инструментарий RoR, который когда-то был либо мэйнстримом (SCSS, Compass), либо задавал тон в индустрии (Sporckets, Coffeescript) сейчас начинают выглядеть анахронизмом на фоне тех же gulp, postcss и babel + ES6. То есть по части инструментария однозначно рулит Node.js. Но это инструментарий.
    В ту же копилку вэбсокеты, по части которых нода - эаталон, а RoR всё никак их толком не внедрит (вроде в 5 версии хотят). Есть Faye, штука неплохая, но слишком заметно что чужеродная для RoR.
    Ещё один плюс ноды - возможность изоморфного рендернига контента для SPA. Но тут уже вопрос в языке, понятно что ни на чём другом кроме JS это не реализуешь.
    В общем RoR конечно большинство основных новых веяний в индустрии благополучно прозевал и постепенно превращается в резервацию со своей атмосферой. Нода на передовой НО только по всякой вспомогательной части, сопоставимого по масштабу фреймворка на ней как не было, так и нет.
    Всё остальное (Go и т.д.) ещё настолько сыро, что даже обсуждать по-моему нечего.
    Ответ написан
  • Возможно ли изучение Рельсов, без знаний Ruby?

    Freika
    @Freika
    Senior Ruby on Rails developer
    Возможно.
    Но:
    1. Будет трудно ("что это за хреновина?")
    2. Учить все равно придется ("Так, а это что за хреновина?")
    Ответ написан
    Комментировать
  • Как и куда в ES6 засунуть propTypes будет правильно?

    class SomeComponent extends React.Component {
        ...
    }
    
    SomeComponent.propTypes = {
      data: React.PropTypes.object.isRequired
    }
    Ответ написан
    Комментировать
  • Как в Rails при запросе .group().count показывать только количество?

    premas
    @premas
    Full-stack web-developer
    Что значит как решить? В коде
    Subscriber.all.count => 7
    возвращается абсолютное количество, а в коде
    Subscriber.group(:id).count => {12=>1, 13=>1}
    Сгрупированное по полю id.
    Какой еще результат вы хотите увидеть?
    Ответ написан
    5 комментариев
  • Как получить state из другого компонента в React.js?

    Если не придерживаться flux архитектуры то так:
    var Comp1 = React.createClass({
    //code
    render: function() {
        return (
            <div>
             <Comp2 data={this.state.data} />
            </div>
        );
      }
    });
    var Comp2 = React.createClass({
      render: function() {
        return (
            var fromOne = this.props.data;
            <div>
              {fromOne}
            </div>
        );
      }
    });

    А если придерживаться flux-са то вам нужен Dispatcher и Store. При получение данных с сервера вы передаете данные в хранилище при помощи Dispatcher, после этого хранилище говорит что данные изменились, а в компонентах вы ставите прослушку на изменение данных. И как только произошло изменение, вы берете свежие данные из хранилища и уже делаете с ними что хотите.
    Ответ написан
    4 комментария
  • Почему не все серверы пишутся на Node js?

    un1t
    @un1t
    Язык "на любителя", если не сказать грубее, платформа сырая, библиотек мало, фреймворков полноценных нет, производительность низкая. Писать асинхронную лапшу на js удовольствие сомнительное, специальных средств поддерживающих асинхронность в языке нет. Единственный плюс ноды, что на ней хорошо собирать статику - всякие гранты, галпы, но это для верстальщиков больше чем для разработчиков. Я вот наоборот не понимаю мотивацию людей, которые пишут на ноде веб проекты. Нода подходит только для написания промежуточных звеньев между бакендом и фронтэндом, которая особо ничего не далает и не имеет сложной логики, а только делает несколько запросов в бакенд и выдает их на фронт. И даже в этом случае я бы предпочел другое решение.
    Ответ написан
  • Как лучше реализовать авторизацию для большого проекта?

    premas
    @premas
    Full-stack web-developer
    Devise очень легко кастомизируется. Вообще никогда не было проблем с ним. И в модальное окно выводится, и аякс-авторизация легко делается, и авторизация через мобильные приложения без боли.

    Может перед тем как изобретать велосипед скажете, что именно не получается кастомизировать?
    Ответ написан
    3 комментария
  • Как правильно в Rails преобразовывать HTML в строку для JSON объекта?

    viktorvsk
    @viktorvsk
    Очень сложно что-то разобрать, конечно. А что должно находиться в ключе files, мой мозг, лично, за 2 минуты скомпилировать не смог.

    Разбейте "рефакторинг", если это можно так назвать, на такие шаги:
    1. Забейте на HTML партиал
    2. Вместо того, что б собирать текстовый JSON вручную во вьюхе, соберите руби-хэш в контроллере и вызовите на нем to_json. Например:
    def my_action
      res = {
        description: @homework.description,
        ...
        html_id: "homework#{@homework.id}"
      }
      res[:tag] = @homework.subject_id if @homework.subject_id
    end

    3. Добейтесь, что б res.to_json выдавал необходимый результат.
    4-а. Почитайте про each_with_index
    4-б. Почитайте про Rails Rendering Collections, пункт 3.4.5
    4. Допишите и добейтесь, что б работало:
    res[:files] = render @homework.attachments
    5. В идеале, засуньте это все в модель. Например, переопределите для Homework метод to_json. Отличие будет только в том, что render нужно будет вызывать как-то типа ActionController::Base.new.render(...)
    Ответ написан
    1 комментарий
  • Какой выбрать ЯП для быстрого изучения (1-2 месяца)?

    @anelyubin
    Что-то долго собираетесь учить. Вот здесь почитайте, за 24 часа C++ освоите: www.williamspublishing.com/Books/978-5-8459-0949-7.html

    Ладно-ладно, прекращаю стебаться. Если по делу, то надо сначала понимать, какие знания у вас есть в базе, чем хотите заниматься, а потом уже советовать. А вообще, говоря, на свой, извиняюсь, дурацкий вопрос получите только дурацкие ответы.
    Ответ написан
    1 комментарий
  • Где разместить класс описывающий исключение?

    viktorvsk
    @viktorvsk
    Стандарта нет.
    Вот так делают в рельсах, например:
    https://github.com/rails/rails/blob/master/activer...

    Я бы, если ошибок немного, сначала добавил их в initializers. Если много - то уже добавил бы дополнительную директорию в автозагрузку (app/errors/) и по неймспейсам разделял
    Ответ написан
    1 комментарий
  • Как правильно задать отступы haml-rails?

    @fuCtor
    Ruby разработчик
    У Haml строгая иерархия, поэтому последний div либо должен быть вложен во все случаи, либо class должен быть рассчитан отдельно, например вот так:

    - klass = 'c3'
    - if condition1?
      - klass = 'c1'
    - elsif condition2?
      - klass = 'c2'
     
    
    %div{class: klass}
      %div
        Этот див вставлен в другой


    А вообще эту логику нужно вынести в идеале в helper.
    Ответ написан
    Комментировать
  • Как file_field_tag сохранить потом в carrierwave?

    MAXOPKA
    @MAXOPKA
    Должна быть ActiveRecord модель для файлов галереи. Например:
    # Галерея
    class Galery < ActiveRecord::Base
      has_many :photos
      accepts_nested_attributes_for :photos
    end
    #фотография
    class Photo < ActiveRecord::Base
      belongs_to :galery
      # монтирование загрузчика :file -имя поля модели, где будет храниться имя файла
      mount_uploader :file, FileUploader
    end
    # загрузчик
    class FileUploader < CarrierWave::Uploader::Base
      storage :file
      def store_dir
        "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
      end
    end

    HTML
    <%= form_for @galery do |galery_form| %>
      <!-- такие то поля для галереи --->
      <%= galery_form.fields_for :photos, @photos do |photo_fields| %>
        Изображение: <%= photo_fields.file_field :file %>
      <% end %>
    <% end %>

    @photos - коллекция созданных моделей в экшене new
    Ответ написан
    Комментировать
  • Как подружить backup и fog?

    @sunnmas Автор вопроса
    Ruby
    Да, он установился, но первые попытки его использовать окончились ошибками:271c52cc15254842b2944a64a77d8a9d.png

    Но потом я стал понимать суть проблемы:
    Backup is a system utility for Linux and Mac OS X, distributed as a RubyGem, that allows you to easily perform backup operations.
    Ответ написан
    Комментировать
  • Как сделать has_and_belongs_to_many с сортировкой?

    viktorvsk
    @viktorvsk
    Забыть про has_and_belongs_to_many
    Вместо него взять has_many through:
    Сделать модель ProductVideo, где будте position
    Ответ написан
    Комментировать
  • Как можно исправить сайт на ruby, который находится в хостинге?

    mainameiz
    @mainameiz
    Full-stack web-developer
    1) Делаете все тоже самое, только не забываете перезапустить ruby-сервер (unicorn, puma или что там у вас), потому что руби в отличие от php только один раз загружает все файлы приложения.
    2) Отрываете себе руки за то что сделали.
    3) PROFIT
    Ответ написан
    Комментировать
  • Как лучше связывать данные в таблицах?

    viktorvsk
    @viktorvsk
    Полиморфическая связь
    Гемы для комментов
    Или еще - awesome-ruby.com

    Подводные камни в том, что вскоре захочется комменты для разных сущностей иметь.
    Ответ написан
    1 комментарий
  • Кто может дистанционно помочь с изучением программирования?

    barmaley_exe
    @barmaley_exe
    Идите делать уже!

    Вам не нужен такой человек, потому что есть альтернативные источники получения информации, которые гораздо лучше по всем параметрам. Да, я говорю о Тостере и других StackOverflow-подобных ресурсах

    0. Бесплатно. Чтобы заинтересовать по-настоящему крутого специалиста Ваше ценовое предложение должно быть очень и очень велико по очевидным причинам. Если же он хочет помогать Вам из альтруистических соображений, но непонятно, чем Вы лучше Пети из соседнего подъезда. Именно для такого рода помощи, сюрприз-сюрприз, и существуют StackOverflow-подобные ресурсы.
    1. Усреднением мнения нескольких людей можно побороть предвзятость и незнание одного конкретного человека.
    2. Если постоянно дёргать кого-то другого, этот кто-то научится, а Вы — нет. Нужно уметь находить ответы самостоятельно, не имея возможности кого-то спросить.
    3. Можно помогать другим участникам сообщества. Один из моих преподавателей когда-то в шутку сказал "Преподаю уже 10 лет — наконец-то сам начал понимать, что читаю". Как известно, в каждой шутке есть доля шутки, так что объяснение чего-либо кому-либо помогает Вам лучше разобраться в сути дела и структурировать собственные знания.

    Я уже распинался как-то раз на эту тему.

    Если Вам нужен начальный вектор, то вот:

    1. Язык — Python. Уже сейчас используется во всех мыслимых областях, обладает огромным сообществом и сравнительно несложен. Нынче, насколько я знаю, с него начинают обучение информатике в MIT. Потом, при желании, можно будет изучить ещё несколько. Изучение нового языка в пределах одной парадигмы не составляет труда.
    2. Если программирование для Вас область новая, то я бы посоветовал не окунаться сразу с головой в написание проекта, а начать с алгоритмических основ. Порешать задач на алгоритмы, научиться отлаживать код в голове. В результате будет проще думать о происходящем в дальнейшем.
    3. Написать таки какое-нибудь приложение. Проще всего сейчас целиться на веб, т.к. у нас есть браузеры с поддержкой хитрой разметки (HTML + CSS), позволяющей отобразить чуть ли не что угодно и не надо возиться с отрисовкой всего этого счастья. Тут нужно будет ознакомиться с HTML и CSS (чтобы приложение не выглядело как привет из 90-х, можно воспользоваться модными CSS фреймворками вроде Twitter Bootstrap), найти и овладеть каким-нибудь веб-фреймворком для выбранного языка (Например, Django для Python, но их очень много). На этой стадии должно быть много гугления, а в особо тяжких случаях — вопрошания на Тостере. Но не в обратном порядке!
    4. Программы обычно работают не в изолированной среде, а взаимодействуют с другими программами. Полезно знать, как это осуществляется. Для этого на более поздних этапах рекомендуется разобраться в, как минимум, сетях и операционных системах.
    Ответ написан
    8 комментариев