Artikel & Sumber Daya #

Mempelajari TypeScript dari dokumentasi dan tutorial adalah langkah awal yang baik, tapi menjadi mahir membutuhkan paparan yang lebih luas — membaca bagaimana engineer di perusahaan teknologi besar menyelesaikan masalah nyata, mengikuti perkembangan ekosistem, dan memahami trade-off di balik setiap keputusan teknis. Halaman ini mengkurasi sumber daya yang paling berguna dan diperbarui secara berkala — dari dokumentasi resmi, buku, kursus video, hingga blog teknis yang konsisten menghasilkan konten berkualitas tinggi.

Dokumentasi Resmi #

Dokumentasi resmi adalah sumber paling akurat dan selalu terbaru. Selalu jadikan ini referensi pertama sebelum mencari di tempat lain.

TypeScript #

SumberURLKeterangan
TypeScript Handbooktypescript-lang.org/docs/handbookPanduan resmi lengkap — dari tipe dasar hingga fitur lanjutan
TypeScript Playgroundtypescriptlang.org/playEditor online untuk eksperimen tanpa setup lokal
Release Notestypescriptlang.org/docs/handbook/release-notesChangelog fitur baru di setiap versi TypeScript
TSConfig Referencetypescriptlang.org/tsconfigReferensi lengkap semua opsi tsconfig.json

Database dan Cache #

SumberURLKeterangan
MongoDB Node.js Drivermongodb.github.io/node-mongodb-nativeDokumentasi resmi driver MongoDB untuk Node.js/TypeScript
Elasticsearch JS Clientelastic.co/docs/api/elasticsearch/javascriptReferensi API dan panduan official client TypeScript
ioredisgithub.com/redis/ioredisDokumentasi library Redis untuk Node.js dengan dukungan TypeScript
memjsgithub.com/memcachier/memjsDokumentasi library Memcached untuk Node.js
Redis Commandsredis.io/commandsReferensi lengkap semua perintah Redis

Runtime dan Ekosistem #

SumberURLKeterangan
Node.js Docsnodejs.org/docsDokumentasi resmi Node.js dan standard library-nya
Bun Docsbun.sh/docsDokumentasi runtime Bun — alternatif Node.js dengan TypeScript native
Deno Manualdocs.deno.comDokumentasi Deno — runtime TypeScript-first dengan permission system
npm Docsdocs.npmjs.comPanduan manajemen paket dengan npm

Buku #

Buku memberikan pemahaman yang lebih sistematis dan mendalam dibanding artikel atau video. Berikut buku-buku yang paling direkomendasikan untuk TypeScript dan topik terkait.

TypeScript #

Programming TypeScript — Boris Cherny Buku terlengkap tentang TypeScript yang membahas sistem tipe secara mendalam — dari dasar hingga type-level programming. Cocok untuk developer yang ingin benar-benar memahami cara kerja type system TypeScript, bukan sekadar menggunakannya.

Effective TypeScript — Dan Vanderkam 52 cara konkret untuk menulis TypeScript yang lebih baik. Setiap item membahas satu kesalahan atau anti-pattern umum beserta solusinya, dilengkapi penjelasan mengapa solusi tersebut lebih baik. Format yang padat dan langsung ke poin menjadikan buku ini referensi yang sering dibuka kembali.

TypeScript Deep Dive — Basarat Ali Syed Tersedia gratis online di gitbook.io/read/book/basarat/typescript — pembahasannya sangat detail terutama untuk bagian compiler internals dan deklarasi tipe.

Desain dan Arsitektur Sistem #

Designing Data-Intensive Applications — Martin Kleppmann Buku wajib bagi siapapun yang bekerja dengan database, caching, dan sistem terdistribusi. Membahas trade-off di balik berbagai pilihan teknis — kapan pakai SQL vs NoSQL, bagaimana replikasi dan partisi bekerja, konsistensi vs ketersediaan. Sangat relevan untuk memahami konteks di balik MongoDB, Redis, dan Elasticsearch.

