Build

build (büyük resim için tıklayın)

Build

Yazılım geliştirme sürecinde build, kaynak kodun çalıştırılabilir bir yazılım veya uygulama haline getirilmesi sürecidir. Bu süreçte, kaynak kod dosyaları derlenir, bağımlılıklar entegre edilir, gerekli ayarlamalar yapılır ve bir uygulamanın test edilebilecek ya da dağıtılabilecek nihai hali oluşturulur.

Build Sürecinin Temel Aşamaları

Kodun Derlenmesi (Compilation):

  • Kaynak kod, programlama dili derleyicisi kullanılarak makine koduna veya çalıştırılabilir bir formata dönüştürülür.
  • Örneğin:
    • C/C++: gcc veya clang derleyicisi kullanılır.
    • Java: Bytecode için javac kullanılır.

Bağımlılıkların Çözülmesi:

  • Projenin çalışması için gereken harici kütüphaneler veya paketler indirilir ve entegre edilir.
  • Örneğin:
    • Node.js: npm install
    • Java: Maven veya Gradle.

Kodun Paketlenmesi:

  • Derlenen kod, gerekli bağımlılıklar ve yapılandırma dosyaları bir araya getirilerek çalıştırılabilir bir formatta paketlenir.
  • Örneğin:
    • JAR: Java projeleri için.
    • EXE: Windows uygulamaları için.

Test Süreci (Opsiyonel):

  • Birçok build süreci, kodun doğruluğunu ve stabilitesini kontrol etmek için testler içerir.
  • Örneğin:
    • Birim testleri, entegrasyon testleri çalıştırılır.

Sonuç Ürün (Artifact):

  • Build sürecinin çıktısı olan çalıştırılabilir dosyalar, kütüphaneler veya dağıtılabilir paketler üretilir.

Build Türleri

1. Manual Build (Manuel Build)

  • Geliştiricinin komutları elle çalıştırdığı build sürecidir.
  • Küçük projelerde veya basit uygulamalarda kullanılır.
  • Örnek gcc -o my_program main.c

2. Automated Build (Otomatik Build)

  • Build süreci otomatikleştirilir ve CI/CD araçları kullanılarak sürekli entegrasyon sağlanır.
  • Örnek Araçlar:
    • Jenkins
    • GitLab CI/CD
    • Azure DevOps

3. Incremental Build

  • Sadece değişen dosyaların yeniden derlenmesi sağlanır. Bu, büyük projelerde zaman tasarrufu sağlar.

4. Nightly Build

  • Her gece otomatik olarak oluşturulan build'tir. Geliştiriciler günlük değişikliklerin sonuçlarını test etmek için kullanır.

Build Kavramına Örnekler

1. Java Projesi

  • Maven kullanılarak bir Java projesinin build edilmesi
  • mvn clean install → Bu komut kaynak kodu derler, bağımlılıkları indirir ve projenin JAR veya WAR dosyasını oluşturur.

2. React Uygulaması

  • Bir React projesinin dağıtıma hazır hale getirilmesi
  • npm run build → Bu komut, projenin optimize edilmiş bir sürümünü oluşturur.

Build Yönetimi Araçları

1. Derleme ve Paketleme Araçları

  • Java: Maven, Gradle
  • JavaScript: Webpack, Parcel
  • C/C++: Make, CMake

2. CI/CD Araçları

  • Jenkins: Otomatik build ve dağıtım süreçleri için.
  • GitLab CI/CD: Git deposu entegreli sürekli entegrasyon.
  • Travis CI: Open-source projeler için yaygın bir araç.

3. Bulut Tabanlı Build Araçları

  • AWS CodeBuild
  • Google Cloud Build
  • Azure DevOps Pipelines

Build'in Avantajları

  1. Hata Tespiti:
    • Build sırasında birçok hata erken tespit edilebilir.
  2. Tekrarlanabilirlik:
    • Otomatik build süreçleri, aynı sonuçları tekrar elde etmeyi kolaylaştırır.
  3. Zaman Tasarrufu:
    • Otomatikleştirilmiş build süreçleri, manuel işlemlerle kaybedilen zamanı azaltır.
  4. Tutarlılık:
    • Tüm geliştiriciler aynı build süreçlerini takip eder ve tutarlı bir ürün ortaya çıkar.

Sonuç

Build, yazılım geliştirme sürecinin kritik bir parçasıdır. Kaynak kodu çalıştırılabilir bir formata dönüştürerek test, dağıtım ve üretim aşamalarını mümkün kılar. Manuel ve otomatik build süreçleri, yazılımın ölçeği ve karmaşıklığına bağlı olarak seçilir. Build yönetimi için doğru araçların kullanılması, projelerin daha verimli ve hatasız ilerlemesini sağlar.

*Gönderi ve görsel chatgpt ile oluşturulmuştur.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

build 

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)