Skip to content
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

API for creating custom presets #113

Open
noveogroup-amorgunov opened this issue Oct 23, 2024 · 1 comment
Open

API for creating custom presets #113

noveogroup-amorgunov opened this issue Oct 23, 2024 · 1 comment

Comments

@noveogroup-amorgunov
Copy link

noveogroup-amorgunov commented Oct 23, 2024

Hey! I know this issue not for current missions, but I want to discuss future of steiger and possibility to extend them for FSD-like architecture. I have already created an issue about possibility to write self rules (#35). By now, I understand, this feature doesn't solve a more general problem. How I cant lint my architecture using steiger, If I have a more complex architecture which build on FSD.

I think devs who work on any big project build on FSD introduces local architectural abstractions and its own rules that are specific to the project at some point in time. And its logical growth, since the methodology does not cover absolutely all cases.

For example, we use cross-imports on entity layer (yes, I know about @x, but we decide not to use it). Or we use a few new layers as abstract-widgets (abstract widgets which used in other widgets) or page-drawers (we have addition level of navigation into drawer on top of regular pages. In fact, these are the same pages, but we decided to separate them semantically). Current package steiger-plugin-fsd is strictly made for the basic set of layers (has high coupling with @feature-sliced/filesystem) and I don't see any chance to extend it for our project. Now we can't use steiger, because I can't extend it (without a complete rewrite @feature-sliced/filesystem and steiger-plugin-fsd).

So, I would like to see about future plan of steiger. What a development strategy of this library? And I don't think this will be applicable to most projects based on FSD, if steiger will be developed as only set of strict rules for a methodology without the possibility of extension.

@illright
Copy link
Member

Hi! Thanks for this perspective, it's very valuable. Sometimes I get a few perspectives like this and then go through an existential crisis of sorts and then come out with very interesting realizations. Something that's possibly intended for FSD 2.2. I'll be keeping this in mind.

The future plan of Steiger? There's a big feature coming up very soon, the new config format. After that we will explore further DX improvements for writing rules and auto-fixing. Then we will also tackle performance, CLI experience, editor extensions, etc. That's the near-term roadmap.

As for extensibility, I think that the new config format will go a long way towards achieving that, but the one big hurdle that is currently very difficult to overcome is additional layers. As I said, maybe a future version of FSD will relax the layer standardization and allow adding more layers, but with the current spec, that's how it is. I'd be interested to hearing your experience with the current spec of FSD, your challenges and pain points, also about the cross-imports.

And I don't think this will be applicable to most projects based on FSD

Why so?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants