Ana sayfa/Hizmetler/Web Uygulama Geliştirme
Hizmet · Yazılım geliştirme

Hızın bir özellik olduğu web uygulamaları.

Sunucuda render edilen, Core Web Vitals bütçeleri tanımlı, erişilebilirliği gözeten web uygulamaları — kendi platformlarımızda uyguladığımız disiplinin aynısı.

Web Uygulama GeliştirmeNeler yapıyoruz
01Modern SSR mimarisi
02Core Web Vitals bütçeleri
03Standart olarak erişilebilirlik
04Ölçeklenen tasarım sistemleri
Nasıl ilerler
  1. Mimari & bütçeler
  2. Tasarım sistemi & temel akışlar
  3. Özellik geliştirme
  4. Lansman & RUM
Neden var

Her rota bir performans bütçesiyle yayına çıkar.

Web, herkese ulaşan yüzeydir: kurulum yok, anında güncelleme, tek kod tabanı, e-postaya koyabileceğiniz bir bağlantı. Aynı zamanda kalitenin en hızlı aşındığı yüzeydir; çünkü her sprint bir betik, bir yazı tipi, bir üçüncü taraf bileşeni ve render engelleyen bir istek daha ekler ve hiçbiri tek başına pahalı görünmez. Aylar sonra açılış sayfasının orta seviye bir telefonda kullanılabilir hale gelmesi uzun sürer, dönüşüm oranı sessizce düşmüştür ve kimse buna yol açan değişikliği gösteremez. Biz, performansı ve erişilebilirliği bütçesi olan gereksinimler olarak ele alan web uygulamaları geliştiriyoruz — ilk teslim tarihine kadar yaşayan temenniler olarak değil.

Bu, mimarinin bileşenlerden önce kararlaştırılması demektir: hangi rotalar sunucuda render edilecek, hangi veri nerede önbelleğe alınacak, JavaScript gelmeden önce sayfanın ne göstermesi gerekiyor. Sunucu render'ı varsayılandır; çünkü ilk boyama için daha iyidir, arama için daha iyidir ve var olma nedenini kendisi çekmek zorunda kalan bir istemciye göre üzerinde akıl yürütmesi daha kolaydır. Etkileşim, alışkanlıkla her yere değil, ürünün ihtiyaç duyduğu yere eklenir; böylece ağır kod yalnızca bunu hak eden birkaç ekrana gider.

Bir değişiklik bütçeyi aşarsa derleme başarısız olur — incelemeden önce, lansmandan sonra değil. Hız, yol haritasından böyle sağ çıkar ve bütçe konuşması bu yüzden tekrar tekrar bir kurtarma projesi olarak değil, başlangıçta bir kez yapılır.

Yetkinlikler

Bir web uygulamasının doğru yapması gereken dört şey.

Bunların hiçbiri son rötuş değildir. Her biri, başta ucuz, sonradan yapısal olan bir mimari karardır.

01

Modern SSR mimarisi

Sunucu render'ı ve edge önbelleğiyle Next.js ve React — hızlı ilk boyama, arama motorlarının okuyabildiği işaretleme ve gerektiği yerde uygulama düzeyinde etkileşim. Kararı rota bazında veririz: içerik ortaksa statik, kişiselse sunucuda render edilir, ekran gerçekten bir girişin arkasındaki uygulamaysa yalnızca istemci tarafında. Veri erişimi sunucuda durur; böylece tarayıcı hiçbir zaman kimlik bilgilerinin veya iş kurallarının sızdığı bir yer olmaz.

02

Core Web Vitals bütçeleri

Rota bazında belirlenen ve CI'da zorunlu kılınan LCP, CLS ve INP bütçeleri, yanlarında bir paket boyutu tavanıyla birlikte. Bir rotayı bütçesinin üzerine çıkaran pull request, bozuk bir test gibi başarısız olur; böylece ödünleşim, yazar hâlâ kodun içindeyken görünür olur. Gerçek kullanıcı izlemesi bütçeyi lansmandan sonra da dürüst tutar; çünkü hızlı bir dizüstü bilgisayarda alınan laboratuvar skoru, gerçek kitleniz hakkında kanıt değildir.

03

Standart olarak erişilebilirlik

