Blog

Yazılımda En Çok Kullanılan Terimler Nelerdir? Bu Terimler Ne Anlama Gelir?

yazılımda en çok kullanılan terimler nelerdir

Önemli kavramlar ve terminoloji konusunda güncel kalmak, ister yeni başlayan ister yılların tecrübesine sahip olun, her yazılım mühendisi için çok önemlidir. Bu terimleri anlamak, kodlama zorluklarının üstesinden gelmenize, geliştirme ekipleri içindeki iş birliğini geliştirmenize ve yazılım mühendisliği ilkeleri hakkındaki bilgilerinizi derinleştirmenize yardımcı olur.  

Active Record

Active Record, MVC (Model-View-Controller) modelindeki “M”dir. İş verilerini ve mantığını temsil etmekten sorumlu olan ve veri tabanına sürekli depolama gerektiren sistem katmanı veya “model”dir. Active Record, iş verilerinin oluşturulmasını ve kullanılmasını kolaylaştırır. Ruby on Rails öğreten bir kodlama eğitiminde Active Record’u öğrenmeyi bekleyebilirsiniz.

Agile Software Development

Agile Software Development, kodu basit tutmayı, sık sık test etmeyi ve hazır olduklarında uygulamanın küçük ve işlevsel parçalarını teslim etmeyi gerektiren bir metodolojidir (“Sprint” olarak adlandırılır). Projenin sonunda tek bir büyük uygulama teslim etmek yerine uygulamanın parçalarını oluşturmaya odaklanır.

AJAX

AJAX, Asynchronous JavaScript and XML anlamına gelir. AJAX bir programlama dili değil, eşzamansız web uygulamaları oluşturmak için istemci tarafında birçok web teknolojisini kullanan bir dizi web geliştirme tekniğidir. Kısaca, Ajax, web sitesi sayfalarının tüm sayfayı yeniden yüklemeye gerek kalmadan içeriği dinamik olarak değiştirmesine olanak tanır.

Algoritma

Algoritma, bir hesaplama yapmak veya bir problemi çözmek için tasarlanmış sistematik bir dizi adımdır. Programlamanın temelini oluşturur ve sıralama, arama, kriptografi ve yapay zeka gibi alanlarda kullanılır. İyi optimize edilmiş bir algoritma, yazılımın verimliliğini ve ölçeklenebilirliğini artırır. 

Angular

Angular.js veya Angular, Google tarafından geliştirilen açık kaynaklı bir JavaScript çerçevesidir. MEAN Stack geliştirmede A’yı temsil eder.

Apache

Apache HTTP Sunucusu veya Apache, World Wide Web’in ilk büyümesinde önemli bir rol oynayan, dünyanın en çok kullanılan web geliştirme yazılımıdır.

API

Uygulama Programlama Arayüzü yani Application Programming Interface  (API), geliştiricilerin diğer uygulamalarla etkileşim kurmak için hem oluşturdukları hem de kullandıkları bir sistemdir. API’ler, bir uygulamanın sahiplerinin diğer uygulamaların bu uygulama ile nasıl etkileşime gireceğini veya bu uygulamaların hangi verilere erişebileceğini kısıtlamasına olanak tanır.

API’ler genellikle, bir kişinin etkileşimde bulunduğu bir yazılım parçası (örneğin bir web sitesi) ile web sitesindeki verileri yönlendiren bilgileri depolayan veri tabanı arasındaki katmandır. Ancak API’lerin tek kullanımı bu değildir. Kullanıcıların donanımla etkileşim kurmasına olanak tanıyan API’ler de oluşturabilirsiniz. Bunlar, akıllı termostatın sıcaklık kontrolünü etkinleştirmek veya mobil uygulamadan ışığı açmak gibi görevler için kullanılır.

Backend

Backend geliştirme, sitenin nasıl çalıştığına odaklanan sunucu tarafındaki geliştirmeyi ifade eder. Bu genellikle üç bölümden oluşur: sunucu, uygulama ve veri tabanı. Kullanıcılar backend çalışmalarını göremezler, ancak backend geliştiricileri tarafından yazılan kod, veri tabanı bilgilerini tarayıcıya ileten unsurdur.

Blink Testing

Beklenmedik değişikliklerin genel kalıplarını belirlemeye odaklanan bir test yaklaşımıdır. Örneğin, web sayfalarını hızlı bir şekilde karşılaştırmak veya günlük dosyalarını incelemek gibi.

Bug (Hata)

Bug, bir yazılım programındaki, programın beklenmedik şekilde davranmasına veya yanlış sonuçlar üretmesine neden olan bir hata veya kusuru ifade eder. Hata ayıklama, hataları belirleme ve düzeltme işlemidir.

Class

Nesne yönelimli programlamada sınıf, nesneleri oluşturmak için kullanılan bir şablon veya kalıptır. Bu sınıfın nesnelerinin sahip olabileceği özellikleri (öznitelikler) ve davranışları (yöntemler) tanımlar.

Client-Server (İstemci-Sunucu)

İstemci-sunucu mimarisi, yazılım uygulamalarının (istemciler) merkezi bir sunucudan hizmet veya kaynak talep ettiği ve aldığı bir modeldir. Bu mimari, dağıtık sistemler ve web uygulamaları oluşturmada temel öneme sahiptir.

Cloud Computing (Bulut Bilişim)

Bulut bilişim, internet üzerinden bilişim hizmetlerinin (sunucular, depolama, veritabanları, yazılımlar vb.) sunulmasını ifade eder. Yazılım mühendislerinin yerel altyapıya ihtiyaç duymadan ölçeklenebilir ve isteğe bağlı kaynaklardan yararlanmasını sağlar.

İlgili İçerik: Bulut Bilişim Terimleri ve Anlamları

CI/CD

Sürekli Entegrasyon – Continuous Integration (CI)/Sürekli Dağıtım – Continuous Deployment (CD), yeni uygulamaların dağıtımında insan müdahalesi gerektirmeyen, daha güvenilir ve daha tekrarlanabilir bir süreçtir.

CI/CD platformları, geliştiricilerin insan müdahalesi olmadan uygulamaların yeni sürümlerini dağıtmaları için standart yöntemler oluşturur. Bunu, kodun otomatik kontrolleri geçmesini sağlayarak ve her seferinde aynı şekilde kod dağıtan yazılımları kullanarak yapar. Bu süreçler, kullanıcıların hatalı kodları görmesini önleyen hata önleme mekanizmaları (örneğin, başarısız testleri yakalama) sağlar.

Code Repository (Kod Deposu)

Kodun depolandığı, yönetildiği ve sürümlerinin oluşturulduğu yerdir. Kod depoları, birden fazla geliştiricinin kod oluşturma ve düzenleme konusunda iş birliği yapmasına olanak tanıyan karmaşık sistemlerdir. Kod depolarının ortak özellikleri arasında geçmiş değişikliklerin izlenmesi, birden fazla geliştirme sürecinin aynı anda gerçekleşmesine olanak tanınması ve yeni kodların eklenmesi için güvenlik önlemlerinin oluşturulması sayılabilir. Yaygın kod deposu hizmetleri arasında GitHub, BitBucket ve Azure DevOps bulunur. Bu hizmetler, kod deposu olmanın yanı sıra çeşitli özellikler de sunar.

Containerization (Konteynerleştirme)

Konteynerleştirme, yazılım kodunu tüm bağımlılıklarıyla birlikte konteyner adı verilen standart bir birim halinde paketleyen hafif bir sanallaştırma yöntemidir. Konteynerler, uygulamaların çeşitli bilgi işlem ortamlarında tutarlı bir şekilde çalışmasını sağlayarak uyumluluk sorunlarını ortadan kaldırır.  

Popüler konteynerleştirme platformları arasında, konteynerleştirilmiş uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirmeye yardımcı olan Docker ve Kubernetes bulunur.  

Data Structure (Veri Yapısı)

Veri yapısı, işlemleri verimli bir şekilde gerçekleştirmek için verileri düzenleme ve depolama yöntemidir. Örnekler arasında diziler, bağlantılı listeler, yığınlar, kuyruklar, ağaçlar, grafikler ve karma tablolar sayılabilir.

Database (Veri Tabanı)

