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

Поділитися
Вставка

КОМЕНТАРІ • 64

  • @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.

  • @osmanozturk8838
    @osmanozturk8838 5 днів тому

    teşekkürler

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

    Ellerinize Sağlık hocam

  • @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.

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

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

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

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

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

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

  • @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.

  • @betulaktoprak
    @betulaktoprak 6 місяців тому

    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

  • @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.

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

    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 :))

  • @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 11 місяців тому

    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.

  • @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.

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

    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).

  • @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 😅😅

  • @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ı

  • @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.

  • @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.

  • @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...

  • @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 :)

  • @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.

  • @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.

  • @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.

  • @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.

  • @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

  • @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 😅

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

    Elinize sağlık. ilk sorunuza cevaben klasör olsun class isimleri olsun ve değişken isimlerinin uzun olması şahsen karmaşık geliyor. kim neydi neredeydi bütün satırı kaplıyor.

  • @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 :)

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

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

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

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

  • @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

  • @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.

  • @kdrgvnyoutube
    @kdrgvnyoutube 6 місяців тому

    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.

  • @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

  • @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

  • @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.

  • @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

  • @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 :)

  • @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

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

    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 :)

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

    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

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

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

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

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

  • @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😅😅

  • @mahmutnedimhavlaci6677
    @mahmutnedimhavlaci6677 8 місяців тому

    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?

  • @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

    👨‍💻

  • @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

  • @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 11 місяців тому +1

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