Çalışma çıtası WCAG 2.1 AA: anlamsal işaretleme, klavye akışları, yönetilen odak, makul kontrast ve temel yolculuklarda ekran okuyucu turları. Mekanik hataları yakalamak için CI hattında otomatik kontroller çalışır, araçların göremediklerini ise elle yapılan bir tur kapsar — odağı hapseden bir modal, hatasını kimseye duyurmayan bir form. Ayrıca fonlayacağınız en ucuz kullanılabilirlik çalışmasıdır ve giderek daha sık bir satın alma koşulu haline gelmektedir.

04

Ölçeklenen tasarım sistemleri

Ürün ekiplerinin piksel arkeolojisi yapmadan tutarlı arayüzler yayınlaması için token tabanlı bileşen kütüphaneleri. Renk, boşluk, tipografi ve köşe yarıçapı, gerçekten bir anlam taşıyan adlarla token olarak yaşar; bileşenler durumlarıyla birlikte belgelenir ve kütüphane diğer bağımlılıklar gibi sürümlenir. UX / UI ekibimiz, kodun tükettiği token'ların aynısıyla tasarlar; bu da bir dosya ile bir derleme arasındaki alışılmış çeviri kayıplarını ortadan kaldırır.

Uygulamada

İş günlük olarak nasıl yürür?

01

Bütçe, derlemenin zorunlu kıldığı bir sayıdır.

Sitenin hızlı olması gerektiği konusunda herkes hemfikirdir. Ne kadar hızlı olacağını sayfa bazında yazan ve olmadığında derlemeyi başarısız kılan neredeyse yoktur. Bütçeyi birinci fazda rota bazında belirleriz — en büyük içerik boyaması, etkileşim gecikmesi, düzen kayması ve bir JavaScript tavanı — rotanın ne işe yaradığından türeterek. Bir pazarlama açılış sayfası ile bir iç raporlama tablosu aynı sayıyı hak etmez; aksini varsaymak bütçelerin göz ardı edilme yoludur. Ardından CI hattı her pull request'i, dokunduğu rotaların bütçesine göre ölçer ve bir gerileme, sorumlu yükün adı verilerek kırmızı bir derlemeye dönüşür.

  • Birinci fazda sizinle mutabık kalınan ve depoya kaydedilen rota bazlı bütçeler
  • CI, bir değişikliğin dokunduğu rotalar için kontrolü önizleme ortamında çalıştırır
  • Cihaz ve ağa göre ayrıştırılmış gerçek kullanıcı izlemesi; böylece bütçe kitlenizi yansıtır
02

Tek bir token seti, bütün ekranlar.

Arayüz tutarsızlığı nadiren bir zevk meselesidir. Aynı düğme, her biri biraz farklı bir orijinalden kopyalanmış halde dokuz yerde bulunduğunda ve hangisinin güncel olduğunu kimse bilmediğinde ortaya çıkan şeydir. Token'laştırılmış bir tasarım sistemi nedeni düzeltir: değerler bir kez tanımlanır, bileşenler onları tüketir ve bir token'daki değişiklik arama gerektirmek yerine kendiliğinden yayılır. Kütüphane belgelenmiş durumlarla gelir — varsayılan, üzerine gelme, odak, devre dışı, yükleniyor, hata — çünkü bunlar bir sprintin sonunda ayaküstü uydurulan ve klavye ile ekran okuyucu kullanımını bozan durumlardır.

  • Tasarımın ve kodun paylaştığı renk, boşluk, tipografi, köşe yarıçapı ve hareket token'ları
  • Odak ve hata dahil her durumuyla belgelenmiş bileşenler
  • Sürümlenip yayımlanır; böylece ürün ekipleri kopyala-yapıştır yerine bilinçli olarak yükseltir
03

Erişilebilirlik, gerçekten aksadığı yerde kontrol edilir.

Otomatik erişilebilirlik araçları eksik etiketleri ve zayıf kontrastı bulur; en çok önem taşıyan iki hata hakkında ise hiçbir şey bulmaz: bir diyalogdan çıkamayan klavye kullanıcısı ve formun reddedildiği kendisine hiç bildirilmeyen ekran okuyucu kullanıcısı. Bu yüzden iki turu da yaparız. CI hattı mekanik kusurları her pull request'te yakalar, lansmandan önce ise bir kişi temel yolculukları klavye ve ekran okuyucuyla adım adım gezer. Sonuç, nelerin bulunduğu ve nelerin düzeltildiğiyle birlikte yazılır; bu aynı zamanda satın alma ekibinizin isteyeceği belgedir.

  • Her rotada CI'da otomatik kontroller; yeni ihlallerde birleştirmeyi engeller
  • Geliri taşıyan yolculuklarda elle klavye ve ekran okuyucu turları
  • Bulguları, düzeltmeleri ve kabul edilen istisnaları içeren, depoda tutulan bir denetim kaydı
