Birinci hata: bir cümle yerine bir spesifikasyon yazmak
Daha önce kötü yazılımlar yüzünden yanmış kişiler, genellikle oluşturucuyu açıp koca bir paragraf yazma eğilimindedir. Derecelendirme sistemi, birim tercihleri, çevrimdışı mod, renk şeması — ilk yanıt gelmeden önce hepsi baştan sıralanır. Sorumluluk sahibi bir davranış gibi hissettirir. Ama değildir. Oluşturucu tek cümlenizi okur, muhtemelen ne demek istediğinizi çıkarır ve yaklaşık on beş saniye içinde bir planla geri döner — "tırmanıcılar için bir antrenman günlüğü" ifadesi, bir seans günlüğü, bir derece takip görünümü ve bir gösterge paneline dönüşür; varsayılan olarak V-ölçeği boulder ve YDS rotaları seçilir, çünkü çoğu tırmanıcının kullandığı sistem budur. Ne seçtiğini size doğrudan planda söyler, böylece istisna sizseniz tek satırla düzeltebilirsiniz. Baştan paragraf yazmak bu adımı atlatmaz. Yine de bir plan alırsınız, yine de onu okumanız gerekir ve şimdi de zaten planın size gösterebileceği kısıtlamaları, yapımınız için gerçekten önemli olan sırayla değil, üç dakika boyunca yazarak harcamış olursunuz.
Plan, doldurulacak boşlukları olan bir form değildir. Düz metindir ve siz de düz metinle yanıt verirsiniz. "Aslında Font derecelerine göre yap, Avrupa'dayım" tam bir düzenlemedir. "Bir partner/emniyet günlüğü alanı ekle, farklı kişilerle tırmanıyorum" ifadesi de öyle. Her düzenleme planı yeniden oluşturur, yapıyı değil — maliyetli kısım başlamadan önce yönlendirme yaparsınız, yeniden başlatmazsınız. O planı onaylamak, yapmanız gereken son karardır. Sonrasındaki her şey üretim ve doğrulamadır.
İkinci hata: akışı takılmış bir terminal gibi izlemek
Yapım sunucu tarafında çalışır ve buradaki telaş neredeyse her zaman yanlış alarmdır: biri sessiz bir etkinlik akışına iki dakika bakar ve takıldığını sanır. Takılmamıştır — her saniye görünür çıktı üretmeyen bir aşamadadır ve akış tam da bu nedenle hangi aşamada olduğunuzu etiketler. Sekmeyi tamamen kapatabilirsiniz. Çalışma tarayıcınızda yaşamaz.
Gerçekte ne beklemeniz gerektiği, yapının şekline göre büyük ölçüde değişir. Tırmanış günlüğü — birkaç sayfa, yerel bir veri modeli, dışarıdaki bir API'yi çağırmayan bir yapı — genellikle üç dakikanın altında tamamlanır; bu, temelde "şunu kaydet, bunu grafiğe dök, bana bir liste göster" olan her şey için tipiktir. Bir yapı gerçek bir arka uç, kimlik doğrulama, ilişkisel bir veritabanı ve arka plan işleri gerektirdiği anda sekiz ile on iki dakika arası bir süreye bakıyorsunuzdur, çünkü artık şema oluşturma ve geçiş süreci vardır ve doğrulama aşaması sadece işaretleme yerine sunucu koduna karşı ikinci kez çalışır. Oyunlar daha da yavaştır, çünkü varlık üretimi gerektirirler: sprite'lar, ses efektleri, bazen ilk deneme gösterilmesi gereken boyutta doğru görünmüyorsa ikinci bir görsel geçiş. Gerçek native paketleme ise — bir web görünümünün kabuğa sarılmış hali değil, gerçek anlamda kurulabilir bir APK — gerçek bir araç zincirine devredilir. Gradle, imzalama, hepsi. Bu adım tek başına diğer her şeyin üzerine beş ile on dakika ekleyebilir ve sessiz bir akışın bir şeyin bozulduğu değil, araç zincirinin kendi işini yaptığı anlamına geldiği tek aşamadır.
Bu modelin dürüst maliyeti, kodun editöre karakter karakter akışını izlemenin sağladığı anlık geri bildirimden vazgeçmenizdir. Bunun yerine, dizüstü bilgisayarınız uyku moduna geçse ve wifi'niz kesilse bile ayakta kalan, telefonunuzdan kontrol edebileceğiniz, izleyen kişi siz olsanız da olmasanız da çalışmaya devam eden bir sistem gelir. Doksan saniyelik bir yapım için bu takas neredeyse fark edilmez. On iki dakikalık arka uç yapımı için ise bu, bir terminali bebek gibi izlemekle kahve almaya gitmek arasındaki farktır.
Üçüncü hata: üretilmiş olanı tamamlanmışla karıştırmak
Bu, bedeli ağır olan hata. Hızlı biten ama kontrol edilmemiş bir build, tamamlanmış bir yapı değildir — çalışan bir taslaktır. Ve bu ikisi arasındaki fark, hızlı site kurucuların kötü şöhretinin kaynağıdır: temizlenmemiş girdi kabul eden formlar, klavyeyle erişilemeyen butonlar. Bu platform bir şeyi bitmiş saymadan önce, ayrı doğrulayıcı ajanlar onu inceler: kod, güvenlik, bağlantılar, SEO, erişilebilirlik ve onayladığınız plana uygunluk. Bu gerçekten ayrı bir geçiş, aynı ajanın kendi çıktısını yeniden okuyup onaylaması değil.
Güvenlik kontrolü, üretimde gerçekten ısıran sıradan sorunları arar: istemci tarafı koda gömülmüş bir API anahtarı, hiçbir temizleme yapılmadan girdi kabul eden bir form, oturumdan türetilmek yerine istemciden gelen bir kullanıcı kimliğine güvenen bir uç nokta. Erişilebilirlik kontrolü, bir yorumla susturabileceğiniz bir linter değildir — gerçek kontrast oranlarını ve etkileşimli öğelere klavyeyle erişilebilir olup olmadığını kontrol eder.
Uygunluk kontrolü, insanların en çok hafife aldığı kontroldür. Bir üretim geçişinin, istediğiniz bir şeyi sessizce düşürmesi kolaydır — örneğin plan düzenlemenizdeki o ortak/emniyet-günlüğü alanı, build'in üçüncü dosyasında, kimse bilinçli karar vermeden önceliksizleştirilir. Uygunluk kontrolü, onayladığınız planı gerçek çıktıyla yeniden karşılaştırır ve boşluğu yakalar. Bir sorun bulduğunda, düzeltme otomatik olarak uygulanır ve yeniden kontrol edilir; size bir yapılacaklar listesi verilmez, ya hiç görmediğiniz bir düzeltme ya da baştan bir sorun olmadığı sonucu çıkar. Her doğrulayıcının neyi kontrol ettiğinin ve bir şey art arda iki kez başarısız olduğunda ne olduğunun mekaniği Build'ler kendini nasıl doğrular yazısında. Bu bölümden çıkarılması gereken tek şey şu: bitti demek geçti demektir, üretildi değil. Bu ikisini aynı iddia gibi ele alırsanız, er ya da geç açıkta kalan bir anahtarı ya da erişilemez bir butonu canlıya alırsınız.
Bu üç hatanın hiçbirini yapmazsanız elde ettiğiniz şey
- Tıklayarak gezinebileceğiniz gerçek bir önizlemede çalışan bir ürün — verilerinizin bağlandığı gerçek, çalışan bir örnek, sonuçta nasıl görüneceğinin ekran görüntüsü değil.
- Buna bağlı bir sohbet dizisi; "başlığı koyulaştır ve bir istatistik sayfası ekle" demek, birinci versiyonun yanında ikinci versiyonu üretir. Eski versiyon kaybolmaz; yeni versiyon canlı önizlemeyi devralırken o bir yedek olarak durur.
- Gerçekten bir şey yapan butonlar: canlıya al, kodu indir, yerel yükleyiciler oluştur, bir mağazaya gönder. Buton kılığına girmiş üst satış pencereleri değil.
Kodu indir butonu üzerinde ikinci kez durmaya değer, çünkü gerçek bir işe güvenebileceğiniz bir araçla, yalnızca tek kullanımlık prototipler için kullanacağınız bir aracı birbirinden ayıran şey tam olarak bu. Kod gerçekten sizinse — okunabilir dosya yapısı, istediğinizin ötesinde tuhaf bir kilitlenme yoksa — platform, sizi zaten içine hapsettiği gerçeğine yaslanmak yerine bir sonraki oturumunuzu kazanmaya devam etmek zorunda kalır.



