yEmreAk
  • 📚Docs
  • Blog
    • 🔍Yapay Zeka ile Arastirmalarim
      • Fesleğen ve Nane Yetiştirme Yöntemleri ve İpuçları
      • React Native Tabanlı Hızlı Geliştirme Süreci
      • React Uygulamalarında Modern State Yönetimi ve Entegrasyon Saklama Yöntemleri
      • Icerikler neden etkileyici gelir
      • Beyin Performansını Artırma Stratejileri
    • 🌱Kișisel Gelișim
      • Iceriklerdeki Stillerin ve Renklerin Psikoljik Etkileri
      • Psychological Effects of Styles and Colors in Contents
      • Yalnizlik
      • Duygulari Tam Olarak Nasil Isleriz, Islenmemiz Duygulardan Kurtulmak
      • Hayattaki Firsatlari Wi-Fi Analojisi ile Anlamaya Calismak
      • İçimizdeki eksiklik hissini tamamlamamak için disaridan bir şey aramak surdurelebilir degildir
      • Duygularla Basa Cikmak icin Basit Ama Etkili Yontemler
      • AirBNB kurucunun 15 yil sonra kesfettigi ve asil ihtiyaci oldugunu dusundugu sey: anlamli iliskiler
      • Gerçek Güçlü Yönlerinizi Keşfetme: Tatmin Edici Bir Kariyer İçin Basit Bir Rehber
      • 🌟Bir insanin kendini gerceklestirebilmesi icin gerekli adimlar
      • 🌟Insanlarla iliski nasil kurulur? Guven nasil kurulur, nasil insanlarla anlasiriz?
      • Insanlar Neden Tek Bir Fikre Takili Kalirlar, Sabit Fikirli Olurlar
      • 🌟Neden acgozlu oluruz, acgozluluk nedir, nasil olusur?
      • 🌟Öğrendiklerimizi Neden Paylaşmalıyız? Kişisel Yolculukta Özgünlüğün ve Paylaşımın Gücü
      • 🌟Why Should We Share What We Learn? The Power of Authenticity and Sharing in Personal Journeys
      • Why Do Children Watch the Same Video or TV Show Over and Over?
      • Nihai huzur yani kalici bir mutluluk icin dengeyi bulmak onemlidir
      • The Diary of a CEO - Steven Bartlett
      • İlişkinizin uzun süremeyeceğinin 12 sinyali
      • Disiplinli olarak bir seyi ilertletmenin formulu
    • 👨‍💻Programlama
      • alfred5 workflow ile javascript calistirmak
      • Typescript / javascript ile date bilgisi almak
      • yt-dlp icin cookie bilgilerini kullanmak
      • fastify ile google cloud gibi VM’lere http uzerinden baglanmada sorun yasiyorsak 0.0.0.0’i host name olarak atamaliyiz
      • Regex ile string icerisindeki uzun metni parcalara bolmek
      • pm2 code: 'ERR_REQUIRE_ESM' trouble
      • Notion Integration olusturmak; database ve sayfalari yonetmek
      • Typescript ESM icin Jest calistirmak
      • Running Jest tests for Typescript ESM modules
      • Converting Instagram saved_collections.json file to csv file and importing it to notion
      • Instagram saved_collections.json dosyasini csv dosyasina cevirmek ve notion’a aktarmak
      • \u00f0\u009f\u0091\u0080 gibi unicode metinleri dosyadan okumak, saved_collections.json
      • Typescript ile Websocket uzerinden zamanli bir sekilde mesaj gondermek, message queue
      • Typescript ve macOS ile clipboard yonetimi, copy paste
      • Deleting files, completely, from git history
      • spawn ve tail ile loglari izleme ve pretty etmek
      • return await Promise ile return Promise farki
      • Promise’leri calistirmadan tanimlamak icin function () ⇒ {} olarak tanimlanmali
      • Google Cloud uzerindeki sunucumuzu websocket server olarak kullanma ve websocket uzerinden baglanma
      • Git geçmişinden dosya temizleme
      • pm2, pino ve pino-pretty ile bunjs projesinin raporlarini yonetmek
      • Edge Computing Nedir?
      • Jest Run it - Jest ile test islemlerini VS Code ile hizlica yapmak icin eklenti
      • Jest icin VSCode uzerinde debug yapilandirmasi
      • Tesseract ile metinden ve videodan metni almak, image to text
      • yt-dlp ve ffmpeg kullanarak typescript ile video indirme methodu
      • Google Cloud uzerindeki sunucuda websocket tcp baglantilarina izin vermek icin firewall izni olusturmak
      • Extract audio from video with Typescript and ffmpeg
      • Video uzerinden sesi almak - Typescript - ffmpeg
      • Typescript ile npm package olusturmak ve yayinlamak
      • ngrok ile raspberrypi sunucusunu SSH üzerinden erişime açmak
      • SSH key oluşturup, sunucuya yükleme
      • ssh ile sunucudaki GUI uygulamalarini (chromium gibi) macOS uzerinde calistirmak
      • .ssh/config dosyası ne işe yarar
      • Nodejs ile ele alinmamis promise.rejectleri yakamalar
      • rsync kullanarak dosya aktarımı
      • RaspberryPi Sifirdan Kurulumu, SSH ve VNC baglantisi, ngrok ile internetten erismek
      • Raspberry icin Nodejs kurulumu
      • Typescriptle google-spreadsheet ile google sheet duzenlemek
      • Homebrew linux icin Checking for sudo access (which may request your password)... sorunu
      • Node modullerinden gelen hatalari gizlemek, TypeError [ERR_INVALID_STATE]: Invalid state: Writer has been released
      • Bunjs ile Node gerektiren paketleri / modulleri (pino-pretty, pm2) indirmek ve kullanmak
      • VS Code Typescript auto import sorunu cozumu
      • TypeError [ERR_INVALID_STATE]: Invalid state: Writer has been released
      • Websocket error.code’larini aciklamalari
      • Git ile tum commit gecmisini temizleme ve sifirdan yeni commit ile pushlamak
      • By, with, via karsilastirmasi (by vs with vs via)
      • TypeScript ile decorator tanimlayarak methodlari ve siniflari loglamak
      • TypeScript kullanarak Bun:test ile Hata Fırlatılmasını Beklemek - ts(2348)
      • Bunjs ile cli uzerinden input almak
      • Named Parameters vs Positional Parameters in Typescripts
      • Debounce yapisi ile cok sik yapilan requestleri birlestirmek ve tek bir seferde yapmak
      • Bunjs ve Typescript ile CLI Uygulamasi gelistirmek
      • MindEase VSCode Theme: Neurodesign ile Hazırlanmış, Sizin İçin İnşa Edilmiş
      • MindEase for VSCode: Crafted with Neurodesign, Built for You
      • How to fix Bunjs broken —global download
      • Bunjs —global indirme sorunu cozumu
      • How to use any Nodejs dependened modules (pino-pretty, pm2) with Bunjs
      • Cleaning up unused imports in Python with autoflake using a VS Code task
      • VS Code task ile python autoflake kullanarak kullanilmayan importlari temizlemek
      • Git ile Güvenli Push: --force-if-includes Kullanımının Gücü
      • Safe Pushing with Git:-force-if-includes
      • Typescript ile Class ismini dinamik olarak almak
      • PyTest ile Testlerinizi Yönetin: Bağımlılıklar ve Sıralama
      • Python ile terminal üzerinde tablo gösterme
      • SSH ve Rsync Kullanımı: .ssh/config Dosyası, Anahtar Oluşturma ve Dosya Aktarımı
      • Alfred5 icin python ve alfred5 paketi ile Alfred Workflowu Gelistirmek
      • Expect to throw with Typescript using Bun:test - ts(2348)
      • Type Alias Gösterimi Sorunu ve Çözümü
      • TypeSciprt ile dynamic key tanimlamak
      • Developing Alfred5 workflow using alfred5 python package
      • Typescript full-stack projeleri icin proje dizin yapisi ve tsconfig dosyasi nasil olmali
      • Uploading image to Imgur with Bunjs
      • VS Code web kodlarini tarayici uzerinde gostermek
      • GitHub Pages ile Apex domain desteklemeyen bir siteye yönlendirme yapmak
      • Typesciprt ile async git komutu calsitirmak
      • Windows 10 için otomatik mouse ve klavye tetikleyicisi
      • Vim Temel Klavye Kısayolları ve Hareketler
    • ❣️Duygular
      • Giriş
      • Açlık
      • Ağırlık
      • Alaycılık
      • Arzu
      • Aşağılık Hissi
      • Aşk
      • Bağlanma
      • Bezginlik
      • Bıkkınlık
      • Cesaret
      • Coşku
      • Dalgınlık
      • Depresyon
      • Doymuşluk
      • Duygusal Boşluk
      • Duygusal Çöküntü
      • Eğlence
      • Endişe
      • Endişe
      • Enerji
      • Fedakarlık
      • Gerilim
      • Gıpta
      • Gurur
      • Hafiflik
      • Hayal Gücü
      • Hayal kırıklığı
      • Hayal
      • Hayranlık
      • Hayret
      • Heyecan
      • Hırs
      • Hoşnutluk
      • Huzur
      • İç Çatışma
      • İç huzur
      • İç Rahatsızlık
      • İçtenlik
      • İhtiras
      • İlgilenme
      • İlgisizlik
      • İnanç
      • İstek
      • İsteksizlik
      • İyimserlik
      • Kabullenme
      • Kabullenme
      • Kafa karışıklığı
      • Kaygı
      • Kayıp
      • Kayıtsızlık
      • Kazanç
      • Keder
      • Kendinden eminlik
      • Kendinden nefret
      • Kendini beğenmişlik
      • Kibir
      • Kıskançlık
      • Kötümserlik
      • Korkaklık
      • Korku
      • Kuşku
      • Memnuniyet
      • Merak
      • Merhamet
      • Minnettarlık
      • Mükemmelliyetçilik
      • Mükemmelliyetçilik
      • Mutluluk
      • Nefret
      • Neşe
      • Öfke
      • Özgüven
      • Özlem
      • Özsaygı
      • Pişmanlık
      • Rahatlama
      • Rahatsızlık
      • Sabırsızlık
      • Şaşırma
      • Şaşkınlık
      • Şefkat
      • Şehvet
      • Sevinç
      • Sıkılma
      • Sıkıntı
      • Sinirlilik
      • Stres
      • Suçluluk
      • Şüphe
      • Tahammülsüzlük
      • Tatmin Olmak
      • Tatmin
      • Telaş
      • Tiksinti
      • Ümitsizlik
      • Üstünlük Hissi
      • Üzüntü
      • Üzüntü
      • Umut Kırıklığı
      • Umut
      • Utangaçlık
      • Üzüntü
      • Yalnızlık
      • Yanılgı
      • Yetersizlik
    • 🎵Müzik Analizleri
      • 🤗Müziklerde Kendini Keşfetmeye Hazır Mısın
      • Adele - Rolling in the Deep
      • Andra Day - Rise Up
      • Arman Cekin & Faydee - Better Days
      • Aurora - Cure For Me
      • AVAION - Pieces
      • Bella Poarch - Living Hell
      • Billie Eilish - lovely (with Khalid)
      • Billie Eilish - Six Feet Under
      • Böyleyken Böyle - Niye Benle Savaştın
      • Brennan Savage - Look At Me Now
      • Bruno Mars - Just the Way You Are
      • Chandler Leighton - When You Say My Name
      • Christina Perri - A Thousand Years
      • Clean Bandit - Rather Be
      • Clean Bandit - Rockabye
      • Clean Bandit - Symphony
      • Demir Demirkan - Aşktan Öte
      • Drake - In My Feelings
      • Dua Lipa - Don't Start Now
      • Duman - Senden Daha Güzel
      • Ed Sheeran - Beautiful People
      • Ed Sheeran - Perfect
      • Ed Sheeran - Photograph
      • Ed Sheeran - Shape of You
      • Elli Eli - I Got Summer on My Mind
      • Emin Kadir - Geceler 2
      • Evgeny Grinko – It's Foggy Today
      • Evgeny Grinko – On The Waves
      • Ezginin Günlüğü - Küçüğüm
      • Fazıl Say - İnsan İnsan
      • Ferhat Göçer - Ayrılsak Ölürüz Biz
      • Hailee Steinfeld - Love Myself
      • Hans Zimmer - Interstellar
      • Hurts - Miracle
      • Imany - Don’t Be So Shy (Filatov & Karas Remix)
      • Jaymes Young - Infinity
      • John Legend - All of Me
      • Katy Perry - The One That Got Away
      • Koyu - Sen Benim Başıma Gelen En Güzel Şey
      • Kygo - Stole the Show
      • Leona Lewis - Bleeding Love
      • Lewis Capaldi - Someone You Loved
      • Lofi Fruits Music - Gangsta’s Paradise
      • LP - Lost on You
      • Mabel - Don't Call Me Up
      • Mad World - Gary Jules
      • Mark Ronson - Uptown Funk
      • Melek Mosso - Hayatım Kaymış
      • NEA - Some Say
      • Nico & Vinz - Am I Wrong
      • Nirvana - Smells Like Teen Spirit
      • OMI - Cheerleader (Felix Jaehn Remix)
      • Passenger - Let Her Go
      • Phantogram - Black Out Days
      • Pharrell Williams - Freedom
      • Pharrell Williams - Happy
      • Radio Company - Drowning
      • RAVENS ROCK - Sweet Dreams (Instrumental Guitar)
      • Rema, Selena Gomez - Calm Down
      • Rihanna - Diamonds
      • Robin Schulz - In Your Eyes
      • Sena Şener - Kaybettiklerimi Geri Ver
      • Serdar Ortaç - Karabiberim
      • Shawn Mendes, Camila Cabello - Señorita
      • Simge - Aşkın Olayım
      • Skrillex, Justin Bieber & Diplo - Where Are Ü Now
      • The Weeknd - Blinding Lights
      • Tiësto - The Business
      • Tom Odell - Another Love
      • Tones and I - Dance Monkey
      • Two Neighbors - Comfort Zone
      • Tylor Swift - Wildest Dreams
      • UNDREAM - Chemical X
      • Whitney Houston - I Will Always Love You
      • Wye Oak - Civilian
      • Yeni Türkü - Cember
      • Yüzyüzeyken Konuşuruz - Bodrum
      • Zero 9:36 - Leave the Light On
      • Zeynep Bastık - Uslanmıyor Bu
    • 📰Genel
      • Saçmalıklar ve onlara değer yüklememiz
      • Apple Watch shortcuts’lari guncellemiyor nasil cozulur
      • How to fix Apple Watch not updating shortcuts
      • Samsung ViewFinity S9 Monitor Black Screen and Failure to Turn on
      • Samsung ViewFinity S9 Monitor Siyah Ekran ve Acilmama Sorunu
      • Apple Calendar ile Google Calendar’i senktronize etmek
      • Ingilizcede TH seslerini telaffuz etmek
      • Sanatı Sormak: Öğrenme ve Bağlantıyı Açığa Çıkaran Beş Adım
      • Siri ile Text-to-speech ve Speech-to-text kullanmak, metinden sese, sesten metine
      • Hormonlarimizin Hayatimiza Etkisi ve Basa Cikma Yontemleri
      • Insanlara teklif sunarken izlenmesi gereken yollar
      • MBTI kisilik tipindeki her harfin kisaca anlami
      • Şeker en fazla 36mg tüketmeliyiz
      • Dikkatinizi Dağıtan 5 Hata - Odaklanmanızı Bozan 5 Hata
      • İyi bir üniversite deneyimi için 8 Strateji
      • CapCut uzerinde video uzerine resim eklemek, overlay
      • Alfred - Productivity App for macOS
      • Alfred’in belirli dosyalari gostermesini engellemek, exclude files
      • 2024 yilinda en cok kar elde eden sirketler ve sektorler
      • macOs ile terminallerin hepsini tek bir pencerede birlestirmek, merging all terminal tabs into one window
      • AirBNB kurucunun 15 yil sonra kesfettigi ve asil ihtiyaci oldugunu dusundugu sey: anlamli iliskiler
      • Chrome Dev Console ile aktif websocket verilerini yonetmek
      • ChatGPT, Mermarid ve ExcaliDraw ile Elle Cizilmis Flowchart Olusturmak
      • Yandex navigasyonu Carplay yani araba uzerinde kullanmak icin Yandex Plus aboneligi VPN ile nasil al
      • Yandex navigasyonu Carplay yani araba uzerinde kullanmak icin Yandex Plus aboneligi VPN ile nasil alinir
      • iOS, iPhone ile bilinmeyen numaralardan gelen SMS’ler icin bildirimi kapatmak
      • To turn off notifications for SMS messages from unknown numbers on iOS
      • Amazon AWS ve Azure için Şirketinize veya Vergi Numaranıza Fatura Kesmek
      • E Devlet Uzerinden Rahatsiz Edici SMS, Arama veya E-posta Bildirimlerini Engellemek ve Sikayet Etmek
      • Monitor Tercih ederken dikkat edilmesi gerekenler
      • Mac ve QuickTime Player ile videoları birleştirme, kırpma düzenleme
      • Ölümün insan üzerinde etkisi
      • iCloud üzerinden resimleri meta data (tüm bilgileri, konum, saat vs) ile indirme
      • Resim Boyutu Küçültmek Image Compress
      • iPhone’u fabrika ayarlarına döndürmek, beta sürümden çıkmak
      • GitHub search yapisi ile tum kodlarin arasinda hizlica gecis yapabilirsin
      • Platform Options for Content Creators
      • Separate ChatGPT inputs to chunks and save it to clipboard
    • 💎MBTI ve 16 Kişilik Tipleri, Envanteri
      • ENFJ - Önder - Protagonist
      • INTJ - Mimar - Architect
    • 📚Beğendiğim İçerikler
      • Video Ozeti - Hayatımızı Değiştirecek Teknoloji: NANOBOTLAR - Baris Ozcan
    • 🔮Hikaye Anlatıcılığı - Storytelling
      • Yakınlığın Değeri: İnsanları Yakından Tanımanın Önemi
  • Arsiv
    • 📚Kitaplar
    • 📖Yazılarım
      • 🤖Android Things
      • 📸CameraX Kullanımı
      • 🔥Firebase ML-Kit
      • 📍Google Maps Kullanımı
      • 👜Google Play Store
      • 🐞Android Default App Hatası
      • ✍️Kişisel Notlarım
      • 💁‍♂️Neden Kotlin
      • 🚧Proje İsmi Değiştirme
      • 📅Tarih işlemleri
      • 📲Telefonu Bilgisayara Bağlama
      • ✨Verimli Programlama
      • 🚫WebView İçerisindeki Reklamları Engelleme
      • 👷‍♂️Kotlin Kurulumu
      • 🚀Kotlin'in Java'ya Göre Avantajları (Kotlin vs Java)
      • 💥… (ellipsis) kullanımı
      • 🔢Algoritma Örnekleri
      • 🧾Fonksiyon Süresini ve Çağırıldığı Yeri Dekoratör ile Raporlama
      • 🐞ImportError: attempted relative import with no known parent package
      • 🧲İnternet Üzerinden Veri Çekme
      • 📊Verileri Kategorize Etme
      • 📦Pip ile Kurulabilir Python Paketi Oluşturma
      • 🌟Python'da Önemli Hususlar
      • 📈Verimli Kodlama
      • ℹ️aiohttp.ClientSession() içerisideki params, data ve json ne işe yarar
      • 📜Amazon AWS ve Azure için Şirketinize veya Vergi Numaranıza Fatura Kesmek
      • 📲Android Telefonlar için Faydalı Uygulamalar
      • 🔢Asal Sayılar
      • 💡Aydınlatma
      • 🪖Bedelli Askerlik için Bilmemiz Gerekenler
      • 🧠Beyin Kimyasının Gücü: Mutluluk ve Stres Hormonları
      • ⏳Bilgisayarda Zaman Yönetimi (Time Tracking)
      • 👨‍🏫ChatGPT modelini verilerimizle eğitmek
      • 🕵️‍♂️CoinMarketCap'ten Exchange Bilgilerini Çekme ve CSV'ye Kaydetme
      • 💵CoinMarketCap'ten Exchange için Currency Bilgilerini Çekme ve CSV'ye Kaydetme
      • 🈷️En Verimli Yazı Formatı ve Psikolojik Etkileri
      • 🗑️Facebook Hesabını Kalıcı Olarak Silmek
      • 🔥Firebase ML-Kit
      • 🔥Firebase
      • ⏩Gmail iletilerini otomatik olarak başka bir hesaba iletme
      • 🖼️iCloud üzerinden resimleri meta data (tüm bilgileri) ile indirme
      • 🤖Instagram Bot
      • 📱iPhone’u fabrika ayarlarına döndürmek, beta sürümden çıkmak
      • 🕵️Lastik Alırken Dikkat Edilmesi Gerekenler
      • 🔆Macbook ekranını kapatmak ve parlaklık sınırını zorlamak
      • 🌴Marcul Aurelius nasıl sakin kalıyor
      • 🚀Microsoft Student Partnership
      • 📶Mobil Telefonlar Nasıl Haberleşir
      • 📖Notion Kullanımı
      • 💸Öğrencilere Ücretsiz Yazılımlar
      • ✨pip ile requirements paketlerini güncelleme
      • ✈️Polonya'da Erasmus
      • 👨‍💼pyenv ve virtualenv ile birden fazla python sürümü yönetimi
      • 🔄pytest ile asyncio RuntimeError: Event loop is closed sorunu çözümü
      • 🧪PyTest ile Testlerinizi Yönetin: Bağımlılıklar ve Sıralama
      • 🐞Python için ImportError: attempted relative import with no known parent package
      • 📉Python ile grafik çizme ve çizgi kesişimlerini engelleme
      • 📧Python ve Twilio ile SMS server oluşturma
      • 🍓Raspberry Pi Kurulumu, Yönetimi ve Internet Paylaşımı
      • 🍓Raspberry Pi Kurulum, Yönetim ve Paylaşım
      • 🗜️Resim Boyutu Küçültmek Image Compress
      • 🔐SSH Konfigürasyon ve Kullanım Rehberi: Anahtarlar, Dosya Transferi ve Daha Fazlası
      • 🔐SSH ve Rsync Kullanımı: .ssh/config Dosyası, Anahtar Oluşturma ve Dosya Aktarımı
      • ⛅Sunucu Yönetimi
      • 🎨Tasarım Notları
      • 🧵Thread Pool (Executors) Kavramı
      • Type Alias Gösterimi Sorunu ve Çözümü
      • 🔱TypeScript | Readonly Async Property Tanımlama
      • 🐧Ubuntu 22.04 icin Nodejs Kurulumu
      • 🤖Valorant Trigger Bot
      • Vim Temel Klavye Kısayolları ve Hareketler
      • 🌌virtualenv ile sanal ortamlarda çalışmak
      • 📱Xiaomi Mi A2 Lite Notlarım
      • 🗺️Yazılıma Giriş Rehberi
      • ⬇️Youtube Üzerinden Video İndirmek
      • 💍Yüzük Alırken Nerelere Dikkat Edilmeli, Yüzük Ölçüsü Nasıl Bulunur
    • 👨‍💻Programlama Notları
      • 🧱Programlama Temelleri
        • 🙋‍ Programlamaya Giriş
        • 🌟Programlamada Önemli Hususlar
        • 💎Programlama Terimleri
        • 📈Verimli Programlama
      • 📑Markdown
        • 🔰Markdown'a Giriş
        • �� Markdown'da İstatistik
        • 🔗Markdown ile Link
        • 🧾Markdown to PDF
        • 💎Markdown Regexleri
      • 💎Regex
        • 🤯Gelişmiş Notlar | Regex
        • 🔰Kullanım | Regex
      • 🤝Yardımcı Diller
        • 👨‍💻Batch Script
        • 📈Excel
        • 🍃MongoDB
        • 💽MySQL
        • 🐘PostgreSQL
        • 👨‍💻Shell Script
        • 👨‍💼UML
      • 🐈Scratch
        • 🍱Blok Tanımlama | Scratch
        • 🔰Giriş | Scratch
        • 📢Haber Salma | Scratch
        • 👨‍💻Kodlama Notları | Scratch
        • ⭐Oyun Örnekleri | Scratch
      • 🧩Popüler Dosya Uzantıları
      • 🔐Yazılım Lisansları
      • 💻C#
        • 🎶C# Projeye Gömülü Ses Dosyası Ekleme
      • 🎮Oyun Programlama
        • 🔲Unity
        • 🛵Unreal Engine
      • 🔩C, C++
        • 👨‍🔧Hata Çözümleri | C
        • 💡Scanf Veri Alma Sorunu | C
      • ⏹️Roblox
        • 🚴‍♂️Giriş | Roblox
        • 📜Scriptler | Roblox
      • 🧩Visual Studio Eklentisi
        • 👨‍💼Eklenti Yönetimi | VSIX
        • 🤖IDE Objelerine Erişme | VSIX
        • 🚴‍♂️İlk Projeyi Oluşturma | VSIX
        • 👨‍💻Kod Örnekleri | VSIX
        • 📜XAML Notları | VSIX
    • 📦Uygulama Notları
      • 📌Google Notları
        • 🔱Google Chrome'da Verimlilik
        • 🟡Google Colab
        • ⛅Google Drive Notları
        • 🔍Google Hacking
        • 👀Google Hızlı Bakış
        • 📍Google Maps
      • 🥦JetBrains IDEs
        • ⚙️Ayarlar | JetBrains IDE
        • 🥴Diğer Notlar | JetBrains
        • 🌈Eklentiler | JetBrains IDE
        • 💞Kısayollar | JetBrains IDE
        • 🔌Plugin Oluşturma | JetBrains IDE
        • 🏗️Proje Yapılandırma | JetBrains IDE
        • 🥴Karma Notlar | JetBrains
        • 💞Kısayollar | JetBrains
        • 🏗️Proje Yapılandırma | JetBrains
      • 🌃Visual Studio Code
        • 💎Değişkenler | VS Code
        • 🔨Yapılandırma | VS Code
        • 🧩Eklentiler | VS Code
        • 🔰Giriş | VS Code
        • 👨‍🔧Hata Çözümleri | VS Code
        • 💞Kısayollar | VS Code
        • 🤹‍♂️Task oluşturma ve birbirine bağlama | VS Code
        • 👷‍♂️Tasks | VS Code
        • 🧩Eklenti Programlama | VS Code
      • 🧩Visual Studio Eklentisi
        • 🚴‍♂️Giriş | VS Extension
        • 👨‍💻Kod Örnekleri | VS Extension
        • 🤖Otomasyon | VS Extension
        • ⭐Proje Örneği | VS Extension
      • 📺Youtube
      • 👨‍🎨Adobe XD
      • 🧹CCleaner
      • 🎳Discord
      • 🐳Docker
      • 💫GittiGidiyor Entegrasyon
      • 🚗LGSV Simulator
      • 📑Notepad++
      • 📝OneNote
      • ⏹️Protocol Buffer (Protobuf)
      • 🏠Sid Meiers Civilization 5
      • 💌Telegram
      • 💚Warcraft 3 The Frozen Throne
    • 🐍Python
      • ⭐Proje Örnekleri
        • 💲Anlık Dolar Fiyatı Alma
        • 📑Google Sheet Düzenleme
        • 🧹LinkedIn üzerindeki bağlantıları temizleme
        • 🤖Telegram Botu Oluşturma
        • ⬇️Youtube Üzerinden Video İndirmek
      • 🔰Giriş
        • 💎Değişkenler
        • 💫Döngüler
        • 🙋‍♂️Hoş Geldin
        • 🔑Anahtar Kelimeler (Keywords)
        • ⚖️Koşullar
        • 💠Operatörler
        • 💻Python için VsCode
      • 🧱Temel
        • 🏗️Decorator
        • 📑Dokümantasyon
        • 🔮Fonksiyonlar
        • 🐛Hata Yönetimi
        • 👮‍ Kural Koyma
        • 📦Modül ve Paketler
        • Page 1
        • 🌟Popüler Paketler
        • 🔮Fonksiyonlar
        • 📜Raporlama
        • 🎲Rastgelelik
        • 💎Regex İşlemleri
        • 🍎Sınıflar ve Miras Alma
        • 🔤String İşlemleri
        • ⚗️Test İşlemleri
        • 🕐Zaman İşlemleri
      • 🏗️Veri Yapıları
        • 📁Array
        • 🍎Data Classes
        • 📙Dict
        • 🌟Hızlı Bakış
        • 🚧Veri Yapılarında İşlemler
        • 📋List
        • ⭕Set
        • 👝Tuple
      • 🚧Veri Yapılarında İşlemler
        • 🔍Arama
        • 📚Birleştirme
        • 🤸‍ Comprehensions
        • 💱Dönüşüm
        • 👯‍♀️Kopyalama
        • 🚄Sıralama
      • 📰Koleksiyonlar
        • ⏳Counter
        • 🌠Deque
        • 💎Namedtuple
        • 📗Verimli Dict Yapıları
      • 📂Dosya İşlemleri
        • 👮‍♂️Erişim Yöntemleri | Dosya
        • ⭐Örnekler | Dosya
        • 🚩Yol İşlemleri | Dosya
        • 🛍️Pathlib | Dosya
        • 🔨Properties | Dosya
        • 🌟Sık Kullanılanlar | Dosya
      • 🖤Komut İstemi
        • 💠Argparse Action
        • 🌊Argparse Nargs
        • ⭐Argparse Örnekleri
        • ✨Argparse
        • 👨‍💼Komut İstemi Yönetim
      • 🔆Grafiksel Arayüzler
        • 📈Grafik Çizimleri
        • 👨‍💻Görsel Programlama
        • 🍢System Tray App
        • 👨‍🎨Tkinter
      • 💞Eş Zamanlı İşlemler
        • 💫Asyncio
        • 🎌Komut Çalıştırma
        • 🎎Multiprocessing
        • 🧵Multithreading
      • 🕸️Web Programlama
        • 🔥Django
        • 🌶️Flask
        • 💌HTTP İstekleri
        • 🕳️Web Socket
      • 📚Diğer Notlarım
        • 🔄Continuous İntegration (CI)
        • 🔳Ekran Yönetimi
        • 🖤Executable Dosya Oluşturma
        • ✨Faydalı İşlemler
        • 🎴Görüntü İşlemleri
        • 👨‍🔧Hata Çözümleri
        • 💌HTTP İstekleri
        • ⌨️Input Yönetimi | pynput
        • ⌨️Klavye Yönetimi
        • 🏗️Kod içi Yapılar
        • 🖱️Mouse Yönetimi
        • 📦Pip ile Kurulabilir Python Paketi Oluşturma
        • ⚗️Test İşlemleri
        • 🌇Sanal Ortam Oluşturma
        • 👨‍🔧Sistem Yönetimi
        • 💫Thread ve MultiProcessing
      • 💚Anaconda
        • 👷‍♂️Anaconda & Miniconda Kurulumu
        • 🎪Diğer Notlar | Conda
        • 🏂Anaconda'ya Giriş
        • 📦Paket Kurulumları | Conda
        • 🌇Sanal Ortamlar | Conda
        • 🧱Temel Kullanım | Conda
        • 🧠Yapay Zeka Paketleri | Conda
      • 📗IPython
        • 🔗Faydalı Bağlantılar | IPython
        • 🚴‍♂️IPython'a Giriş
        • 🔆Görsel Arayüz (GUI) | IPython
        • 🔃I/O İşlemleri | IPython
        • 🧱Temel İşlemler | IPython
        • 🖤Terminal İşlemleri | IPython
      • 📦Faydalı Paketler
        • 🧐FileType
        • 🕐Schedule
      • 🔗Faydalı Bağlantılar
      • 🥴Karışık Notlar
        • 🔢Algoritma Örnekleri
        • ✨Faydalı İşlemler
        • 📈Verimli Kodlama
    • 🏫IUC CE - İstanbul Üniversitesi - Cerrahpaşa | Bilgisayar Mühendisliği
      • 💖Katkıda Bulunma Rehberi
      • 🏫Okul Hakkında Bilgiler
        • 👨‍🏫Akademik Kadro
        • 📙Ders Seçimi
        • 📗Faydalı Bilgiler
        • 👯Okul Kulüpleri
        • 🛫Polonya'da Erasmus
        • 🔬Proje Notları
        • 🌟Sık Kullanılan Bilgiler
        • 👨‍🏫Staj Notları
        • 🤑Ücretsiz Yazılımlar
      • 📚1. Sınıf 1. Dönem Notları
        • 🔰Bilgisayar Mühendisliğine Giriş
          • 📕Öğrenci Notları | BMG
        • 🧮Calculus 1
          • 📕Öğrenci Notları | C1
          • 📃Sınav Soruları | C1
        • 🔢Discrete Mathematics
          • 📕Öğrenci Notları | DM
          • 📃Sınav Soruları | DM
        • 💠Fizik 1
          • 📕Öğrenci Notları | F1
          • 📃Sınav Soruları | F1
        • 🔰Introduction to Algorithms
          • 📕Öğrenci Notları | ItA
          • 📃Sınav Soruları | ItA
        • ☪️Türk Dili 1
          • 📃Sınav Soruları | TD1
      • 📚1. Sınıf 2. Dönem Notları
        • 📅Atatürk İlkeleri ve İnkılap 2
          • 📚Ders İçeriği | Aİvİ2
          • 📃Sınav Soruları | Aİvİ2
        • 🔱Bilişim Etiği
          • 🆎Harf Notu | BE
          • 🎲Karma İçerikler | BE
        • 🧮Calculus 2
          • 📚Ders İçeriği | C2
          • 🆎Harf Notu | C2
          • 📕Öğrenci Notları | C2
          • 📃Sınav Soruları | C2
        • 💠Fizik 2
          • 📚Ders İçeriği | F2
          • 📃Sınav Soruları | F2
        • 🔰Introduction to Programming
          • 📖Genel Notlar | ItP
          • 🆎Harf Notu | ItP
          • 📕Öğrenci Notları | ItP
          • 📃Sınav Soruları | ItP
        • 🔢Linear Algebra
          • 📕Öğrenci Notları | LA
          • 📃Sınav Soruları | LA
        • 🔤Türk Dili 2
          • 📃Sınav Soruları | TD2
      • 📚2. Sınıf 1. Dönem Notları
        • 😵Derlenmemiş Notlar
          • 🗃️Sınavlar | DN
        • ⚡Devreler ve Sistemler
          • 📚Ders İçeriği | DvS
            • 📅Final | DvS
            • 👩‍🔬Lab Notları | DvS
            • 📅Vize | DvS
          • 📖Genel Notlar | DvS
          • sinav-sorulari | DvS
        • ➰Differantial Equations
          • 📕Öğrenci Notları | DE
          • 📃Sınav Soruları | DE
        • 🅾️Lojik Devre Tasarımı
          • 📚Ders İçeriği | LDT
            • 📅Final | LDT
            • 📅Vize | LDT
          • 📖Genel Notlar | LDT
          • 📕Öğrenci Notları | LDT
          • 📃Sınav Soruları | LDT
        • 👨‍💻Nesneye Yönelik Programlama
          • 📚Ders İçeriği | NYP
            • 📅Final | NYP
            • 📘Kitaplar | NYP
            • 📅Vize | NYP
          • 📕Öğrenci Notları | NYP
          • 📃Sınav Soruları | NYP
        • 🎲Olasılık Teorisi ve İstatistik
          • 📕2022 | OTvİ
          • 📕Ders İçeriği | OTvI
            • 2022
            • Eski
              • Final
              • Vize
          • 📚Ders İçeriği | OTvİ
            • 📅Final | OTvİ
            • 📅Vize | OTvİ
          • 📕Öğrenci Notları | OTvİ
          • 📃Sınav Soruları | OTvİ
        • 💾Veri Yapıları
          • 📚Ders İçeriği | VY
            • 📖Genel Notlar | VY
            • 👩‍🔬Lab | VY
            • ⭐Ödevler | VY
          • 📕Öğrenci Notları | VY
          • 📃Sınav Soruları | VY
      • 📚2. Sınıf 2. Dönem Notları
        • 👨‍🔬Bilgisayar Organizasyonu ve Tasarımı
          • 📚Ders İçeriği | BOvT
            • 📅Final | BOvT
            • 📅Vize | BOvT
          • 🆎Harf Notu | BOvT
          • 📕Öğrenci Notları | BOvT
          • 📃Sınav Soruları | BOvT
        • 🗃️File Organization
        • ➰Formal Diller ve Otomatlar
          • 📚Ders İçeriği | FDvO
            • 📅Final | FDvO
            • 📅Vize | FDvO
          • 📃Sınav Soruları | FDvO
        • 👨‍🔬Lojik Devre Tasarımı - Lab
          • 📚Ders İçeriği | LDT-L
          • 📕Öğrenci Notları | LDT-L
          • 📃Sınav Soruları | LDT-L
        • ⚙️Mikroişlemciler
          • 📚Ders İçeriği | M
            • 📅Final | M
          • 📕Öğrenci Notları | M
          • 📃Sınav Soruları | M
        • 👨‍💻Programming Applicaiton
          • 📚Ders İçeriği | PA
            • 📅Vize | PA
          • 🆎Harf Notu | PA
          • 📕Öğrenci Notları | PA
          • 📃Sınav Soruları | PA
        • 🎲Random and Stochastic Processes
          • 📚Ders İçeriği | RaSP
          • 🆎Harf Notu | RaSP
          • 📃Sınav Soruları | RaSP
        • 🔢Sayısal Metodlar
          • 📚Ders İçeriği | SM
          • 📕Öğrenci Notları | SM
          • 📃Sınav Soruları | SM
      • 📚3. Sınıf 1. Dönem Notları
        • 🧐Algorithm Analysis
          • 📚Ders İçeriği | AA
            • 2022 | AA
            • Eski
              • 📅Final | AA
              • Kitap
              • 📅Vize | AA
          • 🆎Harf Notu | AA
          • 📕Öğrenci Notları | AA
          • 📃Sınav Soruları | AA
        • 🧠Artificial Intelligence
          • 📚Ders İçeriği | AI
            • 📅Final | AI
            • 📅Vize | AI
          • 🆎Harf Notu | AI
          • 📕Öğrenci Notları | AI
          • 📃Sınav Soruları | AI
        • 👨‍🔬Bilgisayar Organizasyonu ve Tasarımı - Lab
          • 📚Ders İçeriği | BOvT-L
            • 2022 | BOvT
            • Eski
          • 📕Öğrenci Notları | BOvT-L
          • 📃Sınav Soruları | BOvT-L
        • ⚖️Bilişim Hukuku
          • 📕Ders İçeriği | BH
            • 2022 | BH
            • 📕Eski | BH
              • 📅Final | BH
              • 📹Sunumlar | BH
              • 📅Vize | BH
          • 📕Öğrenci Notları | BH
          • 📃Sınav Soruları | BH
        • 🏧Data Communication
          • 📕Öğrenci Notları | DC
          • 📃Sınav Soruları | DC
        • 💰Mühendislik Ekonomisi
          • 📕Öğrenci Notları | ME
          • 📃Sınav Soruları | ME
        • 💻Operating Systems
          • 📕Ders İçeriği | OS
            • 2022 | OS
            • 📕Eski | OS
              • 📖Genel Notlar | OS
              • 📘Kitaplar | OS
              • 📹Ders Sunumları | OS
          • 🆎Harf Notu | OS
          • 📕Öğrenci Notları | OS
          • 📃Sınav Soruları | OS
        • 📶Signal Processing
          • 📕Ders İçeriği | SP
            • 2021
            • 📕2022 | SP
            • 📕Eski | SP
              • 📅2019 | SP
              • 📅Vize | SP
            • Homework
          • 📕Öğrenci Notları | SP
          • 📃Sınav Soruları | SP
            • 🕐Eski | SP
            • ⭐Yeni | SP
        • 👨‍💻Sistem Programlama
          • 📚Ders İçeriği | SP
            • 📖Genel Notlar | SP
            • 👨‍💻Kodlar | SP
            • 📜PDF | SP
            • 🏗️Proje | SP
          • 📕Öğrenci Notları | SP
          • 📃Sınav Soruları | SP
        • 📂Veritabanı Yönetim Sistemleri
          • 📕Ders İçeriği | VYS
            • 📕2022 | VYS
              • [Odevler ve Sinavlar](arsiv/iuc-ce/<donem5/veritabani-yonetim-sistemleri/ders-icerigi/2022/Odevler ve Sinavlar/README.md>)
                • [📕 Ödevler ve Sınavlar | VYS](arsiv/iuc-ce/<donem5/veritabani-yonetim-sistemleri/ders-icerigi/2022/Odevler ve Sinavlar/VeritabaniOrnekOdevVeSinavPART1/README.md>)
                  • [VeritabaniOrnekOdevVeSinav](arsiv/iuc-ce/<donem5/veritabani-yonetim-sistemleri/ders-icerigi/2022/Odevler ve Sinavlar/VeritabaniOrnekOdevVeSinavPART1/VeritabaniOrnekOdevVeSinav/README.md>)
                • [VeritabaniOrnekOdevVeSinavPART2](arsiv/iuc-ce/<donem5/veritabani-yonetim-sistemleri/ders-icerigi/2022/Odevler ve Sinavlar/VeritabaniOrnekOdevVeSinavPART2/README.md>)
              • Slaytlar
              • Yonlendirme
            • 📕Eski | VYS
              • 📅Final | VYS
              • 📅Vize | VYS
              • 📖Ödevler | VYS
                • 📕Odev1
                • 📗Odev2
                  • 📢Açıklama
                  • 🗃️SQL
                • 📘Odev3
                • 📙Odev4
                • 📕Odev5
          • 📕Öğrenci Notları | VYS
          • 📃Sınav Soruları | VYS
      • 📚3. Sınıf 2. Dönem Notları
        • 🔲Bilgisayar Grafikileri
          • 📃Sınav Soruları | BG
        • 🏰Bilgisayar Mimarisi
          • 📚Ders İçeriği | BM
            • 📅Final | BM
            • 🏗️Proje | BM
            • 📅Vize | BM
          • 🆎Harf Notu | BM
          • 📕Öğrenci Notları | BM
          • 📃Sınav Soruları | BM
        • 🕸️Computer Networks and Technologies
          • 📚Ders İçeriği | CNaT
            • 📅Final | CNaT
            • 📅Vize | CNaT
            • 📖Genel Notlar | CNaT
          • 📕Öğrenci Notları | CNaT
          • 📃Sınav Soruları | CNaT
        • 🖼️Görüntü İşleme
          • 📚Ders İçeriği | Gİ
            • 📅Final | Gİ
            • 📅Vize | Gİ
          • 📕Öğrenci Notları | Gİ
          • 📃Sınav Soruları | Gİ
        • 👨‍⚕️İş Sağlığı ve Güvenliği
          • 📚Ders İçeriği | İSvG
          • 📕Öğrenci Notları | İSvG
          • 📃Sınav Soruları | İSvG
        • 👨‍💻Software Engineering
          • 📚Ders İçeriği | SE
            • 📅Final Kısmı | SE
            • 📅Vize Kısmı | SE
              • 👩‍🔬Lab Notları
              • 📃PDF
              • ☪️Slaytların Türkçesi
          • 🆎Harf Notu | SE
          • 📕Öğrenci Notları | SE
          • 📃Sınav Soruları | SE
        • 🧪Software Testing and Quality
          • 📚Ders İçeriği | STaQ
            • 📅Final | STaQ
            • 📅Vize | STaQ
          • 📕Öğrenci Notları | STaQ
          • 📃Sınav Soruları | STaQ
        • 🕸️Web Programlama
          • 📚Ders İçeriği | WP
      • 📚4. Sınıf 1. Dönem Notları
        • 📟Bilgisayar Aritmetiği
          • 📚Ders İçeriği | BA
          • 📕Öğrenci Notları | BA
          • 📃Sınav Soruları | BA
        • 💡Bilişim Proje Geliştirme
          • 📚Ders İçeriği | BPG
            • 📑Formlar | BPG
              • 📅2018
              • 📅2019
              • 📄Proje Geliştirme Raporları
            • ⭐Ödevler | BPG
            • 📹Ders Sunumları | BPG
          • 📖Genel Notlar | BPG
          • ✍️Öğrenci Notları | BPG
          • 📃Sınav Soruları | BPG
        • 💭Bulanık Mantık
          • 📚Ders İçeriği | BM
            • 📅2018 | BM
          • 🆎Harf Notu | BM
          • 📕Öğrenci Notları | BM
          • 📃Sınav Soruları | BM
        • 🔨Derleyici Tasarımı
          • 📚Ders İçeriği | DT
            • 📅2018 | DT
          • 🆎Harf Notu Dağılımı | DT
          • 📃Sınav Soruları | DT
        • 🔑İnformasyon Güvenliği ve Kriptoloji
          • 📚Ders İçeriği | İGvK
          • 🆎Harf Notu Dağılımı | İGvK
          • 📕Öğrenci Notları | İGvK
          • 📃Sınav Soruları | İGvK
        • 📶Kablosuz Haberleşme Ağları
          • 📕Öğrenci Notları | KHA
        • ➗Matlab
          • 📚Ders İçeriği | M
        • 📱Mobile Programming
          • 📚Ders İçeriği | MP
            • 📖Genel Notlar | MP
            • 🏗️Proje | MP
          • 🆎Harf Notu | MP
          • 📕Öğrenci Notları | MP
          • 📃Sınav Soruları | MP
        • 🧠Neural Networks
          • 📚Ders İçeriği | NN
          • 🆎Harf Notu | NN
          • 📕Öğrenci Notları | NN
          • 📃Sınav Soruları | NN
        • 📏Yön Eylem
          • 📚Ders İçeriği | YE
          • 📕Öğrenci Notları | YE
          • 📃Sınav Soruları | YE
      • 📚4. Sınıf 2. Dönem Notları
        • 🕸️Ağ Programlama
          • 📚Ders İçeriği | AP
          • 🎲Karma İçerikler | AP
          • 📕Öğrenci Notları | AP
          • 📃Sınav Soruları | AP
        • 👮‍♂️Bilgisayar Ağlarında Güvenlik
          • 📚Ders İçeriği | BAG
          • 🎲Karma İçerikler | BAG
          • 📃Sınav Soruları | BAG
        • 💎Bitirme Projesi | BP
        • 📈Finansta Bilişim Teknolojileri
          • 🎲Karma İçerikler | FBT
        • 🔸Information Technology Management and Standards
          • 📚Ders İçeriği | ITMaS
          • 🎲Karma İçerikler | ITMaS
        • 🏗️Object Oriented Analysis and Design
          • 📚Ders İçeriği | OOAaD
            • 📅Final | OOAaD
          • 🎲Karma İçerikler | OOAaD
          • 📕Öğrenci Notları | OOAaD
          • 📃Sınav Soruları | OOAaD
        • ⭐Special Topics on Computer Networks
          • 🎲Karma İçerikler | SToCN
        • 🏢Uygulamalı Girişimcilik
          • 📚Ders İçeriği | UG
          • 🏗️Proje Ödevi | UG
          • 📃Sınav Soruları | UG
      • 📚Karışık Notlar
    • 🚀yEmoji
      • 📖YEmoji Sözlüğü 👨‍🔬
      • 👨‍💻Geliştirici Commit'leri
      • 🔗Bağlantılar
    • 🎁Roblox
      • 💫Fonksiyonlar ve Kontroller
      • 🍹Gelişmiş Özellikler ve Başarılar: Oyununuzu Bir Sonraki Seviyeye Taşıyın
      • 🎯Karakterler, Eşyalar ve Görevler: Roblox Oyununuzda Hayat Yaratma
      • 🚀Lua ile Oyun Geliştirmeye Giriş
      • 📊Oyun İstatistikleri ve Yayın: Roblox Oyununuzun Performansını Takip Etme ve Dünyayla Paylaşma
      • 🎭Oyun Tasarımı ve Sanat: Oyununuzun Estetiğini Geliştirin
      • 🌃Roblox ile Duyusal Deneyimleri Tasarlama
      • 🌟Roblox ile Yaratıcı Oyun Tasarımları Oluşturma
      • 🔰Roblox ve Roblox Studio'ya Giriş
      • 🌍Roblox'ta Dünya Oluşturma: Haritalar ve Arazi
      • 🧪Roblox'ta Eğlenceli ve Öğretici Oyun Mekanikleri Oluşturma
      • 🚪Roblox'ta Kapılar ve Geçişler: Oyuna Canlılık Katma
      • 🎮Roblox'ta Karakter Kontrolleri ve Kamerayı Ayarlama
      • 🎮Roblox'ta Kodlama: Lua ile Oyun Mekaniği Oluşturma
      • 🎨Roblox'ta Modelleme ve Animasyon: Oyununuza Can Katma
      • 🎲Roblox'ta Oyun Tasarımı: Haritalar, Sesler ve Aydınlatma
      • 🌟Roblox'ta Oyun Tasarımı ve Geliştirmeye Devam Edelim
    • 💸Finans
      • Derinlemesine Mali Tablo Analizi
      • Finans ve Muhasebenin Derin Sularında Seyahat
      • Finansal Seyahatin İleri Seviyeleri
      • Gelişmiş Oran Analizi
      • İleri Finansal Modelleme ve Projeksiyon
      • İleri Seviye Finansal Performans Göstergeleri
      • Muhasebe ve Finansın Önemli Yolları
      • Nakit Akım Tablosu
      • Risk Yönetimi
      • Temel Performans Göstergeleri (KPI’s)
      • Yatırım Değerleme
      • Finansal Analiz
        • Giriş
      • Matematiksel modeller
        • Finansal Yapı oranları
        • Oran Analizi
      • Matematiksel olmayan modeller
        • Giriş
        • SWOT Analizi
        • Girişimcilik ve Yatırım İlişkileri
        • Global Finansal Trendler ve Piyasa Analizi
        • İleri Seviye Muhasebe İlkeleri
        • Kurumsal Finansman ve Yapılandırma
        • Stratejik Finansal Planlama
        • Yatırım Portföyü Yönetimi
      • Mali Tabloların Tanımları, Amaçları ve İşlevleri
        • Bilanço, teknik yapısı, İşletme Sermayesi
        • Gelir Tablosu, Sabit ve Değişken Maliyet/Giderler
        • Giriş
      • Muhasebe ile İlgili Genel Bilgiler ve Mali Tablolar
        • Dönemsellik İlkesi ve Tahakkuk Kavramı
        • Ertelenmiş Gelir
        • Faaliyet Harcamaları ve Yatırım Harcamaları
        • Gelir ve Giderlerin Tanınması
        • Ihtiyatlılık İlkesi ve Karşılık Kavramı
        • Karşılık Ayrılması ve Önemi
        • Muhasebenin İşlevi ve Yapısı
        • Opex vs Capex
        • Peşin Ödenmiş Gider
        • Tahakkuk Etmiş Gelir ve Giderler
      • Temelden İleri Seviyeye Finans ve Muhasebe Stratejileri
    • 👨‍🔬Kişisel Araştırmalarım
      • 🤖AI Destekli Kod Önerisi
      • 🤖AI ile Kod Tamamlama
      • 👨‍💻Çocuklar için Programlama
      • 💒Deprem Anında Kişisel Korunma
      • 👅İngilizce Notlarım
      • 🏫MIT gibi Yurt Dışı Eğitimleri Hakkında
      • 📶Nesnelerin İnterneti (IoT)
      • 💳Pasaport İşlemleri
      • 👨‍💻Scripting Languages
      • 📈Verimliliği Artıran Uygulamalar
    • 🏰Proje Yönetimi
      • 👨‍💻Kodlama Düzeni
      • 👨‍💼Projelerin Kontrolü
      • 🧩Git
        • 🌳Git ile Branch İşlemleri
        • 🤸‍ Git Cheat Sheet
        • ✨Git Commit İşlemleri
        • 🚶‍ Git Giriş
        • ⚓Git Hook
        • 🎳IDE üzerinden Git Kullanımı
        • 📦Git ile Repository İşlemleri
        • 📂Git Submodules
      • 📖GitBook
        • 💫GitBook Entagrasyon Yönetimi
        • 🌟GitBook Farklılıkları
        • 🐞GitBook Hata Notları
        • 📘GitBook Kullanımı
      • 🐙Github
        • 🔄Continuous İntegration | GitHub
        • 🎲Diğer Notlarım | GitHub
        • 🔰Giriş | GitHub
        • 💫API Kullanımı | GitHub
        • 👨‍💼Versiyon Yönetimi | GitHub
        • 🌍Web İşlemleri | GitHub
        • 🌈Workflow | GitHub
    • 💻İşletim Sistemi Notları
      • ⛺OS Genel Notlar
      • 🐧Linux Notları
      • 🎇Windows 10 Notları
    • 🔮Teknoloji Notları
      • 🔐Blockchain
      • 🛫Drone ve IHA Farkları
      • 💻HP Bilgisayar Sorunları
      • 📱HTC Desire 820
      • 📶Nesnelerin İnterneti (IoT)
      • 💸Notebook Satın Alma Notları
      • 🎤Ses Formatları
      • 📥Telefon Rehberini Taşıma
      • 📱Xiaomi Mi A2 Lite
    • 📕Üniversite Notlarım
      • 🧠Neural Network
    • 🛫İnsansız Hava Araçları
      • 🛬Drone ve IHA Farkları
      • 🚩Mission Planner
      • 👁‍🗨 Genel Bakış
        • 📙Dökümanlar
        • 🧰Faydalı Teknolojiler
        • 📺Motivasyon
      • 🛫PixHawk
        • 🔗Faydalı Bağlantılar
        • 🚀İlk Uygulama
        • 👨‍💻Kodlarını Derleme
        • 🔰PixHawk Giriş
    • 🌞Günlük Hayat Notları
      • 🎨Boyama
      • 👟"Skechers" markasındaki “arch fit” ile “massage fit” farkı nedir?
      • 🚘Trafik Cezası Ödeme
    • 🐧Linux
      • 🌟Faydalı Uygulamalar
      • 🔰Linux'a Giriş
      • 💖Kısayollar
        • 💫Masaüstü Kısayolları
        • ✨Kısayol Oluşturma
        • 🧱Temel Kısayollar
      • ⛺Genel Notlar
      • 📦Uygulama Notları
      • 🖤Terminal Notlarım
        • ✨Diğer Terminal Notları
        • ⏬Terminal İndiricileri
        • 👨‍💻Terminal Komutları
        • 👷‍♂️Uygulama Kurulumları
        • 🤞Terminal Numaraları
        • 🎨Terminal Teması
      • 👨‍🔧Yapılandırma Ayarları
      • 👨‍💻Geliştirici Notları
        • 👮‍♂️Dosya İzinleri
        • 📂Dosya Yönetimi
        • 👣Gnome Notlarım
        • 💎Kernel Güncelleme
        • 👨‍💼Pencere Yönetimi
        • 🚧Process Notlarım
      • 🐛Hata Notları
    • 📱Android
      • 🚩Çalışma Yolu
      • 🔰Android'e Giriş
        • 🏁Activity launch modes
        • ⭐Activity Örnekleri
        • 📃Activity ve Intent'ler
        • 💫Activity Yaşam Döngüsü
        • 🏹Implicit intents
      • 🧱Temel Bilgiler
        • 🌍Global Değişkenler
        • 👮‍♂️İzinlerin Yönetimi
      • ✨Görsel Arayüz
        • 🗨️AlertDialog
        • 🍱Fragment
          • 🏗️Oluşturma | Fragment
        • 🎪Android'de Animasyonlar
        • 🧐Component İsimleri
        • 🍱Menu
        • 🗂️RcycleView
      • 👨‍💼Verilerin Yönetimi
        • 📂Dosya İşlemleri
        • 📜JSON Yönetimi
        • 🎃Kotlin RoomDB
        • 💽Room Database
        • 👐Shared Preferences
        • 🗃️SQLite
        • 🔸Veri Saklama Yöntemleri
      • 🌄Arka planda Çalışma
        • ⏰Alarm
        • 💫Asenkron İşlemler
          • 🌃Asenkrona Giriş
          • 🔂AsyncTask Loader
          • 🔁AsyncTask
        • 👮‍♂️Çalışma Prensibi
        • 👷‍♂️Kotlin Coroutine
        • 🔔Notification
          • 🏗️Oluşturma | Notification
          • ✍️Yazılı Notlar | Notification
        • 🌠MultiThreading
        • 👷‍♂️WorkManager (👨‍🔬)
      • 📶Haberleşme İşlemleri
        • 📢Broadcast
          • 👣Giriş | Broadcast
          • 🏗️Oluşturma | Broadcast
          • 📡Receiver | Broadcast
        • ⏬Dosya İndirme
        • 💌HTTP İstekleri
        • 🌍İnternete Bağlanma
        • 📶WiFi P2P (Direct)
      • 🪐Servisler
        • 🌞Foreground Service
        • 🐥Intent Service
        • 🔰Servislere Giriş
      • 🥴Düzensiz Notlar
        • 🔰Giriş
        • 🐞Hata Notları
        • 👶İlk Etkileşimli UI
        • ⏬Scrolling views
        • 🔤TextView
        • 📜XML Örneği
      • 🔗Karışık Bağlantılar
      • 📝Dokümanlar
    • 📲Kotlin
      • 💎Değişkenler
        • 🐣Erişim | Değişkenler
        • 🚴‍♂️Giriş | Değişkenler
        • ⭐Özellikler | Değişkenler
      • 💎RegEx
      • 👮‍♂️Koşullar
      • 💠Fonksiyonlar
      • 🚅Diziler
      • 🍎Sınıflar
      • 📂Dosya İşlemleri
      • 🌇Coroutine
        • 🔗Bağlantılar| Coroutine
        • 🏹Dispatcher | Coroutine
        • 💨Flow | Coroutine
        • 🚴‍♂️Giriş | Coroutine
        • 🌄Scope | Coroutine
        • 🦄Singleton Yapısı
      • 📑Yazım Kuralları
      • 🏃‍♂️Hızlı Notlar
      • 🧐Kaynaklar
      • 🔗Faydalı Kaynaklar
    • 🪟Windows
      • 🔰Windows'a Giriş
        • 📂Önemli Dizinler
        • 🌠Genel Notlar
        • 👷‍ Windows 10 Kurulumu
        • 🔨Sistem Ayarları
      • 💞Kısayollar
        • 💘Varsayılan Kısayollar
        • 🌱YHotkeys
      • 🚀Verimlilik Notlarım
        • 📂Dosya Gezginini Geliştirme
        • ⚡Bilgisayarı Hızlandırma
        • 👨‍💼Paket Yöneticisi
        • 🌈Faydalı Uygulamalar
        • 🔏VPN Bağlantısı
      • 🖤Terminal İşlemleri
        • 🙋‍♂️Komut İstemine Giriş
        • 📜CMD Kod Parçaları
        • 🤎CMD Komutları
        • 👨‍💻PowerShell
      • 💫AutoHotkey
        • 🔰Giriş
        • 🧱Temel İşlemler
        • 🔡String İşlemleri
        • 🚄Diziler
        • 💞Kısayollar
        • 📂Dosya İşlemleri
        • ⚙️Yapılandırma Dosyası
        • 🖤Komut İstemi Arayüzü
        • 🌃Görsel Arayüz Oluşturma
        • 🎌Tavsiyelerim
        • 👨‍💻Scriptler
        • ⏬Dosya İndirme
      • 👨‍💻Geliştirici Notlarım
        • ✨Sağ Tık Menüsü Düzenleme Programım
        • 🧙‍ Gizlenmiş GodMode
        • 🐞Hata Notları
        • 🛍️Mağaza Uygulamalarını Komutla Açma
        • 🌃Ortam Değişkenleri
        • 👨‍💻PowerShell 6.0
        • ⏺️RegEdit Ayarları
      • 🐧Windows'ta Linux
        • 🐞Hata Notlarım
        • 🌇Windows Subsystem for Linux (WSL)
    • 🌐Web
      • 👨‍💼Web Sitesi Yönetimi
      • 🌎Natro Hosting
      • 🧇Wordpress
        • 🏠Localhost'ta Wordpress
        • 🐞Wordpress Hata Notları
        • 🔗Wordpress için Linkler
      • 🕸️Ağ Teknolojieri
        • 💌HTTP Protokolü
        • 📶Message Queueing Telemetry Transport
        • 🔌Remote Procedure Call
        • ⚓Webhooks
        • 🕳️Websocket
      • 🧰Web Teknolojileri
        • 🅰️Angular
        • 🔥Django
        • 🌶️Flask
        • ⚛️React
        • 🦇Vue
      • 👨‍💻Web Programlama
        • 🐜Ant Design
        • 📜Javascript
        • 🔶JQuery
        • 🐘PHP
        • 💚Nodejs
          • 🔰Nodejs Giriş
          • 🧱Nodejs Temelleri
          • 🥬NPM
        • ⚛️React
      • 💜Heroku
      • 🤖Selenium
      • 💳OpenCart
      • 🥴Karışık Notlar
    • ☕Java
      • 🔰Java'ya Giriş
        • 👶Başlangıç
        • 👩‍💻Javada İlk Program
        • 📝JavaDoc
        • ⏬NetBeans Kurulumu
      • 🧱Temeller
        • 👮‍♀️Koşul Yapıları
        • 💎Değişkenler
        • 📇Dizi İşlemleri
        • 📁Dosya İşlemleri
        • 🔗Harici Bağlantılar
        • 🤯İleri Seviye
        • 💠Method ve Classlar
        • 💠Scanner Metotları
        • 🔡String İşlemleri
      • 📝JavaDoc
      • 🏗️Obje Yapıları
        • 🏗️Builder
        • ⭐Enum
      • 🌆JavaFX
        • 🌃GUI Tasarımı | JavaFX
        • 🏃‍♂️Hızlı Notlar | JavaFX
        • 👨‍💻Kod Notları | JavaFX
      • ⛺Diğer Notlar
        • 🕸️Ağ Programlama
        • 💠GUI Component Metotları
        • ⭐Swing ile GUI Programlama
      • 🚧GroupLayouts
        • 🤯GroupLayout Detaylar
        • ⭐GroupLayout Örnekleri
        • 🔰GroupLayout'u Tanıyalım
    • ⭐Projeler
    • 🧠Yapay Zeka
      • 🕵️‍♂️Tensorflow Object Detection API ile Obje Bulma
      • 🕵️‍♂️Tensorflow Object Detection API
        • 📢Başlamadan Önce | TODP
        • 🌠Colab Üzerinden Tensorflow
        • 📂Dizin Yapısını Oluşturma
        • 🐞Hata Notları
        • 💷LabelImg Kurulumu
        • 👨‍🏫Modeli Eğitime
        • 👨‍🏫Özelleştirilmiş Tensorflow Obje Algılayıcısı Eğitme
        • 🍢Pipeline Yapılandırma
        • 🚧Tensorflow Algılama Modellerinin Kurulumu
        • 📃Tensorflow Kayıtları Oluşturma
        • 🚧Tensorflow Kurulumu
      • 📊Veri Bilimi
        • 📅CSV | Veri Bilimi
        • 🔰Giriş | Veri Bilimi
        • 📚GZip | Veri Bilimi
        • 📜JSON | Veri Bilimi
        • 🔢NumPy | Veri Bilimi
        • 🚅Pickle | Veri Bilimi
      • 👨‍💼Veri Yönetimi
        • 📈Matplotlib | Veri Yönetimi
        • 🗃️SQL | Veri Yönetimi
      • 🔢NumPy | Veri Yönetimi
        • 🚅Diziler | Numpy
        • 🔰Giriş | Numpy
        • 🥴Karışık Notlar
        • 👷‍♂️Numpy İşlemleri
      • 🐼Pandas | Veri Yönetimi
        • 🔗Faydalı Kaynaklar | Pandas
        • 🔰Giriş | Pandas
        • 💨Hızlı Notlar 2 | Pandas
        • 🏃‍♂️Hızlı Notlar | Pandas
        • 📊Tablo İşlemleri | Pandas
        • 🗃️Veri İşlemleri | Pandas
      • 🤯DeepLarning.ai
        • 👨‍💻Tensorflow Kod Notları
        • 📝Kişisel Notlarım
          • ⏬Coursera Çalışma Dosyalarını İndirme
          • 📉Logistic Regression
        • 🏗️Makine Öğrenimi Modeli Oluşturma
          • 👨‍🔧Hatalara Karşı Çözümler
          • ✨Model Eğitim Süreci
          • 👣Model Oluşturma Adımları
          • 🔤Terimler
        • 🥅Convolutional Neural Networks
          • 🍟CNN Ara İşlemleri
          • 🔰CNN Giriş
          • 💒CNN Mimarisi
          • 👁‍🗨 Klasik CNN Modellerini İnceleme
          • 👨‍💻Kod Notları
          • ⭐Sık Kullanılan CNN Modelleri
          • 🧱CNN Terimler
      • 🗃️Veri Kümeleri
      • 👨‍🏫Makine Öğrenimi
        • 🏂Makine Öğrenimine Giriş
        • 📉SciKit-Learn
        • 🚴‍♂️SciKit-Learn'e Giriş
      • ⚡Tensorflow (👨‍🔬 Beta)
      • 🚀Kişisel Projelerim
        • 🧠Yapay Zeka Çalışmalarım
        • 🕵️‍♂️Fotoşop Bulma
        • 🚗YSelf Driven Car Course
        • 🕵️‍♂️YTensorflow Object Detection API
        • ⭐Colab Üzerinden Tensorflow
      • 🌟Faydalı Kaynaklar
      • ⭐Ek Bilgiler
      • 🕵️‍♂️Araştırmalarım
    • 📜Diger
