0Pricing
TypeScript Academy · Ders

Etkileri Birleştirme

pipe ve oluşturucularla etkileri zincirleyin ve birleştirin.

Etkileri Birleştirme, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.

Etkileri Birleştirme

Etkiler değerdir; bu nedenle programları onları birleştirerek oluşturursunuz. Temel araçlar Effect.pipe, Effect.map, Effect.flatMap ve üreteç tabanlı Effect.gen sözdizimidir.

pipe: İşlevlerden Geçirme

pipe, bir etkiyi bir dizi dönüşümden soldan sağa geçirerek derin iç içe geçirmeyi önler.

import { Effect, pipe } from "effect";

const program = pipe(
  Effect.succeed(2),
  Effect.map((n) => n + 1),
  Effect.map((n) => n * 10)
);
// Effect<number, never, never> producing 30

map: Başarı Değerini Dönüştürme

Effect.map, hata ve gereksinim kanallarını değiştirmeden başarı değerine saf bir işlev uygular.

import { Effect } from "effect";

const doubled = Effect.map(Effect.succeed(21), (n) => n * 2);
// Effect<number, never, never>

flatMap: Etkileri Sıralama

Sonraki adımın kendisi de bir etkise flatMap (diğer adıyla chain) kullanın. İlk etkiyi çalıştırır, ardından değerini başka bir etki döndüren işleve aktarır.

import { Effect, pipe } from "effect";

const getId = Effect.succeed(1);
const loadUser = (id: number) => Effect.succeed({ id, name: "Ada" });

const program = pipe(getId, Effect.flatMap(loadUser));
// Effect<{ id: number; name: string }, never, never>

map ile flatMap Karşılaştırması

İşleviniz sıradan bir değer döndürüyorsa map kullanın; bir etki döndürüyorsa flatMap kullanın. Etki döndüren bir işleve map uygulamak, elinizde iç içe bir etki bırakır.

Kanallar Birikir

Etkileri sıraya koydukça hata türleri birleşim türünde birleşir ve gereksinimler de birleşim türünde birleşir. Birleştirilmiş tür, başarısız olabilecek ve gerekli olan her şeyi yansıtır.

// Effect<A, E1, R1> then Effect<B, E2, R2>
// => Effect<B, E1 | E2, R1 | R2>

Effect.gen: Üreteç Sözdizimi

Effect.gen, her etkiyi açmak için yield* kullanarak async/await gibi okunan sıralı etki kodu yazmanızı sağlar.

import { Effect } from "effect";

const program = Effect.gen(function* () {
  const id = yield* Effect.succeed(1);
  const user = yield* Effect.succeed({ id, name: "Ada" });
  return user.name;
});
// Effect<string, never, never>

gen ile pipe Karşılaştırması

gen, ara değişkenler içeren doğrusal ve çok adımlı akışlarda daha açıktır; pipe ise kısa dönüşüm zincirlerinde öne çıkar. İkisi de serbestçe birlikte kullanılabilir.

Bağımsız Etkileri Birleştirme

Effect.all, birden çok etkiyi çalıştırıp sonuçlarını toplar ve bunların tümündeki hata ve gereksinimleri biriktirir.

import { Effect } from "effect";

const both = Effect.all([Effect.succeed(1), Effect.succeed("x")]);
// Effect<[number, string], never, never>

Hâlâ Ertelenmiş

Tüm bunlar yalnızca programı açıklar. Programı sınırda Effect.runPromise veya Effect.runSync ile çalıştırana kadar hiçbir şey yürütülmez.

import { Effect } from "effect";
// const result = await Effect.runPromise(program);

Bunun Önemi

Bileşim, etkileri pratik hâle getirir: küçük, türü belirtilmiş parçaları büyük programlar hâlinde bir araya getirirken derleyici her hatayı ve bağımlılığı izler. map, flatMap, pipe ve gen, Effect kodunun günlük kullanılan fiilleridir.

Kısa Kontrol

Etkileri birleştirme konusundaki anlayışınızı kontrol edin.

Özet

Etkileri map (başarılı değerleri dönüştürme), flatMap (etki döndüren adımları sıraya koyma), pipe (dönüşümler boyunca aktarma) ve Effect.gen (await benzeri üreteç sözdizimi) ile birleştirirsiniz. Hata ve gereksinim kanalları birleşim türleri olarak birikir ve uç noktada çalıştırana kadar hiçbir şey çalışmaz.

Sıkça Sorulan Sorular

“Etkileri Birleştirme” dersi ücretsiz mi?

Evet — “Etkileri Birleştirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.

“Etkileri Birleştirme” dersinde ne öğreneceğim?

pipe ve oluşturucularla etkileri zincirleyin ve birleştirin. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Etkileri Birleştirme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Etki Sistemleri Neden Önemlidir?
  2. Effect Türü
  3. Etkileri Birleştirme
  4. Hata Kanalları ve Bağımlılıklar
← TypeScript Academy Sayfasına Dön