Kayıt Ol

Gönderilerinizi yayınlamak, insanların sorularını yanıtlamak ve diğer insanlarla bağlantı kurmak için Yazılım Köyü'ne kaydolun.

Hesabın var mı? Giriş Yap
  • Google ile devam et
  • Linkedin ile devam et
  • GitHub ile devam et
ya da

Hesabın var mı? Şimdi Giriş Yap

Giriş Yap

Gönderilerinizi paylaşmak ve insanların sorularını yanıtlamak ve diğer insanlarla bağlantı kurmak için Yazılım Köyü'ne giriş yapın.

Buradan kaydolun
  • Google ile devam et
  • Linkedin ile devam et
  • GitHub ile devam et
ya da

Parolamı unuttum?

Hesabınız yok mu? Buradan kaydolun

Parolamı unuttum

Şifreni mi unuttun? Lütfen e-mail adresinizi giriniz. Bir bağlantı alacaksınız ve e-posta yoluyla yeni bir şifre oluşturacaksınız.

Hesabın var mı? Şimdi Giriş Yap
Giriş YapKayıt Ol

Yazılım Köyü

Yazılım Köyü Logo Yazılım Köyü Logo

Yazılım Köyü Navigation

  • Anasayfa
  • Hakkımızda
  • Etkinlikler & Eğitimler
    • Ücretsiz Eğitimler
    • Ücretli Eğitimler
  • İş İlanları
  • Ekibimiz
  • Partnerler
  • Sponsorlar
  • İletişim
Ara
Paylaşım Yap

Mobile menu

Close
Paylaşım Yap
  • Anasayfa
  • Etkinlikler & Eğitimler
  • Partnerler
  • Sponsorlar
  • Ekibimiz
  • Gruplar
  • Grup Ekle
  • Kategoriler
  • Tüm Paylaşımlar
    • Güncel Paylaşımlar
    • Trend Paylaşımlar
    • En Çok Tıklanan Paylaşımlar
  • Oylamalar
  • Etiketler
  • Rozetler
  • Tüm Kullanıcılar
  • Destek
  • İletişim
Anasayfa/ Paylaşımlar/Q 55331
Sonraki
Cemaltuysuz
Cemaltuysuz

Cemaltuysuz

  • Mobile Developer
  • 19 Paylaşımlar
  • 3 Yorumlar
  • 0 En İyi Yanıtlar
  • 358 Puan
Profili gör
CemaltuysuzKöyün Muhtarı
Tarih: Kasım 19, 20212021-11-19T16:19:36+03:00 2021-11-19T16:19:36+03:00Kategori: Eğitim

SOLID Prensipleri

SOLID Prensipleri

Herkese merhaba, bu yazıda sizlerle her yazılımcının bilmesi gereken S.O.L.I.D prensipleriden bahsedeceğim. Öncelikle SOLID prensipleri neyi ifade ediyor ona bir göz atalım ardından neden ihtiyaç duyduğumuzdan ve son olarak da her bir prensibe teker teker değinelim. Hazırsanız başlayalım 🙂

SOLID prensipleri yazılımcının bir yazılım geliştirirken belli prensiplere uyarak yazılımı geliştirmesini ve geliştirilen yazılımın daha sürdürülebilir, yeniden kullanılabilir, kod tekrarı olmadan ve anlaşılabilir olmasını hedefler.

Neden yazılım geliştirirken sürüdürülebilir olması gibi etmenlere çok dikkat etmeliyiz ? Bunun için küçük bir örnek vermek istiyorum.

Bir inşaat mühendisi olduğunuzu düşünün. 5 katlı bir bina inşa etmeniz gerekiyor ve tüm hazırlıkları, planı ve projeyi çiziyor ve binayı inşa ediyorsunuz. Bu saatten sonra müşteri sizden ‘Ya 5 katlı yaptık ama biz bi 5 kat daha çıkalım’ demesi olasılıklar havuzunda çok düşük bir yere sahip. İstese bile bunun mümkün olması daha da düşük. Binayı inşa ederken her şeyi plana göre ayarladınız ve inşa ettiniz. Ekstradan çıkacağınız bir kat bütün mukavemeti değiştirebilecektir.

