paint-brush
Yazılım Geliştirmede Yapay Zeka: ELEKS Ar-Ge Ekibinin İçgörüleriyle GitHub Copilot'u Keşfetmekile@elekssoftware
578 okumalar
578 okumalar

Yazılım Geliştirmede Yapay Zeka: ELEKS Ar-Ge Ekibinin İçgörüleriyle GitHub Copilot'u Keşfetmek

ile ELEKS6m2024/02/06
Read on Terminal Reader

Çok uzun; Okumak

ELEKS, GitHub Copilot'un yenilikçi yeteneklerini keşfederken yapay zekanın yazılım geliştirmedeki rolünü keşfedin.
featured image - Yazılım Geliştirmede Yapay Zeka: ELEKS Ar-Ge Ekibinin İçgörüleriyle GitHub Copilot'u Keşfetmek
ELEKS HackerNoon profile picture
0-item
1-item

Yapay zeka, yazılım geliştirmede devrim yaratarak onu daha verimli, üretken ve yenilikçi hale getiriyor. Bu makalede, ELEKS Ar-Ge ekibi tarafından gerçekleştirilen GitHub Copilot araştırmamızdan elde edilen bilgileri derinlemesine inceleyerek yapay zekanın yazılım geliştirmedeki etkisini araştırıyoruz.


Yazılım geliştirme dünyası gelişmeye devam ettikçe yapay zekanın rolü giderek daha önemli hale geldi. Kodlama için gereken zamanı ve çabayı azaltma yeteneği ve daha fazlası gibi avantajlarla, yazılım geliştirmede yapay zekanın günümüzde sıcak bir konu olması şaşırtıcı değil.


ABD merkezli geliştiricilerin %92'si halihazırda hem iş yerinde hem de iş dışında yapay zeka kodlama araçlarını kullanıyor. - GitHub


Geliştiricilerin %70'i, yapay zeka kodlama araçlarının, gelişmiş kod kalitesi, kısaltılmış tamamlama süresi ve geliştirilmiş olay çözümleme yetenekleri dahil olmak üzere profesyonel çalışmalarında kendilerine belirgin bir avantaj sağlayacağına inanıyor. - GitHub


5 geliştiriciden 4'ü yapay zeka kodlama araçlarının ekiplerini daha işbirlikçi hale getirmesini bekliyor. - GitHub


Yapay zeka, yazılım ürünlerini insan girdisi olmadan bağımsız olarak oluşturabilecek, test edebilecek ve başlatabilecek bir aşamaya ulaşmamış olsa da, geçmişe kıyasla genel geri dönüş süresini büyük ölçüde hızlandırdı.


Kod oluşturup otomatik tamamlayarak ve ayrıca hataları tespit edip düzelterek özel uygulamaların geliştirilmesine yardımcı olabilecek birçok yapay zeka destekli araç mevcuttur. ELEKS Araştırma ve Geliştirme ekibi, geliştiricilerin görevleri, tamamlanma süresi ve sağlanan önerilerin kalite standartları üzerindeki etkisini değerlendirmek için böyle bir aracı - GitHub Copilot - kapsamlı bir şekilde değerlendirdi. Hadi daha yakından bakalım.

GitHub Copilot nedir?

GitHub Copilot, otomatik kod tamamlama ve oluşturma aracıdır. OpenAI Kodeksi temel alınarak oluşturulmuştur ve halka açık GitHub depolarında eğitilmiştir. Sonuç olarak herhangi bir programlama dili için kod önerir. Ancak tekliflerin kalitesi, belirli bir programlama diline ve çerçevesine dayanan halka açık havuzların sayısına bağlıdır.


GitHub Copilot, Entegre Geliştirme Ortamı (IDE) eklentilerini kullanarak program koduyla çalışır. Şu anda yalnızca aşağıdaki IDE'ler desteklenmektedir:

  • Visual Studio Kodu
  • Görsel stüdyo
  • Neovim
  • JetBrains'in tüm IDE'leri

