SOLID - Liskov Substitution Principle #5 - Design Principles Eğitimleri

Поделиться
HTML-код
  • Опубликовано: 18 дек 2024

Комментарии • 44

  • @utkuhazargel8932
    @utkuhazargel8932 9 месяцев назад +2

    puzzle yapmak gibi her bir parçayı yerine cuk diye oturtuyorsunuz. üstelik çok açıklayıcı bir şekilde anlatıyorsunuz teşekkürler

  • @themedenii
    @themedenii 18 дней назад +1

    Yazılım işini anlamak isteyenler için kanalınız bir hazinedir hocam.

  • @oguz231
    @oguz231 Год назад +2

    videoya başlamadan yorumumuzu yapalım. emeğiniz için teşekkürler hocam

  • @E_G_
    @E_G_ 2 года назад +4

    Teşekkürler, buradaki örnekleri shorts olarak paylaşarak daha fazla kişilere ulaşılabilir

  • @koraybapoglu
    @koraybapoglu Год назад +1

    Bu bir destek mesajıdır. SOLID - Liskov Substitution Principle #5 - Design Principles Eğitimleri

  • @suleyman_aslan
    @suleyman_aslan 2 года назад +3

    Beklene yeni video gelmiş hemen girdik emeğinize sağlık

  • @cleandeveloper
    @cleandeveloper 9 месяцев назад +1

    hocam verdiğiniz örnekler çok iyi, hem ideal olan hem de olmayan senaryoyu gördüğümde konu kafamda cuk diye oturuyor

  • @sadaharu_tr
    @sadaharu_tr 2 года назад +3

    Akıyor maşallah bu hafta kanal hocam.

  • @sahincandemir301
    @sahincandemir301 Год назад +2

    Budur, Elinize sağlık hocam.

  • @elifgokpinar17
    @elifgokpinar17 Год назад +2

    çok anlaşılır bir anlatım, teşekkürler

  • @yazilimciMotorcu
    @yazilimciMotorcu Год назад +3

    hocam harikasiniz. yine mukemmel videolar geliyor. ve aciklayici olmasi ile tam oturuyor
    tesekkurler

  • @murad-dov
    @murad-dov 2 года назад +8

    Allah razı olsun hocam tek kelimeyle efsanesiniz

  • @hikmetfazila6299
    @hikmetfazila6299 2 года назад +3

    emeğinize sağlık hocam. teşekkürler

  • @samirvaliyev
    @samirvaliyev Год назад +2

    Emeğinize sağlık Hocam

  • @the-ghost-in-the-machine1108
    @the-ghost-in-the-machine1108 Год назад +2

    süper anlatım, teşekkürler.

  • @cinarmurat
    @cinarmurat 2 года назад +6

    Kapsamlı bir reaktif programlama eğitimi gelir mi hocam?

  • @uzeyira.2982
    @uzeyira.2982 2 года назад +3

    Teşekkürler hocam

  • @ertanciller1924
    @ertanciller1924 2 года назад +3

    Elinize sağlık hocam süpersiniz..

  • @ardadogrul6578
    @ardadogrul6578 2 года назад +1

    14:28 aman hocam 😄 (ağzınıza sağlık çok iyi anlatmışsınız.)

  • @furkan3946
    @furkan3946 2 года назад +2

    Teşekkürler hocamm

  • @yazilimciyizBiz
    @yazilimciyizBiz 2 года назад +2

    16.10.2022 izledim. SOLID - Liskov Substitution Principle #5 - Design Principles Eğitimleri

  • @Sncyigido
    @Sncyigido 2 года назад +2

    Değerli bilgileriniz için saolun hocam

  • @RoyZASTEROiD
    @RoyZASTEROiD 2 года назад +2

    Cok sagolun.

  • @oguzhan543
    @oguzhan543 2 года назад +2

    💯💯💯

  • @nouchance
    @nouchance 2 года назад +1

    Thank you Sir

  • @geziyurdum
    @geziyurdum 2 года назад +2

    Soru : Hocam şimdi dediğiniz gibi iki adet method açısından çok şık ve mantıklı duruyor ancak bu durum şöyle olsaydı Cloud sınıfında 100 adet method olsaydı Google bunlardan 20 sini, AWS bunlardan 50 sini Azure ise 45 ini kapsıyor ve bunlardan arta kalanlarda diğer sınıflarda bir kullanılıyor bir kullanılmıyor olsa idi bu kapsayanlar için tek bir abstract yapıpta kapsamayanların her biri için ayrı ayrı interface tanımlıyor olacaktık nihai hedefe ulaşmak için , ancak haliyle bu durumda Google sınıfı : Cloud ,Ix,Iy,Iz........Ibilmemne gibi epey bir interface yi implemente etmesi best practice veya kod yazımına aykırı bir durum mudur.Biraz karışık oldu ama umarım anlatabilmişimdir derdimi.Şimdiden teşekkürler.

    •  2 года назад +3

      Evet, öyle olacaktı ve bu durum o ihtiyaca istinaden hiçte best practices yahut kod yazımı açısından aykırı bir durum olmayacaktı. Zaten esas o tarz yoğun operasyonların söz konusu olduğu senaryolar için bu prensipler daha elverişli ortamlar sağlamaktadırlar.
      Sevgiler...

  • @yasinclsk
    @yasinclsk 2 года назад

    hocam diyelim ki Google ve AWS biz projeyi geliştirdiğimiz esnada her ikisi de hem translate hem de machine learning süreçlerini yönetebilsin. Bizde bu süreci oluşturduğumuz Cloud abstract classı üzerinden IoC container üzerinden Cloud nesnesi aracılığıyla yönetelim. İlerleyen süreçte AWS artık translate hizmeti vermediğini açıkladığını varsayalım. ITranslatable arayüzü oluşturup süreci onun üzerinden yürütmek istediğimizde artık Cloud nesnesi üzerinden Translate methodunu çağıramaz duruma gelicez ve tüm proje üzerinde Cloud nesnesinin kullanıldığı her yerde değişiklik yapmak gerekecek.
    Aşağıdaki işlemde tüm süreci Cloud nesnesi üzerinden yönettim.
    public class CloudController : ControllerBase
    {
    private Cloud _cloud;
    public CloudController(Cloud cloud)
    {
    _cloud = cloud;
    }
    [HttpGet("translate")]
    public IActionResult Translate(string x)
    {
    _cloud.Translate();
    return Ok(x);
    }
    [HttpGet("maclearn")]
    public IActionResult MachineLearning(string x)
    {
    _cloud.MachineLearning();
    return Ok(x);
    }
    }
    Buradaki işlemde de translate işlemini farklı bir arayüz(ITranslatable) ile sağladım.
    public class CloudController : ControllerBase
    {
    private Cloud _cloud;
    private ITranslatable _translatable;
    public CloudController(Cloud cloud, ITranslatable translatable)
    {
    _cloud = cloud;
    _translatable = translatable;
    }
    [HttpGet("translate")]
    public IActionResult Translate(string x)
    {
    _translatable.Translate();
    return Ok(x);
    }
    [HttpGet("maclearn")]
    public IActionResult MachineLearning(string x)
    {
    _cloud.MachineLearning();
    return Ok(x);
    }
    }
    Bu iki operasyon arasında translate operasyonunu değiştirmek için, "_cloud.Translate()" işlemi yerine "_translatable.Translate()" işlemini kullandım. Büyük bir projede onlarca farklı yerde bu işlemi düzeltmek zor ve maliyetli olur diye düşünüyorum. Mimariyi bu süreçte nasıl daha doğru hale getirebiliriz?

  • @YunusEmre-tc8ql
    @YunusEmre-tc8ql Год назад +2

    müko

  • @mustafagasimzada5477
    @mustafagasimzada5477 2 года назад +2

    👍👍

  • @salihguresken1422
    @salihguresken1422 2 года назад +2

    👏👏

  • @kilicarslan5976
    @kilicarslan5976 2 года назад +2

    KİNG!

  • @semihatalay865
    @semihatalay865 7 месяцев назад +1

    Liskov adı nereden geliyor diye merak edenler için adını "Barbara Liskov" adlı bilgisayar uzmanı ablamızdan almıştır. İnşallah bir gün biz de milli gururumuz "Gencay Principles" olarak yazılım dunyasında yer edinecegiz :)

    •  7 месяцев назад +1

      Bizim prensibimiz yıllar öncesinde duyuruldu kardeşim... Ameleus :) Adı kanımızda saklı :)

  • @fatihcambel
    @fatihcambel 11 месяцев назад +1

    28:17

  • @begumcelik2791
    @begumcelik2791 2 года назад +1

    Teşekkürler hocam. Bu prensip ile Interface Segregation çok karışıyor ki bunda da çözüm Interface e ayırarak yaptık hatta IMachinelearning interface i olarak ayırsaydık ki ayırabilirdik o zaman tam ISP oluyordu o zaman Cloud diye birşey kalmayacaktı. Burada amaç Cloud gibi bir sınıftan kesinlikle kalıtım alındığı durumlar mı?

    •  2 года назад +6

      Aslında karışmıyor. Liskov, alt sınıfların kendi aralarında problemsiz yer değiştirebilmesini öneriyor. Bunun için bizler problem yaratabilecek davranışları ayırma ve kullanılacak sınıflara dahil etme yöntemini kullanıyoruz. Burada ISP'den temeldeki farklardan biri niyet bir diğer ise ortak olan davranışlar varsa base'de tutulmasıdır. ISP'de ise farklı yettenekleri farklı arayüzlerle temsil etmek gibi bir niyet var. Evet, Liskov ile paralellik arz edebilir ama zaten prensipler ve hatta pattern'lar içe içedir diyebiliriz.
      Ayriyeten Liskov, Open/Closed prensibinin de amca oğludur diyebiliriz. Nihayetinde sistemde ITranslatable interface'inin genişletilebilirlik özelliği söz konusu olabilmektedir. Bu açıdan OCP'ye benzerlik göstermektedir.
      Bir yandan da OCP'ye bakarsanız özünde Dependency Inversion prensibiyle paralel doğrultudadır. .. Felan :)
      Yani SOLID prensiplerinin hepsi('S' hariç), aşağı yukarı soyutlama konusunda mutabıklardır ve bu soyutlamanın doğru noktada kullanılması konusunda farklarını ortaya koymaktadırlar diyebiliriz.
      Sevgiler.

  • @omerakkus730
    @omerakkus730 Год назад +1

    Funda Bismillah

  • @ikrtkn
    @ikrtkn 2 года назад +1

    🛠⚒📙✏👍💯🤣

  • @mehmetsayn573
    @mehmetsayn573 9 месяцев назад +2

    Alet cantasinda gerek olmayan bir aleti cantaya koyma. Yani base classta sub classin kullanmayacagi method ya da property tanimlama. Ahlakli ol.

  • @farukakpnar2265
    @farukakpnar2265 6 месяцев назад +1

    CUK

  • @aciltedarikdeposu4326
    @aciltedarikdeposu4326 2 года назад +5

    EĞİTİME YENİ BAŞLAYAN ARKADAŞLARA HİTABEN !
    Onlarca video izledin, x,y,z platformlardan bir çok eğitim satın aldın, aradın taradın günler haftalar aylar geçti hasbel kader buraya geldin sonunda doğru yerdesin👏
    Evet şuan Tek Kişilik Dev Kadro GENÇAY YILDIZ👑hocamız ile burası NG AKDEMİ.
    İzlediğin videolarda anlamadığın bir yer olmayacak garanti veriyorum. Sabırlı ol !! Notlarını güzelce al.
    Birde senden küçük bir ricamız olacak kanalımızı yani artık senin kanalını başka platformlarda forumlarda işte okulda çevrende her yerde paylaşmanı istiyorum. Çünkü bu kanal memleketin yazılım meselesini kendine görev edinmiş bir kanal. Şu dizelerle birlikte iyi çalışmalar diliyorum.
    Gidilecek yol uzun,
    Öğrenecek şey fazla,
    Yanmak gerek,
    Sabretmek gerek...

  • @yusufkoraycan4607
    @yusufkoraycan4607 2 года назад +2

    Teşekkürler hocam

  • @mehmetalimergen48
    @mehmetalimergen48 2 года назад +1

    Emeğinize sağlık hocam. Teşekkürler