Powered by GitBook

© 2024 ~ Yunus Emre Ak ~ yEmreAk

On this page
  • Modern State Yönetim Yaklaşımları
  • Proje Dosya Yapısında En İyi Pratikler
  • Üçüncü Parti Entegrasyonların Yönetimi (API Anahtarları ve Oturumlar)
  • Kredi Sistemi Gibi Yapılarda Asenkron State Yönetimi (Loading & Güncellemeler)

Was this helpful?

  1. Blog
  2. Yapay Zeka ile Arastirmalarim

React Uygulamalarında Modern State Yönetimi ve Entegrasyon Saklama Yöntemleri

PreviousReact Native Tabanlı Hızlı Geliştirme SüreciNextIcerikler neden etkileyici gelir

Last updated 2 months ago

Was this helpful?

React ekosisteminde, uygulama durumunu (state) yönetmek ve harici servislerle entegrasyonları güvenli şekilde saklamak için çeşitli modern yaklaşımlar vardır. Aşağıda, en popüler state yönetim kütüphanelerinin karşılaştırması, proje dosya yapısı için en iyi pratikler, üçüncü parti entegrasyonların anahtar ve oturum yönetimi, ve örnek bir kredi sistemi senaryosunda asenkron state yönetimi ele alınmıştır.

Modern State Yönetim Yaklaşımları

