Sitemap

Temiz Kod ve Genel Olarak Yazılımda Bazı Kavramlar/İlkeler 3

5 min readSep 2, 2024

--

Selamlar,

Yazının önceki bölümünü okumak için…

Mock Objects(Sahte Nesneler)

https://piraveenaparalogarajah.medium.com/what-is-mocking-in-testing-d4b0f2dbe20a

Mock object(sahte nesne), davranışını test etmek veya benzetmek için gerçek bir nesnenin davranışını taklit eder. Bunu, harici API’ler veya kütüphaneler gibi diğer bileşenlere bağımlılığı olan yazılım bileşenlerini test etmek için kullanabilirsiniz.

Flaky Tests(Kararsız Testler)

https://www.testrail.com/blog/flaky-tests/

Tutarsız veya düzensiz testler, tutarsız veya öngörülemez sonuçlar üretir. Bu tür testlerle çalışmak zor olabilir çünkü beklenmedik şekilde geçebilir veya başarısız olabilirler. Bu da test edilen kodun doğru çalışıp çalışmadığını belirlemeyi zorlaştırır.

Domain-Driven Design(Alana-Dayalı Tasarım)

https://www.hibit.dev/posts/15/domain-driven-design-layers

Alana-dayalı tasarım, yazılım sistemlerinin tasarımını iş veya problem alanıyla uyumlu hale getirmeye odaklanır; böylece kodu daha etkileyici, sürdürülebilir ve iş gereksinimlerine sıkı sıkıya bağlı hale getirir.

User Acceptance Testing(UAT, Kullanıcı Kabul Testi)

https://usersnap.com/blog/user-acceptance-testing-right/

Kullanıcı kabul testi (UAT), bir yazılım sisteminin veya uygulamasının iş ve kullanıcı gereksinimlerini karşılayıp karşılamadığını ve canlı sistemlere dağıtım için hazır olup olmadığını kontrol eder. Gerçek verilerle bir dizi test barındırır. Yazılımın doğru şekilde çalışıp çalışmadığını ve ihtiyaçlarını doğrulamak için son kullanıcılar tarafından yapılan incelemeleri içerir.

Technical Debt(Teknik Borç)

https://www.bobstanke.com/blog/what-is-technical-debt

Teknik borç, kötü geliştirme uygulamaları veya tasarım tercihleri ​​nedeniyle zamanla yazılım sistemlerini sürdürmenin ve iyileştirmenin artan maliyetini ifade eder. Tıpkı finansal borcun zamanla faiz biriktirmesi gibi, teknik borç da geliştiriciler hatalı kısayollar kullandıkça, tasarım tavizleri verdikçe veya yazılım kod tabanındaki sorunları yeterince ele alamadıkça birikir. Sonuçta, ödenen faiz için ilk sermayeden daha fazla ödeme yapmak zorunda kalabilirsiniz.

https://blog.smitio.com/what-is-technical-debt

Broken Windows Theory(Kırık Pencereler Teorisi)

https://en.wikipedia.org/wiki/Broken_windows_theory

Kırık pencereler teorisi, küçük, önemsiz görünen sorunların veya kusurların daha büyük sorunlara ve daha ciddi sorunlara yol açabileceğini öne sürer. Bir geliştirici kodda küçük bir sorun fark ederse ancak halihazırda kırık başka pencereler olduğu için bunu görmezden gelmeyi seçerse, bu ihmal kültürüne ve geliştirme sürecinde ayrıntılara dikkat edilmemesine yol açabilir. Daha büyük sonuçlar doğurur.

Throw Early and Catch Late(Erken Fırlat ve Geç Yakala)

https://arstechnica.com/information-technology/2014/10/why-throw-early-and-catch-late/

“Erken fırlat ve geç yakala”, hataları veya istisnaları kodda mümkün olduğunca erken tespit edip ele almayı söyler. Bu hataların(istisnaların) gerçekten ele alınması veya raporlanmasını daha yüksek bir seviyeye veya daha uygun bir bağlama ertelemeyi vurgular. Eksik bilgilerle yerelleştirilmiş kararlar vermek yerine, hataları mümkün olduğunca geç, daha fazla bağlamsal bilgiye sahip olduğunuz bir yerde ele alıp işlemelisiniz.

