Yazar, bir web uygulamasındaki radyo butonlarının görsel tasarımını güncelleme göreviyle karşılaştığında, bunun basit bir HTML öğesi olduğunu düşünerek işin kolay olacağını varsaydı. Ancak kod tabanını incelediğinde, radyo butonları için Shadcn'den RadioGroup ve RadioGroupItem adında iki React bileşeni kullanıldığını fark etti. Shadcn, bileşenleri doğrudan projenin kod tabanına kopyalayan, geleneksel UI framework'lerinden farklı bir yaklaşıma sahip bir UI framework'üdür.
Shadcn'in radyo butonu bileşenlerinin kodunu incelediğinde, yazar şaşkınlık yaşadı. Sadece basit bir daire çizmek için bile üçüncü taraf bir ikon kütüphanesi (lucide-react) kullanan, üç farklı import içeren ve 45 satır uzunluğunda bir kod bloğuyla karşılaştı. Tüm stillendirme, otuzdan fazla Tailwind CSS sınıfı kullanılarak yapılmıştı. Yazar, bu kadar basit bir öğe için bu düzeyde bir karmaşıklığın gerekliliğini sorguladı ve asıl HTML <input> öğesinin nerede olduğunu merak etti.
Daha da derinlemesine incelediğinde, Shadcn bileşenlerinin aslında Radix adlı başka bir UI kütüphanesinden bileşenleri içe aktardığını keşfetti. Bu durum, basit bir radyo butonu için bile iç içe geçmiş bir bağımlılık ve karmaşıklık yığınına işaret ediyordu. Makale, modern web geliştirmede basit görevlerin bile nasıl aşırı mühendislik ve gereksiz bağımlılıklarla karmaşık hale gelebileceğini çarpıcı bir şekilde gözler önüne seriyor.
Modern web geliştirmede basit UI öğelerinin bile nasıl aşırı mühendislik ve gereksiz bağımlılıklarla karmaşıklaştırılabileceğini gözler önüne seriyor.