Lakin bir yazılım geliştirdiğiniz zaman bu durum böyle olmuyor. Müşteri yeni bir isteğini ilettiği zaman isteğin projeye kolayca entegre edilebilmesi gerekiyor. Bizler yukarıda saydığım sürdürülebilir ve yeniden kullanılabilir gibi etmenleri dikkate almadan proje geliştirirsek her yeni bir güncellemede projenin bir tık daha çökmesi ve nihayetinde başka bir yeniliği kabul etmeyecek bir düzeye gelmesi mümkün oluyor.

Bu tarz prensipler ve çeşitli yazılım kalıplarını öğrenerek geliştirdiğiniz proje daha kaliteli olacak ve bazı sorunları başınızdan def etmiş olacaksınız. Şimdi SOLID prensiplerine değinelim.

Single Responsibility Principle

Bu prensip bizlere her sınıfın bir sorumluluğunun olması gerektiğini söyler. Yapılacak değişiklikler ve güncellemeler bu sorumluluk doğrultusunda gerçekleşir. Örneğin network işlemleriniz için bir sınıf oluşturduysanız bu sınıf içerisinde network işlemlerinizi yaparsınız. Veritabanı kurulumu yada veritabanına sorgu işlemlerini bu sınıftan muaf tutar başka bir sınıfta bu işi çözersiniz.

Open Closed Principle

Bir sınıf geliştirildiğinde hali hazırda var olan özellik ve fonksiyonlarını korumalı ve değişikliğe izin vermemelidir. Yani sınıfımız değişmeyecek ama yeni özellikleri kabul edebilecek bir durumda olmalıdır. Bu prensiple aslında projenin başında tasarım ve mimarinin iyi bir şekilde oluşturulması gerektiğini de düşünebiliriz.

Liskov Substitution Principle

Kodlarımızda herhangi bir değişiklik yapmaya gerek duymadan alt sınıfları, kalıtım aldıkları super sınıflardan türetebilmemiz gerekir.

Interface Segregation Principle

Fonksiyonlarımızı tek bir interface üzerinde toplamak yerine ihtiyaçlarımızı birden fazla interface ile gidermeliyiz.

Dependency Inversion Principle

Bu prensip projemizdeki yapılar arasında bağımlılığın en aza indirgenmesini hedefler. Böylelikle gerçekleştireceğimiz en ufak bir değişiklik veya yenilik projeyi çok fazla etkilemeyecektir. Aksi durumda bir modelimiz içerisisinde yapacağınız en ufak bir tür dönüşümü bile projenizin çoğu yerinde kırmızı satırların oluşmasına sebep olabilir 🙂

solidsolid prensipleriyazılım
  • 0 0 Yanıt
  • 616 Görüntüleme
  • 11 Beğeni
