Size: a a a

2020 October 26

AL

Andrey Listochkin in Frontend UA
Вообще мои имховые правила:

Имена файлов - kebab-case.
Все импорты только по относительным путям.
Классы - PascalCase, функции и переменные - camelCase

Абревиатуры в именах не капсом: encodedUrl, а не encodedURL

Короткие имена разрешены для локальных переменных в коротких предикатах:
products.filter(p => p.hasSkus)

Разрешается абревиировать имена, если в контексте понятно, что имя означает. Типа const xhr = new XMLHttpRequest()
источник

NL

Nikita Lyubchich in Frontend UA
Andrey Listochkin
Вообще мои имховые правила:

Имена файлов - kebab-case.
Все импорты только по относительным путям.
Классы - PascalCase, функции и переменные - camelCase

Абревиатуры в именах не капсом: encodedUrl, а не encodedURL

Короткие имена разрешены для локальных переменных в коротких предикатах:
products.filter(p => p.hasSkus)

Разрешается абревиировать имена, если в контексте понятно, что имя означает. Типа const xhr = new XMLHttpRequest()
А чего относительные пути а не абсолютные? Становится ведь сильно неудобно выносить разные функции и потом читать, откуда конкретный объект импортили
источник

SG

Stas G in Frontend UA
Ві тя
ребзя, а кто может поделиться Best Code practices документом для фронтенда? по неймингу переменньіх функций компонент и тд
источник

AR

Alexey Raspopov in Frontend UA
Andrey Listochkin
Вообще мои имховые правила:

Имена файлов - kebab-case.
Все импорты только по относительным путям.
Классы - PascalCase, функции и переменные - camelCase

Абревиатуры в именах не капсом: encodedUrl, а не encodedURL

Короткие имена разрешены для локальных переменных в коротких предикатах:
products.filter(p => p.hasSkus)

Разрешается абревиировать имена, если в контексте понятно, что имя означает. Типа const xhr = new XMLHttpRequest()
> Короткие имена разрешены для локальных переменных в коротких предикатах:
> products.filter(p => p.hasSkus)

THIS! как же меня триггерит от излишних деструктуризаций типа
products.filter(({ hasSkus }) => hasSkus)
источник

AL

Andrey Listochkin in Frontend UA
Alexey Raspopov
> Короткие имена разрешены для локальных переменных в коротких предикатах:
> products.filter(p => p.hasSkus)

THIS! как же меня триггерит от излишних деструктуризаций типа
products.filter(({ hasSkus }) => hasSkus)
А еще

products.filter(product => product.hasSkus)

Потом лови опечатки, где ты product, а где products написал.

Плюс за этим лесом из products product product вообще не видно, что блин вообще в коде делается.

Джавашня.
источник

Вт

Ві тя in Frontend UA
дякую
источник

AL

Andrey Listochkin in Frontend UA
Nikita Lyubchich
А чего относительные пути а не абсолютные? Становится ведь сильно неудобно выносить разные функции и потом читать, откуда конкретный объект импортили
1. Тебе похрен откуда функция - ты cmd-click - и попал туда, где она объявлена

2. Любая тулза понимает относительные пути. Тебе не надо настраивать какие-то волшебные переменные среды / настройки проекта, которые понимает, например Вебпак, но не понимает какой-нибудь линтер или какая-то среда разработки. Жизнь слишком коротка, чтоб заниматься такой херней.
источник

Вт

Ві тя in Frontend UA
Andrey Listochkin
1. Тебе похрен откуда функция - ты cmd-click - и попал туда, где она объявлена

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

AL

Andrey Listochkin in Frontend UA
Файлы кебаб-кесом, потому что люди сидят и на case-sensitive File Sytems, и на Case Insensitive. Все буквы маленькие - и весь этот кросплатформенный гемор пройдет мимо тебя.

Ну и тогда вопрос между - и _ в именах. Имена файлов - еще и урлы через file:/ или даже через http:// если я их сервлю каким-то сервером статическим. Подчеркивания в урлах смотрятся говенно (смотри урлы Википедии для примера). Поэтому kebab-case - самый разумный выбор
источник

E

Evgen in Frontend UA
Alexey Raspopov
> Короткие имена разрешены для локальных переменных в коротких предикатах:
> products.filter(p => p.hasSkus)

THIS! как же меня триггерит от излишних деструктуризаций типа
products.filter(({ hasSkus }) => hasSkus)
Чего триггерит-то?
источник

AR

Alexey Raspopov in Frontend UA
Nikita Lyubchich
А чего относительные пути а не абсолютные? Становится ведь сильно неудобно выносить разные функции и потом читать, откуда конкретный объект импортили
можно ещё весь код в одной папке держать, тогда относительные пути вообще не создают никаких проблем
источник

AR

Alexey Raspopov in Frontend UA
Evgen
Чего триггерит-то?
у каждой фичи есть стоимость. мне кажется эта фича слишком дорогая для такого маленького случая. попросту с ней получается, посимвольно, больше кода, а если нужно расширить условие то нужно вытягивать новые ключи. я просто не понимаю зачем лишний раз страдать
источник

NL

Nikita Lyubchich in Frontend UA
Ну я к тому, что мне на ревью как-то комфортнее читать import ololo from types/someDomain, чем ../../../someDomain
источник

AR

Alexey Raspopov in Frontend UA
я же и говорю, просто весь код в одной папке храни)
источник

AL

Andrey Listochkin in Frontend UA
Nikita Lyubchich
Ну я к тому, что мне на ревью как-то комфортнее читать import ololo from types/someDomain, чем ../../../someDomain
Я на ревью не читаю импорты. Зачем?
источник

AR

Alexey Raspopov in Frontend UA
Nikita Lyubchich
Ну я к тому, что мне на ревью как-то комфортнее читать import ololo from types/someDomain, чем ../../../someDomain
о, вот кстати чтобы я ещё дописал в бест практицес это “не создавать папки по типу кода: reducers, components, hooks, …”
источник

AL

Andrey Listochkin in Frontend UA
+100 к Леше
источник

NL

Nikita Lyubchich in Frontend UA
Andrey Listochkin
Я на ревью не читаю импорты. Зачем?
«так, вот тут у нас теперь новый набор редьюсеров, он будет тянуться с такого файла»
источник

AR

Alexey Raspopov in Frontend UA
а то потом одна маленькая фича одного домена размазывается по всему проекту
источник

NL

Nikita Lyubchich in Frontend UA
Alexey Raspopov
о, вот кстати чтобы я ещё дописал в бест практицес это “не создавать папки по типу кода: reducers, components, hooks, …”
Ладно, вот это уже неплохо. Ты за «все внутри одного модуля компонента»?
источник