-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LINT: Resolve import-order/experimental (Need your feedback!) #85
Comments
@feature-sliced/core @feature-sliced/contributors please, leave your feedback |
В первом варианте мне нравится что порядок слоёв такой, какой должен быть по методологии. Однако нет разделения групп, это достаточно удобная опция, по крайней мере для меня |
Плюсую разделение групп, как стандарт |
В рамках своего предложения Я говорю о такого рода разделении (чтобы не было недопонимания):
|
но вроде как некоторые топят за такой вариант. в целом Я тоже не против такого
|
Поменял порядок, а то многие путают) Еще раз:👍 - за экспериментальный конфиг как стейбл |
Писал в треде, продублирую и сюда TL;DR - считаю второй вариант нелогичным, а путь В своих проектах я использую порядок
Обратный порядок же превратит импорты в лютую кашу. import axios from 'axios' // Самый топ-левел (Возьмём его за 0)
import { Foo } from '@/widgets/foo' // Виджеты (4)
import { Bar } from '@/features/bar' // Фичи (3)
import { Bar } from '@/entities/baz' // Сущности (2)
import { Button } from '@/shared/ui' // Shared (1)
import { Smth } from './ui/Smth' // Локальное от страницы (5) И шо это за дичь?)) Как с американским форматом дат история выходит. Кому-то привычно, но для остальных - диссонанс. Более того, мне не ясно, почему в методологии вообще сложился путь от app к shared. Такое направление с семантической точки зрения некорректно, потому что ты импортируешь из shared в сущности итд, а не наоборот. Если уж хочется - то можно это сделать опцией, но лично я категорически против принимать |
Упрощаю тезис @Kelin2025: импорты сортируются от глобальных к локальным, то есть блок импортов из слоёв должен быть отсортирован от shared к app, не наоборот. |
Разделение импортов из слоёв по блокам - вопрос специфичный для конкретного проекта. На многих проектах в начале жизненного пути ещё нет портянок по 100 строк импортов и 1000 строк jsx, сортировать и разделять там почти нечего. |
Как ты заметил "в начале проекта". Мы же нацелены на тот, чтобы методология помогала на комплексных проектах, в том числе В то время как разбивка не мешает на на небольшом количестве импортов, на больших она приносит свою пользу |
Оч спорно)
Но это не значит, что линтер должен халтурно обрабатывать на средних 🤔 |
Да просто сделайте дополнительную опцию - с пробелами и без. |
Также мне не нравятся названия "base/experimental". Как будто бы второе - что-то нестабильное, нерекомендованное, притом что объективно выглядит более логичным. |
И на каждую доп.опцию - по доп. конфигу, угу))
Опрос потому и нужен, чтобы зафиксировать что-то одно за "рекомендованное" 🤔 Т.е. буквально нужна БАЗА, которая была бы для ~большинства приверженцев FSD - была бы логичной и последовательной
Ну вот без обид, но это мнение конкретно тебя, а нужно в целом смотреть на картину, люди разные) |
Причем хочется решить это до условного офиц.релиза линтера, чтобы люди не офигевали от выбора всевозможных разных конфигов и просто юзали готовое |
Мб @Krakazybik еще что скажет |
Речь вроде всего о двух.
Какой формат дат рекомендованный - российский или американский?
"Объективно" я написал потому, что оно соблюдает общий порядок. И этот порядок является негласным стандартом во всей разработке (third-partty first -> internal below). Не только во фронте причём. |
Если бы была возможность как-то настраивать конфиг через какие-либо аргументы - у нас бы отпало наверное 80% проблем. И это сейчас самая большая боль. К сведению, пока-что данная опция - это х2 к числу конфигов. Если есть сведения, как это сделать, какой-то магией передать туда аргументы, то очень прошу поделиться.
На данном этапе - он рили эксперементальный. И был добавлен для ресёрча, опытов.
Возможно стоит расширить аудиторию опроса, либо переформулировать вопрос с бОльшим количеством вариантов. (где и реакт вверху и тд). Но кмк проголосовавших будет ещё меньше(возможно это наша ошибка, что поставили перед фактом 2х вариантов). Но это не точно =) В общем:Кмк, тут как про фломастеры(холивар и только) и такое чувство что кто-то в итоге останется обделённым, как бы мы не старались. По большому счету import-order ни на что не влияет и к методологии имеет вообще косвенное отношение и это про "КРОСИВОЕ". На начальном этапе кажется, если мы перекроем потребности большинства - это лучший вариант(потому данные опросы и проводим). P.S. Есть мысли по конфигурации через некий npx cli, и возможно там уже будет возможность настроить так, как хочется каждому, но это пока только в планах/мыслях. Пы.Сы.2 Хочется сделать хорошо и приятно всем и никого не обижать, так что будте котиками: если есть отдельное пожелание/своё мнение и оно кажется более правильным, оставьте конкретный пример, чтобы и люди переходящие сюда и мы не агрегировали все комменты, а просто увидев какую-то конкретику про себя сказали "о, я тоже так хочу" и могли как-то пролайкать/дать знать о своих хотелках. |
Were added by #82 for import/order rule by @Krakazybik
Should be merged with base config, or deleted at all
Why experimental?
#75 (comment)
#75 (comment)
Variant 1:
import-order/experimental
With spaces and reverted order ("from abstract - to specific")
Variant 2:
import-order
(base)Please, leave your vote below:
"👍" - if you prefer to use
import-order/experimental
at stable config"👎" - if you prefer to use
import-order
at stable config"👀" - if you aren't sure
The text was updated successfully, but these errors were encountered: