Özet - Uygulama mimarisi
- React Native kursu
- Uzman
- Ders 18/47
- 5 dk
feature-based, clean ve repository'yi birleştirerek bir mimari iskelet yazarsın.
Özet - Uygulama mimarisi
Üç mimari yaklaşımdan geçtik: feature-based (özelliğe göre klasörleme), layered (sunum-iş-veri katmanları) ve clean architecture (dıştan içe bağımlılık, domain merkezde).
Bunların üzerine repository pattern (veri erişim soyutlaması) ve dependency injection (bağımlılığın dışarıdan verilmesi) eklendi. React'te DI Context ile yapılır; repository interface'i ile mock'lanabilir testler mümkün olur.
Uygulama Provider ile DI
Bir RepoProvider bileşeni yaz. RepoContext.Provider sarmalayıp value'ya apiRepo versin. Çocukları children prop ile render etsin. RepoContext'i içe aktar.
Başlangıç kodu
import React from 'react';
import RepoContext from './RepoContext';
const apiRepo = { getUser: () => null };
// RepoProvider'ı buraya yaz
export default RepoProvider;Örnek çözüm
import React from 'react';
import RepoContext from './RepoContext';
const apiRepo = { getUser: () => null };
const RepoProvider = ({ children }) => (
<RepoContext.Provider value={apiRepo}>
{children}
</RepoContext.Provider>
);
export default RepoProvider;Uygulama useContext ile repository al
Bir useRepo hook'u yaz. useContext(RepoContext) çağrısı yapsın ve sonucu döndürsün. useContext'i react'tan, RepoContext'i aynı klasörden içe aktar.
Başlangıç kodu
import React from 'react';
import RepoContext from './RepoContext';
// useContext'i react'tan içe aktar
// useRepo hook'unu yaz
export default useRepo;Örnek çözüm
import React, { useContext } from 'react';
import RepoContext from './RepoContext';
const useRepo = () => useContext(RepoContext);
export default useRepo;Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Mimari kararlarda en önemli ölçüt nedir?
- Renk sayısı
- Test edilebilirlik ve ayrım Doğru cevap
- Dosya adının uzunluğu
- Üçüncü partı kütüphane sayısı
Açıklama: Ayrım ve test edilebilirlik temel ölçüttür.
2 Tüm kavramları eşleştir
| Kavram | Anlamı |
|---|---|
Feature-based |
Klasörleme |
Layered |
Katmanlar |
Clean |
Domain merkezde |
Repository |
Veri soyutlama |