Bu, Bob blogundaki ilk gönderidir. Bob'u oluşturan ekip tarafından, onu kullanan geliştiriciler için yazılmıştır. Mühendislik kararlarını açıklamak, gerçek kod tabanları içinde bir AI geliştirme ortağı sunmayı öğrendiklerimizi paylaşmak ve zaman zaman bir pozisyon savunmak için kullanacağız. Bu dokümantasyon değil ve pazarlama değil — ikisinden birini istiyorsanız, sizi doğru yere yönlendireceğiz.
İlk gönderimiz için, Bob'un yaptığı her şeyi gözden geçirmek yerine, üç şey yapmak istiyoruz:
- Bob'un temel yeteneklerinden bazılarına bakmak.
- Bob'un en iyi işini yapması için bir depoyu kurma konusunda pratik ipuçları paylaşmak.
- Kodunuza bu tür erişime sahip bir araçta güvenliğe nasıl yaklaştığımızı açıklamak.
1. Geliştiricilerin gerçekte zamanlarını ne üzerinde harcadıkları
Modern bir AI asistanı, bir açıklamadan bir fonksiyon yazabilir. Bu bir süredir doğru ve artık ilginç soru değil. İlginç soru, işin "yeni kod üretmek" değil de "zaten var olan bir sistemi değiştirmek" olduğunda ne olduğudur — bir değişiklik yapmak için doğru yeri bulmak, bir ekibin üzerinde anlaştığı kuralları anlamak, yıllardır büyüyen dosyalar arasında davranışı tutarlı tutmak. Profesyonel yazılım geliştirmenin çoğu böyle görünür. Bob bu tür işler için inşa edilmiştir ve bu gönderinin geri kalanında açıkladığımız tasarım seçimleri bu odaktan kaynaklanır.
1.1. Modlar: Bob'a ne tür bir iş yaptığınızı söylemek
Bob tek bir "yararlı bir şey yap" etkileşimi değildir. Bir oturumu başlattığınız mod, Bob'a ne tür bir iş yapmak üzere olduğunuzu, hangi araçlara ulaşabileceğini ve ne kadar proaktif olması gerektiğini söyler.
- Ask — salt okunur. "Keşif aşaması" için mükemmel. Bob, değişiklik yapmadan mimariyi ve mantığı açıklar. Eski bir sisteme dalış yaparken veya yazmadığınız bir mantık parçası üzerinde sağlık kontrolü yaparken bunu kullanın.
- Plan — Bob, yapmak üzere olduğunuz bir değişiklik için bir plan üretir: dokunulacak dosyalar, dikkate alınacak kenar durumları, önerilen iş sırası. Çıktı bir plandır, kod değil.
- Code — gerçekten değişiklik yapmak için. Bob, belirlediğiniz kuralları ve kuralları izleyerek projeniz içinde okur, yazar ve test eder.
- Advanced — Model Context Protocol (MCP) aracılığıyla Code modunu genişletir, Bob'a kuruluşunuzun belirli araçlarına ve hizmetlerine erişim verir: dahili API'ler, veritabanları, tescilli araçlar.
- Orchestrator — modları aşan çok adımlı iş için. Bob, mevcut adımın gerektirdiğine göre modlar arasında kendisi geçiş yapar ve keşif, planlama ve yürütmeyi karıştıran daha büyük iş parçaları için doğru seçimdir.
Bir oturumun başında doğru modu seçmek, daha iyi çıktı elde etmek için mevcut en ucuz kaldıraçlardan biridir. Özellikle iyi bilmediğiniz bir kod tabanında veya herhangi bir gerçek yüzey alanına sahip bir değişiklik için iyi bir alışkanlık, Ask veya Plan'da başlamak ve işin net bir resmini aldıktan sonra Code'a geçmektir. Doğrudan Code'a gitmek o anda daha hızlı hissettiriyor, ancak varsayımların gerçek değişiklikler olarak kayma ve teknik borç olarak birikmeye başlama eğiliminde olduğu yer orası.
1.2. Bob tips: gerçek zamanlı karmaşıklık metrikleri
Hepimiz orada bulunduk: "bölge"nin derinliklerinde, bir kenar durumunu ele almak için son bir koşulu iç içe yerleştiriyorsunuz ve aniden tek bir fonksiyon otuz satırlık bir labirente dönüştü. Tipik bir iş akışında, bu labirent bir ekip arkadaşı saatler sonra bir pull request'te işaret edene kadar çözülmez. Bob Tips, mantık hala zihninizde tazeyken bir yeniden düzenleme önerisi sunarak anlatıyı değiştirir. Yazarken, sürekli statik analiz açık dosyalarınızı sessizce izler. Bir fonksiyon yüksek döngüsel karmaşıklığa geçtiğinde veya bakımı zorlaştığında, Bob hemen mor bir alt çizgiyle işaretler. Geleneksel bir linter sadece yanlış bir şey yaptığınızı söyler; Bob Tips çıkış yolunu sağlar. Aracın odağı tamamen eyleme geçirilebilir yeniden düzenleme önerileri sunmaktır:
Bağlamsal Zeka: Mor alt çizginin üzerine gelmek sadece bir uyarı göstermez—mantığı tam orada çözmek için AI tarafından oluşturulan belirli bir strateji sunar. Sorunsuz Yürütme: Fix with Bob'a tıklamak anında özel bir sohbet açar. AI zaten fonksiyonun bağlamına sahiptir ve yanınızda temizliği yürütmeye hazırdır.
Arka planda çalışan metrikler sadece tesisattır. Değerli kısım, uzun süredir devam eden bir kod kalitesi sinyalinin artık geliştiricinin dosyada olduğu anda bir AI önerisi yönlendirmesi, üç gün sonra bir kod incelemesinde ortaya çıkmak yerine.
1.3. Review modu: sistem birlikte okurken kod incelemesi
Kod incelemesi, son yirmi yılda yazılım kalitesi için herhangi bir uygulama kadar çok şey yaptı ve aynı zamanda ekiplerin ivme kaybettiği yerdir. Bob insan incelemesinin yerini almaz. Mekanik olan kısımları yapar, böylece "kolay" hataları avlamak yerine üst düzey mimari ve niyete odaklanabilirler.
İncelemeler kenar çubuğundaki Review Panel'den veya sohbette /review aracılığıyla çalışır. İki mod vardır:
- Branch karşılaştırması. Bu mod "klasik" diff'i ele alır. Mevcut head'inize karşı commit edilmemiş işi denetlemek için /review kullanın veya belirli bir remote'u hedeflemek için
/review <branch>kullanın. İnceleme konularını genellikle tıkayan "nitpicks"e karşı önleyici bir darbedir. - Issue kapsamı.
/review <issue-url> --issue-coverage, yerel değişikliklerinizin bir GitHub issue'sunun istediğini gerçekten ele aldığını doğrular. Bu, geliştiricilerin bize deneyene kadar istediklerini fark etmediklerini söyledikleri moddur. Bulgular özel bir panelde görünür, böylece bunları inceleyebilir ve Bob ile düzeltmeye karar verebilirsiniz. Sadece iyi kod yazmadığınızı, doğru kodu yazdığınızı onaylayan bir sağlık kontrolüdür.
1.4. Literate coding: kodun yanına yazılmış niyet
Karmaşık bir özelliğin derinliklerindeyken, bir sohbet penceresinde birden fazla dosyaya başvurmak zahmetlidir. Kendinizi "types.ts'deki arayüze ve api.ts'deki servise bak, sonra buradaki mantığı güncelle..." yazarken bulursunuz. Bob bu dinamiği tersine çevirir. Literate Coding aracılığıyla etkileşimi doğrudan kaynak dosyaya taşıyarak, editörün kendisi arayüz haline gelir. Bu sadece bir yan panelden kaçınmakla ilgili değil; AI'ya niyetinizin sofistike, çok dosyalı bir haritasını sağlamakla ilgili.
- Niyeti Doğal Olarak İfade Et: Cmd+M ile modu değiştir ve mantığını düz dilde veya sözde kodda yaz. Talimatların editörde mavi renkte görünür, uygulamanın ait olduğu yerde tam olarak yaşar.
- Tek Satırın Ötesinde: Geleneksel sohbet genellikle karmaşık bir projenin "ipliğini" kaybederken, Bob'un literate coding'i dosyalar arasındaki boşluğu kapatmak için gelişiyor. Geliştiriciler artık birden fazla modül arasında bağlam sağlayabilir, bir veri modelindeki değişikliğin ilişkili kontrolörde doğru şekilde yansıtıldığından emin olabilir.
- Anında Doğrulama: Cmd+Enter'a basın ve Bob uygulamayı yerinde oluşturur. Sonuç satır içi diff olarak gösterildiğinden, değişikliğe bağlanmadan önce mantığı çevreleyen koda karşı denetleyebilirsiniz.
Fayda basittir: prompt kodun yaşadığı yerde yaşar, çevreleyen dosya zaten bağlam olarak hizmet eder. Mevcut kapsam tek dosyadır; çok dosyalı destek yol haritasındadır.
1.5. Terminalde Bob
Bob Shell, Bob'un yeteneklerini komut satırına getirir ve özellikle değerli bulduğumuz iki kullanım yolu vardır.
- Çalışma Alanı Olarak Terminal: Kabuk içinde bir AI geliştirme asistanıyla çalışmak, kendi başına popüler bir form faktörü olarak ortaya çıktı — birçok geliştiricinin zaten Git, build'ler ve testleri nasıl yönlendirdiğiyle doğal olarak eşleşir ve birçok ekibin günlük iş akışının bir parçası haline geldi. Yerel bir IDE entegrasyonunun mevcut olmadığı uzak sunuculara veya ortamlara AI getirmenin en güvenilir yoludur: Bir terminaliniz olduğu her yerde Bob'a sahip olabilirsiniz.
- Deterministikten Uyarlanabilir Otomasyona: Bob Shell, zamanlanmış işler ve CI/CD pipeline'larındaki dağıtım betikleri gibi etkileşimli olmayan oturumlarda parlar. Bugün bir betiğin deterministik bir araca devrettiği her yerde, çevreleyen deponun tam bağlamıyla Bob'a devredebilir — ve diğer taraftan çıkan otomasyon sabit bir pipeline'dan daha uyarlanabilirdir.
CI'da Bob'u etkileşimli olmayan şekilde çalıştırmayı öğrendiklerimiz hakkında bir takip gönderisi yayınlayacağız: PR özetleri, risk işaretleme ve mevcut otomasyona entegrasyon dahil olmak üzere pratikte iyi çalışan modeller.
2. Deponuzu Bob'a hazır hale getirin
Bob'un en iyi işini ürettiği depolar birkaç ortak özelliği paylaşır. Hiçbiri AI'ya özgü değildir — herhangi bir geliştirici için bir depoyu çalışmak için hoş yapan aynı şeylerdir — ancak her biri Bob'a çalışması için daha fazlasını verir.
Hızlı, güvenilir testler. npm test (veya eşdeğeriniz) beş dakika sürüyorsa veya aralıklı olarak başarısız oluyorsa, yineleme döngüsü sürünmeye yavaşlar ve geri bildirim sinyali bozulur. Bir dakikanın altındaki testler herhangi bir geliştirici için bir çarpandır; sıkı döngülerde çalışan bir AI asistanı için esastır.
Belgelenmiş build ve test komutları. Bir Makefile, package.json'da üst düzey bir scripts bölümü veya bir README bloğu — Bob'un "bunu nasıl çalıştırırım" bulabileceği bir yer. Onsuz, Bob çıkarım yapmak zorundadır ve çıkarım hataların girdiği yerdir.
Yürütülebilir stil. Kaydetmede veya CI'da çalışan linter'lar ve formatlayıcılar. Bob kurallarınızı bunlardan alır. Açık, makine tarafından kontrol edilebilir kurallar her seferinde örtük kuralları geride bırakır.
Depo kökünde bir agents.md. Proje yapısı, anahtar dosyalar, kodlama standartları, yapılacaklar ve yapılmayacaklar. Bu, AI yardımı için ekleyebileceğiniz en yüksek kaldıraçlı dosyadır. Bunu düşünmenin doğru yolu, yeni bir işe alım için değil, bir LLM için yazılmış bir CONTRIBUTING.md olarak düşünmektir.
Kodun yanında markdown'da mimari dokümantasyonu. Kısa belgeler bile yardımcı olur. Modülleri ve sınırlarını açıklayan bir docs/architecture.md, Bob'un import'lardan tasarımı yeniden türetmeden "bu nereye gider?" sorusunu yanıtlamasını sağlar.
Yol boyunca öğrendiğimiz birkaç şey:
- Büyük kural dosyaları sinyali azaltır. Birkaç yüz satırı geçtikten sonra, model performansı bozulur. Kuralları alana göre bölün — depo kökünde
agents.md, paket başına kapsamlıreadme.md— her şeyi bir dosyada yoğunlaştırmak yerine. - Mühendisliğinizi birleştirin. Bir görevi bitirdiğinizde, Bob'dan ilgili öğrenmeleri kural dosyasına veya bir beceriye geri damıtmasını isteyin. Depo, onu kullandıkça daha üretken bir ortam haline gelir.
- Yineleyin, tek atış yapmayın. Doğru değişikliği tutarlı bir şekilde indiren çok turlu bir konuşma, yüzde seksenini indiren tek bir uzun prompt'u geride bırakır.
3. Güvenlik ve kontrol
Bob'un, tek bir korkuluğun tüm işi yapması yerine birlikte çalışan birkaç koruma katmanı vardır. İlk gönderi için uygun kısa versiyon:
- Her eylemi manuel olarak onaylayın veya iş akışına güvendikten sonra araç sınıfına göre (salt okunur karşı yazma) otomatik onaylayın.
.bobignore, Bob'u okumaması gereken dosyalardan uzak tutar — kimlik bilgileri, oluşturulan yapılar, hassas herhangi bir şey.- Özel kurallar, geliştiricilere uyguladıkları şekilde Bob'a kodlama standartlarını uygular.
- Otomatik kontrol noktaları, istenmeyen bir değişiklikten kurtarmayı tek tıklamalı bir eylem haline getirir.
- İstemleriniz eğitim verisi olarak kullanılmaz!
Özellikle otomatik onay, hakkında düşünceli olmaya değer. Kontrol noktaları arasında Bob'un sizinle ne kadar yapabileceği üzerinde sahip olduğunuz ana kontrollerden biridir ve onu genişletmek, o zarfın içine neyin düştüğüne ve neyin düşmediğine karar vermede sizden biraz daha fazlasını isteyen bir üretkenlik kazancıdır. Çoğu geliştirici için mantıklı bir varsayılan, salt okunur araçları otomatik onaylamak, yazma eylemlerini en az ilk birkaç hafta manuel onayda bırakmak ve kabuk komutları çalıştıran veya yerel çalışma ağacınızın ötesindeki sistemlere ulaşan herhangi bir şeyle özellikle düşünceli olmaktır. Listedeki diğer kontroller — .bobignore, özel kurallar, kontrol noktaları — otomatik onayı değiştirmek yerine onunla birleştirmek için tasarlanmıştır.
4. Başlamak
- Web sitemizden IBM Bob'u yükleyin veya seçtiğiniz terminal aracılığıyla Bob Shell'i yükleyin.
- En iyi uygulamalar kılavuzumuzu inceleyin ve güvenlik yönergelerimize bakın.
- Gerçek bir görevle başlayın — Bob gerçek sorunlara yardımcı olurken en iyi şekilde öğrenirsiniz.
Bağlantılar