Role göre

Tek uygulama, üç ayrı beklenti kümesi.

Pazarlama

İlgi tükenmeden yüklenen sayfalar.

İlk anlarda kullanılabilir olmayan bir sayfada müşteri kazanım bütçesi boşa gider. Pazarlama rotaları geliştirdiğimiz en hızlı şeydir: sunucuda render edilir, edge'de önbelleğe alınır; görseller boyutlandırılmış, yazı tipleri yüklenmiştir, böylece geldiklerinde hiçbir şey yerinden oynamaz. Yapılandırılmış veri, canonical düzeni ve site haritası üretimi sonraki bir iş kaydı değil, tamamlanma tanımının parçasıdır.

  • Her kazanım rotasında edge'de önbelleklenen sunucu render'ı
  • İçerik modelinden üretilen yapılandırılmış veri, canonical'lar ve site haritaları
  • Ekibinizin devreye alma olmadan düzenlediği bir içerik modeli
Ürün

Büyüdükçe hızlı kalan uygulama ekranları.

Girişin arkasında kısıt değişir: mesele ilk boyamadan çok, veri yoğun ekranlardaki etkileşim gecikmesidir. Ağır işi sunucuda tutar, tablo uzunsa sonuçları akıtır ve her yeni bağımlılığı bir bedeli olan bir karar olarak ele alırız. Özellik geliştirme aynı bütçelere karşı yürür; böylece yirminci ekran varsayılan olarak ikinciden yavaş olmaz.

  • Tipli sözleşmelerle sunucu tarafında veri erişimi; böylece tarayıcı hiçbir iş kuralı tutmaz
  • Veri yoğun görünümlerde tek büyük yük yerine akış ve sayfalama
  • Etkileşim gecikmesi derleme makinesinde değil, orta seviye cihazlarda ölçülür
Platform

Sizin adınıza hayır diyen bir CI hattı.

Kalitenin kalıcı hale geldiği yer CI hattıdır. Her pull request bir önizleme URL'si, tip kontrolü, testler, bir erişilebilirlik taraması ve bir bütçe kontrolü alır; main dalı otomatik olarak staging'e çıkar; etiketlenmiş bir sürüm, önce geçişler ve provası yapılmış bir geri alma ile canlı ortama gider. Altyapı koddur; böylece ortam, nasıl kurulduğunu hatırlayan bir kişiye ihtiyaç duyulmadan yeniden kurulabilir — DevOps & Cloud sayfamızda anlatılan standartların aynısı.

  • Her pull request için bütçe raporu ekli bir önizleme ortamı
  • Vercel veya AWS üzerinde kod olarak altyapı, depodan yeniden kurulabilir
  • Lansmandan önce bağlanan hata takibi ve gerçek kullanıcı izlemesi, mutabık kalınmış uyarı kanallarıyla
Karşılaştırma

Bütçeli teslimat ile alışılmış düzen.

Performans
Gerilemeler
Erişilebilirlik
Arayüz tutarlılığı
Render stratejisi
İzleme
Ortamlar
Devir teslim
01Tipik proje
PerformansLansmandan sonra ölçülür
GerilemelerÇeyreklik denetimde bulunur
ErişilebilirlikSonradan bir düzeltme projesi
Arayüz tutarlılığıEkranlar arasında kopyalanan bileşenler
Render stratejisiHer sayfa için tek yaklaşım
İzlemeSadece çalışma süresi
OrtamlarVakit kalırsa staging
Devir teslimBir tanıtım toplantısı
02Odeontech web uygulaması
PerformansRota bazında bütçelenir, CI'da zorunludur
GerilemelerSebep olan pull request'i başarısız kılar
ErişilebilirlikCI'da otomatik, lansman öncesi elle bir tur
Arayüz tutarlılığıToken'lar ve sürümlenmiş bir kütüphane
Render stratejisiRota bazında seçilir, yazıya dökülür
İzlemeCihaz ve ağa göre ayrışan gerçek kullanıcı metrikleri
OrtamlarHer pull request için önizleme, kod olarak
Devir teslimRunbook'lar, mimari notları ve depolarınız
Nasıl işler

Dört faz; bütçe derlemeden önce belirlenir.