Geleneksel olarak Redux kullanılmaktaydı, ancak artık Redux’un daha kolay bir sürümü olan Redux Toolkit ve daha hafif alternatifler olan Zustand, Recoil ve Jotai gibi kütüphaneler öne çıkıyor. Her birinin farklı avantaj ve dezavantajları vardır:

Redux Toolkit (RTK)

Redux Toolkit, Redux kütüphanesinin resmi önerilen kullanım şeklidir ve Redux’un karmaşıklığını azaltır. RTK ile slice adı verilen modüler yapılar kullanılır ve Immer sayesinde immutability (değişmezlik) otomatik sağlanır. Redux hâlâ tek bir merkezi store kullanır ve eylemler (action) ile predictable (tahmin edilebilir) bir akış sunar () (). Bu sayede state değişimleri izlenebilir ve güçlü geliştirici araçları (Redux DevTools) ile zaman yolculuğu ile debug imkânı vardır.

  • Avantajları: Yaygın ve olgun bir ekosisteme sahiptir; büyük topluluk ve çok sayıda orta yazılım (middleware) desteği mevcuttur. Redux yıllardır kullanıldığı için ekiplerin adapte olması genellikle kolaydır (). RTK ile klasik Redux’a göre daha az kod yazılır ve iyi bir proje yapısı ile ölçeklenebilir.

  • Dezavantajları: Diğer modern alternatiflere kıyasla hâlâ nispeten fazla kod ve ayar gerektirebilir. Tek bir kök (root) store’a tüm durumu koyma yaklaşımı çok büyük uygulamalarda esneklik sorunları yaratabilir (). Asenkron işlemler için ek araçlar (thunk, saga veya RTK Query) kullanmanız gerekir. Özellikle elle yönetiliyorsa, her istek için loading ve error state’lerini izlemek için fazladan efor gerekir (). Yani yüklenme durumları ve hatalar için özel aksiyonlar ve reducer kodları yazmak tipiktir.

Zustand

Zustand, çok küçük boyutlu (≈1.7kb) ve hızlı bir global state yönetim kütüphanesidir. Redux’un fikirlerini basitleştirilmiş şekilde kullanır; ancak Redux gibi Provider ile sarmalamaya gerek olmadan, React dışı bir store yaratır ve React hook’ları ile bu store’a erişilir () (). Zustand genellikle tek bir obje olarak state tutar (isterseniz birden fazla store da tanımlayabilirsiniz) ve doğrudan güncellenebilir bir API sunar.

  • Avantajları: API’si son derece basit ve kullanımı kolaydır (). Redux’taki gibi dispatch veya action tanımlamaya gerek kalmaz; store içinde tanımladığınız setter fonksiyonlarını doğrudan çağırarak state’i güncellersiniz. Bu da minimum boilerplate demektir. Bundle boyutunun küçük olması ve performansının yüksek olması önemli artılardır (). Ayrıca Redux DevTools ile entegre olabilir, böylece debug edilebilir. Geliştirici deneyimi olarak “her şeyi yapabileceğiniz bir meta-platform” gibidir; farklı pattern’leri kendi içinde uygulayabilme esnekliğine sahip olup birçok uç durumu kendisi halleder (). Küçük ve orta ölçekli projeler için popüler bir tercihtir ve daha büyük projelere de dikkatli bir yapılandırmayla uyarlanabilir.

  • Dezavantajları: React Context gibi atomik bir yapı yerine tek bir store objesi kullandığı için, kontrolsüz kullanılırsa bir state değişimi gereksiz birçok komponenti yeniden render edebilir. Bunu önlemek için Zustand’ın selector pattern’ini kullanarak her komponentin sadece ihtiyacı olan parçayı alması önerilir (tıpkı Redux’ta useSelector kullanır gibi). Dokümantasyonunun bazı konularda yetersiz olduğu eleştirileri vardır (), ancak community örnekleri bunu kapatmaya yardımcı oluyor. Genel olarak büyük bir eksisi olmamakla beraber, kapsamlı bir ekosistemi Redux kadar yoktur (ama React Query gibi kütüphanelerle beraber kullanılabilir).

Recoil

Recoil, Facebook ekibi tarafından deneysel olarak çıkarılmış bir state kütüphanesidir. Atom ve Selector kavramları ile çalışır: Atom’lar bağımsız state parçalarıdır, Selector’lar ise atomlardan türetilen (veya asenkron hesaplama yapan) durumlardır. Recoil ile birden fazla atom ve selector arasında bağımlılıklar tanımlayabilir, böylece React’in kendi reaktif yapısı dışında bir reaktif veri grafiği oluşturabilirsiniz. Uygulama genelinde kullanmak için <RecoilRoot> ile sarmalamanız gerekir.

  • Avantajları: State’i ince taneli atomlara bölerek her biri değiştiğinde sadece o atomu kullanan bileşenleri yeniden render eder. Bu sayede büyük global state kullanımında gereksiz render’lar azalır. Derived state kavramı (selector) ile başka atomların kombinasyonundan otomatik hesaplanan değerler tutmak kolaydır (). Recoil ayrıca React’in Suspense ve ErrorBoundary mekanizmalarıyla doğal uyum içindedir; bir selector içerisinde Promise döndürerek veriyi asenkron çekebilir ve komponentleri bekletip bir loading fallback’i gösterebilirsiniz (). Yani asenkron veri yükleme durumunu yönetmek için ayrı loading değişkenleri tutmaya gerek kalmadan, Suspense ile otomatik bekleme sağlamak Recoil ile mümkündür.

  • Dezavantajları: Henüz resmi 1.0 sürümüne ulaşmamıştır ve geniş çapta üretim kullanımında Redux kadar denenmiş sayılmaz. Facebook tarafından kullanılmasına rağmen topluluk desteği görece küçüktür. Mevcut büyük bir projeye sonradan entegre etmesi zor olabilmektedir (). Ayrıca Recoil atomları string bazlı bir key ile tanımlanır ve bir Context provider’ı gerekli kıldığı için, Jotai gibi daha hafif alternatifler varken bazı geliştiriciler tarafından tercih kaybına uğramıştır. Yine de konsept olarak Jotai’ye ilham vermiş, yenilikçi bir yaklaşımdır.

Jotai

Proje Dosya Yapısında En İyi Pratikler

Bir React projesinde dosya yapısını düzenlemek, özellikle state yönetimi kodunu organize etmek açısından kritiktir. Geçmişte Redux ile “actions/ - reducers/ - components/” şeklinde ayrıştırılan klasör yapıları kullanılıyordu, ancak modern pratikler farklıdır. Önerilen en iyi yaklaşım, özellik bazlı (feature-based) modüler bir yapı kullanmaktır.

Diğer state yönetim araçları için de benzer prensipler uygulanabilir:

  • Küçük/orta ölçekli projelerde src/store/ ya da src/state/ adıyla bir klasör altında tüm global state yönetimi dosyalarını toplamak da görülür. Örneğin store/auth.ts, store/cart.ts vb. Bu yaklaşım, proje henüz çok büyümemişken düzen sağlar. Ancak proje büyüdükçe yine feature bazlı bölümlere geçmek faydalı olabilir.

Bir örnek yapı olarak şunu verebiliriz:

src/
├─ app/               # Uygulama genelini ilgilendiren ayarlar (store konfigurasyonu vs.)
├─ common/            # Ortak bileşenler, yardımcı fonksiyonlar, hooklar
├─ features/
│   ├─ auth/
│   │    ├─ authSlice.ts   # veya authStore.ts (kullanılan state kütüphanesine göre)
│   │    ├─ AuthPage.jsx
│   │    └─ ... 
│   ├─ products/
│   │    ├─ productsSlice.ts
│   │    ├─ ProductsList.jsx
│   │    └─ ...
│   └─ ... (diğer özellik klasörleri)
└─ index.js / App.js   # Giriş noktası, Provider sarımları vs.

Özetle, tek bir “stores” klasörü kullanmak yerine özellik bazlı modüller kullanmak günümüzde daha yaygın ve ölçeklenebilir bir yöntemdir. Elbette proje yapısı konusunda katı bir kural yoktur; önemli olan ekibinizin kolay anlayacağı ve sürdürebileceği bir düzen kurmaktır. Tutarlı olduğunuz sürece, hangi yöntemi seçtiğinizden ziyade seçtiğiniz yöntemi disiplinli uygulamak daha kritiktir.

Üçüncü Parti Entegrasyonların Yönetimi (API Anahtarları ve Oturumlar)

Modern web uygulamaları sıklıkla Google, Apple, Facebook, Instagram, Notion gibi harici servislerle bütünleşir. Bu entegrasyonlar API anahtarları, OAuth istemci kimlikleri, erişim token’ları gibi hassas bilgiler gerektirebilir. Bu verilerin yönetimi hem güvenlik hem de uygulama mimarisi açısından dikkat istemektedir:

  • Genel API anahtarları (örneğin Google Maps gibi sadece domain kısıtlamasıyla korunan, herkese açık anahtarlar) front-end’te bulunabilir ama yine de .env üzerinden gelmelidir.

  • Özel/Secret anahtarlar (örneğin istemci sırrı, API secret) asla front-end koduna konmamalıdır. Bu tür işlemler için bir arka uç (backend) servisi veya proxy katmanı kullanılması en güvenli yoldur. Örneğin, Notion API’siyle entegre olmak için server tarafında bir endpoint koyup oradan Notion token’ını kullanmak gerekebilir.

2. OAuth ve Kimlik Doğrulama Entegrasyonları: Google, Apple, Facebook gibi sağlayıcılarla kimlik doğrulama (login) sağlanırken genelde OAuth 2.0/OpenID Connect protokolü kullanılır. Bu akışlarda front-end tarafı bir access token veya ID token alır. Bu token’ların saklanması ve yönetimi kritik bir konudur:

  • Refresh Token / Expiry: Uzun süreli oturum için refresh token mekanizması kullanılıyorsa, refresh token da benzer şekilde güvenli saklanmalıdır (genelde o da HttpOnly cookie ile). Access token süresi dolunca uygulama refresh token ile yeni bir access token alabilir.

  • Ortam Değişkenleri: OAuth istemci ID gibi gizli olmayan yapılandırmalar yine .env içinde tutulabilir. Örneğin REACT_APP_GOOGLE_OAUTH_CLIENT_ID front-end’te bulunabilir (zaten Google OAuth client id gizli değildir). Ancak client secret kesinlikle front-end’te olmaz.

