Node.js uygulamasını modernize etme
Node.js Express API'sini sürüm 16'dan 22'ye yükselterek uygulama modernizasyonu için IBM Bob'u kullanmayı öğrenin. Bu uygulamalı eğitimde modlar, onaylar ve edebi kodlama ile AI destekli geliştirmeyi deneyin.
Giriş
Bob, mevcut iş akışlarınızı güçlendiren bir AI SDLC (Yazılım Geliştirme Yaşam Döngüsü) ortağıdır. Bu eğitimde, TypeScript Express API'sini Node.js 16'dan Node.js 22'ye modernize ederek Bob'un temel özelliklerinden bazılarını öğreneceksiniz. Eğitimi tamamlamak için Node.js veya TypeScript deneyimine ihtiyacınız yok. Bob'un bağımlılıkları nasıl analiz ettiğini ve kod kalıplarını nasıl modernize ettiğini öğreneceksiniz.
Öğreneceğiniz temel özellikler
Bob, API'yi yükseltirken kullanacağınız dört temel yetenek sağlar:
- Modlar: Belirli görevler için Bob'un davranışını uyarlayan özelleştirilmiş kişilikler.
- Bağlam bahisleri: Bob ile konuşmalarda dosyalar, klasörler veya Git commit'leri gibi belirli proje öğelerine referans verin.
- Onay iş akışı: Bob'un yürütmeden önce kullanmayı planladığı her aracı gözden geçirin.
- Edebi kodlama: Editörünüzde doğrudan Bob ile kod yazın. Kodun gitmesi gereken yere doğal dilde talimatlar yazın.
Ön koşullar
Bu eğitim, örnek proje olarak TypeScript Express REST API kullanır. Ancak Node.js veya TypeScript deneyimine ihtiyacınız yok.
Bu eğitimi tamamlamak için aşağıdakilere ihtiyacınız var:
- Docker yüklü ve çalışır durumda olmalıdır. Bob, uygulama için bir Dockerfile oluşturmak için kullanırsınız.
- Bob IDE yüklü olmalıdır.
- Bob'un arayüzü ve özellikleriyle tanışmak için Hızlı başlangıç eğitimini tamamlamış olmalısınız.
- Bu eğitim için yeni bir bağlam penceresi başlatmak isteyebilirsiniz. Talimatlar için Yeni bağlam penceresi oluşturma eğitimine bakın.
Çalışma alanınızı kurun
IBM Bob'u başlatın ve modernize edeceğiniz Node.js uygulamasıyla çalışmaya başlamak için örnek depoyu klonlayın.
IBM Bob'u başlatın
Bilgisayarınızda IBM Bob uygulamasını başlatın.
Bob sohbet panelini açın
Sohbet paneli henüz açık değilse, gezinme çubuğunun yanındaki Bob simgesine tıklayarak veya Option + Command + B (Mac) veya Ctrl + Alt + B (Windows) kısayolunu kullanarak açın.

Eğitim deposunu klonlayın
Bob IDE panelinin sol üst köşesinde bulunan dosyalar simgesine tıklayarak örnek uygulamayı içeren depoyu klonlayın. Ardından Depoyu Klonla'ya tıklayın ve aşağıdaki GitHub deposunu arama çubuğuna yapıştırın. Bob depoyu nereye kaydetmek istediğinizi soracaktır. İstediğiniz yere kaydedebilirsiniz.
https://github.com/IBM/bob-demo.git
Depoyu açın
Bob klonlanan depoyu açmak isteyip istemediğinizi sorduğunda Aç'a tıklayın. Bob "Bu klasördeki dosyaların yazarlarına güveniyor musunuz?" diye sorarsa, Evet, yazarlara güveniyorum'a tıklayın.
Explorer'daki proje dosyalarına ve yandaki Bob sohbet paneline dikkat edin.