01

Mimari & bütçeler

Rota haritası, render stratejisi, veri akışları — ve her şeyin karşısında ölçüldüğü rota bazlı performans bütçeleri. Hangi rotaların statik, hangilerinin istek başına sunucuda render edilen, hangilerinin girişin arkasındaki istemci uygulamaları olduğuna karar verir, ardından her birinin kitlenizin gerçekten kullandığı cihaz ve ağlarda tutturması gereken sayıları belirleriz. Çıktı, kısa bir mimari notu ve depoda bir bütçe dosyasıdır; CI hattı ikisini de okuduğu için ikisi de güncel kalır.

02

Tasarım sistemi & temel akışlar

Token'lar, bileşenler ve önce inşa edilip düzenli olarak gösterilen en yüksek değerli kullanıcı yolculukları. Bileşen kütüphanesi, varsayımsal bir set olarak değil, ilk yolculukların ihtiyaç duyduğu ölçüde inşa edilir; böylece her bileşen gerçek bir kullanım ve belgelenmiş durumlarla gelir. Fazın sonunda, canlı bir ortamda, sizin token'larınızla biçimlendirilmiş, bir paydaşın hayal etmek yerine tıklayarak gezebileceği çalışan bir ürün yolu bulunur.

03

Özellik geliştirme

Bütçelenmiş rotalara karşı sprint teslimatı; her incelemede erişilebilirlik kontrolleri ve her pull request'te çalışan bütçe kontrolü ile. Kapsam kararları düzenli demolarda alınır ve bir bütçeyi ihlal edecek her şey ya optimize edilir ya da sizinle açıkça yeniden bütçelenir — sessizce yutulmaz. İsterseniz mühendisleriniz ilk sprintten itibaren pull request'lerimizi inceler; bu da devir teslimi bir formaliteye indirir.

04

Lansman & RUM

Geçiş, gerçek kullanıcı izlemesi ve canlı trafiğe karşı bir ince ayar penceresi. Saha verisi neredeyse her zaman laboratuvarla işe yarar biçimlerde çelişir — yavaş bir üçüncü taraf betiği, yalnızca tek bir ağda zarar veren bir yazı tipi, kimsenin en çok ziyaret edileceğini öngörmediği bir rota — ve ince ayar penceresi bunlara göre hareket etmek için vardır. Bu fazdan cihaz ve ağa göre ayrıştırılmış panolar, mutabık kalınmış uyarı eşikleri ve gerçekliğe göre güncellenmiş bütçelerle çıkarsınız.

Aldıklarınız

Devir teslimde masada ne var.

  • Mutabık kalınan Core Web Vitals bütçelerini karşılayan, devreye alınmış bir uygulama
  • Belgeleriyle birlikte token tabanlı bileşen kütüphanesi
  • Erişilebilirlik denetimi sonuçları ve düzeltme kaydı
  • Bütçe denetimi ve önizleme ortamlarıyla CI/CD
  • Gerçek kullanıcı izleme panoları
  • Render, önbellekleme ve veri erişimini kapsayan bir mimari notu
  • Kod olarak altyapı
  • Ekibinizle provası yapılmış sürüm, geri alma ve olay müdahalesi runbook'ları
Genelde şunlarla çalışır
TypeScriptNext.jsReactNode.jsPostgreSQLRedisVercelAWSPlaywrightSentry
Uygunluk

Bu ne zaman doğru tercih.

Doğru tercih

Müşterilerinizin ürünle buluştuğu yer web ise ve mevcut deneyim onları kaybediyorsa bunu seçin: kullanılabilir hale gelmesi çok uzun süren sayfalar, mobilde terk edilen bir ödeme akışı, insanların kaçındığı bir iç uygulama ya da aynı düğmenin dokuz sürümüne dağılmış bir arayüz. Hızın ve arama görünürlüğünün ticari gereksinim olduğu yeni bir proje için, mevcut bir uygulamanın yavaşladığı ve nedenini kimsenin söyleyemediği bir kurtarma için ve birkaç ekibin elle koordine olmadan tutarlı ekranlar yayınlaması gereken bir tasarım sistemi programı için uygundur. İlk sürüm henüz kanıtlanmadıysa, MVP daha ucuz bir başlangıç noktasıdır.

Başka yere bakın