Yorum Yap
Paylaş
  • Facebook

    Benzer Paylaşımlar

    • Heyy Sende Yazılımcı İsen Aramıza Katıl !
    • Faydalı CSS Kaynakları
    • Açık Kaynak Kodlu Yazılımlara Yeni Katkıda Bulunanların Sık Yaptığı 7 Hata

    Cevap eklemek için giriş yapmalısınız.

    • Google ile devam et
    • Linkedin ile devam et
    • GitHub ile devam et
    ya da

    Parolamı unuttum?

    Hesaba mı ihtiyacınız var? Buradan kaydolun

    Sidebar

    Paylaşım yap
    • Popüler
    • Yanıtlar
    • Etiketler
    • Buse TURAN

      FULL STACK SUPERMAN / SUPERWOMAN OLMAK İÇİN YAPMANIZ GEREKEN ÜCRETSİZ ...

    • Selin Dayıoğlu

      4 Ücretsiz Sertifika Sitesi

    • Yazılım Köyü

      Zemin İstanbul'la SQL Server Eğitimi | Teknik Test Aşaması

    • ibrahim Demirli

      Angular 12 ile gelen önemli yenilikler

    • Sait ORHAN

      Stajyerlerimi Nasıl Eğitiyorum?

    • Buse TURAN

      Her Geliştiricinin Favorilerine Eklemesi Gereken 12 Ücretsiz Tasarım Kaynağı

    • Buse TURAN

      BİR SONRAKİ PROJENİZ İÇİN 12 EĞLENCELİ API

    • Buse Öztan

      HTML-CSS gibi kodlamalarda kullandığınız en favori editörünüz hangisi?

    • Edanur Öztürk

      Geleceğe Giriş-Doğuş Teknoloji

    • Buse TURAN

      C++ ÖĞRENENLER İÇİN EN İYİ 8 WEB SİTESİ

    • Ahmet Bostancıklıoğlu
      Ahmet Bostancıklıoğlu Yanıtlandı Merhaba, Native mobil yazılım eğitimleri verilecek mi? Evet ise kayıt… Mart 20, 2023 at 4:40 pm
    • bambutogel
      bambutogel Yanıtlandı That's good, but I still don't understand the purpose of… Mart 13, 2023 at 12:43 am
    • Hakan TUR
      Hakan TUR Yanıtlandı Diyarbakır’dan katılmak isteyen varsa c# backend eğitimi verebilirim Mart 9, 2023 at 8:42 pm
    • Zeynep Ok
      Zeynep Ok Yanıtlandı Merhaba, Önümüzdeki günlerde, eğitim programlarına ait başvuru süreci hakkında bilgilendirme… Mart 8, 2023 at 12:40 pm
    • tfoe
      tfoe Yanıtlandı Başvurular ne zaman başlayacak Mart 7, 2023 at 10:12 pm
    #abap#sap #aspnetcore #dependencyinjection #aop #autofac #işarayışı #destek #javascript #angular12 #software #education #oyun #yazılım .net .net6 .netcore .net core 3des 100 daily ui free :staj :java abap abd acid adesense adobe adviceslip aes ai airbnb akademi aksigorta algoritma amazon android android-libraries android-smart-tv android achitecture andromo angular anijs animate.css anime.js animista ansible ant design api api gateway apple appsetting appsettings apps geyser app yet appy pie arduino argondesignsystem artifical intelligence artificial intelligence artificialintelligence arçelik asimetrik şifreleme asp:net atom awesome screenshot & screen recorder aylıkgelir açık kaynak açık kaynak yazılım backgroundjob bakış açısı basis başarı belge bilgisayar bilgisayarmühendisliği bilgisayar mühendisliği bilişim birey blockchain blogger blueprint blush bootcamp borunv brave browser budibase buffer business analytics büyük veri c# altın kurlarını gösterme c# json İle veri Çekme c++ cakephp calculated columns canva cdn chakra ui class cloud cobalt 2 codepen challenges coderbyte codewell coding coding ninjans colorpick eyedropper component containers convertio cookie coursera'dan veri bilimine giriş kursu cqrs css cssbattle css peeper cte cursor cyber cybersecurity dapper data database datamining data science with r by pluralsight dba db shading deeplearning delivery hero deney derin Öğrenme derin Öğrenme ve makine Öğrenimi des design destek mühendisi developer değerlendirme değişim dijital göçebelik dijital ihracat dikey büyüme dikkat edilecekler dil eğitimi discord django dns docker double dracula official dyno bot döviz çevirici e-ticaret e-ticaret mağazası ecommerce edabit edit editör educative elektrik elektronik elon musk empati engineer eninovatif50şirket entityframework entity framework core 5 environment variables erasmus etkinlik exception eğitim facebook face recognition fastai figma firebase firefox teması firewall flask float fluentvalidation flutter flutterdeveloper fonksiyon fonts fonts ninja fortinet framework free freecodecamp freeillustrations freelance front-end front-end developer roadmap front-end geliştirici yol haritası frontend frontenddeveloper frontend mentor fullstack funny fuul stack react game game developer gary hamel gateway geeksforgeeks geliştirici geliştirme gerçek zamanlı sohbet uygulaması getir geçikme girişim girişimcilik git github gitlab gittigidiyor gittigidiyor teknoloji akademisi go golang goodbarber google gsap gui gzip güvenlikduvarı hackerearth hackerrank hamburgers hangfire harvard data science course hash hata hava durumu raporu uygulaması hayat hobi home office hover.css html html5-semantic html mail gönderme http http bağlantısı kurma http durum kodları httpie http mesajları http yöntemleri hulu humaaans icongenarator icons 8 ieee spectrum ikaros partners ilanları image downloader infrastructure inovasyon insider insomnia internet intership invision app ios ira design it iş iş analitiği işbulma iş fırsatı iş imkanı işimkanı işletme java java eğitim bootcamp javascript javascript30 jetpack js jservice js kütüphanleri kariyer fırsatı kategori yönetimi kaynak keras kestrel kevin murray kitaplık kişisel gelişim kişisel portfolyo kod kodlama komunite kotlin kriptoloji kullanımamaçları kute.js kültür kütüphane laravel laserwave latency leanback learn learncpp library liderlik lightbootstrapdashboard lime linkedin localstorage maaş macbook machine learning machinelearning machine learning a-z: hands-on python and r --- in data science magic effects mail send makine Öğrenimi makine Öğrenimi nasıl Çalışır? makine Öğrenimi nedir? makine Öğreniminin kullanımları makine Öğrenmesi makineöğrenimi manta manypixels mark text marvelcomicsapi maslow material ui merge sort metodoloji microsoft microsoft sql server eğitimi cv İnceleme sonuçları middleware mikro orm mikroservis mikroservisler mikroservis mimarisi mikroservis yönetimi ml mng kargo mo.js modelleme mongodb montaj motion ui mssql mvc mvm münazara. müzik oynatıcısı n11 nasaapi net5 netflix network networking networking fundamentals new features night owl nintendo nlp no-code nocode node.js node.js indir node.js kurulumu node.js nedir nodejs nodejs javascript frontend noktalı sayı not notusreact nrkdrk ntp nuxtjs nvidia oci oh my zsh olacaklar ve öğrenilecekler omnichannel one dark pro online eğitim siteleri oop open source ortalama maaş outrun paaatterns pagedlist palenight pandas par-tİme parçalama pasif gelir paypal pazarama pgpool phalcon php phpmyadmin phpstorm phyton platformlar arası uygulama playstation podman popmotion posgresql parçalama postgresql postgresql cte posthog prerender prisma problem tanımı productivity profesyonel programlama programlama iş ilanları programming proje pycharm pyramid python python ile veri bilimi pytorch querying razer rdp react react datepicker reactjslanding react native react navigation typescript reactopen reactreduction react select reactstrap reba recommender systems renova requests responsive rest api ripng rosetta stone rsa s3 salesforce sap sap abap scikit-learn scrapy screencat scrollreveal js search ui security selamlaşma sentry seo sertifika serversiderender shades of purple shap shardsdashboardlites sibergüvenlik simetrik şifreleme simterik şifreleme single page application slack slackhq smooth ui snyk software software engineer sohbet geçmişi solid solid prensipleri sortable- hoc sorting source spa spacex spagetti kod spotifyapi sql sqlite sqlserver sql server ssr staj staj iş arayışı stajyer startup stevejobs storybook stratejik yatırım struct sublime text supabase svg export swagger swift symfony sınıflar ve yapılar arasındaki farklar sıralama sıralama algoritma sıralama algoritmaları t-sql tallyforms tanışma tasarım tdd tech tech-academy teknoloji temiz kod tensorflow the future of management three.js tools toptalent topwebsites tpt tph treehouse trendyol tsql turkcell typescript udacity'den veri bilimine giriş ui ui space undraw uniqid unity uplabs user secrets uuid ux uygulama uzaktan validation velocity.js vercel veri veri analizi veri bilimcisi olmak İster misiniz? veribilimi veri bilimi az: gerçek hayat veri bilimi alıştırmaları dahil veri bilimi sertifikasyon eğitimi --- r programlama veri bilimi ve makine Öğrenimi için python eğitim kampı veri tabanı veritabanı veritabanıyöneticisi video vierbinding visual studio visual studio code vivus.js vizyon vmd vscode vs code vue vue fundemental vue fundemental eğitimi vue router web webdev webinar website web tarayıcı web tasarım weekly whatsapp whirl winter is coming wordpress wpf wrapkitreactliteuikit xai yabancı dil yapay genel zeka yapay zeka yapayzeka yapay zekanın tanımı yapay zekanın tarihi ve dönüm noktası yardım yatırım yaz stajı yazılım yazılımcı yazılımcı buluşma grupları yazılımcı iş ilanları yazılım ekibi yazılım fikri yazılım geliştirici yazılım mühendisliği yemeksepeti yenimezun yeni özellikler yetiştirilmek üzere eleman yii 2 youtube youtube-dl yönetim yük testi zorunlustaj zuckerberg Çalışma ortamı Çerezler Özellikler ÖĞrencİ Ücretsiz Ücretsiz eğitim Ücretsiz Eğitimler çalışma çağlayan çekiliş çevik ölçeklendirme önyüz tasarımı özgeçmiş ücret üniversite İkaros&partners İletişim İş İlanı Şirket şifreleme şifre sıfırlama

    Ekibe Katıl!

    Sosyal Medya

    Trend Etiketler

    algoritma android bootcamp c++ eğitim insider java javascript kod kodlama python sql staj veri vue fundemental eğitimi web webdev yazılım Ücretsiz eğitim Ücretsiz Eğitimler İş İlanı

    Benzer Paylaşımlar

    • Yazılım Köyü

      Afet Bölgesine Özel Temel SQL Eğitimi | Hemen Başvur

      • 0 yanıt
    • Ahmet Akbayrak

      Açık Kaynak Yazılımların Harika Özellikleri

      • 0 yanıt
    • Bircan Sezgin

      İOS BOOTCAMP

      • 0 yanıt

    Başvuru Yap

    Popüler Kullanıcılar

    Yazılım Köyü

    Yazılım Köyü

    • 96 Paylaşımlar
    • 7k Puan
    İşinin Ehli
    Buse TURAN

    Buse TURAN

    • 36 Paylaşımlar
    • 2k Puan
    İşinin Ehli
    Serkan Koç

    Serkan Koç

    • 8 Paylaşımlar
    • 2k Puan
    İşinin Ehli
    Mustafa(Hüseyin) Sungur

    Mustafa(Hüseyin) Sungur

    • 44 Paylaşımlar
    • 1k Puan
    İşinin Ehli
    Sait ORHAN

    Sait ORHAN

    • 15 Paylaşımlar
    • 1k Puan
    İşinin Ehli

    Explore

    • Anasayfa
    • Etkinlikler & Eğitimler
    • Partnerler
    • Sponsorlar
    • Ekibimiz
    • Gruplar
    • Grup Ekle
    • Kategoriler
    • Tüm Paylaşımlar
      • Güncel Paylaşımlar
      • Trend Paylaşımlar
      • En Çok Tıklanan Paylaşımlar
    • Oylamalar
    • Etiketler
    • Rozetler
    • Tüm Kullanıcılar
    • Destek
    • İletişim

    Footer

    Yazılım Köyü; Türkiye’nin yazılım üretmek, ihraç etmek ve her yaştan kendini geliştirip meslek sahibi olmak isteyen insanları için kurulmuş bir sosyal sorumluluk projesidir.

    Paylaşımlar

    • Güncel Paylaşımlar
    • Trend Paylaşımlar
    • En Çok Tıklanan Paylaşımlar
    • Yanıtlanmayan Paylaşımlar

    Kurumsal

    • Blog
    • Partnerler
    • Sponsorlar
    • Ekibe Katıl
    • Hakkımızda
    • İletişim

    Yardım

    • Destek
    • Rozetler
    • Logolarımız
    • Kullanım Koşulları
    • Kişisel Verilerin Korunması
    • Aydınlatma Metni

    Sosyal Medya

    © 2021-2022 yazilimkoyu.org. Sosyal sorumluluk projesi. Bütün hakları saklıdır.