Database Internals — Alex Petrov Membahas bagaimana database bekerja dari dalam — B-tree, LSM-tree, storage engine, protokol konsensus terdistribusi. Bacaan yang berat tapi memberi fondasi yang kuat untuk membuat keputusan teknis yang lebih baik.

Clean Architecture — Robert C. Martin Prinsip-prinsip arsitektur yang berlaku lintas bahasa dan framework. Membantu memahami bagaimana memisahkan concern dalam aplikasi TypeScript yang kompleks — di mana logika bisnis berakhir dan lapisan infrastruktur (database, cache) dimulai.


Kursus dan Video #

TypeScript #

Total TypeScript — Matt Pocock (totaltypescript.com) Seri workshop interaktif yang membahas TypeScript dari perspektif praktis. Matt Pocock dikenal karena penjelasannya yang sangat jelas tentang topik yang kompleks seperti generics, conditional types, dan template literal types. Ada konten gratis yang sudah sangat berharga sebelum mempertimbangkan versi berbayarnya.

TypeScript Full Course — Traversy Media (YouTube) Pengenalan yang solid untuk developer yang baru mulai. Cocok sebagai titik awal sebelum masuk ke sumber yang lebih mendalam.

Execute Program — Gary Bernhardt (executeprogram.com) Platform belajar dengan pendekatan spaced repetition — materi dipelajari dalam sesi pendek dan diulang secara berkala. Konten TypeScript-nya sangat direkomendasikan karena memaksa kamu benar-benar memahami materi, bukan sekadar menontonnya.

Database dan Sistem Terdistribusi #

CMU Database Group — YouTube Rekaman kuliah database dari Carnegie Mellon University — tersedia gratis di YouTube. Seri ini mencakup storage engine, query optimizer, concurrency control, dan distribusi data dengan kedalaman akademis yang jarang ditemukan di tempat lain.

Redis University — university.redis.com Kursus resmi dari tim Redis, tersedia gratis. Mencakup dasar Redis, struktur data, use case production, dan Redis Streams.


Blog dan Newsletter #

Blog-blog ini konsisten menghasilkan konten teknis berkualitas tinggi dan ditulis oleh praktisi yang bekerja di sistem skala besar.

Teknikal Umum #

The Pragmatic Engineer — blog.pragmaticengineer.com Newsletter dan blog yang membahas engineering di perusahaan teknologi besar. Topiknya mencakup sistem skala besar, desain database, dan karier engineering. Salah satu newsletter teknis paling direkomendasikan saat ini.

High Scalability — highscalability.com Kumpulan artikel tentang bagaimana perusahaan besar (Netflix, Twitter, Uber, dll) membangun dan menskalakan sistem mereka. Sering menyebut trade-off antara berbagai pilihan database dan caching.

Martin Fowler’s Blog — martinfowler.com Blog klasik yang membahas pola desain, arsitektur, dan praktik rekayasa perangkat lunak. Artikel-artikelnya tentang caching pattern dan data management sangat relevan.

TypeScript dan JavaScript #

Matt Pocock’s Blog — mattpocock.com Artikel mendalam tentang TypeScript — khususnya tipe-tipe yang kompleks. Penjelasannya selalu disertai contoh konkret yang bisa langsung dipraktikkan.

Josh Goldberg — joshuakgoldberg.com Maintainer typescript-eslint yang menulis tentang TypeScript tooling, linting, dan praktik terbaik dalam proyek TypeScript skala besar.

2ality — 2ality.com (Dr. Axel Rauschmayer) Blog yang sangat detail tentang JavaScript dan TypeScript — termasuk penjelasan mendalam tentang fitur-fitur baru ES2023+. Artikel-artikelnya panjang tapi sangat komprehensif.

Database Spesifik #

