İçeriğe geç
Anasayfa » ChatGPT Yazılım Geliştirici Asistanı Olabilir Mi?

ChatGPT Yazılım Geliştirici Asistanı Olabilir Mi?

Yapay zeka akımının en göze çarpan oyuncularından bir tanesi ChatGBT. Bugün ChatGPT’yi yazılım geliştirici penceresinden sizlerle beraber inceleyeceğiz. 

Nedir bu ChatGPT? 

ChatGPT, OpenAI firması tarafından geliştirilen bir yapay zeka modeli. Dengeleri yerinden oynatan yeni bir oyuncu diyebiliriz. Klasik arama motorları aksine isteklerimizi yorumlayıp bizlere özgü cevaplar üretebilen bir yapay zeka, bir asistan. 

Gelin birlikte günlük rutinlerimizi nasıl değiştireceği konusunda incelemeler yapalım, biraz şaşırtıcı bir yolculuk olabilir.

 Kod Geliştirme

ChatGPT bir yazılım geliştiricinin sahip olduğu en iyi yardımcı olma noktasında ilerliyor. Çok mu işiniz var, üzerinizdeki işlerin bir kısmı için ChatGPT’den yardım almaya ne dersiniz? Gelin sizlerle beraber ChatGPT’den kod yazma konusunda yardım alalım. ChatGPT’ye ilk sorumuzu yönelterek başlayalım. (bkz. Şekil 1)

Şekil 1. ChatGPT Soru Yöneltme

Şekil 2. ChatGPT’nin Ayrıntılı Cevabı

Şekil 2’de görüldüğü gibi ChatGPT sadece kodu üretmiyor, bu kodun ayrıntılı bir şekilde açıklamasını da yapıyor. Ayrıca bizim için örnek bir veri üreterek yazdığı kodun çıktılarını bizlere sunuyor.

Unit Test’ler Oluşturma

Yazılım geliştirme yaşam döngüsünün en önemli adımlarından biri olan test kısmına geldik. Bu adımda ChatGPT’den .Net dilinde yazılmış metodumuz için test metotlarını yazmasını isteyeceğiz (bkz Şekil 3)

Şekil 3. ChatGPT Test Metot İsteği

Şekil 4. ChatGPT Analizi ve Örnek Test Metotları

Şekil 4’de görüldüğü gibi ChatGPT verdiğimiz kod bloğunu inceleyip analizini yapıyor ve olası tüm durumları tespit ediyor. Ardından bizler için tüm durumları örnekleyen test metotları yazıyor. Birçok yazılımcının zaman kaybı olarak baktığı ve bazen de yazmayı ertelediği testler için ChatGPT çok iyi bir yardımcı olabilir.

Yazılımcı olarak bazen sadece bir noktaya odaklanıp ve tüm olası durumların listelenmesi konusunda eksik kalabiliyoruz. Bu noktada ChatCPT bizim yardımımıza koşuyor.

Kod Yorumlama ve Hataların Düzeltilmesi

Sayıların onluk tabandan ikilik tabana dönüşümü sağlayan Recursive metodumuz var ama bir bölümünde bir hata yapmışız ve bunu bulamıyoruz. Hatanın düzeltilmesi için ChatGPT’den yardım isteyelim ve neler yaptığını Şekil 5’te görelim. 

Şekil 5. ChatGPT Hata Düzeltme İsteği

Şekil 6. ChatGPT Hatalı Kod Düzeltme ve Açıklama

Şekil 6’da görüldüğü gibi ChatGPT hatalı kod satırını bulup düzeltti, düzeltmek ile de kalmadı bu konuda bize bir açıklama da yaptı. Yazılım geliştiricilerin zamanının büyük bir bölümünü hataları bulup düzeltmek için harcadığını düşünürsek, ChatGPT bizlere zaman ve maliyet konusunda büyük avantajlar sağlayacak gibi duruyor.

Doküman Oluşturma

Kodumuzu yazdım şimdi sıra doküman kısmana geldi, yazılımcıların en çok zorlandığı kısım burası olsa gerek. Şekil 7’deki gibi ChatGPT’den mevcutta yazdığımız bir kod bloğuna ilişkin uygulamamızın dokümanında kullanmak üzere bir metin yazmasını isteyelim.

Şekil 7. ChatGPT Doküman Yazdırma İsteği

Şekil 8. ChatGPT Doküman İstek Cevabı

ChatGPT verdiğimiz kod bloğunu yorumladı ve bizim için ayrıntılı bir metin oluşturdu. Her zaman bu metni direk kullanamayabiliriz ama bizim için güzel bir taslak olabilir (bkz. Şekil 8).

Diller Arası Kod Dönüşümü 

