İçeriğe atla

Tek sorumluluk ilkesi

Tek sorumluluk ilkesi

Tek sorumluluk ilkesi (TSİ), "Bir birimin sadece bir etkene karşı sorumlu olması gerektiği" şeklinde bir bilgisayar programlama ilkesidir. Etken terimi, birimde değişiklik gerektiren bir küme (en az bir paydaş veya kullanıcıdan oluşan) için kullanılır.

Terimin yaratıcısı Robert C. Martin ilkeyi, "Bir sınıfın değişmek için bir tek nedeni olmalıdır" şeklinde ifade eder.[1] "Neden" deyişindeki karışığa "ilke, insanlarla ilgilidir" diyerek açıklık getirdi.[2] Bazı konuşmalarında bu ilkenin, özellikle görevler veya etkenler hakkında olduğunu da savunuyor. Örneğin, aynı kişi olabilseler de bir saymanın görevi, bir veri tabanı yöneticisininkinden ayrıdır. Bu nedenle her bir görevden bir tek birim sorumlu olmalıdır.[3]

Tarihçe

Terim, Robert C. Martin tarafından "NYT'nin İlkeleri" makalesinde tanıtılmıştır. Bu, 2003 yılında yayınlanan Atik Yazılım Geliştirme, İlkeler, Desenler ve Uygulamalar kitabıyla yaygın hale gelen Nesne Yönelimli Tasarımın İlkeleri[4] bölümünün bir parçasıdır.[5] Martin, Tom DeMarko'nun Yapılandırılmış Çözümleme ve Düzen Özelleştirme[6] kitabında ve Meyir Pajcons'un Yapılandırılmış Düzenlerin Tasarımına İlişkin Uygulamalı Rehber[7] kitabında açıkladığı gibi tutarlılık ilkesine dayandığını açıklamıştır. 2014 yılında, Martin, değişiklik nedeni ifadesinin ne anlama geldiğini açıklamak için "Tek Sorumluluk İlkesi" adlı bir ağ günlüğü yazısı yayınladı.[1] 17 Aralık 2022 tarihinde Wayback Machine sitesinde arşivlendi.

Örnek

Martin; sorumluluğu, değişiklik sebebi olarak tanımladı ve bir sınıfın veya birimin değiştirilmesi (örneğin yeniden yazılması) için bir tek sebep olması gerektiği sonucuna vardı.

Örneğin, bir yazanağı derleyip yazdıran bir birimi ve bu birimin de iki nedenle değiştirilebileceğini düşünün. İlk olarak, yazanağın içeriği değişebilir. İkincil olarak, yazanağın biçimi değişebilir. Bu iki şey farklı nedenlerle değişir. Tek sorumluluk ilkesi, bu iki sorunun, iki ayrı sorumluluk olduğunu ve bu nedenle de ayrı sınıflarda veya birimlerde olması gerektiğini söyler. Farklı nedenlerle, farklı zamanlarda değişen iki şeyi birbirine bağlamak kötü bir tasarım olur.

Bir sınıfı tek bir etkene odaklamanın önemi, sınıfın daha dayanıklı hale getirilmesidir. Önceki örnekle devam edersek, yazanak derleme işleminde bir değişiklik olursa, aynı sınıftaki yazdırma kodu daha yüksek olasılıkla bozulur.

Kaynaklar

  1. ^ Agile Software Development, Principles, Patterns, and Practices. Prentice Hall. 2003. s. 95. ISBN 978-0135974445. 
  2. ^ "The Single Responsibility Principle". The Clean Code Blog. 2014. 6 Şubat 2017 tarihinde kaynağından arşivlendi.  Yazar |ad1= eksik |soyadı1= (yardım)
  3. ^ Robert C. Martin (2018). Clean Architecture: A Craftsman's Guide to Software Structure and Design. Prentice Hall. ISBN 978-0-13-449416-6. 17 Aralık 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Aralık 2022. 
  4. ^ Martin, Robert C. (2005). "The Principles of OOD". butunclebob.com. 17 Nisan 2006 tarihinde kaynağından arşivlendi. 
  5. ^ Martin 2003, ss. 95-98
  6. ^ DeMarco, Tom. (1979). Structured Analysis and System SpecificationÜcretsiz kayıt gerekli. Prentice Hall. ISBN 0-13-854380-1. 
  7. ^ Page-Jones, Meilir (1988). The Practical Guide to Structured Systems Design. Yourdon Press Computing Series. s. 82. ISBN 978-8120314825. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Açık kaynak</span> ücretsiz dağıtım ve ürüne erişim hakkında felsefe

