Yazılım Terimleri — 01

Merhaba arkadaşlar, bugün sizlere, özellikle yeni başlayan arkadaşlarıma mülakatlarda yardımcı olabilecek teknik terimlerden kısaca bahsetmek istedim. Bu yazıyı ileride seri haline getirerek, güncel olan teknolojiler hakkında kısa açıklamalar ve kaynaklar paylaşmak istiyorum. Neyse vakit geçirmeden ilk seri ile başlayalım o zaman. Tekrar hatırlatayım elimden geldiğince yazıyı kısa tutmaya çalışarak kısa tanımlamalar yapmaya çalışacağım.

OOP: Kısaca OOP karmaşık kod ve tekrar eden kod yazmadan uzaklaşmak daha modüler, temiz, geliştirilebilir ve anlaşılabilir kod yazmak için ortaya çıkan bir teknolojidir. Kısaca 3 temel esasa dayanır. Polymorphism– Bir işlemin bir çok nesne tarafından kullanılabilmesi, Encapsulation– nesnenin okunabilir
yazılabilir gibi özelliklerini ayarlayarak nesneyi koruma olarak tanımlanabilir, Inheritance- bir nesnenin başka bir nesneden özelliklerini alarak
ortak özelliklerinn bağlanması şeklinde tanımlanabilir.

https://medium.com/bili%C5%9Fim-hareketi/temel-oop-kavramlar%C4%B1-2cffe73245f7 (Türkçe)
https://www.upwork.com/hiring/development/object-oriented-programming/ (İngilizce)

Solid Prensipleri : Aslında daha esnek ve geliştirilebilir kod yazmak için kullanılan prensiplerdir. 5 adet ilkesi vardır:

  • S — Single Responsibility Principle (SRP): Nesnenin sadece bir sorumluluğu olmalıdır.
  • O — Open/Closed Principle (OCP): Nesne genişlemeye açık, değişikliklere kapalı olmalıdır.
  • L — Liskov ‘s Substitution Principle (LSP): Programdaki nesnelerin, programın çalışmasında sorun yaratmadan kendine alt örnekleri ile değiştirilebilir olmasıdır. Bu aynı zamanda sözleşmeyle tasarım (Design by Contract ) olarak bilinir.
  • I — Interface Segregation Principle (ISP): Nesnelerin ihtiyaç duymadıkları Interface’lerinden münkün olduğunca ayrıştırılmasıdır.
  • D — Dependency Inversion Principle (DIP): Yüksek seviyeli sınıflar, düşük seviyeli sınıflara bağlı olmamalı, her ikisi de soyut kavramlara bağlı olmalıdır.

Daha detaylı bilgi için bakabilirsiniz;

http://www.gokhan-gokalp.com/solid-nedir-ve-single-responsibility-principle-srp/ (Türkçe)
https://apiumhub.com/tech-blog-barcelona/solid-principles/ (İngilizce)

Image for post
Image for post
img-picturequotes-com-the-expert-in-anything-was-once-a-beginner-quote-1

Library ve Framework : Libraryler kodumuz içerisinde çağırabileceğimiz metodlar topluluğudur. Libraryler programcı tarafından istenildiğinde çağrılır.

Frameworkler ise belirli standartı ve akışı olan yapılardır. Biz frameworkler içerisine kendi kodumuzu ekleriz. Frameworkun kodu bizim kodumuzu çağırır. Belirli standartlara uymak zorunda kalırız.

https://fevziyilmaz.wordpress.com/tag/library-ile-framework-farki-nedir/ (Türkçe)
https://stackoverflow.com/questions/148747/what-is-the-difference-between-a-framework-and-a-library (İngilizce)

Abstrack — Interface : Sınıfları soyutlamaya yararlar. Abstrackt sınıf içerisinde tanımlanmış metodlar kalıtım alan sınıfta da geçerlidir. Sınıf içerisinde “abstrackt ” anahtar kelimesi ile tanımlanan metod çağrılan sınıfta override edilmelidir. Diğer özellikler zaten tanımlı gelir.

  • Kod içerisinde “new” anahtar sözcüğü ile oluşturulamazlar.
  • Bir sınıf sadece bir abstract sınıftan türetilebilir(Kalıtım alabilir).

Interfaceler içerisinde metodların tanımlamaları bulunur fakat içerisinde kod bloğu bulunmaz. Bunların çağrılan sınıfta eklenmesi zorunludur. Interface içerisine sadece boş metodlar tanımlanır.

  • Kod içerisinde “new” anahtar sözcüğü ile oluşturulamazlar.
  • Bir sınıf birden fazla interface implemente edebilir.

http://www.gokhan-gokalp.com/abstract-ve-interface-nedir-farklari-nelerdir/ (Türkçe)
https://stackoverflow.com/questions/1913098/what-is-the-difference-between-an-interface-and-abstract-class (İngilizce)

Constructor : Sınıflarda ilk değer ataması yapılması için kullanılır. C# içerisinde tüm sınıflar (class) tanımlansın ya da tanımlanmasın değer tiplerine sıfır, referans tiplerine “null” değerini atayan varsayılan bir yapılandırıcı bulunur.

Erişim Belirleyicileri ( Access Modifiers ): Kısaca program içerisinde tanımlanan değişkenlerin, sınıfların erişim sınırlarını belirten anahtar kelimelerdir. Bunlar private(Gizli), public(Genel), Protected (Korunumlu), Internal (İçsel), Protected Internal (İçsel Korunumlu).
Bu konu hakkında bir çok kaynak olması ile beraber aşağıda ki linklerden de daha detaylı bilgi edinebilirsiniz.

http://bidb.itu.edu.tr/eskiler/seyirdefteri/blog/2013/09/06/c-dilinde-eri%C5%9Fim-belirleyiciler-(access-modifiers) (Türkçe)
https://www.codeproject.com/Articles/1040492/Access-Modifiers-in-Csharp-NET-with-Examples (İngilizce)

Javascript : Javascript bir çok alanda kullanılan her gün daha da yaygınlaşan bir teknolojidir. Çok popüler kütüphaneleri bulunmaktadır. Derya denizdir yani o yüzden sadece bir programlama dili değil bir script dildir diyerek sizi tutorial sayfalarına yönlendiriyorum.

https://www.w3schools.com/js/default.asp (İngilizce)
https://www.youtube.com/watch?v=uVW-QfGuWs4 (Bu arkadaşımızın videosu da hoşuma gitti — Türkçe)

Jquery : Sloganı “az kod çok iş olan” popüler bir Javascript kütüphanesidir. Daha detaylı bakmak isterseniz..

http://zinzinzibidi.com/web_tasarim/jquery/jquery_dersleri (Türkçe)
https://www.w3schools.com/jquery/default.asp (İngilizce)

Ajax : Bütün sayfayı kullanıcıya tekrar yükletmeden, sadece gerekli olan veriyi dinamik olarak ekrana getirmek veya sunucuya veri göndermek amacıyla kullanılan teknolojidir. Tabi ki hemen tutorial sayfasına yönlendiriyorum.

https://www.w3schools.com/xml/ajax_intro.asp (İngilizce)
https://www.dijitalders.com/icerik/19/73/ajax_nedir.html (Türkçe)

MVC : Model, View ve Controller katmanlarının baş harflerinden oluşan bir frameworktür. Kod yönetimi ve geliştirilebilirliğe büyük katkıları vardır. Sadece ASP .Net’e özgü bir tanım değildir.

http://www.borakasmer.com/asp-net-mvc-nedir-ne-ise-yarar/ (Türkçe)
https://www.tutorialspoint.com/asp.net_mvc/index.htm (İngilizce)

Web API

Web API : Kısaca farklı uygulamaları, uygulamaların sahibinin izin verdiği ölçüde kullanmak ya da kendi uygulamamızı kullandırmak amacı ile başvurulan teknolojidir. Geniş bir konudur. API’ler kısaca istek / cevap yöntemi ile çalışır. Belirli başlı kullanılan http komutları vardır.
GET — Listeleme,
POST — Ekleme,
PUT — Güncelleme,
PATCH — Verinin belirli bir kısmını güncelleme,
DELETE — Silme gibi işlemler de kullanılan komutlardır.

Konu ile ilgili videoyu izlemenizi tavsiye ederim.
https://www.youtube.com/watch?v=nVhUyQqvv4s

http://www.tutorialsteacher.com/webapi/what-is-web-api (İngilizce)
https://coderwall.com/p/cpdzuw/asp-net-web-api (Türkçe)

Soap ve Rest: Soap ve Rest mimarisi servislerde kullanılmaktadır. Temel de iki farklılığı bulunur. SOAP daha sınırlı ve Xml formatını destekleyen bir mimari iken REST daha esnek ve xml yanında json formatını da destekleyen bir mimaridir.

Serinin ilk yazısının sonuna geldik. Umarım yararlı olmuştur. İlerleyen bölümlerde görüşmek üzere 😀

Software Developer at Sosyopix

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store