Slide 1

Slide 1 text

2024'e Girerken JavaScript Yeni JavaScript runtime’larıyla bir ekosistem örmek Eser Özvataf Head of Engineering @ Teknasyon Hepsiburada JSKonf 18 / 11 / 2023 eser.live

Slide 2

Slide 2 text

Portfolyomu incelemek ve bana ulaşmak için https://eser.live’ı inceleyebilirsiniz. Eser Özvataf Head of Engineering @ Teknasyon eser.live Hepsiburada JSKonf 18 / 11 / 2023

Slide 3

Slide 3 text

[[]]]] 01 Mimari Değişimler 02 Runtimelar 03 Araçların Değişimleri 04 Codebase

Slide 4

Slide 4 text

Mimari Değişimler - Düne kadar…

Slide 5

Slide 5 text

Mimari Değişimler - Bugün Server-Side Rendering UI Composition SPA Routing Load Optimization Handling Forms Partial Loading or something else with Islands Architecture

Slide 6

Slide 6 text

➔ Full-Stack geliştirme, az context-switching ➔ Geliştirme sürecini hızlandırma, daha az kurulum ➔ Daha hızlı bir kullanıcı deneyimi, optimizasyon Mimari Değişimler - Nasıl etkileneceğiz?

Slide 7

Slide 7 text

➔ Bilinen tüm araçlar onun üzerine kurulu ➔ Sahibi OpenJS Vakfı Node.js Deno Bun Runtimelar ➔ Ryan Dahl’ın yeni tasarımı ➔ Geliştirici deneyimi (DX) ➔ Paket yöneticisi yok ➔ Standartlar ve güçlü kütüphane desteği ➔ Serverless hizmetler ➔ Geriye doğru uyumluluk ➔ Hızlı paket yöneticisi ➔ Safari’nin JavaScriptCore Motorunun Avantajları

Slide 8

Slide 8 text

➔ Go ve Rust’ın geliştirici deneyiminin iyi yönleri JavaScript ekosistemine aktarılıyor. ◆ Built-in araçlar: Test Suite (Jest), Linter (eslint), Formatter (prettier), docgen v.b… ◆ Environment variable okumak gibi temel ihtiyaçlar karşılanıyor. ➔ ES Modules her geçen gün daha da fazla destekleniyor. ➔ TypeScript Deno ve Bun’da dahili geliyor. ➔ Runtime’lardaki geliştirme deneyimi, browser’lara yaklaşıyor. Fetch, WebSockets, WebStreams, Intl v.b. Browser API’ları gün geçtikçe runtime’lara da ekleniyor. Araçların Değişimleri - Geliştirici deneyimi

Slide 9

Slide 9 text

➔ Node.js için NPM yanı sıra corepack ile Yarn veya PNPM varsayılan paket yöneticiniz olabiliyor. ➔ Deno’da Go’nun standart kütüphanesine yakın bir kütüphanenin yanı sıra artık NPM desteği de oldukça olgun. ➔ Deno ve Bun URL üzerinden modül yükleme desteği ile monorepo araçlarına ihtiyacı ortadan kaldırıyor. Araçların Değişimleri - Kütüphane yönetimi

Slide 10

Slide 10 text

➔ Deno aynı zamanda bir serverless çözüm. ◆ Deno Deploy - AWS Lambda ◆ Deno KV - Redis, AWS DynamoDB ◆ Deno Queues - RabbitMQ, AWS SQS ➔ Vercel ve Supabase gibi firmalar araç çeşitliliğini arttırıyorlar. Araçların Değişimleri - Serverless hizmetler

Slide 11

Slide 11 text

Codebase - Karmaşadan kurtuluyoruz ➔ Built-in araçlarla, araç konfigurasyonları ve birbirleri ile entegrasyonları giderek azalıyor. Eskisi gibi testing suite’e TypeScript tanıtmak zorunda kalmıyoruz. ➔ Bundler ve transpilerları hayatımızdan çıkartmak eskisinden daha kolay. Bu sayede monorepo yönetimi de sorun olmaktan çıkıyor. ➔ Kısmen PNPM ve Deno ile birlikte node_modules yükünden kurtulmaya doğru gidiyoruz.

Slide 12

Slide 12 text

Codebase - Hızlı prototipleme mümkün ➔ CDN üzerinden uygulama bootstrap edebiliyorsunuz! ➔ Deno ve Supabase sayesinde kendi yerel ortamınızda geliştirme çok kolay. ➔ TDD için hazır bir ortam vaad ediyor. ➔ Deno ve Bun stand-alone binary oluşturup hızlıca Dockerize edebilmenizi sağlıyor. ➔ deno.dev üzerinden GitHub’la login olup ister copy-paste ile, ister deployctl ile saniyeler içinde bir API yayına alabiliyorsunuz.

Slide 13

Slide 13 text

Codebase - Bir örnek

Slide 14

Slide 14 text

Codebase - Bir örnek

Slide 15

Slide 15 text

Teşekkürler Sorularınızı https://eser.live üzerinden iletebilirsiniz. Eser Özvataf Head of Engineering @ Teknasyon eser.live