Veri tabanı, elektronik olarak düzenlenmiş, depolanmış ve erişilebilen yapılandırılmış bir veri koleksiyonudur. Büyük miktarda bilgiyi depolamak ve geri çağırmak için güvenilir ve verimli bir yol sağlar.

İlgili İçerik: Veri Tabanı Türleri Nelerdir?

Data-Driven Testing – Veriye Dayalı Test

Test senaryolarının, genellikle dosya veya elektronik tablolarda depolanan harici veri değerleriyle parametrelendirildiği test yaklaşımıdır. Otomatik testlerde, tek bir kontrol komut dosyası kullanarak birden fazla testi yürütmek için yaygın olarak kullanılır.

Debugging (Hata Ayıklama)

Hata ayıklama, yazılım programlarındaki hataları veya kusurları belirleme ve düzeltme işlemidir. Sorunları bulmak ve çözmek için kod analizi, günlük kaydı ve adım adım yürütme gibi teknikleri içerir.

DevOps

DevOps, daha hızlı yazılım teslimatı ve daha fazla güvenilirlik sağlamak için yazılım geliştirme (Dev) ve BT operasyonlarını (Ops) birleştiren bir dizi uygulamadır. İş birliği, otomasyon ve sürekli geri bildirimi vurgular.

İlgili İçerik: DevOps ve DevSecOps: Temel İlkeler ve Farklar

Downtime – Kesinti Süresi

Bir hizmetin veya bileşenin çalışır durumda olmadığı toplam süre.

Encryption (Şifreleme)

Şifreleme, verileri yetkisiz erişimden korumak için okunamaz bir biçime dönüştürme işlemidir. Veri güvenliğini ve gizliliğini sağlar.

İlgili İçerik: Şifreleme (Encryption) Nedir?

End User – Son Kullanıcı

Sistemi, dağıtıldığı ortamda amaçlanan operasyonel kullanım için kullanacak kişi veya grup.

Framework

Herhangi bir teknoloji yığınının herhangi bir parçasında geliştirmeyi daha hızlı, daha kolay veya daha az hataya açık hale getirmek için bir programlama dili içinde bulunan yazılımdır. Geliştirici topluluğu arasında yaygın olarak kullanılan çerçeveler, geliştiricilerin projeler arasında geçiş yapmasını ve yeni kodları daha hızlı anlamasını kolaylaştırır. Örneğin, React, web uygulamalarının geliştirilmesini hızlandıran, web uygulamaları (JavaScript, TypeScript) için oluşturulmuş bir çerçevedir.

Git

Git, birden fazla geliştiricinin aynı kod tabanında verimli bir şekilde iş birliği yapmasını sağlayan ve yaygın olarak kullanılan bir dağıtık sürüm kontrol sistemidir. Değişiklikleri izler, dalları yönetir ve kod birleştirmeyi kolaylaştırır.

İlgili İçerik: Github Nedir, Ne İçin ve Nasıl Kullanılır?

Headless Service

Headless Service, ilgili verileri verimli bir şekilde depolama yetenekleri nedeniyle değerlidir. Bu, geliştiricilerin yeni bir dizi özellik oluştururken zaman alıcı bir görevi ortadan kaldırır.

Bu sistemlerin görsel bir yönü olmadığı için verilerin etrafında görsel bir katman oluşturmak geliştiricilere kalmıştır. Çoğu durumda, her uygulamanın verileri görüntüleme ve gezinme konusunda farklı ihtiyaçları olduğu için bu tercih edilir.

Contentful, headless CMS (İçerik Yönetim Sistemi) platformuna bir örnektir. Blog gönderileri, PDF’ler ve ürün listeleri gibi zengin içeriği, söz konusu içeriği görüntülemek veya gezinmek için belirli bir yol dayatmadan yönetmek ve depolamak için verimli bir yol sağlar.

Hosting

Bir web uygulaması için kod ve veri depolamanın saklandığı yerdir. Basitçe açıklamak gerekirse, internet insanları farklı hosting sunucularına yönlendirir. Hosting sunucuları daha sonra kullanıcılara uygulamaları (web siteleri) sunar.

