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
Ö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.
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ı!
@@ademberkenargul1075Selamlar hocam ben Melih yeniden yaptın mı Mlx Projesini 😅
@@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. 🧿🥳
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...
Teşekkürler. Bu bir süreç bunu biliyorum bu yüzden moral bozmadan devam ediyorum.
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.
kod örnekleriyle, gerçekçi örneklerle anlatımınız için teşekkürler. Başarılı olmanızı diliyorum
Buralar değerlenecek, yerimizi alalım. Değerli bilgiler için teşekkürler 🙏
Kesinlikle katılıyorum, ne zaman karşınıza çıkacağını bilemezsiniz. Öğrenmek ve kendini geliştirmeye devam etmek lazım.
Oldukça güzel bir konu ve video. UA-cam TR'de görmek istediğimiz türden. Elinize sağlık
Emeğinize sağlık yararlı bir içerik olmuş. Tekrar niyetine kısa ve öz örneklere yer vermeniz de güzel olmuş👍🏻
Böyle bir Türkçe kanal bulunca şaşırdım bi anda, hemmen abone olim :)
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 )
Ç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.
Kac gundur ana sayfama dusuyordu. Sonunda izlemeye karar verdim ve iyiki izledim dedim. Tesekkurler❤.
Mükemmel anlatım mükemmel bir kişiden. Buralar değerlenir yerimizi alalım.
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
Sade ve güzel anlatış, profesyonel bir video. Bu tarz içerikleri merakla bekliyor olacağım, başarılar dilerim.
Uzmn. Bahri'den selamlar, onurlarla...
Gayet güzel ve açıklayıcı bir video olmuş
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
Açıklayıcı ve temiz bir anlatım. Junior bir gelistirici olarak bunların Türkce olarak anlatilmasi gayet iyi
Çok güzel bir kanal. Çok profesyonel hazırlanmış. Tebrik ederim.
Yıllar önce Unreal Engine kursunuzu izlemiştim. O kurs gibi bu videoda harika. Emeğine sağlık.
Böylesine güzel bir anlatım için sonsuz teşekkürler.
Harika bilgilendirici bir video olmuş, elinize sağlık hocam.
Yazılıma yeni baslayanlar için güzel bir anlatım olmuş teşekkürler
çok güzel ve sade bir anlatım olmuş ağzınıza sağlık..
Ancak bu kadar güzel anlatılabilirdi, ağzına sağlık Ömer Hocam Teşekkürler.
Vermiş olduğunuz bilgiler için teşekkürler.
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 :)))
İlk abonelerinden birisi olduğum için şanslı hissediyorum abi :) seninle çalışmayı çok isterim
Gayet güzel bir anlatım hocam. Teşekkürler
elinize, dilinize sağlık. çok anlaşılır ve güzel anlatmışsınız, teşekkürler.
Çok temiz bir anlatım olmuş. Emeğinize sağlık.
Anlatım sade ve güzel. Teşekkürler
Çok temiz ve sade anlatımınız için teşekkürler
Sağlam video olmuş. Elinize sağlık hocam 🙏🙏
Çok açıklayıcı ve güzel anlatım olmuş teşekkürler 😊
Aramıza hoş geldin :)
Teşekkürler Mert :)
Harika bir içerik, emeğinize sağlık
Çok iyi anlatım hocam, teşekkürler 👏
yeni bir kanala göre içeriklerin cok kaliteli yakın zamanda güzel yerlere geleceğine inanıyorum ellerine sağlık
Çok kaliteli bir içerik olmuş hocam, teşekkürler.
Cok acik ve sade bir anlatim. OOP biliyorum demek yeterli degil.
Kaliteli anlatım. Teşekkürler :)
Çok güzel anlatmışsınız, teşekkürler
hocam ağzınıza sağlık açıklayıcı bir video olmuş 🙏🙏
Emeğinize sağlık, çok güzel olmuş
hocam çok yararlı olmuş elinize bilginize sesinize sağlık
güzel bir anlatim icin tesekkür ederim.
Çok faydalı bir video olmuş. Kanalınızı yeni keşfettim. Videoların devamını bekleriz. 👏👏👏
Abi çok iyi anlattın bundan sonra hep bu kanaldayım 🤌🤌🤌
Çok güzel anlatmışsın, teşekkür ederim. Devamını dilerim
bilgilendirici video , teşekkürler😇
Faydalı bir video olmuş teşekkürler
Teşekkür ederim. Ağzınıza sağlık
Çok güzel bilgilendirici video teşekkürler 😊
Çok keyifli, öğretici video teşekkürler
Çok iyi bi anlatım. Başarılar dilerim👍
Elinize emeğinize sağlık hocam.
çok güzel anlatım emeğnize sağllık
Ağzına sağlık usta . Güzel bir içerik
eline sağlık güzel sunum.
Yararlı bir video oldu teşekkür ederim
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
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.
Başarılı anlatım 👍💯
Güzel çalışma olmuş teşekkürler
Teşekkürler, elinize sağlık
Bu konularda Turkce iceriklerin olmasi cok guzel. Tebrikler ve umarim kanali ilerletirsiniz.
Emeğinize sağlık :))
Emeğinize sağlık 👏
çok eğitici video devamı gelmeli
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.
Kaliteli içerik abone oldumm.
Ağzınıza sağlık
Süper! 👏
Çok teşekkürler
Elinize sağlık
Teşekkürler
Teşekkür ederiz
Teşekkürler.
güzel video ♥
Ö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ü.
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.
@@merbekta Eleştirilerini ve önerilerini dinlemek çok isterim. Teşekkürler :)
güzel video olmuş
Liskov's Substitution Principle'da anallatıklarınız sanki birebir Integral Segregation gibi.
Temiz bilgiler için teşekkür ederim :) 7:50'de parametre türünün sonuna eklenen "&" ile referansa mı işaret ediliyor?
Evet referans
👏🏻
Eyvallah hocam. Alaylı programcılara böyle mühendislerin çıkıp bir şeyler öğretmesi gerçekten değerli. Teşekkürler
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.
hocam c++ eğitim videoları gelir mi düzenli bir sekilde
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 :)
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.
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 👍
Her zaman öyle değil mi zaten ? Her şeyin fazlası zarar :)
hocam 3 maddeyi liskov zaten devredışı bırakıyor. sadece liskov ve dependecy invesion yeterli oluyor galiba
Bu kanal değerlenir, yerimizi alalım.
👏👏
Bunu js ile anlatsan süper olur
Arkadaşlar bunlara uymayın ki yapay zeka anlayamasın😅
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 ?
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
@@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ı ?
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.)
Design patterns konularının tamamına bakabilirsin. Bu konular ile ilgili küçükte olsa bol bol örnek yapmak faydalı olacaktır.
@@merbekta Anladım. Teşekkürler yanıtınız için.
java da multiple extends olayı yok ama liskovu nasıl entegre edeceğiz ozaman
Evet java çoklu kalıtım desteklemiyor. Çoklu kalıtım interface ile çözülüyor.
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
Evet ilk diyebilirim. Teşekkür ederim.