Sürüm kontrol sistemleri, 70'li yıllarda benimsenmelerinden bu yana yazılım geliştirme üzerinde derin bir etkiye sahip olmuştur.
Yazılım geliştirmede sürüm kontrol sistemlerini (VCS) kullanmak neredeyse gerekli hale geldi ve bu nedenle yazılım geliştirme ekiplerinin %70'i sürüm oluşturma ihtiyaçları için Git gibi bir VCS kullanıyor.
Bu yeterli değilse, bu sistemler hem kod yönetimini hem de kod kalitesini ve doğruluğunu iyileştirdiğinden son yıllarda benimsenmede istikrarlı bir artış olmaya devam ediyor.
Bu faydaların çokça anılan DevOps felsefesi açısından ne kadar önemli olduğu göz önüne alındığında, modern yazılım geliştirmede sürüm kontrol sistemlerinin daha da önemli hale gelmesi sürpriz olmamalıdır.
Yazılım Geliştirme Yaşam Döngüsü (SDLC) bir süredir hakim olsa da, uygulamaları ve hizmetleri daha kısa geri dönüş süreleriyle sunmayı vaat eden yeni felsefeler ortaya çıkıyor.
Böyle bir felsefe DevOps'tur: Bir ürünün pazara çıkış süresini hızlandırmak ve bunun sonucunda müşterilere verimli bir şekilde hizmet vermek amacıyla geleneksel yazılım geliştirmenin ötesine geçen bir dizi uygulama. Özellikle, uygulayıcıların yazılımı daha hızlı oluşturmasına yardımcı olacak otomasyon ve düzene koymaya odaklanılıyor.
Böyle bir yazılım geliştirme metodolojisinin uygulanması söz konusu olduğunda, hem geliştirme hem de operasyon ekipleri, güvenli, zengin özelliklere sahip yazılımı mümkün olan en kısa sürede oluşturma çabasına yönelik işbirliği yapar ve sorumluluğu paylaşır. Elbette DevOps ekipleri aynı zamanda gerçek kullanıcıların neye ihtiyaç duyduğunu inceleme ve bu özellikleri hızlı, artımlı güncellemelerine dahil etme eğilimindedir.
Genel olarak bakıldığında, paylaşıma ve işbirliğine yardımcı olan yeni bir dizi aracın kullanılması sayesinde, ekiplerin silolar halinde çalışmasını gerektiren bu eski iş artık ortadan kalkıyor. Bu araçlarla daha hızlı iletişim kurabilmek ve geri bildirimleri paylaşabilmek, söz konusu yazılım ürününün daha hızlı pazara sunma süresine ulaşılabilir ve bu da DevOps felsefesinin benimsenmesini arzu edilir hale getirir.
DevOps araçlarından bahsetmişken Git gibi bir sürüm kontrol sistemi (VCS) kullanmak muhtemelen en çok arananıdır. Özellikle DevOps'un yazılım geliştirmede önemli bir rol oynamaya başlamasından bu yana.
Bildiğiniz gibi, Git'e çok benzeyen bir sürüm kontrol sistemi, kodunuzu ve projenin başlangıcından bu yana gerçekleşen tüm değişiklikleri yönetmekten sorumludur. Başka bir deyişle, kodunuzun eksiksiz bir geçmişi korunur ve manuel yönetimden tamamen kaçınılır.
Böyle bir kaynak kod yönetim aracını kullandığınızda, yapılan değişiklikler, değişikliğin yapıldığı zaman damgası ve bu değişiklikleri yapan kişi hakkında bilgi edineceksiniz. VCS'nin proje kaynak kodunun tüm sürümlerini yönetmede ne kadar kapsamlı olduğu göz önüne alındığında, kazara değişiklik yapma şansı yoktur. Daha da önemlisi, ekipler iyi bir 'ana hat' sağlamak için söz konusu proje üzerinde şubeler oluştururken ve birleşmeler yaparken eş zamanlı olarak projeler üzerinde çalışabilirler.
DevOps metodolojisi ile ilgili olarak, bir sürüm kontrol sistemi, dosyaları otomatik bir şekilde yönetme ve izleme yeteneği sayesinde işbirliğini ve paylaşılan geri bildirimi destekleme eğilimindedir. Herkesin maksimum görünürlükle erişebileceği tek bir konumda tutulduğu için ekibiniz kaynak kodunu görebilir: tüm ekip üyeleri kimin hangi dosyalar üzerinde çalıştığını görebilir, böylece çoğaltma da gerçekleşmez.**
İki tür sürüm kontrol sistemi vardır: dağıtılmış ve merkezi. İlki, her kullanıcının bir kopyayı kendi yerel makinesinde saklamasına izin verirken, ikincisi, kullanıcılara merkezi bir sunucuya erişim sağlar. Dağıtılmış sürüm kontrol araçları söz konusu olduğunda çoğu yazılım geliştirme ekibi Git'i kullanır.
Linus Torvalds tarafından yazılan Git, ilk olarak 2005 yılında Linux çekirdeğinin gelişimini takip etmek için kullanıma sunuldu.
Açık kaynaklı bir yazılım olan Git, sisteminizde çalıştırdığınız işletim sistemine bağlı olarak web sitesinden indirilebilir. Evet, buna Windows da dahildir!
Git'i sisteminize yükledikten sonra bu VCS'yi kullanmanın iki yolu vardır: terminali veya GUI'yi kullanarak. Git'i daha kullanıcı dostu hale getirmek için çeşitli GUI'ler tasarlandı ancak terminali kullanmak her zaman tercih edilen yaklaşım olmuştur.
Hazır bahsetmişken, Git'i yükledikten sonra kullanmanız gereken ilk komut, sisteminizde mevcut olup olmadığını kontrol etmektir:
Ayrıca projelerinizden birinin sürüm kontrolünü yapmak istiyorsanız, aşağıdaki komutları kullanarak bir proje dizini oluşturmanız ve bu dizine gitmeniz gerekecektir:
Bir proje oluşturduğunuzda, aşağıdaki komutu çalıştırarak tüm kaynak kodu değişikliklerini izleyecek bir Git deposu oluşturmanın zamanı geldi:
Şimdi, bunu tamamladıktan sonra projelerinizde kaynak kodu yazarken kullanacağınız ve daha sonra keşfetmeye değer ortak Git komutları var.**
Daha önce tartıştığımız gibi çoğu geliştirici, modern yazılım geliştirmede önemli bir rol oynadığı için Git'i kullanıyor.
Dolayısıyla, kodlama projeleriniz için sürüm oluşturmanın önemli olduğunu düşünüyorsanız, her geliştiricinin aşina olması gereken 5 ortak Git komutunu burada bulabilirsiniz:
Adından da anlaşılacağı gibi bu komut, global anlamda veya bir repo için yapılandırma seçeneklerini ayarlar.
Bu komutun iki yaygın kullanımı, kullanıcı adının ve e-posta adresinin ayarlanmasını içerir:
Aşağıdaki çıktıdan da görebileceğiniz gibi git status komutu size hazırlama alanı ve çalışma dizini hakkında bilgi sağlar. Özellikle yapılan değişiklikleri ve ayrıca Git'in henüz izlemediği dosyaları göreceksiniz.
Bu komutu çalıştırdığınızda, değişiklikleri çalışma dizininden hazırlama alanına ekleyeceksiniz. Yaptığınız şey Git'e, commit komutunu çalıştırdığınızda bir dosyada değişiklik yapmak istediğinizi söylemektir.
** **
Bu taahhüt komutu, aşamalı alanda yapılan tüm değişiklikleri kaydetmenize yardımcı olacaktır ve yapılan değişiklikler ilk olarak eklendiğinden projenin 'güvenli' bir versiyonu olarak kabul edilir, taahhüt komutu ise bu değişikliklerin yerel depoya kaydedilmesini sağlar.
Bu komut, geliştiriciye projenin belirli bir sürümünün bulunabilmesi için projenin belirli geçmişine bakma yeteneği sağlar. Bu aramayı daraltmak için çeşitli argümanlar eklenebilir.
Şimdi, Github'dan bahsetmemek adil olmaz çünkü tüm Git depolarını çevrimiçi olarak barındırıyor ve böylece geliştiriciler arasında işbirliği çok daha kolaylaşıyor. Bir geliştirici olarak öğrenebileceğiniz ve Github'da barındırılan kodla çalışan üç ilginç komut daha vardır: git push, git pull ve git clone.
Öğrendiklerin gibi mi?
Bu becerileri Web3 dünyasında uygulamak ister misiniz?
Lumos Academy – kapsamlı müfredatlarla size blockchain geliştirme kavramlarını öğretmeye adanmış bir Web3 eğitim platformu.
Bir göz atın ve öğrenme eğrisinde öne geçin: https://academy.lumoslabs.co/