Otomatik onayı devre dışı bırakın
Otomatik onayın devre dışı olduğundan emin olun. Bu ayarı İzinler bölümünde bulabilirsiniz. Otomatik onay kapalıyken Bob, önerilen değişiklikleri yürütmeden önce izninizi ister. Bu, kod tabanınızdaki tüm değişikliklerin kontrolünün sizde kalmasını sağlar.
Konteynerleştirilmiş ortamı oluşturun
Uygulamayı konteynerleştirilmiş bir ortamda çalıştırmak için bir Dockerfile oluşturun, Node.js veya bağımlılıkları yerel olarak yükleme ihtiyacını ortadan kaldırın.
Agent moduna geçin
Mod açılır menüsüne tıklayarak ve Agent'ı seçerek Bob'u Agent moduna geçirin.
Modlar, Bob'un en az ayrıcalık ilkesine saygı gösterme yollarından biridir. Her mod, Bob'a sizin adınıza belirli bir görev seti önerme izni verir. Agent modu, Bob'un kod yazmasına, değiştirmesine ve yeniden düzenlemesine izin verir. Bob her işlemden önce hala izin ister.
Dockerfile'ı oluşturun
Bob sohbet panelinde Bob'dan Dockerfile oluşturmasını istemek için aşağıdaki istemi girin.
Bu Node.js TypeScript uygulaması için bir Dockerfile oluştur. Mevcut uygulama sürümüyle eşleşmesi için Node 16 kullanmalı, TypeScript kodunu derlemeli ve uygulamayı `3000` portunda çalıştırmalıdır.Bob, Dockerfile gereksinimlerini anlamak için birkaç dosyaya okuma erişimi isteyecektir. Bob'a bu dosyaları okuma izni vermek için Onayla'ya tıklayın.
Bob uygun Dockerfile yapısını belirler ve önerilen dosyayı gösterir. Sohbet giriş alanının üzerinde eylem düğmeleri görünür. Dosyayı oluşturmak için Kaydet'e tıklayın. Kaydet, projenizdeki dosyaları yazar veya değiştirir. Bu eğitimin ilerleyen bölümlerinde Bob, Dockerfile'ı Node 22 kullanacak şekilde günceller.
Eski uygulamanın derlendiğini doğrulayın
Modernize etmeden önce, eski kodun doğru şekilde derlendiğini ve çalıştığını doğrulayın. Bu temel, modernizasyonun getirdiği sorunları belirleyebilmenizi sağlar.
Derleme aşamasında Bob, Dockerfile'ın mevcut olmayan bir package-lock.json dosyası gerektiren npm ci kullandığı için derlemenin başarısız olduğunu söyleyecektir.
Bob sohbet panelinde Bob'a uygulamayı derlemesini ve test etmesini söyleyin.
Modernizasyondan önce doğru çalıştığını doğrulamak için Docker kullanarak eski uygulamayı derle ve test et. Uygulama /api/todos adresinde örnek verilerle API isteklerine yanıt vermelidir
Test ettikten sonra konteyneri temizle.Bob, aşağıdaki mesajla package-lock.json sorununu düzeltecek Dockerfile'da bir değişiklik kaydetmenizi ister:
package-lock.json dosyası olmadığı için derleme başarısız oldu. Dockerfile'ı `npm ci` yerine `npm install` kullanacak şekilde güncellemem gerekiyor. Bunu düzelteyim.Bob'un derleme hatalarını tespit etme ve düzeltme yeteneği, dağıtımlar sırasında sorunları gidermek ve çözmek için sizinle nasıl çalıştığının bir örneğidir.
Bob düzeltmeyi uyguladıktan ve derlemeyi tamamladıktan sonra, eski uygulamanın konteynerleştirilmiş ortamda doğru çalıştığını onaylayan bir derleme ve test sonuçları özeti görüntüler. Bir sonraki bölümde uygulamayı modernize ettikten sonra karşılaştırmak için doğrulanmış bir temel noktanız olur.
Siz ve Bob eski uygulamanın doğru çalıştığını doğruladınız.
Bob'un Ask moduyla Node.js kod tabanını keşfedin
Modernize etmeden önce, mod seçim açılır menüsüne tıklayın ve Bob'un Ask moduna geçin. Ask modu yalnızca dosyaları okuyabilir, bu nedenle yanlışlıkla değişiklik yapmadan kodu güvenle keşfedebilirsiniz. Ask moduna geçmek için Bob sohbetinde /ask da yazabilirsiniz.
Projeyi gözden geçirmek için @ bağlam bahislerini kullanın
Bob, istemlerinizde belirli dosyalara, klasörlere veya sorunlara doğrudan referans vermenizi sağlayan @ bağlam bahislerini destekler. Bağlam bahisleri Bob'a tartışmak istediğiniz şey hakkında kesin bilgi verir.
@ bahislerini kullanarak hangi dosyaları analiz edeceğini Bob'a açıkça söyleyerek package.json, tsconfig.json ve Dockerfile dosyalarını keşfedin. Bu dosyalar hakkında bilgi edinmek, herhangi bir değişiklik yapmadan önce modernizasyon gereksinimlerini anlamanıza yardımcı olur.
Bob sohbet panelinde aşağıdaki istemi çalıştırın:
@package.json Bu proje hangi Node.js sürümünü kullanıyor? Node.js 22 için hangi bağımlılıkların güncellenmesi gerekir? Bana kısa bir özet ver.@ sembolü Bob'a package.json'u bağlam olarak dahil etmesini söyler. Bob hemen yanıt vermeye başlamaz; önce kod tabanınızı keşfeder, dosyaları okur, kalıpları takip eder ve kodu analiz eder. Bu keşif aşamasını kesmeyin.
Bob, Node.js 22 için gereken aşağıdaki güncellemeleri tanımlar:
**Mevcut Node.js sürümü:** 16.x
**Node.js 22 için güncelleme gerektiren bağımlılıklar:**
1. **@types/node**: ^16.18.0 → ^22.x.x (Node.js 22 için TypeScript tipleri)
2. **typescript**: ^4.9.5 → ^5.x.x (Node.js 22 için daha iyi destek için TypeScript 5+)
3. **ts-node**: ^10.9.1 → ^10.9.2+ (TS 5 ve Node 22 ile uyumluluğu sağla)
**Zaten uyumlu bağımlılıklar:**
- **express**: ^4.18.2 ✓ (Node.js 22 ile çalışır)
- **uuid**: ^9.0.0 ✓ (Node.js 22 ile çalışır)
- **@types/express**: ^4.17.17 ✓ (uyumlu)
- **@types/uuid**: ^9.0.0 ✓ (uyumlu)
**Özet:** Yalnızca Node.js'ye özgü geliştirme bağımlılıklarının güncellenmesi gerekiyor. Çalışma zamanı bağımlılıkları (Express, UUID) zaten Node.js 22 ile uyumlu.TypeScript yapılandırmasını analiz edin
Bob'dan projenin TypeScript yapılandırmasını analiz etmesini isteyin:
@tsconfig.json Bu TypeScript projesi hangi modül sistemini ve derleyici ayarlarını kullanıyor? Node.js 22 için hangi bağımlılıkların güncellenmesi gerekir? Bana kısa bir özet ver.Bob, Node.js 22 için güncellemeniz gereken aşağıdaki bileşenlerle yanıt verir:
**Mevcut TypeScript yapılandırması:**
**Modül sistemi:** CommonJS (`"module": "commonjs"`)
- `require()` ve `module.exports` kullanan geleneksel Node.js modül sistemi
- Çıktı: CommonJS sözdizimli `.js` dosyaları
**Derleyici ayarları:**
- **Target:** ES2020 (ES2020 JavaScript'e derler)
- **Lib:** ES2020 (ES2020 standart kütüphane özelliklerini kullanır)
- **Module Resolution:** Node (standart Node.js çözümleme algoritması)
- **Strict Mode:** Etkin (tam tip kontrolü)
**Node.js 22 için önerilen güncellemeler:**
1. **target**: ES2020 → **ES2022** veya **ESNext** (daha yeni JS özelliklerinden yararlanın)
2. **lib**: ES2020 → **ES2022** (daha yeni API'lere erişin)
3. **module**: Yerel ESM desteği için **"node16"** veya **"nodenext"**'e geçmeyi düşünün
4. **moduleResolution**: "node" → **"node16"** veya **"bundler"** (daha iyi modern çözümleme)
**Özet:** Proje ES2020 hedefiyle eski CommonJS kullanıyor. Node.js 22 için hedef/lib'i ES2022+'ya güncellemeniz ve yerel ESM modüllerine geçmeyi düşünmeniz gerekir (CommonJS hala iyi çalışsa da).Dockerfile'ı analiz edin
Bob'dan projenin Dockerfile'ını analiz etmesini isteyin:
@Dockerfile Bu Dockerfile hangi Node.js sürümünü kullanıyor? Node.js 22 için ne değişmesi gerekir? Bana kısa bir özet ver.Bob, Node.js 22 için güncellenmesi gerekenlerle yanıt verir:
**Mevcut Dockerfile Node.js sürümü:** Node 16 Alpine (`node:16-alpine`)
**Node.js 22 için gereken değişiklikler:**
1. **Temel görüntü (Satır 2):** `FROM node:16-alpine` → `FROM node:22-alpine`
**Özet:** Yalnızca bir satır değişikliği gerekli: temel görüntüyü node:16-alpine'den node:22-alpine'e güncelleyin. Dockerfile'ın geri kalanı Node.js 22 ile uyumlu, npm bayrak sözdizimi modernize edilebilirArtık neyin güncellenmesi gerektiğini anlıyorsunuz. Bir sonraki bölümde Agent moduna geçer ve Bob'un değişiklikleri yapmasını sağlarsınız.
Bob'un Agent moduyla API'yi modernize edin
Bob, package.json, tsconfig.json ve Dockerfile için aşağıdaki modernizasyon gereksinimlerini belirledi:
- package.json ve Dockerfile'da Node.js 16'yı Node.js 22'ye değiştirin
- TypeScript derleyici hedef ve modül ayarlarını güncelleyin
- Eski bağımlılık sürümlerini düzeltin
Uygulamayı modernize etmeye başlamak için Bob'un kod değişiklikleri yapabilmesi için Agent moduna geri dönün. Mod seçiciyi tıklayın ve Agent'ı seçin.
Bob sohbet panelinde aşağıdaki modernizasyon istemini çalıştırın. Bob'u üzerinde çalıştığı belirli dosyalara işaret eden @ referanslarına dikkat edin:
@package.json @tsconfig.json @Dockerfile
Bu Express API'sini Node.js 16'dan Node.js 22'ye modernize et. API işlevselliğini aynı tut - bu bir platform yükseltmesi, özellik değişikliği değil. Bana kısa bir özet ver.Bob kodu güncelleyip test ettikten sonra aşağıdakine benzer bir özet görüntüler:
Dockerfile — 2 satır değişti
- Her iki FROM node:16-alpine aşaması → node:22-alpine
package.json — 3 alan değişti
- engines.node: 16.x → 22.x
- @types/node: ^16.18.0 → ^22.0.0
- typescript: ^4.9.5 → ^5.0.0
tsconfig.json — 4 ayar değişti
- target: ES2020 → ES2023
- lib: ["ES2020"] → ["ES2023"]
- module: commonjs → node16 (TypeScript 5, moduleResolution ile eşleşmeyi zorunlu kılar)
- moduleResolution: node → node16
Derleme sırasında bir sorunla karşılaşıldı: TypeScript 5, module ve
moduleResolution ayarlarının tutarlı olmasını zorunlu kılar — moduleResolution: "node16",
module: "node16" gerektirir ("commonjs" değil). Derlenmiş çıktı yine de
CommonJS uyumludur; bu yalnızca tür denetimi sırasında TypeScript'in import'ları
nasıl çözdüğünü etkiler.Siz ve Bob uygulamayı modernize ettiniz.
Modernizasyonu tamamlandı olarak işaretleyin
Örnek todo başlığını güncellemek ve uygulamayı modernize edilmiş olarak işaretlemek için Bob'un edebi kodlama özelliğini kullanın. Edebi kodlama, sohbet panelini kullanmak yerine editörünüzde doğrudan Bob ile kod yazmanızı sağlar.
Edebi kodlama modunu etkinleştirin
Ekranın sol tarafındaki Explorer sekmesinde express-todo-api klasörüne gidin ve editörde açmak için src/db.ts'ye tıklayın. src/db.ts açıkken, editör araç çubuğundaki sihirli değnek simgesine tıklayarak edebi kodlama modunu değiştirin. Alternatif olarak Mac'te Cmd + I veya Windows ve Linux'ta Ctrl + I tuşlarına basabilirsiniz.
Talimatınızı yazın
Editörünüzde açık olan src/db.ts dosyasında, herhangi bir koddan önce dosyanın en üstüne aşağıdaki talimatı yapıştırın:
// Örnek todo nesnesinin title özelliğini bul ve "Welcome to the Modernized Node.js 22 API" olarak değiştirEdebi kodlama modunda olduğunuz için Bob bu yorumun normal kod yerine bir talimat olduğunu anlar. Talimatınız editörde vurgulanmış olarak görünür.
Kodu oluşturun
Belgenin altındaki Oluştur'a tıklayın.
Bob, yapıcıdaki sampleTodo nesnesini bulur ve değişikliği gösterir. Başlığın şu şekilde değiştiğini göreceksiniz:
Önce:
title: "Learn Node.js modernization"Sonra:
title: "Welcome to the Modernized Node.js 22 API"Değişiklikleri kabul edin
Değişikliği dosyaya uygulamak için Oluştur'a tıkladığınız belgenin altındaki Tümünü kabul et'e tıklayın.
Edebi kodlama modundan çıkın
Edebi kodlama modundan çıkmak için dosyanın üstündeki edebi sihirli değneğin altındaki Çık'a tıklayın.
Edebi kodlama kullanarak API'yi güncellediniz. Bir sonraki bölümde API'yi test ettiğinizde, API yanıtında bu yeni başlığı göreceksiniz.
Docker ile modernize edilmiş uygulamayı doğrulayın
Docker konteynerini yeniden oluşturup test ederek kod modernizasyonunu ve edebi kod değişikliğinizi doğrulayın.
Agent moduna geri dönün ve Bob'un doğrulamasını istediğiniz şeyi açıklayın:
Docker ile derleyip test ederek modernize edilmiş Node.js 22 uygulamasının çalıştığını doğrula. API'nin /api/todos adresinde yanıt verdiğini ve güncellenmiş todo başlığını gösterdiğini kontrol et. Bittiğinde temizle. Bana kısa bir özet ver. Yeni başlığın doğrulamasını da görmek istiyorum.Bob uygulamanın modernize edildiğini doğruladıktan sonra aşağıdaki özeti verir:
✅ **Doğrulama tamamlandı - Node.js 22 modernizasyonu başarılı**
**Derleme ve test sonuçları:**
- Docker görüntüsü Node.js 22 ile başarıyla derlendi
- TypeScript derlemesi hatasız tamamlandı
- Uygulama başlatıldı ve doğru yanıt verdi
**API doğrulaması:**
{
"id": "72459851-7953-4a9c-94d3-4f8f1c656d21",
"title": "Welcome to the Modernized Node.js 22 API",
"completed": false,
"createdAt": "2026-02-16T16:35:49.132Z"
}
**Onaylandı:**
- ✅ Güncellenmiş todo başlığı doğru görüntüleniyor: "Welcome to the Modernized Node.js 22 API"
- ✅ API uç noktası /api/todos başarıyla yanıt veriyor
- ✅ Tüm işlevsellik Node.js 22'de çalışıyor
- ✅ Temizlik tamamlandı (konteyner ve görüntü kaldırıldı)
**Özet:** Modernize edilmiş Express TODO API, modernizasyonun tamamlandığını onaylayan yeni başlığı gösteren güncellenmiş örnek verilerle Node.js 22'de tamamen işlevsel.API doğru çalışıyor ve başlık "Welcome to the Modernized Node.js 22 API" olarak güncellendi, Bob'un Node.js sürümünü ve bağımlılıkları modernize ederken mevcut davranışı koruduğunu onaylıyor.
Sonraki adımlar
Bu eğitimde Bob kullanarak Express API'sini Node.js 16'dan Node.js 22'ye nasıl modernize edeceğinizi öğrendiniz. Bob bağımlılıklarınızı analiz etti, yapılandırma dosyalarını güncelledi ve tüm işlevselliği korurken Docker kurulumunu modernize etti.
- İşinizi commit etmeden önce potansiyel sorunları yakalamak için Bob'un kod inceleme özelliği
/reviewhakkında bilgi edinin. - Belirli görevleriniz için Bob'un davranışını uyarlayan özelleştirilmiş kişilikler olan modlar hakkında bilgi edinin.
- Bob ile etkileşimin ana yolu olan Bob'un sohbet arayüzünü nasıl kullanacağınızı öğrenin.
Ardından, Bob'un özellikleri ve yetenekleri hakkında daha fazla bilgi edinmek için IBM Bob ile başlayın eğitim serisi üzerinde çalışın.
Yorumlardan kod oluşturma
Bob'un doğal dil yorumlarından kod oluşturması için edebi kodlamayı kullanın; Bob, editörünüzde doğrudan bağlam farkında, hassas kod değişiklikleri yazmanıza yardımcı olur.
IBM Bob ile MCP sunucuları oluşturma
AI modellerini harici araçlara ve veri kaynaklarına bağlayan özel bir Model Context Protocol (MCP) sunucusu oluşturmak için IBM Bob'u nasıl kullanacağını öğren. Bu uygulamalı tutorial; gelişmiş mod, onay iş akışı ve MCP yapılandırmasını kapsar.