3. Entegrasyon Kodunun Organizasyonu: Üçüncü parti entegrasyonlarla haberleşen kod genellikle API çağrıları yapar (fetch/axios ile). Bu kodu yönetirken:

  • Her entegrasyon için ayrı bir servis veya yardımcı modül oluşturmak iyi bir pratiktir. Örneğin services/firebaseAuth.js, api/googleDriveApi.ts gibi dosyalar ilgili API ile iletişimi kapsülleyebilir. Bu modüller içinde ilgili anahtar veya endpoint URL’lerini environment variable’dan alıp kullanırlar.

  • Bu servis fonksiyonları içinden elde edilen veriler veya token’lar, global state’e uygun şekilde aktarılabilir. Örneğin loginWithGoogle() fonksiyonu Google OAuth akışını yapıp token döner, siz de Redux store’da authSlice içindeki loginSuccess(token) action’ını çağırırsınız.

  • Oturum Yönetimi: Kullanıcının login/logout durumu, uygulamada global bir state olarak tutulmalıdır. Genelde user objesi ya da isAuthenticated flag’i global state’de (Redux, Context vs) yer alır. Bu state, uygulamanın nav bar gibi birçok yerine etki ettiği için global olmalıdır. Örneğin Redux kullanıyorsanız, authSlice state’inde user: null | {…} şeklinde tutulabilir. Zustand/Jotai kullanıyorsanız benzer şekilde useAuthStore veya userAtom tanımlanabilir.

Özetle, popüler entegrasyonlarda gizlilik ve güvenlik en önemli konudur. API anahtarlarını koddan ayrı (env ile) tutmak, kullanıcı token’larını güvenli şekilde saklamak (tercihen HttpOnly cookie ile) ve uygulama state’ine yalnızca gerekli bilgileri koyup kalanını gerektiğinde çekmek en iyi yaklaşımlardandır. Bu sayede hem kullanıcı oturumları sorunsuz yönetilir hem de hassas bilgiler korunmuş olur.

Kredi Sistemi Gibi Yapılarda Asenkron State Yönetimi (Loading & Güncellemeler)

Bir uygulamada kredi sistemi gibi, kullanıcının bakiyesinin gösterildiği ve harcama/yükleme yaptıkça güncellenen bir senaryoyu ele alalım. Bu tarz yapılar, global state kullanımının ve asenkron işlemlerin iyi modellenmesini gerektirir:

1. Eyalet (State) Tasarımı: Kredi miktarı, muhtemelen kullanıcı oturumunun bir parçasıdır. Bu nedenle global bir state’de (örn. Redux’ta auth.balance veya ayrı bir walletSlice) tutulmalıdır ki uygulamanın farklı yerlerinde (profil, ödeme sayfası vs.) aynı anda görülebilsin. State tasarımında genellikle sadece sayısal bakiye değil, gerekirse durum bilgileri de yer alır: Örneğin balance, loading, error gibi alanlar. Başlangıçta balance: 0, loading: false, error: null gibi bir nesne yapısı kullanılabilir. Bu yapı, bir isteğin durumunu takip etmek için yararlıdır.

2. Asenkron Veri Yükleme ve Güncelleme: Kullanıcının kredi bakiyesi muhtemelen sunucudan gelir. Uygulama ilk yüklendiğinde mevcut bakiyeyi API’dan çekmek gerekir. Bir satın alma yaptığında da yeni bakiye API’dan döner. Bu süreçte:

  • Hata Yönetimi: API çağrısı başarısız olursa error state’ine mesaj veya kod konur, UI’da gösterilir. Bu da ilgili catch bloğu veya rejected action ile işlenir.

  • State Güncellemesi: API başarıyla döndüğünde yeni bakiye state’e yazılır. Redux reducer’ınızda state.balance = action.payload.newBalance yapabilirsiniz (RTK, Immer kullandığı için bu tür doğrudan atamalara izin verir). Zustand kullanıyorsanız set(state => ({ balance: newBalance, loading: false })) şeklinde state’i güncellersiniz. Jotai’de balanceAtom’a setBalance(newBalance) yapabilirsiniz. Bu güncelleme sonrası, uygulamada bakiye bilgisini kullanan tüm bileşenler otomatik olarak yeni değeri gösterecektir – state yönetim kütüphanelerinin temel faydası budur.

3. Asenkron İşlemlerin Modellenmesi – Karşılaştırmalı Yaklaşımlar:

  • Redux Toolkit: Asenkron işlemler için ya thunk middleware’ı (RTK’da createAsyncThunk) ya da RTK Query kullanılabilir. RTK Query, Redux store içerisinde veri önbelleği (cache) tutarak API çağrılarını yönetir ve kendi loading/error durumlarını barındırır. Bu sayede manuel action yazmadan, RTK Query’nin otomatik hooks veya slice yapısıyla kredi bakiyesini çekebilirsiniz. Örneğin useGetBalanceQuery() hook’u size { data: balance, isLoading, error } döner. Bu yaklaşım, Redux kullanırken loading ve error state’lerini yönetme yükünü azaltır. Aksi halde thunk ile şu pattern uygulanır: dispatch(fetchBalance()) -> reducer loading=true yapar -> API yanıt geldiğinde dispatch(fetchBalanceSuccess(data)) -> reducer balance günceller, loading=false yapar; hata için benzer şekilde fetchBalanceError.

4. Örnek Güncelleme Akışı: Diyelim kullanıcı arayüzünde “Kredi Satın Al” butonuna bastı:

  1. Bu buton bir aksiyonu tetikler (buyCredits(amount)).

  2. Aksiyon ilk olarak state’de loading=true yapar, varsa hata bilgisini temizler.

  3. Ardından API çağrısı başlar (örneğin POST /api/buy-credits { amount }).

  4. Yanıt gelene kadar UI’da spinner gösterilir, buton kilitlenir (loading durumuna göre UI davranışı).

  5. Yanıt başarılıysa yeni bakiye bilgisi state’e yazılır (balance = newBalance, loading=false).

    • Bu noktada, kredi bakiyesini gösteren tüm bileşenler otomatik olarak yeni değeri gösterir.

  6. Eğer hata olduysa state’de error doldurulur, loading=false yapılır. UI’da hata mesajı gösterilir.

  7. Kullanıcı başka bir işlem yapabilir, veya hatayı kapatıp tekrar deneyebilir; bu durumda error state’i temizlenmelidir (örn. yeni bir aksiyonla veya yeni request başlarken).

Bu akışta optimistic update de yapabilirsiniz: Yani sunucu yanıtını beklemeden önce geçici olarak UI’da bakiyeyi güncellemek. Örneğin, harcama yaparken hemen geçici olarak bakiyeden düşüp, sonra sunucudan onay gelmezse geri almak. Redux veya Zustand ile bunu kontrol etmek sizin elinizde; React Query gibi kütüphaneler ise optimistic update desteğini de kolaylaştırır (useMutation’ın onMutate ve onError fonksiyonları ile).

5. State Güncellemelerinin Yayılımı: Global state kullanmanın avantajı, bir yerde yapılan değişikliğin tüm ilgili yerlere yansımasıdır. Kredi sistemi örneğinde, kullanıcı bakiyesi güncellendiğinde, hem üst menüdeki “Bakiyeniz: X” yazısı hem de hesap sayfasındaki bakiye aynı anda güncellenecektir. Bunu sağlamak için ek bir şey yapmanız gerekmez; tek yapmanız gereken state’i merkezi yerde değiştirmektir. Redux’ta reducer içinde yeni state’i döndürmek, Zustand’da set çağırmak veya Jotai’de atom’u yazmak bu güncellemeyi tetikler. Bu kütüphaneler, reaktif bir şekilde abonelik mekanizması kurduğundan, ilgili komponentler değişimi otomatik algılar ve yeniden render olur. Böylece manuel DOM güncelleme derdiniz olmaz, uygulama durumu her zaman tek kaynaktan doğru kabul edilir.

6. Performans ve Ölçeklenebilirlik: Kredi sistemi gibi sık güncellenen bir veri söz konusuysa, performans konusuna da dikkat etmek gerekir. Eğer her küçük değişimde tüm uygulama yeniden render oluyorsa bu verimsiz olur. Modern state yönetim kütüphaneleri bunu minimize edecek araçlar sunar:

  • Redux’ta slice’ları ayrıştırmak ve component seviyesinde useSelector kullanmak, sadece o slice değişince ilgili componenti yeniler. Derin nested state değişimlerinde bile, immutable yapı sayesinde değişmeyen kısımlar referans eşit kalır ve React Redux bunlar için render tetiklemez.

  • Zustand/Jotai, state’i parçalara böldüğünüzde aynı etkiyi sağlar. Jotai’de her atom bağımsızdır, değişmeyen atom değişti diye diğerini etkilemez. Zustand’da useStore(selector, shallow) gibi bir kullanım, yalnız seçilen alan değiştiğinde render olmayı sağlar.

  • Recoil’de atom’lar zaten granular olduğundan benzer şekilde performans dostudur.


Jotai (Japonca’da “durum, state” anlamına gelir), Recoil’den esinlenen ancak onu daha minimal ve esnek hale getiren bir kütüphanedir. Atomlar üzerine kuruludur: her atom tek bir state parçasını temsil eder ve React’in useAtom hook’u ile hem değere hem de onu değiştirecek sete erişirsiniz. Jotai’de global bir store objesi yoktur; state, ihtiyaca göre context içinde veya modül seviyesinde tanımlanabilir (). Varsayılan (provider’sız) modda tüm uygulama için tek bir görünmez context kullanır, ancak isterseniz <Provider> ile state kapsamını sınırlayabilirsiniz ().

Avantajları: API’si useState kadar basit ve sezgiseldir, öğrenme eğrisi düşüktür. Her bir state değeri ayrı atom olduğu için, componentler sadece kullandıkları atom değişince yeniden render olur – bu da React Context kullanımında görülen ekstra render sorununu çözer (). Ekstra memoization uğraşlarını azaltır. Jotai’nin çekirdek paketi son derece küçüktür (~3 KB boyutunda) ve TypeScript desteği kusursuzdur (). State’inizi kod içerisinde dağıtık (atomic) hale getirip konumlandırmak kolaydır; hangi bileşene aitse orada tanımlanabilir, böylece veri ile onu kullanan UI yakın durur (). Türetilmiş atomlar ile başka atomlardan hesaplanan değerler oluşturmak mümkündür ve hatta atom’lar içinde useReducer benzeri yan etkili işlemler de yapılabilir (). Suspense desteği ile asenkron atomlar tanımlanabilir. Eklenti paketleri sayesinde TanStack React Query entegrasyonu gibi güçlü özellikler ekleyebilirsiniz (örn. atomWithQuery, atomWithMutation gibi yardımcılar mevcuttur).

Dezavantajları: Recoil’e kıyasla bazı gelişmiş özelliklere sahip olmayabilir (). Örneğin, Recoil’in geliştirme araçları veya bazı eşzamanlı mod özellikleri Jotai’de yoktur (veya harici çözümlerle yapılır). Topluluk büyüklüğü orta seviyededir ancak hızla artmaktadır. Çok sayıda atomla çalışırken yönetim karmaşıklaşırsa, disiplinli bir yapı kurmak gerekir (örneğin atomları ait oldukları özellik modüllerinde tutmak gibi). Yine de Jotai’nin esnekliği sayesinde bu dezavantajlar çoğu proje için tolere edilebilirdir.

Özetle, Redux Toolkit uzun süreli tecrübe ve tek bir merkezi düzen arayan ekipler için güvenli bir seçimdir ancak biraz şablon kod ve kural gerektirir. Jotai ve Zustand ise daha az kurallı, daha esnek ve hızlı çözümler olarak öne çıkmaktadır. Nitekim bir karşılaştırmalı deneydeki yorumda, “kişisel projelerde Jotai veya Zustand’a daha meyilli olacağı” çünkü bunların kurulumu kolay ve Redux Toolkit’ten daha esnek olduğu belirtilmiştir () (). Her birinin tercih edilmesi gereken durumlar vardır ve “en iyi” seçim proje gereksinimlerine ve ekibin tercihlerine göre değişir ().

Redux ekibinin resmi dokümanları da “feature folder” modelini tavsiye eder: Yani her özelliğin (veya domain’in) kendi klasörü olup, o özelliğe ait Redux slice’ı, aksiiyonları ve React bileşenleri aynı yerde bulunur (). Bu modelde örneğin features/urunListesi/urunSlice.ts ve UrunListesi.jsx gibi dosyalar birlikte yer alır. Böylece bir özelliğin tüm ilgili kodu tek yerde tutulur, bakımı ve ölçeklendirmesi kolay olur (). Redux Toolkit ile gelen “ducks” prensibi (reducer ve aksiyonların tek dosyada tanımlanması) bu yapıya uygundur.

