Этот пост посвящен стилям кодирования. Мы много говорим о функциональном и декларативном программировании, поэтому пришло время изучить синтаксис, подобный LISP, но с меньшим количеством скобок (он же JavaScript).

Мы можем импортировать модуль целиком:

import obj1 from 'module';

И тогда, если модуль с несколькими экспортами, мы можем обратиться к одному из них:

const a1 = obj1.some();

Однако мы можем использовать деструктуризацию объекта ES6 для импорта только этого подобъекта:

import { some } from 'module';
const a1 = some();

Однако что произойдет, если мы захотим импортировать больше объектов из одного модуля. Например:

import { FETCH_MESSAGES_FETCHING, FETCH_MESSAGES_SUCCESS, FETCH_MESSAGES_FAILURE,} from ‘actions’;

(Да, это очень распространенный шаблон предложения импорта в Redux, особенно при выполнении асинхронного потока)

Итак, на данный момент у меня есть два способа решить эту проблему:

  1. Избегайте использования деструктуризации объектов. Это означает писать «действия» везде, где появляются объекты.
  2. Многострочный импорт.

Я не собираюсь обсуждать, какой вариант выбрать. Этот пост просто предлагает стиль кодирования, если вы выберете 2.

Это мои варианты для этого

Сравним оба стиля:

  • Вариант 1 более читабелен
  • Вариант 1 более удобен для git
  • Вариант 1 имеет постоянный отступ (в строке 10 9 пробелов для отступа?!)
  • Вариант 2 занимает меньше места

Ясно, что победителем является вариант 1. Но что происходит, когда импорта больше:

Здесь я не уверен, что вариант 1 все еще является победителем:

  • Вариант 1 все же красивее
  • В варианте 2 все импорты выровнены, а также все источники (имя модуля).

Я предпочитаю второй, менее красивый, но более чистый.