Geliştiricilerin iki tür hosting hakkında konuştuğunu duyabilirsiniz: bulut ve şirket içi. Şirket içi hosting, kodun onu oluşturan şirket tarafından yönetilen bir sunucuda depolandığı anlamına gelir. Bu tür hosting çözümü, depolanan verilerin çok hassas olduğu durumlarda (sağlık hizmetleri, kimlik bilgileri vb.) kullanılır.

Cloud hosting, kodun başka bir şirketin sunucusunda depolandığı durumdur. Amazon AWS, popüler bir bulut hosting hizmeti örneğidir. Bulut sağlayıcıları, donanımı ve barındırma yazılımını sizin için yöneterek maliyetleri azaltır. Ayrıca, uygulamalarınızı ölçeklendirmeyi çok kolay hale getiren araçlar da sağlayabilir.

İlgili İçerik: Hosting Nedir? Ne İşe Yarar? Hosting Seçimi

IDE (Integrated Development Environment)

IDE, yazılım geliştirmeyi kolaylaştırmak için kapsamlı araçlar ve özellikler sunan bir yazılım uygulamasıdır. Genellikle bir kod düzenleyici, hata ayıklayıcı, otomatik derleme ve diğer üretkenliği artıran özellikleri içerir.

İlgili İçerik: IDE Nedir? En İyi IDE’ler Hangileridir?

ITIL (IT Infrastructure Library)

BT Hizmet Yönetimi için en iyi uygulamaların tutarlı ve kapsamlı bir şekilde belgelendirilmesidir. ITIL, kaliteli BT hizmetlerinin sağlanması ve BT’yi desteklemek için gerekli olan altyapı ve çevresel olanaklara ilişkin rehberlik sağlayan bir dizi kitaptan oluşur.

JavaScript

JavaScript, dinamik ve etkileşimli web uygulamaları oluşturmak için kullanılan popüler bir programlama dilidir. Hem istemci tarafında hem de sunucu tarafında çalışır.

İlgili İçerik: JavaScript Nedir? Ne İşe Yarar?

Kanban

Kanban, işi görselleştirmeye, devam eden işleri sınırlandırmaya ve akışı optimize etmeye odaklanan çevik bir proje yönetimi metodolojisidir. Ekiplerin görevleri yönetmesine ve verimliliği artırmasına yardımcı olur.

Kodlama

Kodlama, belirli bir kodlama veya programlama dilinde bilgisayar programlama veya yazılım geliştirme işlemidir.

İlgili İçerik: En İyi 10 Yapay Zeka Kod Oluşturucu

Load Testing

Yazılımın güvenilirliğini ve performansını değerlendirmek için bir sistemi istatistiksel olarak temsil edici bir yüke tabi tutmak anlamına gelir.

Log

Testlerin yürütülmesiyle ilgili ayrıntıların kronolojik kaydı.

Low-resource Testing – Düşük Kaynak Testi

Bellek veya disk alanı gibi kritik kaynaklar düşük veya tükenmiş olduğunda sistemin davranışını test etmek anlamına gelir.

Makine Öğrenimi (Machine Learning)

Makine öğrenimi, bilgisayarların açık bir programlama olmadan öğrenmelerini ve tahminlerde bulunmalarını veya kararlar almalarını sağlayan algoritmalar ve modellerin geliştirilmesine odaklanan bir yapay zeka alanıdır.

İlgili İçerik: Makine Öğrenimi Nedir? Yapay Zeka ve Derin Öğrenme ile Arasındaki Fark

Mean Time Between Failure (MTBF) – Arızalar Arası Ortalama Süre

Sistem arızaları arasında geçen ortalama süredir.

Mean Time To Repair (MTTR) – Ortalama Onarım Süresi

Hataları düzeltmek için gereken ortalama süredir.

Memory Leak – Bellek Sızıntısı

Bir programın artık ihtiyaç duymadığı belleği serbest bırakmaması nedeniyle istemeden bellek tüketmesi.

MVC (Model-View-Controller)

MVC, uygulama mantığını birbiriyle bağlantılı üç bileşene ayıran bir yazılım mimarisi modelidir: model (veri), görünüm (kullanıcı arayüzü) ve denetleyici (model ile görünüm arasındaki aracı). Kod organizasyonunu ve bakım kolaylığını artırır.

Negative Testing – Negatif Test

