Yazılımın ilk 250 günü - Part 15
7 dk okuma
141. Gün
Öncelikle ustama karşı bugün bir yanlışım olduysa özür dilerim. Çok bilmiş gibi görünüyorsam bazı konularda, o benim gafletimdir. Çok az şey bildiğimin farkındayım. Sadece bazen kesin bir dille konuşma yanılgısına kapılabiliyorum.Bugün başlangıçta bir görev olmadığı için kendimce react-native ile ilgili iki konuya baktım: internet bağlantısı kontrolü nasıl yapılır ve klavye nasıl saklanır farklı bir yere tıklayınca. Onların yollarını okudum. Sonrasında aklıma bir şey gelmeyince dün gördüğüm bir makaleyi (yazılım dizaynı ve programlama üzerineydi genel olarak) okudum. Ama bitiremedim. Bitirince burada özet geçeceğim diye umuyorum. Sonrasında mobil uygulamanın kaynak kodlarını siz verdiniz. Sizlerin yazdığı konu, uygulamanın arka tarafta nasıl çalıştığını, bağlantıları ve ilişkileri kavramaya çalıştım. Yüzeysel olarak bir şeyler anladığımı düşünüyorum. Ternary operator’ları, clean code’u görünce etkilendiğimi söylemeliyim.
O boldan boldan bulduğum problemlerden (bana göre bir kısmı) 3 tanesine baktım bugün. İki tanesi (1-İlanlarımdaki duruma tıklayınca uygulamadan çıkması, 2-Input kısmında kırmızı renkli uyarı ile input value’sunun üst üste gelmesi ) tamamlandı. İkinciyi size söylemedim açıkçası. “Bunu yapmaya gerek bile yok” diyebilirsiniz diye. Üçüncüde ise yarıda kaldım. Ödeme yöntemlerinde tüm ödeme yöntemlerine basıldığında hepsinin detaylarının görünmesi. Her birine basıldığında açılması ile ilgili bir state verilmiş. Fakat parent elementlerine bu state’i (useState kullanılmış, useContext’te olabilir tabii ki. Ama etkilenen elementler kardeşler olduğu için useState daha mantıklı olabilir tabii) verirsem ortak state sayesinde birinin hareketi diğerlerini etkileyebilir.
Bugün de böyleydi. Bu videodaki seviyeden, buradaki yazılımcının (Lemi Orhan Ergin) anlattığı kartalların seviyesine çıkmak umudu ile çalışılan bir başka gündü.
142. Gün
Bugün arama sonuçlarının gösterimindeki problemi buldum. Siz düzelttiniz (En azından sorunun nasıl çözüldüğünü anladım). Sonrasında kayıt sayfasında göz gezdirdim. Bir eksiklik vardı. Görünümlerde düzeltme-ler gerekliydi. İstediğim şeyin benzerini yakaladım fakat henüz bitmedi. Açıkçası sizin dediğiniz gibi olmadı. O yüzden yarın sabah tekrar bakacağım.143. Gün
Bugün başlangıçta form işlemi üzerine dün gideremediğim problemli kısmı düzeltmeye çalıştım fakat hala yapamadım. Sonrasında kategori sayfasında iken farklı bir kategori sayfasına ulaşmak istenilmesi durumunda sayfanın güncellenmemesi durumu bulunuyordu. Navigasyon farklı sayfaya gidilmediğini söyleyerek navigasyon sağlamıyordu doğal olarak. En son oluşturulan çözüm navigasyon kütüphanesi ile sağlanıyordu. Yeni gidilecek sayfayı navigasyon stack’ine push ediyordu verdiğimiz parametre ile. Önceki çözümümüz ise yeni problemlere yol açıyordu fakat bence çok güzeldi. Sorunun nereden kaynaklandığını bulamamıştım evet ama yakınlarında dolanıyordum. Bu da bir şey diyemem çünkü benim sorunu çözmem gerekiyordu. Yeni problemlerle karşılaştıkça daha verimli olmaya ve uygun çözümler üretmeye çalışacağım.144. Gün
Bugün yardım bileti detayı sayfasındaki hatalı yerleri düzeltmeye çalıştım. Açıkçası günün sonunda düzeldi de. Ama tek başına yapmadım. Daha hızlı sürede ulaşılabilecek bir çözümdü. Fakat beklediğimden çok fazla zaman aldı.Onun dışında javascript ile uğraşırken stackover’da bir soruyu görüp onu da cevapladım ama oldukça basitti (çok temel dizi işlemleri üzerineydi). Öğrenimime yardımcı olan mecralara, insanlara katkıda bulunmak bence çok güzel.
"Sende bir yumurta var, bende bir yumurta var. Ben yumurtamı sana verdim, sen yumurtanı bana verdin. Sende bir yumurta var, bende bir yumurta var. Ama, sende bir bilgi var, bende bir bilgi var. Ben bilgimi sana verdim, sen bilgini bana verdin. Bende iki bilgi var, sende iki bilgi var." hikayesinde olduğu gibi, bilgiyi paylaşınca benden bilgi eksilmiyor, aksine daha çok bilgiye erişilebiliyor.
145. Gün
Bugün de basit bir problem vardı. Onu farkettim. Sonrasında api’den cevap dönmediği anlaşıldı ve backend tarafından sorun giderildi. Bu hafta içinde düzeltilen problemler size teslim edildi. Genel olarak boş zamanlarda react üzerine bilmediğim şeyleri öğrenmeye çalıştım.146. Gün
Bugün kendimi çok geliştirebileceğim bir aktivite yapamadım. Tekrar react navigasyona, temel javascript ile ilgili bir probleme, mobil uygulamamıza baktım, göz gezdirdim. 5 günde 7-8 yer fixlendi fakat çoğunluğunu yine siz yapmış oldunuz.5 gündür olan şey: ilgimin ve hep yapmaktan zevk aldığım şeylerden aldığım zevkin azalması, dikkatimi yapmam gereken şeylere tam verememem, sürekli oluşan yetersizlik hissiyatı tarzı şeyler. Başta sadece benden kaynaklandığını düşünüyordum bu durumun ama şu an öyle düşünmüyorum. Başta, yeni konularda çalıştığım için böyle olduğunu kendime telkin ediyordum fakat bu değildi cevap. Şimdiye dek yaptığım neredeyse her şey zaten yepyeniydi ve yerine göre zorluydu benim için. Balık gibiyim sanırım. Denizde bir balığı eliniz ile tutma olasılığınız çok düşüktür. Çünkü balık elden kayar. Daha sıkı kavrarsanız tutabileceğinizi düşünürsünüz ama yine de kayar. Balık basitçe akvaryumda durabilir, denizde de, okyanusta da. Temel ihtiyaçlarına (su, besin, oksijen) sahip olması yeterlidir. Temel görevini yerine getirir: İnsanlara yem olmak, ekosistemde belli bir yer kaplayıp doğanın dengesinde bir rol edinmek, yüzmek gibi. Son olarak, 335 yıl önce “Doğa Felsefesinin Matematiksel İlkeleri”nde bu durumu Newton belirtmiş: Etki-tepki.
147. Gün
Bugün güzeldi. Yaptığım işe oldukça iyi odaklanabildim ve verim alabildim. Ne yaptım? Giriş yaparken Android uygulamada bir uyarı çıkmaktaydı. Ve uyarıdaki durumun memory leak’e sebep olabileceğini, use effect’i düzgün kullanmam gerektiğini söylüyordu. Şimdilik orası yarıda kaldı.Sonrasında akşam 17.30’a kadar Single sign-on nedir onu araştırdım. İlk önce en bilinen teknoloji firmalarının sitelerinde yazılanlardan başladım. Sonrasında da gittikçe spesifikleşti ve karşılaştığım birçok kaynağı taradım. Özetleyelim. Adı üzerine “tek bir oturum ile birden fazla uygulamaya erişim” üzerineydi tüm konu. SSO’nun avantajları olduğu gibi dezavantajları da elbette bulunmaktaydı fakat avantajları ağır basmaktaydı kişisel görüş olarak. SSO için kullanılabilecek birden fazla protokol vardı ve bunlar da öğrenildi. Nasıl çalıştığı üzerine de okumalar yapılıp not edildi. Genel manada anladığımı düşünüyorum. Protokoller arası farkları öğrendim örneğin. Authenticaton ve authorization arasındaki farkı kendi açımdan tazeledim. Kullanılan kütüphaneleri araştırdım. PHP ve node.js için çok farklı seçenekler vardı. En çok kullanılanları rapora ekledim. Farklı servisler (Authelia, Apereo/cas, Keycloak) ve Java için de kullanılan bir kütüphane vardı ve çokça bahsedilmişti fakat onu rapora dahil etmedim.
Günün kapanışına doğru karşılaşılan güzel bir terim: “Rational ignorance”. Sizin de sıkça tekrarladığınız, gereksiz bilginin hafızada yer almamasına dair düşünce üzerine bir terimdi. Tanımı ise hem kendisi kadar güzel, hem de içerik bakımından ingilizce pratik yaptıracak kadar dolu:
“Rational ignorance is refraining from acquiring knowledge when the supposed cost of educating oneself on an issue exceeds the expected potential benefit that the knowledge would provide.”
148. Gün
Bugün genel olarak MVC’nin ne olduğuna baktım. Nasıl oluşturulduğuna bakmıştım fakat tek başıma yapmam zordu. Çünkü ihtiyaçların neden kaynaklandığını ve hangi sorunlara çözüm olarak ne yapmam gerektiğini hala anlamıyordum.Sizin de yardımınızla sıfırdan bir mimarinin temellerini tasarlamanın (en azından başlangıçtaki temel safhaların) nasıl olduğunu gördüm. Daha detaylı bir raporu konuyu daha iyi kavradığımda yazacağım.
149. Gün
Açıkçası bugün kod yazmadığım için üzüldüm fakat siz yazarken de neredeyse her kod parçasının neden yazıldığını anladığımı düşünüyorum. Son birkaç kısım birazcık karışsa da tekrar bakınca anlayabileceğimi düşünüyorum. Bugün de MVC’ye uygun olarak bir yazılım mimarisinin nasıl oluşturulduğuna tanık olup, her bir kısmı en iyi şekilde idrak etmeye çalıştım. Boş kaldığım zamanlarda Laravel ya da Sympony’nin kodlarını ve dokümantasyonlarını inceledim.Çok iyi bir şekilde bu yapıyı öğreneceğime, hatta yakın zamanda basit seviyede de olsa bir benzerini oluşturabilecek seviyeye gelebileceğime inanıyorum. Bugünkü en büyük kazanımlarımdan biri de bu inançtı.
150. Gün
Bugün ilk önce dün yazdığımız koda baktım. Anlamadığım yerler varsa anlamaya çalıştım. Genel olarak neyin ne için çalıştığını anladığımı düşünüyorum. O açıdan bir problem yaşadığımı sanmıyorum.Sonrasında cache’in ne olduğunu araştırdım. Siz zaten kısaca anlatmıştınız, ve bende sadece web caching’in ne işe yaradığını biraz biliyordum. Fakat bugün farklı bir cache’I de gördüm. CPU ile ana bellek arasında da bir önbellek kullanımı varmış. O konuya bakarken biraz eksen kayması yaşanıp farklı konulara girdim. Sonrasında tekrar çıkıp MVC’ye geri döndüm. Tekrar kendi kodumuz ile Laravel’in dokümantasyonunu inceledim.
6 ayda ne kadar ilerledin diye sorarsanız, sizi daha iyi anlayabildiğimi düşünecek kadar ilerlediğimi düşünüyorum. Yakın zamana dek sizin kısaca oluşturduğunuz bir kodu okumakta bile aşırı zorlanıyordum. En azından sizin konuştuğunuz yabancı dilin gramerini, stilinizi biraz da olsa çözdüm diye düşünüyorum. Sizin söylediğiniz kelimeleri tekrar edip, anlamlarını kavrayarak, kendim de cümleler kurmaya çalışıyorum. Çalışacağım. Başaracağım da. John Von Neumann, Harold Finch, Spiderman, The Chosen One olunabilir mi şu an herhangi bir fikrim olmasa da en azından kendim olup güzel ve zekice işler yapmaya çalışacağım.
Bugün aklıma uçuk bir fikir takıldı: Eğer veri ya da bilgi, maddeye (hacim ve kütlesi bulunan) ihtiyaç duymadan iletilebiliyorsa, var olabiliyorsa, maddesiz bir şekilde depolanabilir miydi? Kendi kendine var olabilir miydi? İmkansızdır belki ama düşünmek, başarısız da olsa yeni fikirlere ve hayallere sahip olmak gerçekten insanı huzurlu yapıyor genel olarak.