Solid Prensipleri Nelerdir | Solid Principles Explanation
HTML-код
- Опубликовано: 9 июн 2024
- Yazılımcılar olarak iş görüşmelerinde belki de en çok karşılaştığımız sorulardan bir tanesi SOLID prensipleri olabilir. Anlatması ve uygulaması zor olan bu konuyu en basit halleriyle bir uygulama üzerinden açıklamaya çalıştım. Her prensibin anlamını ve uygulamasını bulabileceğiniz bu videoda iyi seyirler.
Images;
Single Responsibility: exceptionnotfound.net/content...
OpenClose: exceptionnotfound.net/content...
Liskov Substitution: exceptionnotfound.net/content...
Interface Segregation: exceptionnotfound.net/content...
Dependency Inversion: exceptionnotfound.net/content...
#solidprinciples #solidprensipleri #solid
#blazor #docker #dotnet
Kanala Abone Olmayı Unutmayın!
To Subscribe: bit.ly/3kvj2vw
Github: github.com/salihcantekin
Discord: / discord
Üyelik ayrıcalıkları için: / @techbuddytr
00:00 Intro
00:56 Warnings
03:42 Single Responsibility
09:09 Open Close
16:26 Liskov Substitution
26:22 Interface Segregation
31:22 Dependency Inversion
40:40 Outro - Наука
Bugüne kadar hem İngilizce hem de Türkçe kaynaklar içerisindeki en iyi anlatım! Tek örnek üzerinden gitmesi, gerçek bir senaryoya benzemesi açısından inanılmaz faydalı olmuş. Ellerinize, ağzınıza sağlık!
Solid Prensiplerini birçok kez inceledim ama bu kadar anlaşılır olarak bir örnek üzerinden yalın ve net anlatan başka bir kaynak ile karşılaşmadım. Emeğinize sağlık gerçekten çok faydalı ve güzel bir içerik hazırlamışsınız.
Çok teşekkür ederim. Umarım faydalı ve açıklayıcı olmuştur.
SOLID prensiplerini açıklayıcı ve betimleyici anlatımlarınızla güzel bir şekilde özetlemişsiniz. Ellerinize sağlık…
İnternette bulduğum Medium yazıları veya RUclips'da bulduğum videolar arasında tek örnek üzerinden durumu özetleyen -tabiri caizse 4 yaşındaki çocuğa anlatır gibi anlatan- bir içerik olmuş.
Ağzınıza, emeğinize ve kurgunuza sağlık
Teşekkür ederim :) 4 yaşındaki birisi için zor tabi ama yine de olabildiğinde açık anlatmaya çalışıyorum.
Prensiplerin aynı yerde kullanıldığı gerçekten güzel bir anlatım olmuş. Tebrikler.
ilk kez bu kadar guzel anlatan kaynakla karsilasdim.Ellerinize saglik hocam :)
Teşekkür ederim. Umarım faydalı olmuştur
büyüksün patron , emeklerine sağlık :) zevkle izliyorum
Çok teşekkür ederim. Muhteşem. Ellerinize emeğinize sağlık.
Cok güzel anlatım , teşekkürler
Ağzınıza sağlık, mükemmel bir anlatım :)
Muazzam bir video ve anlatım. Emeğine sağlık
Həqiqətən çox yaxşı izah etmiziniz, Allah razı olsun!
Gerçekten en iyi anlatımlardan biri olmuş
Teşekkür ederim. Umarım faydalı da olmuştur
@@TechBuddyTR Gerçekten faydalı oldu çok teşekkürler
Hocam çok güzel anlatmışsınız, teşekkür ederim.
En faydalı anlatım
Cok guzel bir video olmuş. Elinize kolunuza ağzınıza sağlık.
Emeğinize sağlık. Çok güzel bir anlatım olmuş.
Teşekkür ederim :)
Güzel bir anlatımdı. Elinize sağlık
Güzel anlatım olmuş, teşekkürler.
Hocam çok güzel anlatmışsınız teşekkürler
Çok güzel anlatım hocam ağzınıza sağlık
Çok Teşekkkürler emeğinize sağlık. :)
Çok güzel anlatım, ağzına sağlık
Emeğinize sağlık. Mükemmel anlatım !!
Teşekkürler :)
Tesekuller
Teşekkürler
mükemmel
Video icin tesekkurler. Tek bir ornekte hepsinin anlamlai bir sekilde incelenmis olmasi daha iyi olmus cunku farkli farkli ornekler uzerinden yuruyunce bir projede tam olarak nasil ele alinir akilda olusmuyordu. Ayrica sunu belirtmek isterim ki SOLID'e uygun bir proje gelistirmek cogu zaman cok zordur cunku ozellik sizin deneyiminiz ve projede suresi bunda cok onemli bir faktor. Single ve dependency prensiplerini uygulamak cok onemli oluyor.
teşekkürler🙏
Teşekkürler. Güzel bir anlatımınız var. Anlayamadığım bir konu var. Dependency Inversion Principle'ı uygulayarak bypass etmeyi ve sürekli Trip Info Logger'a yeni bir metod eklemekten kurtulma olayını anladım ama neden trip infoyu da aradan çıkartım catchlerde direk germany logger ve localstorage logger altındaki log metodlarını kullanmıyoruz.Trip infoda başka yapılacak eylemler mi var? Varsa örnek verebilir misiniz?
🔥🧨
Hocam Selamlar. Dependenct invercionu ioc de nasıl uygulayacagiz. TripİnfoLoggeri Generic Yaparak mı yoksa kullanacagimiz sinifta (dependency injection yaparken)mecbur newleyecek miyiz
merhaba, open-closed prensipinde BMW ve Mercedes classlarına GetCostPerKM metodu eklemek single responsibility-i bozmuş olmuyormu. bide Liskov substitution da single responsibility-i bozmuyormu?
14.20'de km'de yakılan yakıtın fiyatını abstract fonksiyon içinde return edilen bir value olarak yazmak yerine pulic final olarak tanımlasak ne gibi bir fark olabilir? açıklarsanız sevinirim
Hocam aklınıza sağlık muhteşem bir anlatım olmuş. Benim sadece tam emin olamadığım konu şu : Mesela öyle bir durum oluştu ki, send email kullanmayalım ama multy emaili kullanalım dediğimizde vermiş olduğunuz örnekte multy email funksiyonunu single email fonksiyonundan ayırmamız gerekicek sanırım. Onuda sadece single emailde yapmış olduğumuz gibi bir fonksiyon oluşturup, ona ek foreach eklemek yeterli olacak mıdır?
Mail'in to kısmına birden fazla kişiyi ekleyerek de çoklu gönderim yapabiliriz. Ama daha iyi bir yöntem arıyorsak evet tek mail gönderme ve toplu mail gönderme süreçlerini de ayırabiliriz. Daha sonra foreach ile de gönderimlerini sağlayabiliriz :)
Öncelikle anlatımız ve kanaldaki tüm içerikler için çok teşekkür ederim. SOLID anlatırken yaptığınız örnekle ilgili bir sorum olacak. Liskov prensibini anlatırken BMW nin talebi üzerine yaptığımız değişiklikte Açık-Kapalı prensibine aykırı mı davrandık? Kendi içimde cevabı net olarak veremedim, aydınlatırsanız sevinirim.
Neden bir şeyi değiştirdiğimizi düşündünüz? Değiştirmek yerine geliştirmiştik halbuki :)
Açık - Kapalı prensibine aykırı davranmadık :)
Merhabalar. Bir mulakatta karşıma çıkan bir soru entity framework de yer alan addorupdate methodu singleton responsibility ye uyuyor mu sence şeklinde? Normal Singleton Responsibility nin tarifi her method tek işi yapmalı şeklinde tarif edilir. Bu konuda sizin görüşünüzü almak isterim.
Evet SOLID prensiplerinin ilki Single Responsibility'i ifade eder, her en küçük metod tek iş yapmalı şeklinde. EF içindeki bu kuralı bozuyor gibi görünüyor ki bence %51 bozuyor ama diğer yandan da uygulama dışında bir dünyada bir kontrol yapmak ve sonra o şarta göre update etmek gibi bir zahmetten kurtulmak için bir Extension metod olarak düşünebiliriz bunu. WebApi lerde update edildiğinde update edilen entity, Add yapıldığında da yine DB ye eklenmiş olan Entity Response olarak geri dönülebilir ki çoğunlukla da böyle yapılıyor. Burada aslında dediğim gibi bunu extension metod olarak düşünebiliriz, bizi DB ye açılan bağlantı sayısı konusunda hızlandırdığı için. O yüzden %51 bozuyor %49 bozmuyor diyebiliriz :)
Like
21:47 burada methodları interface'e çevirdik ya kurala uymuyor diye. Interface olmadan da o methodlar her bir class'a eklemek zorundayız. peki interface niye var orda o zaman ? her şekilde ekleyecem ben bunu zaten. mercedes'inde içinde olacak, bmw'ninde bunları neden interface'e bağlıyoruz hocam ?
Interface ler bizim için bir sözleşme, anlaşma örnekleri. Bu örnekleri ana class ta kullanmak yerine, bunları karşılayan base class lar da olabilir. Yani bu interface i bir baseclass a verip, o baseclass ta ortak metodlarımızı yazıp onu da ana class'ımıza verebiliriz.
Hocam selamlar. Bütün kodları da paylaşabilir misiniz? Detaylı incelemek istiyorum tüm içeriği. Sevgiler.
Selamlar,
Bu videonun kaynak kodları hali hazırda GitHub profilimde mevcut. Microservice projesi hariç hemen hemen tüm içerik de yine profilimde yer alıyor. Microservice projesinin kaynak kodları ise Katıl Üyelerine Yetki şeklinde tanımlanıyor
Hocam projenizi indiremiyorum. Link hatalı olabilir yardımcı olabilirmisiniz
hocam dependency tam oturmadı ya orası biraz karışık oldu, geri kalan süper anlaşılırdı
.net MAUI ile ilgili bir eğitim setiniz olacak mı?
Merhabalar, yakın zamanda gelmez. Ben de henüz başlamadım MAUI tarafına. :) Ama ben de öğrenince, mutlaka videosunu çekerim
@@TechBuddyTR Teşekkürler. Bekliyorum. Videolarınızı keyif alarak ve beğenerek izliyorum.