Yazılımı bilinçli olarak hataya zorlamaya ve yanlış kullanımlarla çalışmaz hale getirmeye odaklanan; başka bir deyişle sistemin zayıf noktalarını ortaya çıkarmayı amaçlayan test yaklaşımıdır. “Dirty Testing” olarak da adlandırılır.

Programming Language (Programlama Dili)

Geliştiricilerin bilgisayarın anlayabileceği komutlar oluşturmasına yardımcı olmak için geliştirilmiş yazılım olarak tanımlanabilir. Sıkça duyabileceğiniz popüler programlama dillerinden bazıları C# (C Sharp), C, JavaScript, Swift ve Java’dır. Her dilin kendine özgü avantajları ve dezavantajları vardır. Bu nedenle farklı durumlarda kullanılırlar. Örneğin, C, bilgisayarların anlaması için çok az çeviri gerektiren bir dildir, bu nedenle bilgi işlem gücünün sınırlı olduğu durumlarda (saatler, fitness takipçileri vb.) tercih edilir.

İlgili İçerik: Siber Güvenlik için En İyi 10 Programlama Dili

Prototyping – Prototipleme

Sistem geliştirmede, sistemin veya sistemin bir bölümünün kısa sürede küçültülmüş bir versiyonunun oluşturulduğu, ardından birkaç yineleme boyunca test edilip geliştirildiği bir strateji.

Object-Oriented Programming (OOP) – Nesneye Yönelik Programlama

OOP, verileri ve davranışları kapsayan nesneler etrafında yazılımı yapılandıran bir programlama paradigmasıdır. Kodun yeniden kullanılabilirliğini, modülerliği ve soyutlamayı teşvik eder.

Open Source (Açık Kaynak)

Açık kaynak, kaynak kodu serbestçe erişilebilir olan ve herkes tarafından değiştirilip dağıtılabilen yazılımları ifade eder. Açık kaynak yazılımlar iş birliğini, şeffaflığı ve topluluk odaklı geliştirmeyi teşvik eder.

Quality Assurance (QA) – Kalite Güvencesi

Bir hizmet veya ürünün teslimatı veya üretimi boyunca istenen kalite seviyesini koruma sürecidir.

Ramp Testing

Sistem bozulana kadar giriş sinyalini sürekli olarak yükseltme.

Random Testing

Tüm olası girdi değerleri arasından rastgele seçilen bir alt küme kullanılarak yazılımın test edildiği bir kara kutu test yaklaşımıdır. Rastgele test, yalnızca çalışacağı bilinen senaryoların test edilmesi sorununu ortadan kaldırmaya yardımcı olur.

Re-testing (Yeniden Test Etme)

Daha önce başarısız olan test senaryolarını yeniden çalıştırarak düzeltici eylemlerin başarısını doğrulamak için yapılır.

Simulator – Simülatör

Yazılım doğrulama sırasında kullanılan, bir dizi kontrollü girdi sağlandığında belirli bir sistem gibi davranan veya çalışan bir cihaz, bilgisayar programı veya sistem.

Scrum

Scrum, yinelemeli ve aşamalı geliştirmeye odaklanan çevik bir proje yönetimi çerçevesidir. Kendi kendini organize eden ekipler, düzenli geri bildirim ve uyarlanabilirliği vurgular.

Smoke Test

Bir bileşenin veya sistemin temel işlevselliğini kapsayan, planlanmış veya tanımlanmış test senaryolarının bir alt kümesidir. Daha ince ayrıntılara odaklanmadan, bir programın kritik işlevlerinin çalıştığını doğrulamayı amaçlar. Günlük derleme ve temel testler, sektördeki en iyi uygulamalar olarak kabul edilir.

Software Development Life Cycle (SDLC)

SDLC yani Yazılım Geliştirme Yaşam Döngüsü, yazılım geliştirmede yer alan aşamaları ve faaliyetleri özetleyen bir süreç çerçevesidir. Genellikle gereksinimlerin toplanması, tasarım, uygulama, test, dağıtım ve bakım aşamalarını içerir.

Software Quality Assurance (Yazılım Kalite Güvencesi)

Proje standartlarının, süreçlerinin ve prosedürlerinin uygun ve doğru bir şekilde uygulanmasını sağlamaktan sorumlu fonksiyondur.

Static Analysis (Statik Analiz)

Yazılım bileşenlerinin (gereksinimler veya kod gibi) çalıştırılmadan analiz edilmesidir.

SQL (Structured Query Language)

SQL, ilişkisel veri tabanlarını yönetmek ve işlemek için kullanılan bir programlama dilidir. Veri tabanlarıyla etkileşim kurmak, sorgular gerçekleştirmek ve verileri değiştirmek için standart bir yol sağlar.

İlgili İçerik: SQL Nedir? SQL Ne İçin Kullanılır?

SWAG

Scientific Wild-Ass Guess’in kısaltmasıdır ve geliştirmenin erken aşamalarındaki test planlama faaliyetleri sırasında yapılan, bilgiye dayalı bir tahmin veya öngörüyü ifade eder.

Tech Stack

Bir ekibin özel yazılım geliştirmek için bir araya getirdiği benzersiz teknolojilerdir. Teknoloji yığınları, frontend ve backend teknolojileri, uygulama barındırma, veri tabanı vb. gibi parçaları içeren birkaç yapı taşından oluşur. Her yapı taşı çok sayıda seçeneğe sahiptir. Genel olarak, bir ekip herhangi bir seçenek kombinasyonunu kullanarak bütünsel bir çözüm oluşturabilir. Ancak, yapı taşlarının belirli kombinasyonlarını seçmenin avantajları vardır, çünkü bunlar birbirleriyle daha sorunsuz bir şekilde çalışacak şekilde oluşturulabilir.

Testing (Test Etme)

Bir programı hataları bulmak amacıyla çalıştırma sürecidir. Yazılım özelliklerini değerlendirmek ve gereksinimlere uygunluğu sağlamak için testler tasarlama, hata ayıklama ve yürütme gibi faaliyetleri içerir.

Unit Testing

Bireysel yazılım bileşenlerinin veya bir bileşen koleksiyonunun test edilmesidir. Bu, birimlerin izole bir şekilde test edilmesini, çağrılan bileşenlerin simülatörler veya saplamalarla değiştirilmesini içerir.

User Interface (UI) – Kullanıcı Arayüzü 

Kullanıcı Arayüzü (UI), insanların bir sistemle etkileşim kurma biçimi olup, girdi ve çıktı işlevleri sağlar.

V-Model

Gereksinimlerin belirlenmesi aşamasından bakım aşamasına kadar yazılım geliştirme yaşam döngüsü faaliyetlerini gösteren bir çerçevedir. Geliştirme sürecinin her aşamasında test faaliyetlerinin entegrasyonuna önem verir.

Verification (Doğrulama)

Bir sistemin veya bileşenin, geliştirme aşamasının başında belirlenen koşulları karşılayıp karşılamadığını belirlemek için yapılan değerlendirme sürecidir. Gereksinimlere uygunluğu sağlamak için gözden geçirme, inceleme, test etme ve kontrol etmeyi içerir.

Virtualization (Sanallaştırma)

Sanallaştırma; sunucular, işletim sistemleri, depolama veya ağlar gibi bilgisayar kaynaklarının sanal versiyonlarının oluşturulmasını ifade eder. Donanımın verimli kullanımını sağlar ve izolasyon ve esneklik sunar.

White Box Testing

Yazılımın iç yapısı ve uygulama detaylarına dayalı olarak yapılan testtir. Ürünün her yönünü sistematik olarak test etmek için araçlar kullanmayı içerir.

XML (Extensible Markup Language)

XML, verileri yapılandırmanıza olanak tanıyan metin tabanlı formatlar tasarlamak için kullanılan bir dizi kuraldan oluşur. Bilgisayarların veri üretmesini, veriyi okumasını ve veri yapısının açık ve net olmasını kolaylaştırır. XML; genişletilebilirdir, platformdan bağımsızdır ve uluslararasılaştırma ile yerelleştirmeyi destekleyerek dil tasarımında sık karşılaşılan sorunların önüne geçer.

İlgili İçerik: XML Nedir? Neden Kullanılır?

İlgili Makaleler

Bir Yorum

Bir yanıt yazın

Başa dön tuşu