Gerçek Ürünlerde Dayanıklı Tarayıcı Eklentileri Geliştirmek
Her gün kullanılan ürünler için Chrome, Safari ve Firefox eklentileri geliştirirken öğrendiğim pratik mimari dersleri.
UKUgur KelleciogluBağımsız Ürün MühendisiBir tarayıcı eklentisi iş listesinde küçük görünebilir. Canlı ortamda ise dağıtık bir ürün gibi davranır. Başkasına ait tarayıcıda çalışır, değişen web sayfalarıyla iletişim kurar ve çoğu zaman ayrı bir uygulamaya veya API’ye bağlıdır. Güvenilirlik bu sınırları en baştan ürün mimarisi olarak ele almakla başlar.
Ana sayfa harici bir sistemdir
İçerik betikleri girdikleri sayfayı kontrol etmez. Ana uygulama işaretleme yapısını, zamanlamasını veya gezinme davranışını haber vermeden değiştirebilir. Seçiciler dar kapsamlı, gözlemlenebilir ve kolay güncellenebilir olmalıdır. Büyük bir betiğin içine gömülmüş tek bir seçici küçük bir arayüz değişikliğini zor bir probleme dönüştürür.
Desteklenen her platform için ince bir adaptör kullanmayı tercih ediyorum. Adaptör veriyi nasıl bulacağını ve eklenti arayüzünü nereye yerleştireceğini bilir. Ürünün geri kalanı kararlı bir iç modelle çalışır. Böylece siteye özel davranışlar kimlik doğrulama, depolama ve iş kurallarından ayrılır.
İletişimi bir protokol olarak tasarlayın
Arka plan çalışanları, içerik betikleri ve ürün arayüzü açık mesajlarla konuşmalıdır. Her mesajın anlaşılır bir adı, küçük bir yükü ve öngörülebilir bir cevabı olmalıdır. Önemli mesajları sürümlemek kullanıcılar farklı eklenti sürümlerini çalıştırırken kademeli yayınları daha güvenli hale getirir.
- Tarayıcı API’lerini küçük bir platform katmanının arkasında tutun.
- Her sınırda mesajları doğrulayın.
- Hataları yeniden üretmeye yetecek bağlamla kaydedin.
- Yeniden denemeleri her yerde otomatik yapmak yerine bilinçli tasarlayın.
Çoklu tarayıcı desteği ürün kararıdır
Chrome, Safari ve Firefox birçok ortak kavrama sahip olsa da paketleme, izinler ve inceleme süreçlerinde farklılaşır. Ortak bir TypeScript çekirdeği tekrarı azaltır. Platforma özel giriş noktaları yine de görünür kalmalıdır. Her farkı soyutlamanın arkasına saklamak hata ayıklamayı küçük bir tekrardan daha zor hale getirebilir.
Kurtarma imkanıyla yayınlayın
Eklentiler web uygulamasının normal yayın akışının dışında güncellenir. Özellik bayrakları ve geriye uyumlu API’ler bir kurtarma yolu oluşturur. Sunucu tarafındaki bir kapatma anahtarı mağaza incelemesi sürerken kırılgan bir entegrasyonu devre dışı bırakabilir. Bu küçük yetenek tüm ürün deneyimini koruyabilir.
Ürün dersi
En güçlü eklenti en fazla koda sahip olan değildir. Tarayıcıya, ana sayfaya ve kullanıcının dikkatine saygı gösterendir. Açık sınırlar arayüzün doğal hissetmesini sağlarken sistemi bakım yapan ekip için anlaşılır tutar.
Daha fazla yazı
Tüm yazıları görüntüle