Elektrik Mühendisliği İlkeleri
Mastering Solid Principles için en iyi kaynaklar ve kitaplar
Table of Contents
SOLID ilkeleri modern yazılım mühendisliğinde nesne odaklı tasarım yataklıdır. 2000'lerin başlarında Robert C. Martin tarafından yapılan bir disiplindir, bu beş kılavuzluk geliştiriciler, uygulama için size rehberlik etmek için daha kolay olan kod oluşturmalarına yardımcı olur.Bu makaleye göre, mevcut olan kaynakları yazma konusunda ciddi bir şekilde bilgi sahibi değildir - her ilkeyi ölçeklenebilir mimari ile ilgili pratik tavsiyelerde bulunan bir disiplindir.
SOLID İlkeleri Nedir?
Kaynaklara girmeden önce, her ilkenin net bir resmini elde etmeye yardımcı olur. acronym SOLID öne çıkıyor:
- [FONT=0) Tek Sorumluluk Prensi (SRP)) - Bir sınıf sadece bir değişiklik için bir nedene sahip olmalıdır.
- [FONT:0) Açık / Kısa Prensip (OCP)) - Yazılım varlıkları uzatma için açık olmalıdır ancak değişiklik için kapalı olmalıdır.
- [FONT:0)Liskov Substitution Prensliği (LSP))[Trips, temel türleri için altüst olmalıdır.
- [FONT=0) Interface Segregation Prens (ISP))[değiştirmedikleri arayüzlere bağlı olmak zorunda kalmamalıdır.
- [DIP)[0]Dependency Invers Prensipleri (DIP)[DIP)[DFLT:1).
Her prensibi izolasyonda anlamak sadece ilk adımdır. Gerçek güç onları birlikte uyguladığınızda, genellikle strateji, fabrika veya bağımlılık enjeksiyonu gibi tasarım kalıpları ile ortaya çıkmaktadır. Aşağıdaki kaynaklar her ilke için temel teori ve el-on uygulama sağlamak için seçilir.
Tek Sorumluluk Prensi (SRP)
SRP, sınıf veya modülin bir tane olması gerektiğini ve sadece bir tane, değişmenin nedeni olduğunu belirtir. Bu basit geliyor, ancak pratikte blogged sınıflara karşı sürekli vigilance gerektirir.()Temiz Kodu) Robert C. Martin tarafından küçük bir ödeme kaydı sistemini yeniden düzenlemeyi vurgular.
Açık / Kısa Prensip (OCP)
OCP, mevcut kodu değiştirmeden uzatılabilir modüller tasarlamanızı teşvik eder. Bu ilke, mimari ve çerçevelere merkezidir. Klasik örnek, yeni davranışlar eklemek için miras veya kompozisyon kullanır.InÜD:0) OCP'nin C# ve .NET uygulamaları için geçerli olduğunu gösterir.C# ve Şablon Yöntemi gibi modeller için.Instr|modern bir perspektif için Microsoft'un belgeleri.
Liskov Altung Prensliği (LSP)
LSP, miras hiyerarşilerinin iyi tasarlanmış olmasını sağlar: Bir program bir temel sınıf kullanırsa, elde edilen sınıflarla doğru çalışmalıdır.Rekletions genellikle koşullu kontrol türlerine yol açar. Barbara Liskov'un orijinal tanımı akademikdir, ancak Robert C. Martin'in tedavisi doğru bir şekilde yapılır:0Agile Principles, Desenler ve Uygulamaları[FLT 1: 1 )
Interface Segregation Principles (ISP)
ISS, büyük arayüzleri daha küçük, odaklanmış olanları tavsiye eder, böylece müşterilerin sadece kullandıkları yöntemlere bağlı olarak ihtiyaç duyduklarını gösterir.Bu ilke doğrudan bağlantıya dayalı arayüz tasarımıyla ilgili olarak, ISST:2.NETOcean'ın ISS makalesi) Java örnekleri ile açık bir açıklama sağlar.
Bağlanma Prensipleri (DIP)
DIP, düşük seviyeli modüllere geleneksel yüksek seviyeli bağımlılıkları döndürür: Her ikiniz de soyutlamalara bağlı olmalıdır. Bu ilke, bağımlılık enjeksiyonu (DI) ve IoC konteynerleri. Martin'in kitapları DIP'i şu anda bilinen "Copy" programıyla gösterir, yüksek seviyeli bir modül, bir beton klavyeden ziyade bir Okuyucu soyutlamaya bağlıdır.
Mastering SOLID Principles for Mastering SOLID Principles
Kitaplar en yazar ve kapsamlı kaynaklar olarak kalır. Aşağıda, her bir kapak ve neden önemli olan konularda ayrıntılarla genişletilir.
Çevik Yazılım Geliştirme, Prensipler, Desenler ve Uygulamaları
Robert C. Martin ve Micah Martin tarafından yazılan bu kitap, SOLID'deki kesin metindir. Bölüm C++ ve Java'daki ayrıntılı açıklamalar ve kod örnekleri ile ilkeleri tanıtıyorum. Bölüm II. Bölüm, onları tam bir maaş kayıt sistemi vaka çalışmasına uygularsa, tasarım desenlerini nasıl ortaya koyar ve Fabrika da doğal olarak SOLID'den çıkar.
Temiz Kod: Bir El Kitabı Çevik Yazılım Gemisi
[FONT=0)Temiz Kodu [DÜDÜDÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞ
Tasarım Desenleri: Reusable Object-Oriented Software
Dört klasik hediyenin çetesi 23 tasarım desenleri, çoğu doğrudan SOLID ilkelerine ait uygulamalarıdır. Örneğin, Strateji kalıpları OCP, Özet Fabrika modeli DIP'i desteklerken, kitap SOLID'den nasıl bahsetmez (bir suçsuz) söz konusu değildir, ancak arayüzler, kompozisyon ve tek sorumluluklar açısından düşünmeniz için sizi anlamak için ipuçları verir.
Pragmatik Programı
Andrew Hunt ve David Thomas tarafından, bu kitap yazılım zanaatkarlığı konusunda zamansız tavsiyeler sunar.Prague, DRY ve orthogonality, “İyi Yazılımlar” üzerine bölümlere, “Tracer Bullets” ve "İyi Tasarımların Essence of Good Design" ilkelerin yanında içselleştirilmenize teşvik eder.
Tamamlanan Kitaplar Mentioning
- [FONT=0]Ortak UML ve Desenler[Dönemli UMLT:0) Craig Larman tarafından [FONTS) tarafından [FONTS ilkelerine ek olarak, SOLID'yi tamamlayan ve sorumluluk odaklı tasarım üzerine güçlü bir bölüm içerir.
- [FONT=0)Head First Design Desenleri[[DÜT:1) Freeman, Robson ve Sierra tarafından kullanılmaktadır - SOLID'ye güvenen kalıpları ve egzersizlerini kullanın.
- [FONT=0)Temiz Mimarlık[DÜDÜT-1) Robert C. Martin tarafından devralınması: SOLID ilkelerinin sistem düzeyinde mimariye genişletilmesi, sınır tabakalarının ve bağımlılık kurallarının nasıl etkinleştirilebileceğini açıklama.
Online Dersler ve mams
Yapılı dersler egzersiz ve testlerle ilgili öğrenme sağlar. İşte platformlarda en iyi seçeneklerden bazılarıdır.
Pluralsightsight
Pluralsight, SOLID'ye odaklanan birkaç yüksek kaliteli derse sahiptir. "SOLID Principles for C# Developers" by Steve Smith is a perennial favorite.It cover each prensibi with real-world C# code, rephaing practices, and testzes. Başka bir kurs, "SOLID Principles for Java Developers" aynı zamanda titiz bir şekilde atfedilir. Plural Enjeksiyon ayrıca derin bir şekilde dalışlar sunar.
Udemy
Udemy'nin katalogu, düzinelerce SOLID ile ilgili kurslar içerir. "Design Patterns in C# and .NET" by Dmitri Nesteruk tüm bölümlere C# örnekleriyle bağlı olarak "SOLID İlkeleri: Yazılım Geliştiricisinin Esnek ve Korumalı Kodlara Kılavuzu", Matthew Henson tarafından düzenli olarak satışa sunuldu, proje bazlı bir kurs.
Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn Microsoft Learn
Microsoft'un resmi öğrenme platformu, yazılım tasarım ilkeleri hakkında modüller içerir.TheETHFLT:0)Implement SOLID Principles in C++) modülü C++ geliştiricileri için bir örnektir. Daha geniş bir şekilde, "Architect modern web uygulamaları ASP.NET Core" öğrenme yolu DIP, OCP ve SRP .NET kapsamında .NET.
YouTube ve Free Video Kaynakları
Birkaç YouTube kanalı mükemmel SOLID içeriği sunuyor.Ücretsiz:0)Derek Banas, Java ve Python'da tüm beş ilkeyi açıklayan bir ders programına sahiptir.Guru[DFLT:2).Programlama Mosh ile birlikte animasyon[Derekt 3 ve [[Derekt|Derek][Derekt|Derek][/DÜye Olmayanlar)[DÜye Olmayanlar için iyi bir başlangıç dersidir.
Ek Kaynaklar ve Araçlar
Kitaplar ve kurslar ötesinde, aşağıdaki web siteleri ve araçlar, günlük çalışmada SOLID'i uygulamanıza yardımcı olabilir.
Refaksiyon.Guru
Bu web sitesi tasarım desenleri ve SOLID açıklamalarının büyük bir katalogunu sunar. Her ilke, birçok dilde ayrıntılı bir açıklama, gerçek dünya analogları ve kod örnekleri (C#, Java, PHP, Python, vs.) ve özet tabloları, ilkeleri karşılaştırmak için kolay hale getirir.Refaktoring.Guru ayrıca, çoğu zaman büyük sınıflardan (SRP ihlal) veya özellik envy (ISP ihlal) gibi kod kokularının bir koleksiyonunu korur.
Kaynaklama
Kaynaklama tasarım desenleri, anti-patterns ve refaksiyon teknikleri sunar.Puru, Refaksiyondan daha az parlatılır, özellikle SOLID ve GRASP arasındaki ilişki üzerine, SOLID ve GRASP ile ilgili olarak site, SOLID'nin nereye uygulandığı veya ihlal edildiğine dair vaka çalışmaları içerir.
Microsoft Docs – .NET Architecture Guide
Microsoft'un modern .NET mimarisine dair belgeleri, yönlendirme ilkelerinde açıkça SOLID'i referanslar.TheETHFLT:0)Architectural Principles) sayfasında SRP, OCP ve DIP etkisi tabakalı mimari, mikro hizmet ve temiz mimari ile ilgili olarak, kod örnekleri ve bağlantıları daha derin kaynaklara sunar.
Statik Analiz Araçları
Kendi kodunıza SOLID uyumluluğu doğrulamak için, SonarQube ( kod kokuları için), NDepend (CI boru hattınıza bağımlılık grafiği ile .NET için) ve ReSharper ( bayrak SRP ihlallerini tespit edebilir) Bu araçlar büyük sınıfları, derin miras hiyerarşilerini veya arayüz kirliliğini tespit edebilir - CI boru hattınıza entegre etmek için.
Topluluk Forumları ve Tartışma Kurulu
Geliştirici topluluğunun yardımıyla, anlayışınızı sağlamlaştırmanıza yardımcı olur. Stack Overflow, “solid-principles” ile birlikte, gerçek dünya ikilemlerini ve çözümleri gördüğünüzü. [Ücretsiz/öğrenme)r/öğrenme).
SOLID İlkelerine Uygulamak için Pratik İpuçları
SOLID hakkında okumak yeterli değildir; bunu sürekli olarak uygulamanız gerekir. İşte teoriden ustalığa hareket etmek için stratejilerdir.
Legacy Code Refaksiyon ile başlayın
Örneğin, bir çok sorumlulukla (SRP sorunu) veya bir argüman türü kontrol eden bir yöntem seçin.Bir seferde bir adım daha bu egzersizi tekrarlayın.
Pair Programlama ve Kod İncelemeleri
SOLID'yi anlayan bir mentor veya meslektaşı ile programlama, özellikle kod herhangi bir SOLID prensibini ihlal edip etmediğinden sorabilirsiniz. Birçok takım "Bu sınıf değişikliğine bir neden daha var mı?" veya "Uzmanlık bir uygulamaya bağlı mıyız?" diye soruyor.
Katas ve Egzersizleri Çözün
Programlama katas – SOLID'ye itaat etmek için tasarlanmış küçük kodlama alıştırmaları – mükemmel bir şekilde.TheETHFLT:0)Gitli Rose) kata yüksek darbe ve SOLID eksikliği için ünlü; OCP ve SRP'ye itaat etmek için mükemmel bir meydan okumadır.
Bir Plugin Mimarisi Oluşturun
OCP ve DIP'in derin bir anlayışı, üçüncü taraf eklentileri destekleyen bir sistem tasarlarken ortaya çıkabilir. Farklı çıktı formatlarının (PDF, HTML, CSV) ortak bir arayüz uygulamanız ile eklenebilir. Bu güçler henüz silinemez kod yazabilirsiniz, aynı anda OCP ve DIP'i yeniden inşa etmeye çalışın.
Başkalarını Öğretin
Bir konu ustasının en iyi yolu bunu öğretmektir. ISP'yi açıklayan bir blog yazısı yazın, ekibiniz için LSP'de bir slayt güverte oluşturun veya kısa bir ekran kaydı kaydetmek zorundasınız.PlatID'yi başkalarına açıklamak zorundasınız, bu işlem kendi anlayışlarınızda boşlukları keşfedeceksiniz.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Mastering SOLID ilkeleri bir yolculuk değildir, bir hedef değildir. kaynaklar bu makalede vurgulanır - temel kitaplardan gelen agile Software Development, Principles, Desenler ve Uygulamalar) Her bir ilke gibi etkileşimli platformlara katılırken, testlerinizi daha esnek hale getireceksiniz.