Açık kaynak, kaynak kodun; kopyalanması, değiştirilebilmesi ve yeniden dağıtım için serbestçe kullanıma sunulmasıdır. Açık kaynak yalnızca kaynak koda erişim anlamına gelmez. Kodların başkaları tarafından herhangi bir telif ücreti ödemeden kullanılabilmesi, değiştirilmesi ve yeniden dağıtımı gibi çeşitli haklar vermesi gerekir. Bunun için ürün, açık kaynak tanımına uyan bir lisans kullanmalıdır.

<span class="mw-page-title-main">Thomas Robert Malthus</span> İngiliz ekonomist (1766-1834)

Thomas Robert Malthus, İngiliz nüfus bilimci ve politik iktisat teorisyeni. Karamsar kuramlarıyla ünlenen Malthus, her ne kadar daha çok "Thomas Malthus" olarak anılsa da kendisi "Robert Malthus" olarak tanınmayı daha çok tercih etmiştir.

Tasarım desenleri, tasarım kalıpları, tasarım örüntüleri veya tasarım şablonları, çok rastlanan, birbirine benzer sorunları çözmek için geliştirilmiş ve işlerliği kanıtlanmış genel çözüm önerileridir.

<span class="mw-page-title-main">Pauli dışarlama ilkesi</span> Kuantum mekaniği prensibi: iki özdeş fermiyon aynı anda, aynı kuantum halinde bulunamazlar.

Pauli dışarlama ilkesi ya da Pauli dışlama ilkesi, iki ya da daha çok özdeş fermiyonun aynı kuantum durumda olamayacağını belirten bir kuantum mekaniği yasasıdır. Bu yasa, kuramsal fizikçi Wolfgang Pauli tarafından 1925 yılında bulunmuştur. İlk bulunuşunda yasa yalnızca elektronlar için geçerliyken, 1940 yılında Spin-istatistik teoreminin bulunmasıyla birlikte bütün fermiyonları kapsayacak biçimde genişletilmiştir.

<span class="mw-page-title-main">Doğal çevre</span> Dünya üzerindeki canlı ve cansız varlıklar

Doğal çevre veya doğal dünya, yalnızca doğal yollarla meydana gelmiş canlı ve cansız tüm varlıkları kapsar. Doğal çevre terimi çoğunlukla Dünya ve Dünya'nın bazı bölgeleri için kullanılır. Bu kavram, insanlığın hayatta kalmasını ve ekonomik faaliyetlerini etkileyen tüm canlı türlerinin, iklimin, hava durumunun ve doğal kaynakların etkileşimini kapsamaktadır. Doğal çevre kavramı, aşağıdaki bileşenlerine göre incelenebilir:

Nedensellik, genel olarak nedensellik ilkesi olarak bilinen; olay ve olguların birbirine belirli bir şekilde bağlı olması, her sonucun bir nedeni olması ya da her sonucun bir nedene bağlanarak açıklanabilir olması ya da belli nedenlerin belirli sonuçları yaratacağı, aynı nedenlerin aynı koşullarda aynı sonuçları vereceği iddiasını içeren felsefe terimi.

<span class="mw-page-title-main">Atatürk İlkeleri</span> Atatürkün politikalarını belirleyen altı ilke

Atatürk İlkeleri, Türkiye Cumhuriyeti'nin ilk cumhurbaşkanı Mustafa Kemal Atatürk'ün yürürlüğe koyduğu, döneminin pragmatik politikalarını belirlemiş altı ilkedir. "Altı Ok" denilen altı ilkeye ilk olarak 1931'de "Kemalizm" adı verildi ve Atatürk'ün Dil Devrimi sürecinde, 1935'te Arapça Kemal adını 1937'ye dek kullanacağı Eski Türkçe Kamâl adıyla değiştirmesini takiben 13 Mayıs 1935'te "Kamâlizm" adıyla ülkenin kurucu ve tek partisi olan Cumhuriyet Halk Partisi'nin program ilkeleri olarak benimsendi. Daha sonra, 1937'de çıkarılan bir kanunla 1924 Anayasası'na eklenen ilkeler, anayasal olarak Türkiye'nin ulusal ideolojisi hâline geldi.

Programlama dizisinde nesne-yönelimli programlamada, nesne, basit yapılı blok programları olarak kullanılan, işletim zamanı verilerinin saklanması için oluşturulmuş özel birimidir. Programın işlemlerde bir koleksiyon gibi veya programın bilgisayarda komutlar listesi gibi basitçe göründüğü geleneksel bakış açısının tersine, bu nesneler birbiri üzerinde rol oynar. Her nesne mesaj alımına, veriyi işlemeye ve diğer nesnelere veri aktarımına yatkındır. Her nesne farklı rollerde ve sorumluluklarda yer alan veya bağımsız küçük makineler olarak gözlemlenebilir.

<span class="mw-page-title-main">Epidemi</span> kısa sürede çok sayıda insanı etkileyen hastalığın hızla yayılması

Epidemi, bir bulaşıcı hastalığın, belirli bir popülasyondaki çok sayıda insana, kısa bir süre içinde hızla yayılmasıdır. Örneğin meningokok enfeksiyonlarında, iki hafta üst üste 100.000 kişide 15'ten yüksek vaka oranı epidemi olarak kabul edilir.

<span class="mw-page-title-main">Tümleşik geliştirme ortamı</span> yazılım geliştirmek için kullanılan yazılım ortamı

Tümleşik geliştirme ortamı, bilgisayar programcılarının hızlı ve rahat bir şekilde yazılım geliştirebilmesini amaçlayan, geliştirme sürecini organize edebilen birçok araç ile birlikte geliştirme sürecinin verimli kullanılmasına katkıda bulunan araçların tamamını içerisinde barındıran bir yazılım türüdür.

<span class="mw-page-title-main">Teratoloji</span>

Teratoloji doğuştan gelen bozukluklar ya da kusurlar için kullanılan bir terimdir. Yunanca canavar ya da harika anlamına gelen τέρᾰς ile söz anlamına gelen λόγος sözcüklerinden gelmektedir. Aynı anlamda kullanılan bir başka terim de dismorfolojidir.

Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.

<span class="mw-page-title-main">Demokratik merkeziyetçilik</span> sosyalist partilerin uyguladığı liderlik yöntemi

Demokratik merkeziyetçilik, siyasi bir partide çeşitli kararların alınması amacıyla yapılan tartışmalar sırasında, her konunun herhangi kısıtlama olmaksızın tartışılabileceğini fakat çoğunlukça hemfikir olunan bir kararın alınmasından sonra bu kararın uygulanmasında birlik sağlanması gerektiğini savunan Marksist-Leninist ilkeyi ifade eden terimdir. Bu ilke, dünyadaki pek çok komünist partinin parti genel çizgisi olarak kabul görmüştür.

<span class="mw-page-title-main">Faz (madde)</span> Fiziksel bilimlerde, bir faz bir malzemenin fiziksel özelliklerini esas olarak eşit bir şekilde madde boyunca dağılan bir sistemdir. Fiziksel özelliklerinin örneklerinden üç tanesi, yoğunluk içermesi , mıknatıslanma ve kimyasal bileşimi inde

Fiziksel bilimlerde faz; bir malzemenin fiziksel özelliklerinin her noktasında aynı olduğu bölgedir/alandır. Fiziksel özelliklerinin örneklerinden üç tanesi, yoğunluk içermesi, mıknatıslanma ve kimyasal bileşimi indeksi. Basit bir açıklama ile bir faz fiziksel olarak ayrı, kimyasal olarak yeknesak ve (genellikle) mekanik ayrılabilir malzemeli bir bölge olmasıdır. Bir cam kavanoz buz ve sudan oluşan bir sistemde, buz küpleri birinci faz, su ikinci faz ve suyun üstünde bulunan nem ise üçüncü fazdır. Cam kavanoz ise başka bir ayrı aşamasıdır. Faz terimi bazen maddenin hali olarak eş anlamlı bir şekilde kullanılabilir. Ancak bir maddenin aynı halde çok sayıda karışmayan fazı olabilir. Ayrıca, faz terimi bazen bir faz diyagramı için üzerinde sınır ile basınç ve sıcaklık gibi durum değişkenler açısından sınırı çizilmiş denge durumunda bir dizi oluşturmak için kullanılır. Faz sınırları gibi katı veya başka bir kristal yapısından daha ince değişikliğine sıvıdan bir değişiklik olarak maddenin organizasyon değişiklikleriyle ilgili olduğundan bu son kullanım durumuna eş anlamlısı olarak "faz" kullanımına benzer. Ancak, madde ve faz diyagramı kullanımların hali yukarıda verilen ve amaçlanan anlam terim kullanıldığı bağlamdan kısmen tespit edilmelidir resmi tanımı ile orantılı değildir. Fazın çeşitleri Farklı fazlar, gaz, sıvı, katı, plazma veya Bose-Einstein yoğuşma ürünü olarak maddenin farklı durumlar olarak tarif edilebilir. Maddenin katı ve sıvı formda diğer haller arasındaki faydalı mezofazlar.

Gestalt psikolojisi veya gestaltizm, bilişsel süreçler içerisinde özellikle algı ve algısal örgütlenme konularında yoğunlaşmış psikoloji teorisidir. Yirminci yüzyılın ilk yarısında Almanya'da ortaya çıkmıştır. Gestalt psikolojisi kaotik görünen bir dünyada anlamlı bir algıya sahip olmamızın temelde hangi kanunlara dayandığını anlamaya çalışır. Gestalt psikolojisinin ana prensibi zihnin kendi kendisini algıladığı şeylerde bir bütün görmeye organize etmesidir.

<span class="mw-page-title-main">Yapı</span> bir nesne veya sistemdeki birbiriyle ilişkili unsurların düzenlenmesi ve organizasyonu veya bu şekilde organize edilmiş nesne veya sistem

Yapı, maddi bir nesne veya sistemdeki birbiriyle ilişkili unsurların düzenlenmesi ve organizasyonu veya bu şekilde organize edilmiş nesne veya sistemdir. Maddi yapılar, binalar ve makineler gibi insan yapımı nesneleri ve biyolojik organizmalar, mineraller ve kimyasallar gibi doğal nesneleri içerir. Soyut yapılar bilgisayar bilimlerindeki veri yapılarını ve müzik formunu içerir. Yapı türleri arasında bir hiyerarşi, çoktan çoğa bağlantılar içeren bir bağlantı veya uzayda komşu olan bileşenler arasındaki bağlantıları içeren bir kafes bulunur.

Tom DeMarco Amerikalı bir yazılım mühendisi, yazar ve yazılım mühendisliği konularında danışmandır. 1970'lerde yapılandırılmış analizin ilk geliştiricisidir.

Michael Anthony Jackson, İngiliz bilgisayar bilimcisi ve Londra, İngiltere'de bağımsız bilgisayar danışmanıdır. Aynı zamanda Birleşik Krallık'taki Açık Üniversite'de misafir araştırma profesörüdür.

Yazılım mühendisliğinde S.O.L.I.D. nesnesel tasarımları daha anlaşılır, esnek ve sürdürülebilir kılmayı amaçlayan, beş tasarım ilkesinin anımsatıcı bir kısaltmasıdır. Bu ilkeler, Amerikalı yazılım mühendisi ve eğitmen Robert C. Martin tarafından tanıtılan ilkelerin bir alt kümesi olan bu ilkeler, ilk olarak 2000 yılında yayımlanan Tasarım İlkeleri ve Tasarım Modelleri makalesinde tanıtılmıştır.

Bilgisayar biliminde zorunlu programlama ya da emperatif programlama, programın durumunu değiştiren ifadeler kullanan yazılımın programlama paradigması'dır. Doğal dillerdeki zorunlu kipin komutları ifade etmesi gibi, zorunlu program da bilgisayar'ın gerçekleştireceği komutlardan oluşur. Zorunlu programlama, beklenen sonuçlarının üst düzey tanımlarından ziyade programın nasıl adım adım çalıştığını açıklamaya odaklanır.