ELEKS'in GitHub Copilot araştırmasına genel bakış

Bu araştırma, Copilot kullanımının hem geliştirme hızı hem de kalite üzerindeki etkisini araştırmayı amaçladı.


Bu çalışmayı yürütmek için çeşitli varsayımlara yönelik bir test alanı olarak küçük bir evcil hayvan projesi başlatıldı. React, Redux, TypeScript, Jest, Vite, PHP, Symfony ve Codeception konularında uzmanlığa sahip dört yetenekli orta düzey geliştiriciden oluşan bir ekiple araştırmaya başladık ve hedeflerimizi ve yaklaşımlarımızı aşağıdaki gibi tanımladık.

Amaç

Yaklaşmak

Copilot kullanırken geliştiricinin yetkinliği ile performansı arasındaki bağımlılığı değerlendirin

Arka uç geliştirme için Symfony çerçevesini seçtik. Arka uç ekibinin bu çerçeveyle ilgili önemli bir deneyimi yoktu.
Arka uç çözümünün kalitesini değerlendirmek için bir Symfony uzmanı kod incelemesine dahil edildi. Uzman ayrıca tipik olanın ötesine geçen ve büyük bir ticari projede kullanılan temel bir proje yapısı geliştirdi.

Tipik geliştirici görevleri üzerindeki etkiyi araştırın

Proje başlamadan önce, bir geliştiricinin ticari bir projedeki tipik çalışmasını kapsayan bir İKY oluşturduk. Ayrıca bir görev tahmin oturumu gerçekleştirdik.

Popülerliğe göre programlama dilleri ve çerçeveleri üzerindeki etkiyi araştırın

Test kapsamına sahip bir web uygulaması geliştirdik.

Görev tamamlama süresi üzerindeki etkiyi değerlendirin

Projedeki bireysel görevlerin ön tahminini yaptık.

Araştırma etkinliğini artırın

Günlük senkronizasyonlar sırasında ekip içinde bilgi paylaşım oturumları gerçekleştirdik.

Önerilerin kalitesini keşfedin

Copilot'un klasik olmayan ve daha karmaşık bir proje yapısını nasıl ele aldığını test ettik.



ELEKS'in GitHub Copilot araştırmasından önemli bulgular

ELEKS'in GitHub Copilot araştırması, aracın yeteneklerine ve faydalarına ışık tutan birkaç önemli bulguyu ortaya çıkardı. İşte daha ayrıntılı bir açıklama:


Araştırma sonuçlarının ekibin öznel geri bildirimlerine, çalışmalarına ilişkin gözlemlerine ve çözümlerine ilişkin kod incelemelerine dayandığını lütfen unutmayın.

GitHub Copilot'un iki çalışma modu vardır:

  1. Otomatik kod tamamlama modu – neredeyse her zaman performansı olumlu yönde etkiler.
  2. İstemli bir yoruma dayalı kod oluşturma modu yalnızca tipik kod yapıları için iyi çalışır. Önerilen kod değişkenlerini analiz etmek çok zaman aldığından, iş mantığı veya tipik olmayan çözümler üretirken verimsiz olabilir.

GitHub Copilot kod önerilerinin kalitesi aşağıdakilere bağlıdır:

  • Seçilen teknoloji yığınının halka açık depolardaki popülerliği. Teknoloji veya dil ne kadar popüler olursa GitHub Copilot önerilerinin kalitesi de o kadar yüksek olur.
  • Kod yapısı ve uygulama mimarisi. Çözümünüz ne kadar tipik olursa GitHub Copilot o kadar etkili öneriler sunar. Bu özellikle proje geliştirmenin başlangıcında fark edilir.

GitHub Copilot'un diğer avantajları:

  • Zamanla kod önerilerinin kalitesi artar. GitHub Copilot, proje yapısını, kod stilini ve projedeki teknik çözümlere yönelik tipik yaklaşımları öğrenir ve bunlara uyum sağlar.
  • Geliştiricinin iş tatminini olumlu yönde etkiler. GitHub Copilot rutin, tipik ve sıkıcı görevlerin bir kısmını üstlenir. İlginç ve rutin görevlerin geliştirilmesi arasındaki oran değişir, bu da geliştiricilerin konforunu artırır.

