Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (4)

Наибольший вклад в теги

Все теги (143)

Лучшие ответы пользователя

Все ответы (380)
  • Какие доводы в сторону react при сравнении с vue2?

    @grinat
    Если надумаешь мигрировать, то на реакте у тебя уйдет куча времени чтобы собрать стек как у вуе, просто у вуе по сути все из коробки, а там только функция render(). Тебе потребуется react, redux, mobx, redux-form, и еще искать нормальный router, а также привыкнуть к куче декораторов либо к лапше из коннекторов, чтобы все это подключить. Касательно экосистемы, если ты привык к element-ui, vuetify и т.п. штукам, то в реакте с этим беда, сообществу не до такого, в основном все заняты написанием различных вариации redux'a и роутера) Также есть огромная проблема с кодестайлом, каждый делает как знает, у каждого свой линтер и способ организации файлов, есть довольно странные, навроде атомика, есть проблема с jsx, если ты думаешь что будет как в вуе глянул на шаблон и все понятно, то черта с два, разработчики часто любят прятать кусочки jsx в самые неожиданные местах в компоненте, по самым разным причинам.

    Как по мне, если и выбирать, то между ангуляром2+ либо вуе, первый позволяет технично и грамотно писать в ооп стиле, второй просто удобен.
    А касательно архитектуры больших проектов, и сопутствующих сложностей, то это не от фреймворка зависит, а от подхода к разработке: архитектуры, кодейстайла, следование solid, dry, kiss
    Я вот щас к примеру в проекте работаю, на вуе, в проекте больше 40 модулей(имею в виду не npm модули, а те модули как в angular, nest, yii2, nuxt...), почти 200 общих компонентов(навроде тех что в element-ui), мультиязычность и т.п., единственная проблема, это шаблоны на puge(крайне неудобно форматировать их в питон стайле), а не html и то что проект долго собирается, нужно ждать пару минут. С производительностью нет проблем, собирается в чанки, которые подгружаюстся по мере надобности, что касается объема данных, то есть один кусок, где загружается json с данными размером в 60мб и с почти миллионом строк, вот с ним была проблема, а так в целом ноль проблем.
    Ответ написан
  • ООП в моём тестовом задании, code review?

    @grinat
    Это не ооп, ты просто собрал функции и засунул их в класс. Типа такого надо:
    class User (){
        construct ()
       save() {
           return ajax-запрос
       }
    }
    class List () {
      this._list = []
      consruct(id) {
      }
      addItem(user)
      render () {
          doucment.getElemntBy(id).innerHtml = ''
          this._list.forEach(user => {
             // добавление новой строки
         })
      }
       
      fetcList () {
         return аяк-запрос.then(users => {
            this._lsit = []
             users.forEachv(user => {
                 this.addItem(user)
            })
        })
       }
    }
    new Subsriber {
      action,
      cb
    }
    class Emitter {
        this._evts = []
        subsctibe(action, cb) {
           this.evts.push(new Subsriber (action, cb))
        }
        emit(action, value) {
            this.evts.forEach({action} => {
           if (act === action) {
               cb(value)
           }
         })
        }
    }
    class Form (){
      consruct(id, emmiter) {
        doucment.getElemntBy(id).addEventListener('sumbit', () => this.onSubmit)
      }
      addElement(elem) {
         this.elements.push(el)
       }
      onSubmit () {
          const user = new User()
          for (let elem of this.elements) {
              user[elem.name] = elem.value
         }
         user.save().then(добавленный юзер => {
               this.emmiter.emit('submit', user)
         })
      }
      }
    
      render () {
          doucment.getElemntBy(id).innerHtml = ''
          this.elements.forEach(elem => {
             doucment.getElemntBy(id).insertBefore(elem)
         })
      }
    }
    // инициализация этого говна
    const list = new List(listId)
    const emmiter = new Emiiter()
    const form = new Form(formId, emmiter)
    form.addElement(document.createElemnt('input'))
    
    // теперь отрисовка
    form.render()
    list.render()
    
    // подписываемся на события формы
    emmiter.subscribt('sumbit', user => {
        list.addItem(user)
        if (не грузим с сервера) {
          // перерисуем
             list.render()
        } else {
            // перерисуем
             list.fetchList().then(() => ist.render())
         }
    })
    Ответ написан
  • Как выстроить архитектуру приложения?

    @grinat
    И нафига тебе рест на го для этого?) Исходя из тз, даже просто html файлов хватит. Гоу он для чего-то высоконагруженного, а не потому что модно, он с orm будет работать по скорости на уровне какого-нить пэхэпэ, потому что к примеру они все делают мэпинг, тянуть рэлейшены и т.п. через рефлекты, разные костыли . Вот если тебе надо выдрать из бд миллион записей и сотворить с ними страшные и жуткие вещи, то тут го раскроется.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (2)