Zustand veya Jotai kullanırken, eğer state’leriniz birden fazla konsept içeriyorsa, bunları ayrı dosyalara/klasörlere bölmek iyi bir fikirdir. Örneğin authStore.ts, productStore.ts gibi ayrı Zustand store’ları tanımlayabilir veya Jotai atomlarını ilgili modüllerinde oluşturabilirsiniz. Büyük bir uygulamada tek bir devasa store yerine, mantıksal olarak ayrılmış parçalar olması okunabilirliği artırır. Bir geliştirici tecrübesine göre, “her özellik için ayrı store oluşturuyorum” şeklinde bir yaklaşım oldukça işe yarar (). Bu, özellikle farklı store’lardan türetilen değerler gerekiyorsa, birleştirme mantığını özel hook’lar içine koymaya da imkân tanır ().

State yönetimi kodunu bileşen kodundan ayrı tutmak önemlidir, fakat tamamen kopuk olmamalı. Örneğin bir bileşenin kendine özel bir context veya Zustand store’u varsa, bunu bileşenin dosyalarının yanına koyabilirsiniz. Bazı durumlarda, “çok sayıda yerden etkileşime girilen bir bileşen (örneğin bildirimler)” kendi store’unu yanında tutmak mantıklı olabilir, böylece o bileşenin bir parçası gibi davranır (). Fakat genele hitap eden (auth gibi) state parçaları üst seviye bir konumda tanımlanmalıdır ki tüm uygulama erişebilsin ().

Yukarıdaki yapıda her özelliğin klasörü içinde o özelliğe dair React komponentleri ve gerekirse state yönetim kodu (slice, store, atom vs.) bulunur. Böyle bir düzen, farklı ekip üyelerinin aynı anda farklı özellikler üzerinde çalışmasını kolaylaştırır ve kodun anlaşılabilirliğini artırır () ().

1. API Anahtarlarını Saklama: Genellikle harici servislerin API anahtarları ve gizli bilgilerinin kaynak kodda düzgün şekilde gizlenmesi gerekir. React uygulamalarında bunun standard yolu environment variable (.env) kullanmak ve bu dosyayı versiyon kontrolüne eklememektir. Örneğin Create React App tabanlı bir projede .env dosyasına REACT_APP_GOOGLE_API_KEY=... şeklinde bir anahtar koyup, uygulamada process.env.REACT_APP_GOOGLE_API_KEY ile kullanabilirsiniz. Bu yöntem, anahtarları kod dışında tutarak repoya girmesini önler (). Ancak unutulmamalıdır ki, ön uç (front-end) tarafında bulunan environment variable değerleri derleme sırasında koda gömüleceği için, tamamen gizli kalmaz. Hiçbir zaman gerçek sırlar (secret) doğrudan front-end’e konmamalıdır. Nitekim Create React App dokümanında da şu uyarı yapılır: “Uyarı: Özel anahtarlarınızı React uygulamanızda tutmayın! Ortam değişkenleri derlemeye dâhil edilir, uygulamanızın dosyalarını inceleyerek herkes onları görebilir.” (). Bu nedenle:

Token’ı Uygulama State’inde Tutma: En basit yöntem, kullanıcı giriş yaptığında alınan token’ı bir global state’de (Redux store, Context ya da Zustand store gibi) tutmaktır. Bu sayede uygulamanın farklı yerlerinde oturum bilgisine erişilebilir. Ancak yalnızca state’e koymak yeterli olmaz; sayfa yenilendiğinde state sıfırlanacağı için oturum devamlılığı için token’ı kalıcı bir yerde saklamak gerekir ().

Local Storage / Session Storage: Token’ı tarayıcıda saklamanın yaygın yolu localStorage veya sessionStorage kullanmaktır. Bu yöntem, sayfa yenilemelerinde token’ın korunmasını sağlar. Fakat güvenlik açısından dezavantajı, localStorage’daki veriye JS kodu ile erişilebilmesidir. XSS (Cross-Site Scripting) açığı oluşursa saldırgan localStorage’daki token’ı çalabilir (). Bu nedenle localStorage’a token koymak görece risklidir.

HTTP-Only Cookie: En güvenli yöntemlerden biri, token’ı sunucunun bir HttpOnly cookie’sine yazmasıdır. HttpOnly flag’li cookie’lere JavaScript erişemez, bu yüzden XSS durumunda bile token’a ulaşılamaz (). Ayrıca cookie’lere Secure ve SameSite gibi özellikler ekleyerek çalınma ve kötüye kullanım risklerini azaltabilirsiniz. Bu yöntem genellikle bir backend gerektirir (token’ı aldıktan sonra yanıt set-cookie ile dönecek). Eğer mümkünse, hassas oturum token’larını HttpOnly cookie ile saklamak en iyi uygulama olarak kabul edilir.

Güvenlik İpuçları: API anahtarlarını front-end’te barındırırken mümkün mertebe erişim yetkilerini kısıtlayın. Örneğin Google API key’iniz sadece belirli domain’lerden istek yapabilir olsun, Facebook App ID’niz sadece belirli yönlendirme URI’larını kabul etsin vs. Bu şekilde anahtarınız ifşa olsa bile kullanılamayacaktır (). Ayrıca, entegrasyonları yaparken üretici dokümanlarının en iyi güvenlik pratiklerini takip etmek gerekir.

Loading (Bekleme) Durumları: Bir bakiye güncellemesi çağrısı yapıldığında loading state’i true yapılır, böylece arayüzde “Lütfen bekleyin” spinner’ı gösterilebilir veya ilgili buton devre dışı bırakılabilir. İşlem bittiğinde loading false yapılır. Redux gibi bir yapı kullanıyorsanız bu, dispatch edilen action’larla yapılır (örn. updateCreditsPending, updateCreditsFulfilled gibi). Redux Toolkit ile createAsyncThunk kullanıldığında, thunk otomatik olarak .pending, .fulfilled, .rejected action tipleri üretir; böylece loading ve error durumlarını reducer’da kolayca yakalayabilirsiniz. Yine de bu bir miktar şablon kod demektir ve klasik Redux’ta her istek için üç ayrı action yazmak gerekebilir ().

Zustand: Zustand’da asenkron aksiyonlar oldukça düz şekilde yazılır. Örneğin store’unuzda bir fetchBalance: async () => { set({ loading: true }); try { ... set({ balance: data, loading: false }); } catch(e){ set({ error: e, loading: false }); } } fonksiyonu tanımlayabilirsiniz. Yani direkt olarak async fonksiyon içinde set çağırarak state’i güncellersiniz – özel bir yapıya ihtiyaç yoktur, JavaScript’in doğal akışını kullanırsınız. Bu özgürlük esneklik sağlar, ancak manuel yapıldığı için her işlemde benzer kod tekrarı olabilir. Bazı geliştiriciler bu durumda React Query gibi kütüphaneleri Zustand ile birlikte kullanmayı tercih ediyor; öyle ki TanStack Query’yi zustand store’una bağlayan örnekler mevcut (). Bu kombinasyon, data fetching işini React Query’ye bırakıp, sonucu Zustand’a koymak şeklinde oluyor.

Recoil: Recoil’in öne çıktığı nokta, asenkron state’i Suspense ile yönetebilmesidir. Örneğin bir balanceSelector tanımlayıp içinde const response = await fetch(...); return response.balance; yaptığınızda, bu selector bir Promise döndürür. Recoil, React componentinden useRecoilValue(balanceSelector) çağrılınca Promise’i yakalayıp bir hata fırlatarak (throw) Suspense mekanizmasını tetikler. Uygulama bu sayede bekleme moduna girer ve tanımladığınız araya girer (). Veri gelince Promise çözülür ve component normal şekilde değeri alır. Bu model, loading state’i tutmayı React seviyesinde halleder. Recoil ile alternatif olarak manuel de yapabilirsiniz (atom + ayrı loading atomu), fakat Suspense varken ihtiyaç azalır. Recoil’de birden fazla atom’un birbiriyle bağımlı asenkron hesapları da selector’lar aracılığıyla kurulabilir (örn. bakiye ve döviz kuru atomlarından türetilen TL karşılığı gibi).

Jotai: Jotai de benzer şekilde asenkron atomları destekler. Bir atom’un değerini bir Promise olarak tanımlarsanız, o atomu okuyan componentler Suspense ile bekleyebilir. Ayrıca Jotai’nin resmi extensions paketinde atomWithQuery gibi yardımcılar vardır; TanStack React Query ile entegre şekilde async işlemleri kolaylaştırır () (). Örneğin const balanceAtom = atomWithQuery(getBalanceQuery) diyerek, React Query’nin caching ve refetch özelliklerini Jotai atomuna sarmalayabilirsiniz. Bu sayede loading, error durumlarını React Query halleder ve atom size güncel veriyi sağlar.

Context + useReducer (Yerleşik yöntem): React’in built-in araçlarıyla da yapılabilir. Bir context state’i tanımlayıp, reducer ile “LOADING/ SUCCESS/ ERROR” action tiplerini ele alabilirsiniz. Bu aslında Redux’un elle uygulanmış hali gibidir. Küçük uygulamalarda çalışsa da büyüdükçe her async işlem için ayrı kontrol yazmak gerekir ve kod karmaşası artabilir (). Ayrıca context’in optimize edilmesi zordur (her güncellemede tüm tüketen bileşenler render olabilir). Bu yüzden yukarıdaki kütüphaneler genelde tercih edilir.

Sonuç olarak, asenkron işlemler ve loading/hata durumları her ne kadar ek state değişkenleri gerektirse de, doğru araç ve pattern’lerle yönetilebilir. Redux tarafında biraz daha elle kontrol ve boilerplate varken (), Recoil/Jotai gibi kütüphaneler React’in mekanizmalarını kullanarak bu süreçleri basitleştirebilir (). Ayrıca React Query / RTK Query gibi araçlarla entegre olarak, krediler gibi sunucu kaynaklı verileri cache’leyip güncellemeyi oldukça kolay hale getirebilirsiniz. Önemli olan, uygulamanın her durumu için (bekliyor, başarı, hata) kullanıcıya uygun geri bildirim vermeyi ve state’i tutarlı güncellemeyi sağlamaktır.

Kaynaklar: Modern state yönetim kütüphanelerinin dokümanları ve karşılaştırmaları () (), Redux resmi stil rehberi (), deneyimli geliştirici blogları () () ve güvenlik konularında uzmanlaşmış makaleler () () esas alınmıştır. Bu yöntemler sektörde kendini kanıtlamış pratikler olup, projenizin büyüklüğüne ve ihtiyaçlarına göre en uygun kombinasyonu seçebilirsiniz.

🔍
zustand vs @reduxjs/toolkit vs jotai vs recoil vs valtio | State Management Libraries Comparison
zustand vs @reduxjs/toolkit vs jotai vs recoil vs valtio | State Management Libraries Comparison
Redux Toolkit vs. Jotai vs. Zustand — React state managers comparison | Tom Tech Talks
Redux Toolkit vs. Jotai vs. Zustand — React state managers comparison | Tom Tech Talks
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
zustand/docs/getting-started/comparison.md at main · pmndrs/zustand · GitHub
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
Redux Toolkit vs. Jotai vs. Zustand — React state managers comparison | Tom Tech Talks
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
zustand vs @reduxjs/toolkit vs jotai vs recoil vs valtio | State Management Libraries Comparison
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
Comparison — Jotai, primitive and flexible state management for React
Comparison — Jotai, primitive and flexible state management for React
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
Redux Toolkit vs. Jotai vs. Zustand — React state managers comparison | Tom Tech Talks
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
Redux Toolkit vs. Jotai vs. Zustand — React state managers comparison | Tom Tech Talks
Redux Toolkit vs. Jotai vs. Zustand — React state managers comparison | Tom Tech Talks
Redux Toolkit vs. Jotai vs. Zustand — React state managers comparison | Tom Tech Talks
Code Structure | Redux
Code Structure | Redux
File structure for a "zustand" powered react project? : r/reactjs
File structure for a "zustand" powered react project? : r/reactjs
File structure for a "zustand" powered react project? : r/reactjs
File structure for a "zustand" powered react project? : r/reactjs
Code Structure | Redux
Code Structure | Redux
Understanding React Environment Variables: An Essential Guide
reactjs - How to correctly store secret keys on React App? - Stack Overflow
Web Security: localStorage vs cookie for storing tokens - DEV Community
Web Security: localStorage vs cookie for storing tokens - DEV Community
Web Security: localStorage vs cookie for storing tokens - DEV Community
Best Practices for API Key Safety | OpenAI Help Center
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
Simplifying Data Fetching with Zustand and Tanstack Query
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
Query — Jotai, primitive and flexible state management for React
Query — Jotai, primitive and flexible state management for React
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
5 State management for React. Recoil vs. Jotai vs. Zustand vs. Redux… | by Amanda G | Product Engineering
Redux Toolkit vs. Jotai vs. Zustand — React state managers comparison | Tom Tech Talks
Code Structure | Redux
Redux Toolkit vs. Jotai vs. Zustand — React state managers comparison | Tom Tech Talks
Redux Toolkit vs. Jotai vs. Zustand — React state managers comparison | Tom Tech Talks
reactjs - How to correctly store secret keys on React App? - Stack Overflow
Web Security: localStorage vs cookie for storing tokens - DEV Community