Temiz Kod Yazmanın Prensipleri SOLID

Поділитися
Вставка
  • Опубліковано 21 лип 2024
  • Kodlama teknikleri veya temiz kod nasıl yazılır sorularına cevap veriyorum. Kod optimizasyonu için önemli olan solid ilkeleri nesne yönelimli programlama üzerinedir. Senior yazılımcı veya junior yazılımcı olun. İleri düzey yazılım arayışında olan biriyle kod yazma dersleri arayan birinin karşılaşma noktası. SOLID ilkesi nedir ve ne için kullanılır ? C++,Php,Java gibi bütün nesne yönelimli programlama dillerini kapsar. Kodlarınızın temiz ve yeniden kullanılabilir olmasını ister misiniz ?
    00:00 Giriş
    00:20 Solid Nedir
    01:50 Single Responsibility Principle / Tek Sorumluluk Prensibi
    04:35 Open Closed Principle / Açık Kapalı Prensibi
    07:55 Liskov Substitution Principle / Liskov İkame Prensibi
    11:10 Interface Segregation Principle / Arayüz Ayırma Prensibi
    12:05 Dependency Inversion Principle / Bağımlılığı Tersine Çevirme Prensibi

КОМЕНТАРІ • 174

  • @mehmeterenakbulut4934
    @mehmeterenakbulut4934 Рік тому +14

    Ömer Bey, Solid prensipleri gerçekten çok önemlidir. Uluslararası bir yazılım okulunda okuyorum ve dünya genelinde saygınlığı olan büyük bir ağı olan bir programcı okulunda eğitim görüyorum. Kod yazarken bu prensiplere büyük ölçüde dikkat ediyoruz. Bu prensipler, senior yazılımcılarla da sıkça tartıştığımız konular arasında yer alıyor. Harika bir video olmuş, emeğinize sağlık.

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

      AuthService Class ile IAuthService Class'ının bağlantısını anlayamadım. Eren hocam kampüste olduğunuz bi gün bu konuyla ilgili sorular sorabilir miyim.D?
      Bu arada selamlar 42kafası!

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

      ​@@ademberkenargul1075Selamlar hocam ben Melih yeniden yaptın mı Mlx Projesini 😅

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

      @@Kirit_00 Melih hocam selamlar yaptım fakat Player Animasyonunu hallederken çok uğraşmam gerekti o yüzden coin animasyonu ve target ekledim. Pdf'e hala bakmadım ama muhtemelen bunlar 125 almamı sağlar. 🧿🥳

  • @popularsolutions4411
    @popularsolutions4411 Рік тому +6

    Türkiye'de böylesine bir içerik bulupta, böylesine underrated kalması beni inanılmaz şaşırttı. Ülkemizde zaten yazılım, dünyada olduğu kadar popüler değil ancak ülkemizdeki yazılımla ilgili kişilerin de bu kanalı keşfetmemesi çok üzücü. Size tek tavsiyem kanalınıza hiç ara vermeden devam edin, Türkiye'de böyle insanlara, böyle içerik üreticilere ihtiyacımız var...

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

      Teşekkürler. Bu bir süreç bunu biliyorum bu yüzden moral bozmadan devam ediyorum.

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

    Hocam ellerinize sağlık. Gerek sade anlatışınız, gerek örnekler vermeniz konuyu anlama açısından çok faydalı olmuş. Bu tarzda videolarınızı sabırsızlıkla bekliyor olacağım.

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

    kod örnekleriyle, gerçekçi örneklerle anlatımınız için teşekkürler. Başarılı olmanızı diliyorum

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

    Buralar değerlenecek, yerimizi alalım. Değerli bilgiler için teşekkürler 🙏

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

    Kesinlikle katılıyorum, ne zaman karşınıza çıkacağını bilemezsiniz. Öğrenmek ve kendini geliştirmeye devam etmek lazım.

  • @tuzunersafa
    @tuzunersafa 11 місяців тому

    Oldukça güzel bir konu ve video. UA-cam TR'de görmek istediğimiz türden. Elinize sağlık

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

    Emeğinize sağlık yararlı bir içerik olmuş. Tekrar niyetine kısa ve öz örneklere yer vermeniz de güzel olmuş👍🏻

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

    Böyle bir Türkçe kanal bulunca şaşırdım bi anda, hemmen abone olim :)

  • @tuncerozdemir1450
    @tuncerozdemir1450 10 місяців тому

    Gerçekten çok anlaşılır ve akıcı bir video olmuş. Teşekkür ederiz. Bir çok arkadaş işi doğru anlatmaya çalışırken ya çevirilere takılmış yada aynı şeyleri tekrarlayarak işi sıkıcı hale getirmiş.
    Videonuz oldukça profesyonel (Arka planda akan Matrix ekranı da .ok güzel )

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

    Çok güzel içerik, sağlam bir kanal olacağının garantisi niteliğinde. Mimariler ve tasarım desenleri video konularına eklenebilir, bu konularda açık olduğunu düşünüyorum. 🚀🚀

  •  Рік тому

    Çok temiz ve özenli anlatım. Türkçe terim hassasiyetiniz için de ayrıca teşekkürler.

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

    Kac gundur ana sayfama dusuyordu. Sonunda izlemeye karar verdim ve iyiki izledim dedim. Tesekkurler❤.

  • @user-nh7vn6vi1g
    @user-nh7vn6vi1g Рік тому

    Mükemmel anlatım mükemmel bir kişiden. Buralar değerlenir yerimizi alalım.

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

    Neden bu kadar güzel konuşuyorsun. Dikkatim dağıldı. İşin şakası bir yana çok güzel anlatmışsınız. Emeğinize sağlık

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

    Sade ve güzel anlatış, profesyonel bir video. Bu tarz içerikleri merakla bekliyor olacağım, başarılar dilerim.

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

    Uzmn. Bahri'den selamlar, onurlarla...

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

    Gayet güzel ve açıklayıcı bir video olmuş

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

    junior duymamış ajhsjdsaajsd SOLID'ın konu edilmediği mülakat var mı? :DD bayılıyorum böyle popülist yazılımcılara ya

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

    Açıklayıcı ve temiz bir anlatım. Junior bir gelistirici olarak bunların Türkce olarak anlatilmasi gayet iyi

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

    Çok güzel bir kanal. Çok profesyonel hazırlanmış. Tebrik ederim.

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

    Yıllar önce Unreal Engine kursunuzu izlemiştim. O kurs gibi bu videoda harika. Emeğine sağlık.

  • @gorkemkayas
    @gorkemkayas 4 місяці тому

    Böylesine güzel bir anlatım için sonsuz teşekkürler.

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

    Harika bilgilendirici bir video olmuş, elinize sağlık hocam.

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

    Yazılıma yeni baslayanlar için güzel bir anlatım olmuş teşekkürler

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

    çok güzel ve sade bir anlatım olmuş ağzınıza sağlık..

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

    Ancak bu kadar güzel anlatılabilirdi, ağzına sağlık Ömer Hocam Teşekkürler.

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

    Vermiş olduğunuz bilgiler için teşekkürler.

  • @kenanbedirli6495
    @kenanbedirli6495 4 місяці тому

    Ağzınıza sağlık hocam, bir kaç mülakata girip de bu soruyu çok cevapladım ama bu kadar anlaşılır değildi, şimdi daha çok anlıyor ve anlata biliyor olacağım :)))

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

    İlk abonelerinden birisi olduğum için şanslı hissediyorum abi :) seninle çalışmayı çok isterim

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

    Gayet güzel bir anlatım hocam. Teşekkürler

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

    elinize, dilinize sağlık. çok anlaşılır ve güzel anlatmışsınız, teşekkürler.

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

    Çok temiz bir anlatım olmuş. Emeğinize sağlık.

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

    Anlatım sade ve güzel. Teşekkürler

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

    Çok temiz ve sade anlatımınız için teşekkürler

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

    Sağlam video olmuş. Elinize sağlık hocam 🙏🙏

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

    Çok açıklayıcı ve güzel anlatım olmuş teşekkürler 😊

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

    Aramıza hoş geldin :)

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

      Teşekkürler Mert :)

  •  Рік тому

    Harika bir içerik, emeğinize sağlık

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

    Çok iyi anlatım hocam, teşekkürler 👏

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

    yeni bir kanala göre içeriklerin cok kaliteli yakın zamanda güzel yerlere geleceğine inanıyorum ellerine sağlık

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

    Çok kaliteli bir içerik olmuş hocam, teşekkürler.

  • @g0keyn
    @g0keyn 10 місяців тому

    Cok acik ve sade bir anlatim. OOP biliyorum demek yeterli degil.

  • @user-sd1cz1op3v
    @user-sd1cz1op3v Рік тому

    Kaliteli anlatım. Teşekkürler :)

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

    Çok güzel anlatmışsınız, teşekkürler

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

    hocam ağzınıza sağlık açıklayıcı bir video olmuş 🙏🙏

  • @kardano.6114
    @kardano.6114 Рік тому

    Emeğinize sağlık, çok güzel olmuş

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

    hocam çok yararlı olmuş elinize bilginize sesinize sağlık

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

    güzel bir anlatim icin tesekkür ederim.

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

    Çok faydalı bir video olmuş. Kanalınızı yeni keşfettim. Videoların devamını bekleriz. 👏👏👏

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

    Abi çok iyi anlattın bundan sonra hep bu kanaldayım 🤌🤌🤌

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

    Çok güzel anlatmışsın, teşekkür ederim. Devamını dilerim

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

    bilgilendirici video , teşekkürler😇

  • @ato39.
    @ato39. Рік тому

    Faydalı bir video olmuş teşekkürler

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

    Teşekkür ederim. Ağzınıza sağlık

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

    Çok güzel bilgilendirici video teşekkürler 😊

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

    Çok keyifli, öğretici video teşekkürler

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

    Çok iyi bi anlatım. Başarılar dilerim👍

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

    Elinize emeğinize sağlık hocam.

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

    çok güzel anlatım emeğnize sağllık

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

    Ağzına sağlık usta . Güzel bir içerik

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

    eline sağlık güzel sunum.

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

    Yararlı bir video oldu teşekkür ederim

  • @samhaze9688
    @samhaze9688 Рік тому +2

    Hocam advance konulardan bahsedin lütfen mesela mikroservis mimarisi, kubernetes yada devops araçları (rabbitmq, redis, docker) gerçek hayattan senaryolarla anlatsanız mükemmler olur

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

    Hocam kanalınızı yeni keşfettim. Mükemmel bir video olmuş.
    İstek video alıyorsanız, Data Science'a giriş hakkında bir video hazırlayabilir misiniz? İnternette üç beş kaynak var, hepsi de dolar kurlu kursları öneriyor ki Türkiye'de yapması imkansız birşey.

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

    Başarılı anlatım 👍💯

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

    Güzel çalışma olmuş teşekkürler

  • @batuhan-demir
    @batuhan-demir Рік тому

    Teşekkürler, elinize sağlık

  • @UK-lp7no
    @UK-lp7no Рік тому

    Bu konularda Turkce iceriklerin olmasi cok guzel. Tebrikler ve umarim kanali ilerletirsiniz.

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

    Emeğinize sağlık :))

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

    Emeğinize sağlık 👏

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

    çok eğitici video devamı gelmeli

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

    Arkadaslar solid kod yazmak sizi gelistirir ve daha hizli kod yazmaniza olanak saglar. Sebebi ise solid kod yazilmadigi durumlarda hep bas karisikligi olusur ve bir konu uzerinde uzun dusunulmesine sebep olur solid kod yazildiginda ise bu olay bas vermez ve daha hizli ve rahat kod yazilir ve yeni bir anlayisin ilave edilmesine rahatlikla olanak saglar ve hic bir problem cikmaz. Aslinda bu hic gereksiz konu degil.

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

    Kaliteli içerik abone oldumm.

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

    Ağzınıza sağlık

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

    Süper! 👏

  • @GarfieLD-Mami
    @GarfieLD-Mami Рік тому

    Çok teşekkürler

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

    Elinize sağlık

  • @osmanozturk8838
    @osmanozturk8838 Місяць тому

    Teşekkürler

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

    Teşekkür ederiz

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

    Teşekkürler.

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

    güzel video ♥

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

    Ömer Hocam, elinize sağlık. Video hem içerik olarak hemde görüntü olarak çok kaliteli. Ben de SwiftUI için videolar çekiyorum. Açıkçası bende de yeni fikirler oluşturdu. "Acaba videolarda kendimi göstersem mi?" sorusunu düşündürdü.

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

      Farklı sonuçlar için farklı şeyler denemeliyiz bence :) Bir kaç videona baktım konu anlatımın gayet iyi. Bir kaç değişiklik iyi olabilir.

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

      @@merbekta Eleştirilerini ve önerilerini dinlemek çok isterim. Teşekkürler :)

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

    güzel video olmuş

  • @freelife9228
    @freelife9228 4 місяці тому

    Liskov's Substitution Principle'da anallatıklarınız sanki birebir Integral Segregation gibi.

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

    Temiz bilgiler için teşekkür ederim :) 7:50'de parametre türünün sonuna eklenen "&" ile referansa mı işaret ediliyor?

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

    👏🏻

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

    Eyvallah hocam. Alaylı programcılara böyle mühendislerin çıkıp bir şeyler öğretmesi gerçekten değerli. Teşekkürler

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

      Aslında önemli olan birisinin bir konuda bilgi ve deneyimini paylaşmasıdır, alaylı veya mühendis olması önemli değildir. Öğrenmek ve gelişmek için herhangi bir kaynaktan faydalanmak değerlidir. İyi bir programcı olmanın yolu, sürekli öğrenmek ve yeni bilgileri uygulamaktan geçer. Önemli olan, temiz kod yazma prensipleri gibi konularda bilgilenmek ve bu prensipleri pratiğe dökmektir.

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

    hocam c++ eğitim videoları gelir mi düzenli bir sekilde

  • @enesaytekin5827
    @enesaytekin5827 4 місяці тому

    Anlatın için çok teşekkür ederim. Liskov ile Single Responsibility ayıran fark nedir?
    İkisinde fonksiyonun tek bir işi yapması gerektiğini anladım :)

    • @merbekta
      @merbekta  4 місяці тому

      Single responsibility birden fazla iş yapan kodlardan kaçınmak. Liskov ise gereksiz miras özelliklerini almaktan kaçınmak. Yani Liskov diyor ki "bir alt sınıf, üst sınıfın yerine kullanılabilir olmalıdır" eğer sen üst sınıftan fonksiyon alıp kullanmıyorsan o zaman alt sınıf olarak üst sınıfın yerine kullanılamazsın. Bu prensipler birbirine çok yakın sorunları çözdüyor o yüzden kesin hatlar ile ayırmaya çalışma bence. Mesala Liskov "Open-Closed" prensibini destekleyen şeyler de söylüyor.

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

    Hocam her zaman SOLID ilkelerine sıkı sıkıya bağlı kalmak, gereksiz yere karmaşık tasarımlara yol açabilir. Her durumda bu ilkeleri uygulamak yerine, onları gerektiğinde esnek bir şekilde kullanmak genellikle daha iyidir 👍

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

      Her zaman öyle değil mi zaten ? Her şeyin fazlası zarar :)

  • @hexafgamer
    @hexafgamer 11 місяців тому

    hocam 3 maddeyi liskov zaten devredışı bırakıyor. sadece liskov ve dependecy invesion yeterli oluyor galiba

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

    Bu kanal değerlenir, yerimizi alalım.

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

    👏👏

  • @letmesolotree
    @letmesolotree 7 місяців тому

    Bunu js ile anlatsan süper olur

  • @yusufgncr4359
    @yusufgncr4359 Рік тому +13

    Arkadaşlar bunlara uymayın ki yapay zeka anlayamasın😅

  • @TheEmqe
    @TheEmqe Місяць тому

    hocam single responsibility bir işi yapıyor dediniz.
    Domain Driven Desingn diye bir pattern var ve gördüğüm kadarıyla Entity içinde constructor ya da bir method içinde işlemler yaptırabiliyorlar. örnek vermem gerekirse. Order domain'i içinde order item eklemesi yapılıyor. Bu sebepten DDD solid aykırı olmuş oluyor mu ?

    • @merbekta
      @merbekta  Місяць тому

      Tek iş değilde, "tek tür sorumluluk" demek belki daha iyi olur. Order entity sınıfı içerisinde additem,removeitem gibi fonkssiyonlar olması aykırı olmaz. Sonuç olarak additem,removeitem işlemleri order olayından bağımsız işler değil. Umarım doğru anlamışımdır sorunu

    • @TheEmqe
      @TheEmqe Місяць тому

      @@merbekta şunu demek istedim order sınıfı db'de bir tabloya işaret ediyor yani görevi order verisini tutmak değil mi ? ya da ben DDD deki order sınıfını yanlış mı anladım. bahsedilen order bir iş katmanını temsil ediyor. yani db'deki order tablosu farklı bir class mı ?

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

    Anlatım harika. Video da bi o kadar güzel. Yalnız benim bir sorum olacak? Ben oyun geliştirme ile ilgileniyorum ve oyunları yaparken SOLID prensiplerine elimden geldiğince dikkat etmeye çalışıyorum fakat genellikle "acaba nasıl yazsam daha iyi olur?" gibi düşünüyorum fakat aklıma gelmiyor videodaki gibi düzgün ve düzenli yapmak.Bu konuda kendimi nasıl geliştirebilirim? (Yazılım mühendisliği 2. sınıf öğrencisiyim ve yaklaşık 1 yıldır oyun geliştirme ileilgileniyorum.)

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

      Design patterns konularının tamamına bakabilirsin. Bu konular ile ilgili küçükte olsa bol bol örnek yapmak faydalı olacaktır.

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

      @@merbekta Anladım. Teşekkürler yanıtınız için.

  • @baranbatur3081
    @baranbatur3081 6 днів тому

    java da multiple extends olayı yok ama liskovu nasıl entegre edeceğiz ozaman

    • @merbekta
      @merbekta  4 дні тому

      Evet java çoklu kalıtım desteklemiyor. Çoklu kalıtım interface ile çözülüyor.

  • @Emirhan-tw3xr
    @Emirhan-tw3xr Рік тому

    Hocam çok güzel videolarınız var cidden. UA-cam a yenimi başladınız? Çok profosyonel duruyor videolarınız. Elinize sağlık

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

      Evet ilk diyebilirim. Teşekkür ederim.