Ürün gerçekten telefona aitse başka yere bakın — yoğun cihaz entegrasyonu, çevrimdışı saha kullanımı, temel mekanizma olarak bildirim — burada dürüst yanıt mobil geliştirme olur; yine de yanında sıklıkla bir web uygulaması da yayına çıkar. Asıl kısıt arayüzün arkasındaysa başka yere bakın: yeterince hızlı yanıt veremeyen bir kayıt sistemi, bunu ön yüz kostümü giymiş bir entegrasyon veya modernizasyon sorunu haline getirir. Ve lansmandan sonra kimsenin sahiplenmeyeceği bütçelere karşı temkinli olun — zorunlu kılınmayan bir bütçe zamanla aşınır.

SSS

Sık sorulan sorular

Memnuniyetle — tasarım sisteminizi hayata geçiririz, sizinle birlikte bir tane kurarız ya da görsel yönü sahiplenmeye devam eden tasarımcılarınızın dosyaları üzerinden doğrudan çalışırız. Her durumda sonuç token'laştırılmış ve belgelenmiş olur; iki tarafta da aynı token adları bulunur, böylece tasarımdaki bir değişiklik bir çeviri alıştırması değil, koddaki bir değişiklik olur. Tasarım kapasiteniz yoksa UX / UI ekibimiz bunu üstlenir.
Varsayılan olarak sunucu render'ı — daha iyi metrikler, daha iyi arama görünürlüğü ve daha yalın bir zihinsel model; çünkü sayfa kendini kurmak yerine eksiksiz gelir. Saf istemci tarafı render, gerçekten bir girişin arkasında yaşayan ve uygulama gibi davranan ekranlara ayrılmıştır: bir editör, bir tuval, canlı bir pano. Kararı birinci fazda rota bazında verir ve gerekçeyi kaydederiz; böylece karar tercihe göre değil kanıta göre yeniden ele alınabilir.
Evet — performans kurtarma sık karşılaştığımız bir iştir. Laboratuvar skoru yerine saha verisiyle başlar, kullanıcıların gerçekte nerede beklediğini bulur ve en büyük sorumluları önce düzeltiriz: render engelleyen betikler, boyutu tanımsız görseller, aşırı büyük JavaScript paketleri, kimsenin eklediğini hatırlamadığı üçüncü taraf etiketleri. Ardından bütçeleri CI'nıza bağlarız, böylece sonuç kalıcı olur; çünkü zorunluluk olmadan yapılan tek seferlik bir optimizasyon, bir sonraki özellik çalışmasıyla geri alınır.
Sunucu render'ı, yapılandırılmış veri, canonical düzeni ve site haritası üretimi tamamlanma tanımının parçasıdır — ek bir modül değil. İçerik yüklemeden sonra kurulmak yerine işaretlemenin içinde gelir, meta veri içerik modelinden geldiği için sapamaz ve geçiş sırasında yönlendirmeler edge'de ele alınır, böylece bağlantı değeri korunur. Anahtar kelime stratejisi yapmıyoruz; teknik temelin, bunu yapanın işini baltalamamasını sağlıyoruz.
Varsayılan olarak sürekli güncellenen tarayıcılar, ayrıca kitlenizin ihtiyaç duyduğu her özel matris — genel bir listeden değil, analitiğinizden hareketle faz 01'de mutabık kalınır ve QA & Testing pratiğimizin parçası olarak Playwright ile CI'da test edilir. Trafiğinizin kayda değer bir bölümü eski cihazlarda veya kısıtlı ağlardaysa bu, bütçeleri ve bazen mimariyi değiştirir; sorunun tam olarak başta sorulmasının nedeni de budur.
Çünkü onları bizim hafızamız değil, sizin CI hattınız zorunlu kılar. Bütçe dosyası sizin deponuzda durur, kontrol her pull request'te çalışır ve bir ihlal, ilgili rota ve yük adlandırılarak derlemeyi başarısız kılar. Ekibiniz bir bütçeyi bilinçli olarak değiştirebilir — bu, görünür bir commit ile alınan normal bir karardır — ama kimse kazara bir bütçenin dışına kayamaz; hızlı uygulamaları yavaş uygulamalara çeviren hata biçimi de budur.

Hangi sayfa size müşteri kaybettiriyor?

Bize URL'yi ve kimin için olduğunu gönderin. Bir mühendis okur, saha verinize bakar ve onu gerçekten neyin hızlandıracağını yazılı olarak iletir.

✓ Satış sunumu yok✓ AI-native bir mühendisten yanıt✓ Yazılı geri dönüş