#7 Easy Cash Asp.Net Core 6.0 Identity Projesi - AppUserRegister Fluent Validation

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 พ.ย. 2024

ความคิดเห็น • 66

  • @sulecelep5912
    @sulecelep5912 ปีที่แล้ว +4

    Sınıf isimlerinin açıklayıcı olması, yalın olmasından önemli, ama 10 kelime de çok fazla olur, ona göre bazı kelimelerin kısaltmasıyla isim standardı oluşturulabilir. Projenin daha anlaşılır olmasını sağlıyor.
    Yapıcı metodu genelde bir sınıfın referansında tutulacak default değerleri belirlemekte kullanıyoruz. Burada RuleFor'un yapıcı metotta olmasının sebebi kullanıcının girdiği değerle bu kuralı karşılaştırması olabilir.

  • @AhmetCAN-ii9th
    @AhmetCAN-ii9th ปีที่แล้ว

    Her ne kadar anlaşılması için yazılsa da uzun değişken isimleri, kodun okunabilirliğini zorlaştırabilir. Emeğinize sağlık hocam. Çok teşekkürler.

  • @ismailsincar4754
    @ismailsincar4754 ปีที่แล้ว +1

    Emeğinize sağlık hocam, hayırlı cumalar

  • @therzarzayev
    @therzarzayev ปีที่แล้ว +1

    FluentValidation: RuleFor()'un constructor içinde belirtilir çünkü bu sınıfın ilk oluşturulduğu anda doğrulama kurallarının tanımlanmasını sağlar. Yani bir sınıf örneği oluşturulduğunda doğrulama kurallarının hemen tanımlanmasına olanak sağlar ve bu nedenle bu kuralların sınıfın yaşam döngüsü boyunca geçerli olması sağlanır.

  • @tahapek2411
    @tahapek2411 ปีที่แล้ว +2

    Açıklayıcı olması yalın olmasından çok daha önemlidir. Bir proje de birden fazla kişi çalışabilir açıklayıcılık ön plana çıkmalıdır.

  • @MehmetBilicier
    @MehmetBilicier ปีที่แล้ว

    İsimlendirme kuralları en önemli noktalardan biri olduğundan bahsedebiliriz ve isimlendirme yaparken bir başkası tarafından da kodun okunacağını göz önünde bulundurmamız gerekiyor dolayısıyla açıklayıcı olması ön plana çıkıyor diyebiliriz. PascalCase ya da camelCase olması ayrı bir avantajdır ki bunlar genellikle şirketlerin dökümantasyonlarında uyguladıkları kuralları olarak yer almaktadır.
    Yapıcı constructorın da referans type ile alakalı ve başka bir sınıf tarafından kullanılabilir olup default değerlerin orada tutulduğunu düşünüyorum.

  • @burcuozturk1073
    @burcuozturk1073 ปีที่แล้ว +1

    Constructorı kek yaparken kullandığımız bir kap gibi düşünelim. Tıpkı kek hamurunu karıştırmaya başlamadan önce kabartma tozunu eklediğimiz gibi nesneyi oluşturmaya başlarken de constructor içinde doğrulama kurallarını eklememiz gerekiyor. Çünkü constructor bir nesnenin oluşturulma sürecini başlatır.
    Kabartma tozunu fırına attığımız keke ekleyemeyiz di mi? Çünkü fırına girdikten sonra kekin kabarması için geç kalmış oluruz. İşte constructor dışında eklediğimiz kurallar da aynen böyle, iş işten geçmiş oluyor. (Nesne çoktaan oluşturuldu kurallar olmadan :))
    Constructor'a eklediğimiz kurallarla ise nesne doğru şekilde oluşturulabiliyor, çünkü kabartma tozunu ekleyerek kekimizin güzel bir şekilde kabarmasını sağladığımız gibi constructor'daki kurallarla nesnenin doğru bir şekilde oluşturulmasını sağlıyoruz. Afiyet olsun :))

    • @zeth9410
      @zeth9410 หลายเดือนก่อน

      Bu kadar basit açıkladığın için teşekkürler. Hayatım boyunca unutmam artık :D

  • @sahilrzayev9251
    @sahilrzayev9251 ปีที่แล้ว

    Emeğinize sağlık hocam. Heyecanla yeni bölümleri bekliyorum 😊

  • @mustafabas5323
    @mustafabas5323 ปีที่แล้ว

    bence açıklayı olması yalın olmasında açık ara daha iyi olur .Çok fazla dosya ya da proporties tanımlamış olabiliriz ve bu projeyi bir den fazla kişi çalışıyor olabilir daha kolay anlaşılmasını sağlar açıklayıcı olması

  • @miraydurgun
    @miraydurgun ปีที่แล้ว +1

    Sınıf isimlerinin uzun olması okunabilirlik ve çakışma açsından avantaj sağlar, ayrıca bu sayede işlevini daha iyi belirtmiş oluyoruz. Karıştırma riski daha az olur ve projeyi inceleyen herhangi biri daha kolay anlayabilir diye düşünüyorum. Dezavantajı da yazım hatası olabilir.
    FluentValidation ile ilgili sorunuzda internetten net bir cevap bulamadım, bir çok yazıda işlem sırası yazılmış neden kullanıldığına değinmemişler. Bir sonraki dersimizde nedenini anlatabilir misiniz?
    Emekleriniz için çok teşekkürler...

  • @busrayorulmaz9663
    @busrayorulmaz9663 ปีที่แล้ว

    Öncelikle dikkat etmemiz gereken anlaşılır olması bence, başka bir kişi baktığında orada neyi tanımlamak istediğimizi anlamalı yani uzun isimlendirmeler daha anlaşılabilir olmasını sağlayabilir.

  • @efrunevdi2257
    @efrunevdi2257 ปีที่แล้ว

    Öncelikle bu yoğun günlerinizde bize zaman ayırıp bu videoyu paylaştığınız için teşekkürler hocam, sorduğunuz sorula alakalı düşüncem ; dosyaların uzun isimli olmasıyla ilgili tek dezavantaj ismini yazarken yazım yanlışı yapmak olacaktır ki VS bunu bizim için dezavantaj olmaktan çıkarıyor. Uzun isimli olması projeye bir başkası baktığında veya kendi projemize uzun süre sonra baktığımızda anlaşılır, açıklayıcı olacak ve dosya yönetiminde kolaylık sağlayacaktır.
    Uzun isimle ilgili yaşadığım tek problem video izlerken ekranı 2'ye böldüğüm için Solition Explorer'da katman/dosya isimlerinin sığmamasından dolayı isimleri görebilmek için sağa sola gitmeye çalışmak 😅😅

  • @aherogludev
    @aherogludev ปีที่แล้ว

    Uzun şekilde yazılması belki açıklayıcı olması, nerede ne işin yapıldığını anlamak için güzel olabilir ama örneğin burada ana klasörün ismini ValidationRules olarak vermişken tekrardan altındaki bir klasörün sonun ValidationRules ekinin olmasını ben kendimce çok uygun görmüyorum. Örneğin buradaki bir validasyon sınıfını kontrolörde çağırdığımız zaman using ifadesi çok uzun şekilde görünüyor ve bu göz yoruyor, belki bir ihtimal karışıklık yaratacak da olabilir. Bu sebeple ben ValidationRules altına AppUser, AppRole şeklinde klasör altına tanımlamalarımı yapar, klasör içindeki sınıflarıda AppUserValidator, AppRoleValidator şeklinde tanımlarım (öznel).

  • @egemenagustos8307
    @egemenagustos8307 ปีที่แล้ว +2

    Emeğinize sağlık hocam...

  • @kutluali
    @kutluali 3 หลายเดือนก่อน

    Hocam Sonradan Gelcek Programcılar için Açıklayıcı olması önemli ama kısaltmalar yaparak bunu minimilimize edebiliriz

  • @MehmetCanKalabas0
    @MehmetCanKalabas0 ปีที่แล้ว

    Çok uzun olmadığı sürece avantaj sağlayacaktır, küçük projeler açısından değilde büyük projeler düşüncesiyle ilerleyebilmek gerekiyor. Projenin class ve klasör isimlerini oluştururken başkalarının da anlayabileceği şekilde okunabilir ve anlaşılır olabilmesi daha iyi olacaktır. Bizden sonra da başka bir programlamacı arkadaş projenin başına gelebilir :)

  • @betulaktoprak
    @betulaktoprak 10 หลายเดือนก่อน

    Burada Constructor(Yapıcı) metodu: AppUserRegisterDto sınıfına erişebilmek için bir nesne oluşturup ve bu oluşturulan nesneye otomatik olarak yapılmasını istediğimiz işlemleri yazıyoruz

  • @denizbineklioglu1650
    @denizbineklioglu1650 ปีที่แล้ว

    Bana göre açıklayıcı olmalıdır. Eğer yalın hale indirgemek istersek, ileride bizim yerimize geçecek geliştiriciler belki de bunun neden böyle bir ada sahip olduğunu anlamayacaklar. Ne kadar uzun olursa olsun eğer yalın hali anlaşılmakta zorluk getirecekse, uzun ve açıklayıcı olması taraftarıyım.
    2. sorunuzun yanıtını bilmediğim için araştıracağım ama tahminim şu yönde, consturctor'da yazabilmemizin sebebi nesne oluştuğunda direkt olarak bu kurallara da ulaşabilmemiz olabilir.

  • @azamatyadygerow2502
    @azamatyadygerow2502 ปีที่แล้ว

    Ellerinize Sağlık hocam

  • @ahmetcanbozkurt6799
    @ahmetcanbozkurt6799 ปีที่แล้ว

    Mümkün olan çerçevede açıklayıcı isimlendirmeler vermek projeyi başka bir developer mudahil olduğunda sorunun tespiti, anlaşılabilirlik gibi olayların performansı etkilemesinden doalayı bence açıklayıcı yazılmalıdır.

  • @burcuozturk1073
    @burcuozturk1073 ปีที่แล้ว

    Kısa ve kırpılmış isimler yerine, bir sınıfın ne işe yaradığını tam olarak anlatan isimler kullanmak her zaman daha iyidir. Çünkü kodu okuyan kişi, bu sayede neyin ne olduğunu daha kolay anlar.
    Yani, bir sınıfın ismi 5 kelimeyse ama tam anlamıyla ne işe yaradığını açıklıyorsa bu gayet normal. Ancak burada dikkat etmemiz gereken nokta, her zaman en basit ve net şekilde ifade etmeye çalışmaktır.
    Bir de beyin kelimeleri tek tek değil, bir bütün olarak algılar. Yani 5 kelimelik bir sınıf ismini de 2 kelimelik bir sınıf ismini de aynı hızda okuruz. Kullanılan yazım stili (örneğin, PascalCase) üzerinde tutarlı olmak da çok önemlidir. Bu sayede kod daha düzenli ve okunabilir hale gelir.

  • @cagrikeles4601
    @cagrikeles4601 ปีที่แล้ว

    Bence klasör adları ve class adları uzun olmalı en azından anlamlı olduğu zaman anlamamız dahada kolaylaşıyor yapıları daha düzgün kurabiliyoruz.

  • @FOXDOC
    @FOXDOC ปีที่แล้ว +1

    Klasör isimlerinin kısa yalın olması yerine, açıklayıcı olması uzun yıllar sonra dönüp bakıldığında
    daha avantajlı olabilir.

  • @senaboyuktas
    @senaboyuktas ปีที่แล้ว

    Projelerimizin anlaşılır olması için verdiğimiz klasör ve class isimlerinin yalın olmasından çok açıklayıcı olmasının nerede ne yaptığımızı bilmemiz ve bir başkası baktığında da anlaması açısından daha önemli olduğunu düşünüyorum. Tabii 7 veya 8 kelimeden fazlası da aşırıya kaçabilir 😅

  • @bielg3453
    @bielg3453 ปีที่แล้ว

    Hocam bence uzun isimler vermekte bir sakınca nacizane fikrim her klasöre tek tek validation rules yazmak yerine AppUserVR şeklinde bitirebiliriz

  • @bayramdemir2706
    @bayramdemir2706 ปีที่แล้ว

    projenin anlaşılması için ve yazılımcının avantajı için class isimleri ve değişkenleri ismi kısa ve açıklayıcı olması daha iyidir

  • @liathecat7757
    @liathecat7757 ปีที่แล้ว

    Bence hem yalın hem açıklayıcı olabilir. Ben olsam AppRole yazardım direkt. Hepsinin sonuna validation rules eklemeye gerek yok çünkü zaten hepsi validation rules adındaki bir üst klasörün altındalar.

  • @bilalcinal3740
    @bilalcinal3740 ปีที่แล้ว

    Class isimleri ve Klasör isimleri kesinlikle açıklayıcı olmak zorunda eğer bizden sonra başka biri gelip koda bakar ve o classın ne olduğunu anlamazsa boşa bu kodları yazmışız demektir. SOLİD önemli

  • @yunusemrecelik8499
    @yunusemrecelik8499 ปีที่แล้ว +1

    Bir Class çağırıldığında RAM' deki alanının oluşmasını sağlayan ve zorunlu olarak ilk çalışan metod Constructor metoddur.
    Biz yazmasak dahi bir class oluşturduğumuzda clasımız default ctora sahip oluyor. Ctor u somut olarak classımıza eklediğimizde AbstractValidator içerisindeki metodlar için aktif bir heap alanı açıyoruz ve o yüzden RuleFor u yazabiliyoruz diyebilir miyiz hocam.

  • @muradaliyev6306
    @muradaliyev6306 ปีที่แล้ว +1

    Hocam mehraba. Bir sorum olacakdr. IEntityTypeConfiguration kullanacak mısınız?

  • @bedranozcan
    @bedranozcan ปีที่แล้ว

    Öncelikle sınıf isimlerinin açıklayıcı olması daha doğru gibi geliyor,çünkü çalışma hayatında projelere daha sonra yeni kişiler katılabiliyor bu yüzden kodun okunabilirliği önemli. İkinici sorunuza gelirken de AbstractValidator sınıfı bir abstract class olduğu için içerisindeki metodlara ulaşmak istediğimizde yapıcı bir metodumuz yoksa ulaşamayız yapıcı metod bir nevi köprü görevi görüyor.

    • @benmerve23
      @benmerve23 ปีที่แล้ว

      merhaba, ben bir hata aldım using ekleyince : the type or namespace name 'DtoLyer' does not exist in the namespace (are you missing an assembly reference ) ... nasıl düzeltebileceğim konusunda yardımcı olabilir misiniz

    • @bedranozcan
      @bedranozcan ปีที่แล้ว

      @@benmerve23 bu hatanın sebebi genellikle using kullandığın yere onun kütüphane ismini eklememenden kaynaklanıyor. Using'in üstüne gelip alt+enter yaparsanız gerekli namespace classa eklenecektir.

    • @benmerve23
      @benmerve23 ปีที่แล้ว

      @@bedranozcan hayır, using ekledim zaten, DtoLayer'i görmüyor BusinessLayer içinden

    • @bedranozcan
      @bedranozcan ปีที่แล้ว

      @@benmerve23 o zaman katmanlar arasındaki referans vermeyi unutmuş olabilirsiniz

    • @benmerve23
      @benmerve23 ปีที่แล้ว

      @@bedranozcan 3.videodaki anlatımdan mı bahsediyorsunuz? acaba video dışı hocamız güncelleme mi yaptı? çünkü videolar ile birebir ilerliyorum

  • @liathecat7757
    @liathecat7757 ปีที่แล้ว +1

    email kısmı şu şekilde olmalı RuleFor(x => x.Email).EmailAddress().WithMessage("Lütfen geçerli bir email adresi giriniz"); fluent validator içindeki built in bu method ile kontrol sağlayabiliriz.

    • @liathecat7757
      @liathecat7757 ปีที่แล้ว

      video sonunda murat hocam anlatmış ben dökümantasyondan bakmıştım :)

  • @okanderecik3075
    @okanderecik3075 ปีที่แล้ว

    bence değildir. yalın olmasından ziyade kodları başkası incelediği zaman rahat anlayabileceği bir yapı kurmamız daha önemli. ikinci soruda ise clientın girmiş olduğu veriyi kontrol etmesiyle alakalı olduğu için yapıcı metotta olması gerekiyor. Saygılar hocam sonraki dersi sabırsızlıkla bekliyoruz :)

  • @EfekanBay
    @EfekanBay ปีที่แล้ว +1

    Constructor tanımlanmadığı durumlarda, doğrulama kuralları bir nesne örneği oluşturulmadan önce tanımlanmamış olur. Bu durumda, doğrulama kurallarına diğer sınıflar erişemezler ve doğrulama işlemi gerçekleştirilemez.

  • @kdrgvnyoutube
    @kdrgvnyoutube 10 หลายเดือนก่อน

    Hocam bence Uzun olması dezavantaj değil anlaşılmaması dezavantaj o yüzden kısaltma kullanıpta anlaşılmayacağına anlaşılacak uzun isimlendirmeler sıkıntı olmayacaktır.

  • @cevdetsedef5773
    @cevdetsedef5773 ปีที่แล้ว

    Hocam bence klasör ve class isimlerinin uzun olması başlangıçta daha okunamaz gibi gözüksede zamanla projeyi hem kendimizin hem de başkalarının daha kolay anlamasına imkan vereceğini düşünüyorum :)

  • @wallpapers_hd
    @wallpapers_hd ปีที่แล้ว

    Validation hatlarını kontrol etmek için sınıfı çağırınca ilgili ctor ilk olarak çalışıp hataları kontrol etmesi için olabilir gibi geldi. .d

  • @SalihCelik-tj5mi
    @SalihCelik-tj5mi ปีที่แล้ว

    Emekleriniz için teşekkürler hocam. Mail kısmındaki kullanılan method mail içerisinde @ işaretinin olup olmadığına bakıyor olabilir mi? Bunun yanında @ işaretinden önce kullanılmaması gereken sembollerin ve sağında da yine kullanılmaması gereken sembollerinde kontrolünü yapıyor olabilir. Php ile patternler yazarken bu şekilde yapıyorduk.

  • @cangul7648
    @cangul7648 ปีที่แล้ว

    Merhaba hocam,(İnternetten araştırdım bende ezbere bilmiyordum): Bir yapıcı metot, o sınıfın yeni bir nesnesi oluşturulduğunda çalıştırılan, sınıfın özel bir metotudur. Bir yapıcı metot sınıf adıyla aynı isme sahiptir
    e-mail kontrolu için yazının içerisin de "@" yazmayı zorunlu hale getirirdim.

  • @kitsunedp1799
    @kitsunedp1799 ปีที่แล้ว

    Merhaba. Hocam Junior bir yazılımcı olarak, yazılım sektöründe, hangisi literatüre daha uygun olur bilemem fakat şu aşamada benim için metot, klasör, interface ismi vb gibi tanımlamalar ne kadar uzun olursa o kadar iyi oluyor gerçekten :D

  • @tarkdirek2419
    @tarkdirek2419 ปีที่แล้ว

    Arkadaşlarımın açıklamalarına katılıyorum, aşırıya kaçmamak kaydıyla kod okunurluğunu artırmak adına uzun isimlendirmenin problem oluşturacağını düşünmüyorum. RuleFor metodunun ctor içerisinde çağırılabilmesi konusunda aklıma dependency injection veya set özelliğinin sadece ctor da kullanılmasına izin vermesi geldi ne kadar doğru bilmiyorum

  • @engokhangok
    @engokhangok ปีที่แล้ว +1

    E-mail kontrolü için regex ile match edebiliriz.

  • @ardaoloji
    @ardaoloji ปีที่แล้ว +1

    Hocam beyaz temaya güneş gözlüğü ile mi bakıyorsunuz😅😅

  • @sefadonmez6126
    @sefadonmez6126 ปีที่แล้ว

    veritabanına daha önce aynı isimden kaydedilmiş bir username var ise bunun kontrolünü nasıl yapabiliriz? teşekürler.

  • @hazemghazi6888
    @hazemghazi6888 ปีที่แล้ว

    🤔 very nice

  • @osmanozturk8838
    @osmanozturk8838 4 หลายเดือนก่อน

    teşekkürler

  • @ardanucakar
    @ardanucakar ปีที่แล้ว

    Hocam bu noktada async şekilde db'de bu kullanıcı adı veya email kayıtlı mı kontrolü yapılabiliyor mu?

  • @mahmutnedimhavlaci6677
    @mahmutnedimhavlaci6677 ปีที่แล้ว

    Açıklayıcı isimler kullanılması projeye sonradan katılan birisi için fayda sağlar.
    Fakat ben şöyle bir hatayla karşılaştım sınıf isimlerini uzun yazdığım için database aktarıma izin vermedi taki isimleri azalttım sonra aktarım sağladı.
    Böyle bir sorunla karşılaşan oldu mu?

  • @benmerve23
    @benmerve23 ปีที่แล้ว

    Hocam, . the type or namespace name 'DtoLyer' does not exist in the namespace (are you missing an assembly reference ) hatası alıyorum, using ekleyince

  • @BayZweig
    @BayZweig ปีที่แล้ว

    Hocam Core Katmanına neden ihtiyaç duymadık

    • @benmerve23
      @benmerve23 ปีที่แล้ว

      bunun cevabını buldunuz mu? ben de merak ediyorum

    • @BayZweig
      @BayZweig ปีที่แล้ว

      @@benmerve23 tamamen kişisel tercih ben kendi projeme ekledim

    • @benmerve23
      @benmerve23 ปีที่แล้ว

      @@BayZweig core katmanında neler var ? ne eklediniz

  • @servetakcadag3777
    @servetakcadag3777 ปีที่แล้ว

    RuleFor(x=>x.ConfirmPassword).Equals(x=>x.Password).WithMessage("Parola eslesmiyor!");
    yerine
    RuleFor(x=>x.ConfirmPassword).Matches(x=>x.Password).WithMessage("Parola eslesmiyor!");
    kullanilabilir mi?

  • @SarpKaan
    @SarpKaan ปีที่แล้ว +1

    👨‍💻

  • @lzxser6470
    @lzxser6470 ปีที่แล้ว

    using EasyCashIdentityProject.DtoLayer.Dtos.AppUserDtos;
    eklenmediği için hata almıştım bilginize

    • @lzxser6470
      @lzxser6470 ปีที่แล้ว

      @@benmerve23 Merhaba hatayı yollayabilir misiniz

    • @mel-em7sk
      @mel-em7sk ปีที่แล้ว +1

      ben de aynı hatayı almıştım. businesslayera dtolayerı refere etmediğimiz için. bunu düzeltirseniz sorununuz çözülür.