Genel ekip bulguları:

  • Araç, kod kalitesi üzerinde olumlu veya olumsuz hiçbir etki göstermedi. Şimdilik kod inceleme sürecinin, geliştirici tarafından yapılan manuel kod testinin, otomatik testlerin çalıştırılmasının, güvenlik testinin vb. yerine geçemeyeceğini düşünüyoruz.
  • Etkililik, geliştiricinin verilen teknoloji yığınındaki yetkinliğine bağlıdır. Geliştiricinin becerileri ne kadar iyi olursa, bu aracın da o kadar etkili olduğu kanıtlanır.
  • GitHub Copilot'un yeni teknolojileri öğrenmedeki değeri oldukça şüphelidir.
  • Ekip, kodla ilgili tüm dosyaların IDE'de açık olması durumunda kod önerilerinin daha iyi olacağı izlenimini edindi.
  • Diğer tüm araçlar gibi GitHub Copilot da belirli beceriler gerektirir. Ekip ne kadar çok pratik yaparsa, o kadar olumlu geri bildirimler alındı.
  • Performans artışına ilişkin geri bildirimler teknoloji yığınına, uzmanın yetkinlik düzeyine ve subjektif nedenlere bağlı olarak değişmektedir.


Ekip üyelerinin verimliliğinde ortalama %5-10 artış. - ELEKS Ar-Ge ekibi


Ek olarak proje sırasında ekip GitHub Copilot'ta çeşitli hatalarla karşılaştı. Örneğin Copilot, başka bir IDE penceresinde açılan başka bir projedeki kodu temel alarak kod önerileri önerdi. Sözdizimsel olarak yanlış kod sundu. Copilot, otomatik kod tamamlama işlevine de sahip olan bazı eklentilerin (yerleşik veya üçüncü taraflarca eklenen) özellikleriyle çakışıyor.

Sonuçlar

GitHub Copilot, geliştirme hızını ve geliştiricinin iş memnuniyetini olumlu yönde etkileyen güçlü bir araçtır. Diğer tüm geliştirme araçları gibi, bunda da uzmanlaşmak zaman gerektirir.


Bu noktada, bireysel bir aylık lisansın maliyeti yalnızca 10 ABD Doları iken, iş planının fiyatı aylık 19 ABD Dolarıdır. GitHub Copilot'un projelerde kullanılması, özellikle orta yeterlilik seviyesi ve üzeri uzmanlar için şüphesiz mali açıdan faydalı olacaktır.


Ekip, GitHub Copilot'u kullanma deneyiminin artmasıyla birlikte, teknolojinin popülerliğine ve geliştiricinin yeterlilik düzeyine bağlı olarak geliştirme hızının %5-25 oranında artabileceğini öngörüyor. GitHub Copilot'un geliştirmeyi yavaşlatmayacağı garantilidir çünkü geliştiriciler, aracı kullanmanın ne zaman yararlı, ne zaman yararlı olmadığı konusunda uzmanlığı ve anlayışı yavaş yavaş kazanacaklardır.


Sonuç olarak, GitHub Copilot gibi araçların örneklediği yapay zekanın yazılım geliştirmedeki etkisi yadsınamaz. Genel olarak GitHub Copilot gibi araçlar bir geliştiricinin yerini alamaz ancak geliştiricilerin konforunu ve üretkenliğini artıran değerli araçlar olarak hizmet ederek giderek yapay zekanın yönlendirdiği bir dünyada yazılım geliştirmenin evrimine katkıda bulunur.


Etkin bir yazılım geliştirme sürecine ve başarılı sonuçlara giden yolu açın, ELEKS uzmanlarıyla iletişime geçin .


Burada da yayınlandı.