Zaman zaman elimizde bulunan kod bloğunu farklı bir dilde tekrar yazmak durumunda kalabiliriz. Aşina olmadığımız iki dil arasındaki bu dönüşümü sağlamak bazen zor olabilir. Bu konuda ChatGPT neler yapabildiğini Şekil 9’da birlikte inceleyelim.

Şekil 9. ChatGPT Yazılım Dili Dönüşüm İsteği

Şekil 10. ChatGPT Yazılım Dili Dönüşüm Cevabı

Şekil 10’daki gibi ChatGPT .Net’de yazılmış kod bloğumuzu bizim için TypeScript’e çevirdi. Bu çevrim ile ilgili olarak da bize güzel bir açıklama da yaptı. Bu tarz diller arası dönüşümler için ChatGPT çok iyi bir yardımcı olabilir. 

JSON’dan Class Modelleri Üretilmesi 

.Net’de class modelleri oluşturmak bazen sıkıcı olabiliyor. Bu konuda da ChatGBT’nin neler yaptığını görmek istiyorum. Elimde kişi bilgilerinin bulunduğu örnek bir JSON var, Şekil 11’deki gibi bu JSON için ChatGPT’den model class’ını üretmesini isteyelim ve bakalım neler oluyor.

Şekil 11. ChatGPT Model Class Üretim İsteği

Şekil 12. ChatGPT Model Class Üretim Cevabı

Sorumuzda ChatGPT’den bir tane model class oluşturmasını istemiştik ama üç tane üretti (bkz. Şekil 12), bakalım neden böyle yapmış. ChatGPT JSON’umuzu analiz ederek verileri sınıflandırdı, her veri blokları için bizlere bir tane sınıf oluşturdu. Bununla da kalmayıp modeller arasındaki ilişkilendirmeleri yaptı. En son kısımda bizlere yaptıkları konusunda tatminkâr bir açıklama yaptı. 

JSON’dan SQL Tablo Create Script’ı Oluşturmak

Elimizde öğrenci bilgileri ve notlarının bulunduğu bir JSON var. Şekil 13’deki gibi bu veri yapısına uygun database tablolarını oluşturmak konusunda ChatGPT’nin yardımını isteyelim ve görelim neler yapabiliyor. 

Şekil 13. ChatGPT ile TableScript Oluşturma İsteği

Şekil 14. ChatGPT’nin TableScript Oluşturması

Şekil 14’ü incelediğimizde sonuçlar gerçekten şaşırtıcı, JSON’umuzu analiz edip ihtiyaçları belirledi ardından, normalizasyon kurallarını gözeterek bizlere 3 tane farklı tablo tasarladı. Her bir kolon için uygun veri tipini belirledi, primary key ve foreign key tanımlarını yaparak tablolar arası ilişkilerinde kurulmasını sağladı. Eline sağlık ChatGPT.

Sonuç

Bu yazımızda somut örnekler ile ChatGPT’nin yeteneklerinin küçük bir kısmını beraber inceledik. ChatGPT sadece kullanıcının isteğini değil, isteği analiz ederek olması gerekeni (best practice) yapıyor ve bu konuda bizlere yaptıklarının sebebini açıklama ihtiyacı duyuyor. JSON’dan veri oluşturma örneğimizde ChatGPT’den bir tane mocel class’ı oluşturmasını istemiştik ama olması gereken üç taneydi, öyle de oldu ChatGPT bizim için üç tane model class’ı oluşturdu. ChatGPT ile yapabileceklerimiz elbette bunlarla sınırlı değil. Örneklerin sayısını artırabiliriz. 

ChatGPT her gün büyüyen ve gelişen bir çocuk gibi kendine yeni yetenekler katıyor. Bizimle kurmuş olduğu etkileşimlerden besleniyor ve şekilleniyor. ChatGPT günlük rutinlerimizi değiştirecek gibi gözüküyor. 

ChatGPT’nin somut bir başlangıç olduğunu ve bu alanda birçok yeni oyuncunun hayatımıza gireceğini düşünüyorum. Bunların bizlere neler getireceğini hep birlikte göreceğiz.…

Kaynaklar:

  • https://www.infoworld.com/article/3689172/chatgpt-and-software-development.html
  • Free Licence, Robot Handshake Human Background, Futuristic Digital Age.  https://www.freepik.com/free-photo/robot-handshake-human-background-futuristic-digital-age_17850426.htm#query=chat%20gpt&position=24&from_view=keyword&track=ais
  • https://chat.openai.com/
  • Terry, Paul E. “Excellence in Total Worker Health® and an Interview With Dr Laura Linnan.” American Journal of Health Promotion (2023): 08901171231169595.
  • Biswas, Som. “Role of ChatGPT in Computer Programming.: ChatGPT in Computer Programming.” Mesopotamian Journal of Computer Science 2023 (2023): 8-16.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir