Zavržení komponent návrhového systému bez přerušení produktových týmů
Jak zavést přelomové změny návrhového systému ve velkých aplikacích: oznamte, ukončete podporu, migrujte s kódovými mody a odstraňte pomocí sémantického verzování a sledování využití.
Core Takeaway
Odstraňte komponentu ve čtyřech krocích: oznamte změnu s důvodem a nahrazením, označte starou komponentu za zastaralou v menším vydání s jasnými varováními, pomozte týmům s migrací pomocí průvodců a automatických kódových modů a odstraňte ji až v příštím hlavním vydání. Sledujte, kolik obrazovek jej stále používá v každém kroku, a neodstraňujte jej, dokud se využití nebude blížit nule.
Proč se zrušení podpory nedaří
Změny návrhového systému selžou, když překvapí produktové týmy: komponenta zmizí v aktualizaci, sestavení se přeruší a týmy připnou starou verzi a přestanou upgradovat. Jakmile k tomu dojde, systém ztrácí svou hlavní výhodu, konzistenci, protože různé části produktu přecházejí na různé verze.
Čtyřfázový proces
Sémantické verzování poskytuje jednoduchou smlouvu: nekompatibilní změny jsou součástí hlavní verze, a když zavrhnete část API, měli byste aktualizovat dokumentaci a odeslat menší verzi s již zastaralou verzí, než ji později odstraníte.
- Oznámit: vysvětlit proč, ukázat náhradu, dát časovou osu.
- Zastarat: označte jej v dokumentech a v kódu pomocí konzole nebo upozornění na vlákna, které odkazuje na průvodce.
- Migrace: poskytněte písemnou příručku a pro kód kódovací režim, který automaticky aktualizuje použití.
- Odebrat: v příštím hlavním vydání, jakmile bude využití téměř nulové.
Automatizujte migraci
Codemods jsou skripty, které přepisují kód napříč kódovou základnou. Nástroje, jako je jscodeshift, spouštějí kódové mody přes mnoho souborů JavaScript nebo TypeScript najednou, takže přejmenování podpěry nebo výměna komponent lze použít během několika minut místo týdnů. Spárujte je s pravidly lint, která označují zbývající použití.
Změřte adopci
Nemůžete naplánovat odstranění, aniž byste věděli, kdo komponentu stále používá. Sledujte využití v kódu (importy, upozornění na vlákna) a v souborech návrhu (analytika knihoven ve vašem návrhovém nástroji). Zveřejněte čísla, aby týmy viděly pokrok, a pomozte několika posledním týmům přímo, než abyste si vynutili termín.
Nezapomeňte na designovou stránku
Zastarejte komponentu také v knihovně návrhů: přejmenujte ji pomocí předpony „Zastaralá“, vytvořte odkaz na náhradu a přestaňte ji zobrazovat ve vyhledávání. Jinak jej návrháři stále používají v nové práci a migrace nikdy nekončí. Pohybové a interakční chování by mělo být součástí poznámek o změně, protože náhrada, která se pohybuje jinak, se může cítit rozbitá, i když vypadá stejně.
Klíč Principle k zapamatování
- Oznámit, zavrhnout, migrovat, odstranit: nikdy neskočte přímo na odstranění
- Zastarat v menší verzi; odstranit v hlavním vydání
- K automatizaci migrace použijte codemods a pravidla lint
- Sledujte využití v souborech kódu i návrhu
- Zahrňte změny pohybu a interakce do poznámek k verzi
Často kladené otázky
Zdroje
- Semantic Versioning 2.0.0 — semver.org
- jscodeshift: a JavaScript codemod toolkit — GitHub (Meta)