𝗟𝗲𝘀𝘀𝗼𝗻𝘀 𝗟𝗲𝗮𝗿𝗻𝗲𝗱 𝗕𝘂𝗶𝗹𝗱𝗶𝗻𝗴 𝗣𝗢𝗦 𝗟𝗶𝘁𝗲
Küçük işletmeler için tam kapsamlı (full stack) bir satış noktası sistemi olan POS Lite'ı geliştirmeyi bitirdim. Daha önce mimarisini ve dağıtımını (deployment) paylaşmıştım. Şimdi ise neler öğrendiğimi paylaşmak istiyorum.
Gerçek bir proje geliştirmek, bir öğreticiyi (tutorial) takip etmekten farklıdır. Öğreticiler kararları sizin yerinize verir. Gerçek projeler ise sizi seçim yapmaya zorlar.
Şunlara karar vermeniz gerekir:
- Kodun nasıl yapılandırılacağı
- Hangi özelliklerin önce geliştirileceği
- Frontend'in backend ile nasıl iletişim kuracağı
- Kimlik doğrulamanın (authentication) nasıl yönetileceği
- Verilerin nasıl saklanacağı
- Uygulamanın nasıl yayına alınacağı (deploy)
İşte temel çıkarımlarım:
Mükemmeliyetçilik sizi yavaşlatır Mükemmel bir mimari veya kullanıcı arayüzü (UI) beklemeyin. Çalışan bir sürümle başlayın. Onu adım adım geliştirin. Örneğin, önce ürün modülünü çalışır hale getirin. Sonra doğrulama (validation) ekleyin. Ardından envanteri bağlayın. Küçük başarılar bitmiş bir ürüne götürür.
Büyüdükçe yapı önem kazanır Küçük bir backend'i yönetmek kolaydır. Büyük bir backend ise organizasyon gerektirir. Düzenli kalmak için katmanlı bir yapı kullandım:
- Controller: HTTP isteklerini yönetir
- Service: İş mantığını (business logic) içerir
- Repository: Veritabanı ile iletişim kurar
Kimlik doğrulama karmaşıktır Kimlik doğrulama, bir giriş formundan daha fazlasıdır. Kimlik bilgilerinin doğrulanmasını, token oluşturulmasını, rotaların (routes) korunmasını ve kullanıcı erişiminin yönetilmesini içerir. JWT kullanmak, güvenliğin frontend ile backend'i nasıl birbirine bağladığını görmeme yardımcı oldu.
UX kullanışlılık ile ilgilidir Bir frontend sadece görünüşten ibaret değildir. Kullanıcıların ürünleri aramaya, satışları işlemeye ve raporları hızlıca görmeye ihtiyacı vardır. Pratik bir arayüz, güzel bir arayüzden daha iyidir.
Dağıtım (Deployment) bir mühendislik işidir Yerel geliştirmeden buluta (cloud) geçmek yeni sorunları ortaya çıkarır. CORS hataları, ortam değişkeni (environment variable) sorunları ve DNS kurulum görevleriyle karşılaşacaksınız. Dağıtım son bir adım değildir; sürecin temel bir parçasıdır.
Hatalar derstir Küçük hatalar büyük dersler verir. Eksik bir ortam değişkeni veya yanlış bir port her şeyi bozabilir. Bu hatalar (bugs) bana daha dikkatli hata ayıklama (debug) yapmayı öğretti.
Kendi projeniz için tavsiyelerim:
- Gerçekçi bir şey inşa edin
- Küçük başlayın
- Çalışan bir sürümü bitirin
- Onu parça parça geliştirin
- Yayına alın (deploy)
- Sürecinizi belgeleyin
Bitmiş ve yayına alınmış bir proje, bitmemiş ve mükemmel bir fikirden daha çok şey öğretir.