Bahasa Pemrograman

Elixir

Jalur lengkap bahasa Elixir dari pattern matching dan imutabilitas sampai OTP, Ecto, Phoenix 1.8, dan LiveView pada BEAM.

Elixir menempatkan keandalan mesin virtual Erlang, yaitu BEAM, di balik sintaks yang ramah: jutaan process ringan, pohon supervision yang memulai ulang bagian yang rusak, dan Phoenix LiveView yang menghadirkan antarmuka real-time dengan jejak JavaScript yang nyaris nol. Jalur ini membangun pemahaman dari pattern matching dan imutabilitas, melanjutkan ke process dan OTP sebagai jantungnya, lalu menutup dengan Ecto, Phoenix 1.8, serta LiveView hingga rilis dan deploy. Prasyaratnya hanya Elixir 1.20 dengan Erlang/OTP 27 ke atas dan terminal, sementara setiap contoh kode pada jalur ini telah dieksekusi nyata dan keluarannya direkam apa adanya.

Mengenal Elixir 3 pelajaran

Modul pembuka: latar BEAM dan Erlang, penyiapan lingkungan kerja, serta IEx dan skrip pertama.

  1. Apa itu Elixir?BEAM, warisan Erlang, dan fault tolerance sebagai fitur bahasa.
  2. Penyiapan lingkunganInstalasi Elixir melalui panduan resmi serta pengelolaan versi dengan mise atau asdf.
  3. IEx dan skrip pertamaREPL IEx, menjalankan berkas .exs, dan helper h serta i untuk eksplorasi.

Modul inti bahasa: operator pencocokan, operator pin, tipe data dasar, map dan struct, serta alur kendali.

  1. Operator pencocokan == sebagai asersi, destructuring tuple dan list.
  2. Operator pin ^Pengikatan ulang dan pencocokan pola, dengan ^ untuk batasan nilai yang sudah ada.
  3. Atom, tuple, dan listTipe data inti Elixir beserta pertimbangan akses dan ukurannya.
  4. Map dan structData kunci-nilai dan disiplin bentuk melalui struct.
  5. case, cond, dan withAlur kendali yang digerakkan oleh pencocokan pola.

Modul pengolahan data: Enum, pipeline lazy dengan Stream, comprehension, serta string dan binary.

  1. Esensi Enummap, filter, dan reduce atas enumerable beserta protokol Enumerable di baliknya.
  2. StreamPipeline lazy untuk data besar tanpa koleksi perantara.
  3. Comprehension dengan forfor dengan generator dan filter untuk membangun koleksi.
  4. String dan binarySifat UTF-8 serta perbedaan binary dan charlist.
Process 5 pelajaran

Modul konkurensi dasar BEAM: spawn, send, receive, process berkondisi, link, monitor, timeout, dan Agent.

  1. spawn, send, dan receivePrimitif konkurensi paling dasar pada BEAM.
  2. Process berkondisiLoop penyimpan state yang ditulis secara manual melalui rekursi berekor.
  3. Link versus monitorDua model propagasi kegagalan antar process.
  4. Timeout dan mailboxDrift pesan, mailbox yang tumbuh tanpa batas, dan pembacaan defensif.
  5. AgentAbstraksi state sederhana di atas process, beserta penilaian kapan Agent tepat digunakan.
Inti OTP 5 pelajaran

Modul kerangka OTP: GenServer, Supervisor, DynamicSupervisor dan Registry, aplikasi sebagai pohon supervision, serta Task.

  1. GenServerhandle_call, handle_cast, dan kontrak servernya.
  2. SupervisorChild spec dan strategi restart.
  3. DynamicSupervisor dan RegistryProcess yang dibuat saat runtime dan pencariannya.
  4. Aplikasi dan pohon supervisionstart/2 dan aplikasi sebagai pohon process.
  5. TaskKerja asinkron sekali jalan dengan supervision.

Modul tentang filosofi let it crash, dua jalur penanganan error, serta Telemetry dan logging untuk pengamatan sistem.

  1. Let it crashFilosofi let it crash dan batas-batas penerapannya.
  2. Errortry/rescue/after versus pengembalian nilai error.
  3. Telemetry dan loggingEvent Telemetry, level log, dan log terstruktur.

Modul ekstensibilitas bahasa: behaviour, atribut modul, dan macro pada tingkat kesadaran yang sehat.

  1. Behaviouruse, callback, dan modul yang dapat dipasang lepas.
  2. Atribut modulData pada saat kompilasi dan anotasi pada modul.
  3. Macro pada tingkat kesadaranApa yang dilakukan quote/unquote dan kapan macro sebaiknya tidak disentuh.
Mix, testing, dan tipe 4 pelajaran

Modul rekayasa harian: proyek Mix, ExUnit, typespec dan Dialyzer, serta perkakas formatter dan Credo.

  1. Proyek MixStruktur proyek, dependensi, dan pengenalan umbrella app.
  2. ExUnitTes asinkron, doctest, dan tag.
  3. Typespec dan Dialyzer@spec serta arah tipe set-teoretis bertahap.
  4. Perkakas: formatter, Credo, dan CImix format, Credo, dan bentuk CI untuk proyek Elixir.
Ecto 5 pelajaran

Modul data: Repo dan konfigurasi Postgres, schema dan migration, changeset, query, serta asosiasi.

  1. Repo dan konfigurasiPostgres, sandbox pengujian, dan koneksi Repo.
  2. Schema dan migrationModel data di atas SQL beserta migrasinya.
  3. ChangesetValidasi dan casting sebagai data yang mengalir.
  4. QueryPipeline where/join/select yang dapat disusun.
  5. Asosiasihas_many, belongs_to, many_to_many, dan preload.
Phoenix 5 pelajaran

Modul web: pipeline permintaan, controller, context, template HEEx dan layout Phoenix 1.8, serta autentikasi.

  1. Pipeline permintaanEndpoint, router, dan plug dalam pipeline permintaan.
  2. ControllerRespons HTML dan JSON beserta param.
  3. ContextBatas antara lapisan web dan domain.
  4. Template dan layoutHEEx serta layout yang disederhanakan pada Phoenix 1.8.
  5. Autentikasiphx.gen.auth serta magic link pada Phoenix 1.8.
LiveView 5 pelajaran

Modul real-time: model LiveView, mount dan handle_event, HEEx dan LiveComponent, PubSub, serta stream.

  1. Model LiveViewSebuah process berkondisi yang merender HTML.
  2. mount dan handle_eventSiklus hidup dan event loop LiveView.
  3. HEEx dan LiveComponentTemplate dengan pelacakan perubahan dan komponen stateful.
  4. PubSubBroadcast pesan lintas process dan node.
  5. Stream dan koleksiList besar tanpa penyalinan DOM.
Pengerjaan proyek 4 pelajaran

Modul penutup: pemilihan proyek, arsitektur, pembangunan bertahap dengan titik pemeriksaan, serta rilis dan deploy.

  1. Pemilihan proyekMemilih salah satu dari chat dengan presence, kanban, atau dashboard langsung.
  2. Arsitektur proyekPohon supervision, context, dan LiveView sebagai lapisan arsitektur.
  3. Pembangunan dengan titik pemeriksaanPotongan vertikal di atas infrastruktur nyata.
  4. Rilis dan deploymix release serta sistem yang berjalan.