MongoDB Blog — mongodb.com/blog Artikel resmi dari tim MongoDB tentang pattern, performa, dan fitur baru. Bagian “Best Practices” sangat berguna untuk deployment production.

Elastic Blog — elastic.co/blog Panduan, use case, dan best practice langsung dari tim yang membangun Elasticsearch. Topiknya mencakup relevance tuning, performa query, dan arsitektur cluster.

Redis Blog — redis.com/blog Artikel tentang fitur Redis, use case production, dan panduan performa dari tim Redis.


Tools dan Utilitas #

Development #

TypeScript Tooling:
  tsc          — TypeScript compiler resmi
  ts-node      — jalankan TypeScript langsung tanpa compile
  tsx          — alternatif ts-node yang lebih cepat (menggunakan esbuild)
  tsup         — bundler TypeScript yang zero-config
  typescript-eslint — ESLint rules khusus untuk TypeScript

Testing:
  vitest       — test runner cepat dengan dukungan TypeScript native
  jest         — test runner yang paling umum, butuh konfigurasi tambahan untuk TS
  @faker-js/faker — generate data dummy untuk testing

Type Utilities:
  zod          — schema validation dengan type inference otomatis
  type-fest    — koleksi utility types yang berguna
  ts-pattern   — pattern matching yang type-safe untuk TypeScript

Database dan ORM #

ORM / Query Builder:
  Prisma       — ORM TypeScript-first dengan schema yang eksplisit
  DrizzleORM   — query builder ringan dengan type inference penuh
  TypeORM      — ORM berbasis dekorator untuk TypeScript
  Kysely       — query builder SQL yang fully type-safe

MongoDB:
  mongodb      — official driver (dibahas di series ini)
  mongoose     — ODM populer dengan schema validation

Elasticsearch:
  @elastic/elasticsearch — official client (dibahas di series ini)

Cache:
  ioredis      — Redis client untuk Node.js (dibahas di series ini)
  memjs        — Memcached client untuk Node.js (dibahas di series ini)
  node-cache   — in-process cache sederhana tanpa dependency eksternal

Monitoring dan Observability #

APM dan Tracing:
  OpenTelemetry (@opentelemetry/sdk-node) — standar observability yang vendor-neutral
  Sentry       — error tracking dengan dukungan TypeScript yang baik
  Datadog APM  — monitoring performa untuk Node.js

Logging:
  pino         — logger yang sangat cepat dengan output JSON terstruktur
  winston      — logger yang fleksibel dengan banyak transport
  bunyan       — logger berbasis stream untuk Node.js

Referensi Cepat #

Cheatsheet TypeScript #

// Utility Types yang paling sering digunakan
Partial<T>         // semua field menjadi opsional
Required<T>        // semua field menjadi wajib
Readonly<T>        // semua field tidak bisa dimodifikasi
Pick<T, K>         // ambil subset field dari T
Omit<T, K>         // buang subset field dari T
Record<K, V>       // object dengan key K dan value V
Exclude<T, U>      // keluarkan U dari union T
Extract<T, U>      // ambil hanya U dari union T
NonNullable<T>     // keluarkan null dan undefined dari T
ReturnType<T>      // ambil return type dari fungsi T
Parameters<T>      // ambil parameter types dari fungsi T
Awaited<T>         // unwrap Promise type

// Type Guards
function isString(val: unknown): val is string {
  return typeof val === "string";
}

// Conditional Types
type IsArray<T> = T extends any[] ? true : false;

// Template Literal Types
type EventName = `on${Capitalize<string>}`;

// Mapped Types
type Nullable<T> = { [K in keyof T]: T[K] | null };

// Infer
type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;

Perintah Redis yang Sering Digunakan #

# String
SET key value EX 3600    # set dengan TTL 1 jam
GET key
INCR key
MGET key1 key2 key3

# Hash
HSET key field value
HGET key field
HGETALL key
HINCRBY key field 1

# List
RPUSH key value          # tambah ke kanan
LPOP key                 # ambil dari kiri (FIFO)
LRANGE key 0 -1          # ambil semua

