Solid Prensipleri Nelerdir | Solid Principles Explanation

Поділитися
Вставка
  • Опубліковано 21 лип 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
  • Наука та технологія

КОМЕНТАРІ • 56

  • @ucretsiztakipci6612
    @ucretsiztakipci6612 2 роки тому +29

    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!

  • @cankara9919
    @cankara9919 2 роки тому +15

    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.

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +3

      Çok teşekkür ederim. Umarım faydalı ve açıklayıcı olmuştur.

  • @arfzbk
    @arfzbk 2 роки тому +5

    SOLID prensiplerini açıklayıcı ve betimleyici anlatımlarınızla güzel bir şekilde özetlemişsiniz. Ellerinize sağlık…

  • @ahmetdemir7029
    @ahmetdemir7029 2 роки тому +4

    Prensiplerin aynı yerde kullanıldığı gerçekten güzel bir anlatım olmuş. Tebrikler.

  • @ugursesen7629
    @ugursesen7629 2 роки тому +6

    büyüksün patron , emeklerine sağlık :) zevkle izliyorum

  • @togrulceferov702
    @togrulceferov702 2 роки тому +5

    ilk kez bu kadar guzel anlatan kaynakla karsilasdim.Ellerinize saglik hocam :)

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому

      Teşekkür ederim. Umarım faydalı olmuştur

  • @berkcandikeriz
    @berkcandikeriz 9 місяців тому +1

    İnternette bulduğum Medium yazıları veya UA-cam'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

    • @TechBuddyTR
      @TechBuddyTR  9 місяців тому

      Teşekkür ederim :) 4 yaşındaki birisi için zor tabi ama yine de olabildiğinde açık anlatmaya çalışıyorum.

  • @dunyaxanimyusifova9034
    @dunyaxanimyusifova9034 Рік тому +3

    Həqiqətən çox yaxşı izah etmiziniz, Allah razı olsun!

  • @teknolojiuzmaniburada
    @teknolojiuzmaniburada 2 роки тому +2

    Çok teşekkür ederim. Muhteşem. Ellerinize emeğinize sağlık.

  • @chaluri
    @chaluri Рік тому +1

    Muazzam bir video ve anlatım. Emeğine sağlık

  • @eymenbatnyac6050
    @eymenbatnyac6050 Рік тому +1

    Ağzınıza sağlık, mükemmel bir anlatım :)

  • @iamsunline.3273
    @iamsunline.3273 2 роки тому +1

    Hocam çok güzel anlatmışsınız, teşekkür ederim.

  • @ROVAKAN
    @ROVAKAN 3 місяці тому +1

    Cok güzel anlatım , teşekkürler

  • @rizamertyagci
    @rizamertyagci Рік тому +1

    Güzel bir anlatımdı. Elinize sağlık

  • @sametsekerci2821
    @sametsekerci2821 9 місяців тому

    Cok guzel bir video olmuş. Elinize kolunuza ağzınıza sağlık.

  • @huseyincolak5909
    @huseyincolak5909 2 роки тому +4

    Emeğinize sağlık. Çok güzel bir anlatım olmuş.

  • @vehimii
    @vehimii 2 роки тому +1

    Güzel anlatım olmuş, teşekkürler.

  • @mehmettahiryldrm4433
    @mehmettahiryldrm4433 2 роки тому +3

    Çok Teşekkkürler emeğinize sağlık. :)

  • @anl5460
    @anl5460 Рік тому +1

    Gerçekten en iyi anlatımlardan biri olmuş

    • @TechBuddyTR
      @TechBuddyTR  Рік тому +1

      Teşekkür ederim. Umarım faydalı da olmuştur

    • @anl5460
      @anl5460 Рік тому

      @@TechBuddyTR Gerçekten faydalı oldu çok teşekkürler

  • @uraz2164
    @uraz2164 Рік тому +1

    Hocam çok güzel anlatmışsınız teşekkürler

  • @egemenbahtiyar8675
    @egemenbahtiyar8675 Рік тому +1

    Çok güzel anlatım hocam ağzınıza sağlık

  • @halilengin7269
    @halilengin7269 6 місяців тому +1

    En faydalı anlatım

  • @adembulutapp
    @adembulutapp 2 роки тому

    Çok güzel anlatım, ağzına sağlık

  • @by1740
    @by1740 Рік тому

    Emeğinize sağlık. Mükemmel anlatım !!

  • @naibresidov9662
    @naibresidov9662 2 роки тому +2

    Tesekuller

  • @mertcelik7577
    @mertcelik7577 11 місяців тому +1

    mükemmel

  • @hulyagv1895
    @hulyagv1895 2 роки тому +1

    Teşekkürler

  • @mehmetakifsivri9187
    @mehmetakifsivri9187 Рік тому

    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?

  • @soyermert
    @soyermert 2 роки тому

    teşekkürler🙏

  • @ucamayanejderya
    @ucamayanejderya Рік тому

    Hocam Selamlar. Dependenct invercionu ioc de nasıl uygulayacagiz. TripİnfoLoggeri Generic Yaparak mı yoksa kullanacagimiz sinifta (dependency injection yaparken)mecbur newleyecek miyiz

  • @muhammedmustafavanl9463
    @muhammedmustafavanl9463 2 роки тому +3

    🔥🧨

  • @gesat03
    @gesat03 Рік тому

    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?

    • @TechBuddyTR
      @TechBuddyTR  Рік тому

      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 :)

  • @ABars-kx8pq
    @ABars-kx8pq Рік тому

    Ö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.

    • @TechBuddyTR
      @TechBuddyTR  Рік тому

      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 :)

  • @SamandarImamaliyev
    @SamandarImamaliyev 8 місяців тому

    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?

  • @nsh2401
    @nsh2401 3 місяці тому

    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

  • @thesandboxgamingvideos
    @thesandboxgamingvideos 2 роки тому +1

    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 ?

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +2

      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.

  • @necmettinayvaz
    @necmettinayvaz Рік тому +1

    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.

    • @TechBuddyTR
      @TechBuddyTR  Рік тому +1

      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 :)

  • @onurd.3652
    @onurd.3652 2 роки тому +2

    Hocam selamlar. Bütün kodları da paylaşabilir misiniz? Detaylı incelemek istiyorum tüm içeriği. Sevgiler.

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому

      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

  • @JoligonOne
    @JoligonOne 6 місяців тому

    hocam dependency tam oturmadı ya orası biraz karışık oldu, geri kalan süper anlaşılırdı

  • @huseyinunver5172
    @huseyinunver5172 9 місяців тому

    Hocam projenizi indiremiyorum. Link hatalı olabilir yardımcı olabilirmisiniz

  • @homeyasamal8474
    @homeyasamal8474 2 роки тому +3

    Like

  • @CemilArancak
    @CemilArancak 2 роки тому +2

    .net MAUI ile ilgili bir eğitim setiniz olacak mı?

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +2

      Merhabalar, yakın zamanda gelmez. Ben de henüz başlamadım MAUI tarafına. :) Ama ben de öğrenince, mutlaka videosunu çekerim

    • @CemilArancak
      @CemilArancak 2 роки тому +1

      @@TechBuddyTR Teşekkürler. Bekliyorum. Videolarınızı keyif alarak ve beğenerek izliyorum.