Aşağıdaki laboratuar uygulamasını
Version 1.0.0 i, 1 yıl önce yazdım yani markete yüklenme tarihi 02.01.2020 sonra bunun kodlarını backend tarafını github a yedekledim. 1.5 yıl sonra video oynatıcı ve bazı geliştirmeler eklemek istiyordum ama tekrar derleme sırasında sürekli hatalar aldım, bi ara android de stabil bir şekilde ayağa kalktı ios da çalışmadı.
Bazı paketlerin versiyonları özellikleri değişmiş bazı özellikler DEPRECATE olmuş.
Yeni ekleceğim paketlerin eski react native ile uyumluluk sorunları var, eski sürümünü yüklersem bazı işletim sistemlerinde çalışmama sıkıntı vardı bunun bu versiyonda stabil çalışmayan bazı paketler şimdi stabil olmuş böyle sıkıntılar oluştu.
Kullandığım Native Base paketi çok değişmiş eski kullandığım bazı compenentler kalkmış bazı compenentler ise eskiden çok uğraştırıyordu son versiyonda kullanımı daha kolay hale gelmişler.
React Hook çıkmış, React native class yapısından fonksiyonel programlamaya geçmiş artık daha temiz kod ve daha kolay test geliştirme yapma imkanı olmuş.
Bu arada react native tecrübem 9 ay.
Kodlarımı incelediğimde ise ilk yazdığım sistem olduğu için yeteri kadar Clean Code değildi, bazı kodların ne yaptığını hiç anlamadığım yerler oluyordu bu bence react native in kod okunabilirliği yeterince iyi değil okunabilir kod için herşeyi fonksiyon olarak yazın.
Peki projeyi kurtarmak için ne yapabilirdim?
1- Projeyi ayağa kaldırıp eklemek istediğim paketlerin ihtiyacım olan versiyonlarını bulup bir şekilde sisteme ekleyecektim aynı şekilde bazı işletim sistemi versiyonlarında çalışmamasını da önemsemeyecektim.
2- her şeyi tek tek düzenleyip
deprecate olan özellikleri ve paketleri yeni versiyonlarına dönüştürecektim.
3- Yeni baştan yazacaktım.
Peki ne yaptım
1 ve 2 olmuyordu çok fazla zamanımı alacaktı ve flutter’ı düşündüm ama o dili bilmiyordum, native base paketinin çok fazla değişikliği olmuştu ve deprecate yapmak maliyeti çok çok fazlaydı.
Bende yeniden yazmaya karar verdim.
REACT NATİVE yazarken mutlaka yapmanız gerekenler
Kesinle kullanacağız arayüzlerin içinde fetch ve hook falan olmadan sadece Css ile MOCKUP hallerini yazın, yeni versiyona geçerken bunun çok faydası oluyor.
Mümkünse test yazın.
herşeyi daha anlamlı klasorleme yapın.
En küçük özelliği bile fonksiyon içine alın CLEAN CODE yazmaya çok dikkat edin, anlamlı commitler ve commentler olsun, bu şeklde çok fazla özelliği yeni versiyonlara taşımanız çok kolay olacaktır.
Karşılaştığınız her hatayı ve nasıl çözdüğünüzü yedek alın bu konuda anlamlı git commit oluşturun. gist de yazılabilir.
Backend tarafını komple yedek alın.
Enpoint için ben postman ile çalışıyorum, Postman kodlarının çıktılarını Export yapın, postman yedekleri olsun.