# Set
SADD key member
SMEMBERS key
SISMEMBER key member

# Sorted Set
ZADD key score member
ZRANGE key 0 -1 WITHSCORES
ZREVRANGE key 0 9        # top 10

# Utility
TTL key                  # sisa waktu hidup
EXPIRE key 3600          # set TTL
DEL key
SCAN 0 MATCH "prefix:*" COUNT 100

Operator Query MongoDB yang Sering Digunakan #

// Perbandingan
{ field: { $eq: val } }      // sama dengan
{ field: { $ne: val } }      // tidak sama
{ field: { $gt: val } }      // lebih besar
{ field: { $gte: val } }     // lebih besar atau sama
{ field: { $lt: val } }      // lebih kecil
{ field: { $lte: val } }     // lebih kecil atau sama
{ field: { $in: [a, b] } }   // ada dalam array
{ field: { $nin: [a, b] } }  // tidak ada dalam array

// Logika
{ $and: [kondisi1, kondisi2] }
{ $or: [kondisi1, kondisi2] }
{ $not: { kondisi } }

// Array
{ field: { $elemMatch: { kondisi } } }
{ field: { $size: n } }
{ field: { $all: [a, b] } }

// Update
{ $set: { field: val } }
{ $unset: { field: "" } }
{ $inc: { field: n } }
{ $push: { field: val } }
{ $pull: { field: val } }
{ $addToSet: { field: val } }

Komunitas #

Bergabung dengan komunitas adalah cara terbaik untuk belajar dari orang lain dan tetap update dengan perkembangan ekosistem.

Forum dan Diskusi:
  TypeScript Discord    — discord.gg/typescript
                          Komunitas resmi TypeScript dengan channel per topik
  r/typescript          — reddit.com/r/typescript
                          Diskusi, pertanyaan, dan showcase project TypeScript
  Stack Overflow        — stackoverflow.com/questions/tagged/typescript
                          Referensi untuk pertanyaan spesifik yang sudah terjawab

GitHub Repositories:
  microsoft/TypeScript  — source code dan issue tracker TypeScript
  DefinitelyTyped       — github.com/DefinitelyTyped/DefinitelyTyped
                          Repositori @types/* — contribute tipe untuk library tanpa tipe

Konferensi:
  TypeScript Congress   — typescriptcongress.com
                          Konferensi tahunan khusus TypeScript
  NodeConf              — konferensi Node.js dengan banyak konten TypeScript

Ringkasan #

  • Dokumentasi resmi selalu jadi referensi pertama — TypeScript Handbook, MongoDB Driver docs, Elasticsearch client docs, dan ioredis docs adalah sumber paling akurat dan terbaru.
  • Buku untuk fondasi yang kuatProgramming TypeScript untuk sistem tipe, Designing Data-Intensive Applications untuk memahami trade-off database dan caching di level arsitektur.
  • Total TypeScript dan Execute Program adalah dua sumber belajar TypeScript interaktif yang paling direkomendasikan saat ini — keduanya memaksa kamu aktif berlatih, bukan sekadar menonton.
  • Tools penting untuk ekosistem TypeScript — Zod untuk validasi dengan type inference, Prisma atau DrizzleORM untuk database, Vitest untuk testing, dan pino untuk logging terstruktur.
  • Pantau blog teknis secara rutin — The Pragmatic Engineer, 2ality, dan Matt Pocock’s blog adalah sumber yang konsisten menghasilkan konten berkualitas tinggi tentang TypeScript dan engineering secara umum.
  • Bergabung dengan TypeScript Discord untuk mendapatkan jawaban cepat dari komunitas dan mengikuti diskusi tentang fitur TypeScript yang sedang dikembangkan.

← Sebelumnya: Memcached   Berikutnya: Strings →

About | Author | Content Scope | Editorial Policy | Privacy Policy | Disclaimer | Contact