Haftalık Karıştırmalıklar #18 React.js
Yazılımın farklı alanlarından içerik özetlerini derleyen e-bülten
React, günümüzde kullanılan en popüler kütüphanelerden biridir. Facebook gibi bir devin içinde üretildiği göz önüne alındığında, her zaman başarılı olacağını varsaymış olabilirsiniz. Peki ya size React'in kamusal alanla ilk karşılaşmasının hiç de göz alıcı olmadığını söyleseydik?
Bu haftaki bültenimize çok önemli bir belgesel tavsiyesiyle başlıyoruz, React.js: The Documentary. React'in dünya sahnesine çıkmasına yardımcı olan kendini adamış bir grup geliştiriciye odaklanarak React'in ilk günlerinin arkasındaki tüm hikayeyi size sunuyor. Bu hikaye Tom Occhino, Christopher Chedeau, Pete Hunt, Sebastian Markbåge, Dan Abramov ve daha birçok geliştiriciden oluşan yıldız bir kadro tarafından anlatılıyor.
React Yazarken 4 İpucu
Yazılımcı olarak sürekli daha iyi ve daha optimize kodlar yazmak için arayış içerisindeyiz. Bu arayışta bulduğu 4 ipucunu blogunda paylaşan Pavel’in tavsiyelerini derledik.
Handler ile return etme
Currying benzeri bir method ile parametreleri önceden ayarlama, bu sayede tek fonksiyonla birden fazla çıktı almak mümkün hale geliyor.
Sorumlulukları ayırma
Bileşenleri bağımsız alt modüller haline getirmenin daha faydalı olacağını söyleyebiliriz.
Koşullar yerine map etme
Özellikle çoklu kullanıcı tipi olan uygulamalarda if / else ile bileşenleri dönmektense map etmenin daha faydalı ve geliştirmeye daha müsait olduğundan bahsedebiliriz.
function Account({type}) {
let Component = UsualAccount
if (type === 'vip') {
Component = VipAccount
}
if (type === 'moderator') {
Component = ModeratorAccount
}
if (type === 'admin') {
Component = AdminAccount
}
return (
<div className='account'>
<Component />
<AccountStatistics />
</div>
)
}
Bunun yerine böyle bir kod yapısı:
const ACCOUNTS_MAP = {
'vip': VipAccount,
'usual': UsualAccount,
'admin': AdminAccount,
'moderator': ModeratorAccount,
}
function Account({type}) {
const Component = ACCOUNTS_MAP[type]
return (
<div className='account'>
<Component />
<AccountStatistics />
</div>
)
}
Bağımsız değişkenleri React yaşam döngüsünün dışına koyma
Bağımlılıkları daha açık hale getirerek kod netliğini artırır. Dolayısıyla bileşenleri okumak ve anlamak çok daha kolay hale gelir.
Neden 0.1 + 0.2 = 0.30000000000000004’tür?
Tarayıcınızın geliştirici araçlarında “Console” bölümüne girip 0.1 + 0.2 yazdığınızda sonuç olarak bunu göreceksiniz: 0.30000000000000004, peki neden böyle bir cevap alıyoruz?
>>> 0.1 + 0.2
0.30000000000000004
Bu probleme kısa bir cevap vermek gerekirse 0.1 aslında 0.10…55511151231257827021181583404541015625 gibi bir sayıya denk gelirken 0.2 ise 0.29…88897769753748434595763683319091796875 gibi bir sayıya denk geliyor ve haliyle ikisinin toplamı bu sonuca tekabül ediyor.
Peki ama neden?
Kayan Nokta Gösterimi kavramını duymuş muydunuz? Bazı sayıların bilgisayar ortamında anlaşılabilmesi için gereken bir gösterimdir ve dünyamızda sayılar sonsuza kadar gidebilirken bilgisayar ortamında çeşitli kısıtlamalar sebebiyle bu sayıların gösterimi de kısıtlanır.
32 Bitlik bu gösterimin ilk biti olan Sign sayının negatif mi yoksa pozitif mi olduğunu belirlerken. Sonraki 8 bitlik Exponent kısmı sayının üs kısmını belirliyor. Kalan Fraction kısmı ise sayımızın kesirini belirliyor. Gerekli hesaplamalar yapıldığında ise 0.15625 ondalıklı sayısı bu örnekte bizi karşılıyor.
İşte tam olarak verdiğimiz sayıların Kayan nokta gösterimindeki sınırlı betimlenmesi sonucu karşımıza aslında verdiğimiz sayıları temsil etmeyen ama aşırı hassas bir hesaplama gerektirmeyen işlerimizde de bizi sıkıntıya sokmayacak sonuçlarla karşılaşıyoruz.
Bireysel Girişimcilere 8 Haftalık Tavsiye Kılavuzu
Bir solopreneur (bireysel / tekil girişimci) olarak, fikrinizle dünyayı fethetme arayışında çoğu zaman yalnız olduğunuzu hissedebilirsiniz. Yazılımcı girişimciler için müşteri ile çözüm üretilecek problem arasındaki uyumu tespit etmek daha da zor hale gelebiliyor.
İşte bu noktada 8 Haftalık Başlangıç Kılavuzu devreye giriyor. Bu kılavuz, herhangi bir kod yazmaya başlamadan önce girişim fikrinizi doğrulamanıza yardımcı olabilir. Kılavuz, rekabeti araştırma, bir sorun hipotezi ifadesi yazma, erken benimseyen müşterileri arama ve sorunu tanımlamak için müşteri görüşmelerini analiz etme gibi faaliyetleri içerir. Bu faaliyetlerin amacı "müşteri-problem uyumunu" bulmak ve fikrin ürün-pazar uyumuna ulaşma şansını artırmaktır.
JavaScript’le Müzik
Strudel REPL, kullanımı çok eğlenceli, JavaScript ile yazılmış küçük müzik deneylerini bir araya getirmek için yapılmış çevrimiçi oyun havuzu. Hoşunuza giden bir şey bulana kadar sağ üstteki 'shuffle' düğmesini kullanabilirsiniz. Ayrıca, kendinizinkini oluşturmak için de bir eğitim var.