• Как организовать приложение?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Если мы говорим только о том как сказать приложению что что-то случилось, например пришла какая-то нотификашка, то тут проще всего использовать события через $rootScope.

    Насильно пихать изменения с сервера на клиент не очень удачная идея, лучше уведомить о том что что-то случилось а потом просто забрать данные запросом с клиента. То как вы организуете иерархию событий это уже ваше дело, это дело бэкэнда. Скажем событие вида ProjectUpdated не имеет смысла, так как не характеризует это событие. А вот MemberJoined это уже норм, можно наследовать по сути от ProjectUpdated и таким образом создавать какую-то иерархию. Но двух событий на одно действие действительно быть не должно, просто события должны быть осмысленными.

    На клиент можно передавать просто событие, и добавлять его тип. Тогда листенер будет один а потом это все будет как-то разруливаться в приложении.

    Ну и да, в идеале ваше приложение должно мало чего знать о том как работать с socket-io и как у вас вообще происходит взаимодействие с сервером, то есть все что всязано с отправкой/получением данных стоит инкапсулировать в сервисы.

    Далее без конкретики сложно.
    Ответ написан
    3 комментария
  • Где найти уроки по Ruby on Rails?

    Jeiwan
    @Jeiwan
    www.rusrails.ru (или guides.rubyonrails.org) – этого начинающему хватит на долгое-долгое время. Конкретно по работе с БД — раздел "2. Модели".
    После освоения основ можно переходить к https://www.railstutorial.org/book, https://pragprog.com/book/rails4/agile-web-develop... и ко всему, что выдает гугл по запросам "ruby on rails tutorial", "ruby on rails book" и т. п.
    На сайте https://mkdev.me/ можно скачать бесплатную книгу-путеводитель по разработке на Рельсах. А ещё сайт предлагает услуги менторства, что очень полезно.
    После прохождения пары десятков туториалов и обретения навыка самостоятельной разработки небольших приложений можно записаться на отличный курс – www.thinknetica.com, а после него уже можно будет устраиваться на работу, а там уже... там уже, собственно, всё только и начнется.
    Ответ написан
    2 комментария
  • В чем выражается удобство разработки на ROR?

    Jeiwan
    @Jeiwan
    Во-первых, Рельсы — это просто Руби. Все достоинства Рельс вытекают из достоинств Рубей. У Руби довольно хороший АПИ, в котором присутствуют решения для большинства программистских рутинных задач — это очень удобно.
    Во-вторых, Рельсы — это набор хорошо спроектированных гемов. Не нравится что-то? Можешь выкинуть или заменить. Никто не заставляет использовать все компоненты Рельс.
    В-третьих, Рельсы — это хороший пример возможностей ООП Рубей.
    В-четвертых, convention over configuration. Новички называют это магией, но для более-менее опытного руби-программиста в этом нет никакой магии. И благодаря этому подходу, опять же, удалось избавить программиста от постоянного рутинного выполнения одних и тех же, "операционных", задач. Другой пример, демонстрирующий этот принцип, — Backbone и Angular: в Бэкбоне нужно много рутинных задач решать (даже не решать, так как это примитивные задачи, а просто каждый раз прописывать их) самому, а в Англуяре эти задачи уже решены.
    В-пятых, Рельсы — вполне зрелый инструмент решения задач веб-разработки. Он уже давно вышел из хипстерской стадии, и вместе с этим ушло большое количество людей, которых привлекают только модные, находящиеся у всех на слуху, технологии. Рельсы (как и Руби) до сих пор развиваются и не собираются умирать.
    В-шестых, эстетика и лаконичность Руби. Лично я не вижу никакого смысла в излишних кавычка, скобках, точках с запятой. Не за чем визуально засорять код второстепенными элементами. Языки программирования постепенно становятся более социальными, более доступным людям — и это правильно.

    Но это всё дело вкуса, в большей степени. У вас уже сложилось свое видение языков программирования, вам теперь кажется, что отсутствие типов — это недостаток. Лично я считаю, что это неправильно. Это такая же ситуация, как когда ты начинаешь чем-то заниматься (играть на гитаре, например) и изначально делаешь что-то неправильно (постановка пальцев), то у тебя эта вредная привычка закрепляется и потом мешает дальше развиваться. Тебе трудно становится переучиться на другое, так как ты уже сильно привык к этому, неправильному, способу. Я не говорю о том, что строгая типизация это неправильно, нет, дело в другом. Есть разные парадигмы программирования, есть разные подходы к программированию, и хороший программист должен владеть ими (ну или стремиться к этому) и не ставить какой-то из них во главу угла. Главное, не какой язык, а что на нем можно делать, какие задачи решать.
    Ответ написан
    Комментировать