Обновить
16K+
17
Andrew Ka@comerc

#кодеротбога

-9
Рейтинг
114
Подписчики
Отправить сообщение
Q: Is Gorilla a framework?
A: No, it is a toolkit. Just use what you need with your favorite framework or the http package.

http://www.gorillatoolkit.org/pkg/

При желании можно интерпретировать результаты опроса, что за прошедшие 10 лет уровень программистов вырос. :)

Прекрасная статья для начинающих и подоспела вовремя. Последние выходные мая — лучше не придумаешь, чтобы написать свое первое приложение на Go.

Большое спасибо. Внёс правки. Рассчитываю на вашу помощь в дальнейшем.

И странно, что про lerna ни слова.

Flow + tcomb заменяет prop-types, прибавляя возможностей.

Дополню свими изысканиями через боль по теме:


Организация компонентов в проекте


Ducks-pattern + redux-act


Альтернативный заманчивый путь mobx-state-tree

Пожалуйста, тыкните носом в contains — не знаю, о чем речь.

Есть прекрасный видео-курс для быстрого погружения в Redux — тынц


И еще вот это руководство перечитывал не один раз.

Пишите побольше о ReactNative!


Маленькая отсебятина. Можно существенно облегчить себе жизнь — быстрый старт на ReactNative.

"Не заставляйте меня думать" — как подписаться на поток "маркетинг"?

Ключевой вопрос "Зачем?" — не нашел ответа.

Про многословность я наверно преувеличил. Ниже пример практически построчного переноса сайд-эффекта из под redux-thunk на redux-saga. Посмотрите, пожалуйста, что тут можно улучшить?


redux-thunk
const save = () => (dispatch, getState) => {
  const clearPost = ({ searchHub, errors, isSubmitting, ...result }) => result
  const state = getState()
  const errors = {}
  Object.keys(validators).forEach(key => {
    const validate = validators[key]
    const error = validate(state.postForm[key], state)
    if (error) {
      errors[key] = error
    }
  })
  if (!isEmpty(errors)) {
    dispatch(setErrors(errors))
    dispatch(appActions.setMainError('Исправьте ошибки в форме'))
    return
  }
  if (state.app.mainError) {
    dispatch(appActions.setMainError())
  }
  dispatch(setSubmitting(true))
  axios
    .post('/post/', clearPost(state.postForm))
    .then(response => {
      const post = response.data
      dispatch(postsActions.setPost(post))
      dispatch(push(`/post/${post.id}/`))
    })
    .catch(error => {
      dispatch(appActions.setMainError(error.toString()))
    })
    .then(() => {
      dispatch(setSubmitting(false))
    })
}

redux-saga
function* saveSaga(action) {
  const clearPost = ({ searchHub, errors, isSubmitting, ...result }) => result
  const state = yield select()
  const errors = {}
  Object.keys(validators).forEach(key => {
    const validate = validators[key]
    const error = validate(state.postForm[key], state)
    if (error) {
      errors[key] = error
    }
  })
  if (!isEmpty(errors)) {
    yield put(setErrors(errors))
    yield put(appActions.setMainError('Исправьте ошибки в форме'))
    return
  }
  if (state.app.mainError) {
    yield put(appActions.setMainError())
  }
  yield put(setSubmitting(true))
  try {
    const response = yield call(axios.post, '/post/', clearPost(state.postForm))
    const post = response.data
    yield put(postsActions.setPost(post))
    yield put(push(`/post/${post.id}/`))
  } catch (error) {
    yield put(appActions.setMainError(error.toString()))
  } finally {
    yield put(setSubmitting(false))
  }
}

Удобство разработки — странная штука. Развесистый IDE позволяет чрезмерно усложнять структуру проекта. Как я плевался от WebStorm после Atom. И как я ныне счастлив на VSCode после WebStorm.

Зато на собеседованиях любят эти глупости :)

По генераторам штудирую: раз, два.


Кстати, зачем в коде *, я такого раньше не видел:


var ids = {
  *[Symbol.iterator]: function () {
    var index = 0;

    return {
      next: function () {
        return { value: 'id-' + index++, done: false };
      }
    };
  }
};

По сагам что нашёл интересного: раз, два, три, четыре, пять.


Посмотрел на официальный пример и загрустил — как-то слишком многословно. Может есть какие-то улучшайзеры?

Для меня необ'яснимая загадка, чем не нравится coffescript подавляющему большинству

Добавил вариант с рекурсией — намного хуже, чем перебор.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность