Yazılım geliştirme son 30 yılda çok yol kat etti. Yazılım geliştirme yaşam döngüsünü (SDLC) kendi bilgisayarınızda ne zaman yönetebileceğinizi hatırlıyorum. Kod yazabilir, hata ayıklayabilir, oluşturabilir ve hepsini masaüstünüzden gönderebilirsiniz. Kaynak bir dosya sunucusunda depolanacak ve her günün sonunda bir zip dosyası kaydedilerek yönetilecektir. Bir kaynak kontrol aracı kullandıysanız, dallanmayı ve birleştirmeyi gerçek bir meydan okuma haline getiren merkezi bir sunucuya sahip CVS veya SVN idi. Yazılımın serbest bırakılması, yazılımı fiziksel olarak mağazalara ve katalog satıcılarına gönderen bir üreticiye “altın” bir disket göndermek anlamına geliyordu.
Bugün hem daha kolay hem de daha karmaşık. Çoğu yeni yazılım tarayıcı tarafından teslim edilir. Uzak geliştiricilerden oluşan ekipler, karmaşık merkezi kod havuzlarını kullanarak büyük kod tabanlarını yönetir. Sorun izleme ve iletişim araçlarıyla çalışmayı koordine ederler ve bu amaç için özel olarak tasarlanmış araçlarla sürekli entegrasyon ve sürekli dağıtım yaparlar. SaaS teslim modeli, ekiplerin yeni özellikleri istedikleri zaman anında yayınlamalarına olanak tanır.
Bu süreç çok sayıda yazılım aracı gerektirir. Bazıları, iyi sandalyelerin ve geniş ekran monitörlerin geliştirme hattını iyileştirmek için daha fazlasını yapacağını iddia edebilir, ancak biz burada yazılım araçlarına bağlı kalacağız.
Peki modern yazılım geliştirme yapmak için gerekli yazılım araçları nelerdir? Modern takımların en azından bu beşine ihtiyacı var.
Entegre geliştirme ortamı
Kod yazmak her geçen gün daha da zorlaşıyor ve geliştiricilerin buna ayak uydurabilecek bir araca ihtiyacı var. İyi bir IDE, kod düzenlemeye, sözdizimi vurgulamaya, kod tamamlamaya, kaynak kontrol yönetimine, derlemeye ve hata ayıklamaya olanak tanır. İyi bir IDE, herkesin editörün yeteneklerini geliştirmesine izin veren bir çeşit uzantı API’si de sağlayacaktır.
Çok özel bir gereksiniminiz yoksa Visual Studio Code’u kullanmanızı tavsiye ederim çünkü bu kod en popüler, güçlü, açık ve yetenekli IDE’dir. VS Code, Microsoft tarafından oluşturulur ve korunur ve açık kaynak kodludur. Son derece popülerdir, üzerine attığınız hemen hemen tüm programlama dillerini işleyebilir ve binlerce faydalı uzantıya sahiptir. 20 milyondan fazla geliştiricinin kullandığı VS Code, açık ara tercih edilen araçtır. GitHub’ın yapay zeka tabanlı kodlama asistanı GitHub Copilot’a ekleme özelliği, daha da fazla motivasyon sağlar.
İletişim araçları
COVID, geliştirme ekiplerinin birlikte çalışma şeklini değiştirdi. Birdenbire geliştirme ekiplerinin tümü evden çalışmaya başladı ve fiziksel olarak buluşamadıklarında iletişim kurmanın bir yoluna ihtiyaçları vardı. Slack ve Zoom kombinasyonu, gidilecek yol oldu. Hala öyle.
Slack, çok yaygın olarak kullanılmasından yararlanır ve bu nedenle, etrafta dolaşmaya başlamadan önce aklınıza bile gelmeyebilecek birçok şeyi yapmanıza izin veren geniş bir eklenti ve entegrasyon kitaplığına sahiptir. Zoom, her türden ekipler ve toplantılar için fiili video konferans aracı haline geldi. Slack ve Zoom’u birbirine entegre etmek kolay ve güçlüdür. Her iki aracın da geniş kullanımı nedeniyle, yalnızca geliştirme ekibiyle değil, tüm kuruluşunuzdaki çalışanlar, müşteriler ve satıcılarla iletişim kurmayı çok daha kolay hale getirdiği için bu kombinasyonu öneriyorum.
Burada yakın bir koşucu, sohbet ve video konferansı tek bir uygulamada birleştirme avantajına sahip olan Microsoft Teams.
Kaynak sürüm kontrolü
Mercurial bir süredir orada bir rakipti, ancak Git kaynak kontrol araçları yarışmasını açıkça kazandı. Git kullanmıyorsanız, geride kalacaksınız.
Git, dağıtılmış bir sürüm kontrol sistemidir, ancak doğru kullanım, merkezi bir depo gerektirir ve GitHub bu alanda açık ara liderdir. GitHub, her yerde bulunabilmesi ve bir kod deposu olmanın ötesindeki özellikleri nedeniyle benim seçimim. GitHub, açık kaynak projeleri için açık ara önde gelen ana bilgisayardır. Her şirketin GitHub’da bir şekilde var olması gerekir.
GitHub’ın ek özelliklerinden bazıları, sorun izleme, kod inceleme ve oluşturma ve dağıtma sürecine yönelik kancaları içerir. GitHub, Visual Studio Code’a dayalı Codespaces ürünüyle tarayıcıda IDE’ye bile öncülük ediyor.
Kaynak kontrolü için yakın bir saniye, açık kaynaklı bir sürümde bulunan ve GitHub’ın hemen hemen her şekilde topuklarını çeken GitLab olacaktır.
Özellik bayrakları
İtiraf etmeliyim ki, yaklaşık bir yıl öncesine kadar, özellik bayraklarının bir şey olduğunu bile bilmiyordum. Artık SaaS çözümleri, özellikleri bir fare tıklamasıyla açıp kapatmanıza izin verdiği için kullanımları artıyor. Özellik bayrakları, şirkete, müşteri düzeyine veya kullanıcıya göre hemen hemen her nedenle özellikleri kontrol etmenize olanak tanır. Bu, yeni bir özelliğin gerçek dünyada nasıl hayatta kaldığını görmek için bir beta testi dağıtmak veya müşteri tabanınızın küçük bir bölümünde bir “kanarya” dağıtımını test etmek gibi şeyler yapmanıza olanak tanır.
Buradaki açık lider, bir uygulamanın ve özelliklerinin nasıl dağıtıldığı üzerinde size güçlü kontroller sağlayan, özellik yönetimi için bir SaaS platformu olan LaunchDarkly’dir. Bu kadar net bir lider olan ve özellik setini genişletmeye devam eden bir şirketle gitmemek zor.
CI/CD aracı
Yıllardır sürekli entegrasyon yapıyorum. Ancak sürekli dağıtım daha yeni, daha zorlu ve açıkçası biraz daha korkutucu. CI/CD, yazılım oluşturmayı, testleri çalıştırmayı, yapıları doğru yere koymayı, bulut kaynaklarını sağlamayı, uygulamaları birden çok konuma dağıtmayı ve teslim edildiği andan itibaren kod alma sürecine giren herhangi bir sayıda farklı etkinliği gerektirir. mümkün olan en kısa sürede üretimde çalıştırmak.
Birçok ekip, kod girişinden dağıtıma kadar geçen süreyi günlerden on beş dakikaya indirmeye çalışıyor. (Doğru okudunuz.) İşin ürkütücü kısmı bu; bir şeyi bu kadar hızlı bir şekilde üretime sokmak, hızlı tepki vermeye hazır olmanız gerektiği anlamına gelir. Artı tarafta, kısa dağıtım süreleri, sorun olması durumunda anında geri bildirim sunarak geliştiricilerin son değişikliklerin bağlamını kafalarında tutmalarına ve hataları oluştukça daha hızlı ve kolay bir şekilde düzeltmelerine olanak tanır.
CI/CD’yi doğru yapmak kesinlikle güçlü bir araç kiti gerektirir. Neyse ki, CircleCI var. CircleCI, uygulamanızı hızlı bir şekilde oluşturmak ve dağıtmak için çok sayıda çerçeve ve sistemle bağlantı kurarak hepsini yapabilir. Tam özellik seti, hızı ve uyumluluğu için CircleCI’yi seviyorum.
Mansiyon, açık kaynaklı CI/CD aracı Jenkins’e gidecektir.
Bu beş araç kategorisi (IDE, iletişim, kaynak denetimi, özellik bayrakları ve CI/CD), modern yazılım geliştirme yapmak için ihtiyacınız olan minimum düzeydedir. Bu araçların tümü, kodlama ve bu kodun üretime alınması için harcanan zamanı en aza indirmek için birlikte çalışır. Hepsi bulut tabanlı olabilir ve sizi işi yapmak dışında herhangi bir şey için endişelenmekten kurtarır. İster bulut tabanlı bir IDE’de kodlama isterse güçlü bir CI/CD aracıyla dakikalar içinde devreye alma olsun, bunlar herhangi bir yazılım geliştirme süreci için geçiş yolunu yumuşatacak araçlardır.
Telif Hakkı © 2022 IDG Communications, Inc.
Kaynak : https://www.infoworld.com/article/3657735/5-developer-tools-to-rule-your-sdlc.html#tk.rss_all