Chain of Responsibility Design Pattern(Sorumluluk Zinciri Tasarım Kalıbı)

https://refactoring.guru/design-patterns/chain-of-responsibility

Sorumluluk zinciri, birden fazla nesnenin, zincirdeki hangi nesnenin isteği özel olarak işlediğini bilmeden, bir isteği zincir benzeri bir şekilde işlemesine olanak tanır. Bu tasarım deseninde, istek, bunlardan biri onu işleyene veya zincirin sonuna ulaşana kadar bir dizi işleyiciden(handler) geçirilir. Zincir bağlantılarının birbirinden bağımsızlığı kodun kalitesini artırır.

Preprocessors(Önişlemciler)

https://data-flair.training/blogs/preprocessors-in-c/

Bir önişlemci, ana derleyici veya yorumlayıcı tarafından derlenmeden veya yorumlanmadan önce kaynak kodunda görevler gerçekleştirir. Genellikle programlama dillerinde, gerçek derleme veya yorumlama sürecinden geçmeden önce kaynak kodunu değiştirmek veya işlemek için kullanılır.

Truthy and Falsy(Doğruluk ve Yanlışlık)

https://blog.devgenius.io/understanding-truthy-and-falsy-in-javascript-e35a4fdae150

Truthy ve falsy, birçok programlama dilinde bir Boolean olmayan veri tipinin Boolean değerini tanımlamak için kullanılan terimlerdir. Her değer, Boolean bir bağlamda doğru veya yanlış olarak değerlendirilebilir. Boolean olmayan bir değer Boolean bir bağlamda değerlendirildiğinde, uyarı yapılmadan sihirli bir şekilde Boolean’a zorlanır.

Code Reviews(Kod İncelemeleri)

https://www.bounteous.com/insights/2019/06/11/code-review-limbo-how-low-should-you-go/

Kod incelemesi, herhangi bir sorun, hata veya iyileştirme alanı belirlemek için programlama yapılan kaynak kodunu incelemekten oluşur. Bir veya daha fazla kişinin kodu inceleyerek doğru, verimli, sürdürülebilir olduğundan, en iyi uygulamalara ve standartlara uyduğundan emin olmasını içerir.

Input Sanitization(Giriş Temizlenmesi)

https://medium.com/@selieshjksofficial/fortifying-your-node-js-application-a-comprehensive-guide-to-input-sanitization-3e700898d343

Giriş temizleme, güvenli olduğundan ve işlemeden önce beklenen biçimlere uyduğundan emin olmak için kullanıcı girdisini doğrulamayı ve temizlemeyi içerir. Bu, SQL injection, siteler-arası script çalıştırma(XSS, cross-site scripting) ve kötü niyetli kullanıcılar tarafından gerçekleştirilebilecek diğer saldırılar gibi çeşitli güvenlik açıklarını önlemek için önemlidir.

SQL Injection(SQL Enjeksiyonu)

https://www.ivesgo.com/sql-Injection-nedir/

SQL injection, bir saldırganın veritabanıyla iletişim kuran bir programa kötü amaçlı SQL kodu eklemesiyle gerçekleşir. Saldırgan, metin kutuları veya formlar gibi giriş alanlarına SQL kodu girebilir. Uygulama daha sonra kodu çalıştırarak verilere erişebilir veya verileri değiştirebilir, hassas bilgileri alabilir veya hatta sistemin kontrolünü ele geçirebilir.

Penetration Testing(Sızma Testi)

https://www.bitsight.com/blog/types-of-penetration-testing-which-is-right-for-your-business

Penetrasyon testi, pentesting olarak da bilinir, gerçek dünya saldırılarını simüle ederek bir sistemin güvenliğini değerlendirir. Güvenlik açıklarını belirler ve yerinde güvenlik önlemlerinin etkinliğini değerlendirir. Araçlarınızın ve yazılımlarınızın kalitesini kontrol ettiğiniz mutasyon testine benzer.

3 bölümden oluşan yazı serisinin sonuna geldik. Faydalı olması dileğiyle…

--

--

No responses yet