paint-brush
রিফ্যাক্টরিং 019 - ইমেল ঠিকানাগুলিকে কীভাবে রিফাই করা যায়দ্বারা@mcsee
1,052 পড়া
1,052 পড়া

রিফ্যাক্টরিং 019 - ইমেল ঠিকানাগুলিকে কীভাবে রিফাই করা যায়

দ্বারা Maximiliano Contieri4m2024/12/05
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

ডুপ্লিকেট ইমেল বৈধতা এড়িয়ে চলুন.
featured image - রিফ্যাক্টরিং 019 - ইমেল ঠিকানাগুলিকে কীভাবে রিফাই করা যায়
Maximiliano Contieri HackerNoon profile picture

একবার এবং শুধুমাত্র একবার বলুন

TL;DR: ডুপ্লিকেট ইমেল বৈধতা এড়িয়ে চলুন।

সমস্যার সমাধান

সম্পর্কিত কোড গন্ধ

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-x-i7r34uj

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxv

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xiv

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxvi

কোড গন্ধ 20 - অকাল অপ্টিমাইজেশান

ধাপ

  1. সনাক্ত করুন যেখানে ইমেল বৈধতা যুক্তি ডুপ্লিকেট করা হয়েছে।


  2. যাচাইকরণের নিয়মগুলি এনক্যাপসুলেট করতে একটি Email Address ক্লাস তৈরি করুন।


  3. কাঁচা স্ট্রিংয়ের পরিবর্তে Email Address ক্লাস ব্যবহার করার জন্য রিফ্যাক্টর কোড।

নমুনা কোড

আগে

 public class Person { private String emailAddress; // Primitive Obsession public void setEmailAddress(String emailAddress) { // Duplicated code if (!emailAddress.matches( "^[\\w.%+-]+@[\\w.-]+\\.[a-zA-Z]{2,}$")) { throw new IllegalArgumentException( "Invalid email address format"); } this.emailAddress = emailAddress; } } public class JobApplication { private String applicantEmailAddress; public void setApplicantEmailAddress(String emailAddress) { // Duplicated code if (!emailAddress.matches( "^[\\w.%+-]+@[\\w.-]+\\.[a-zA-Z]{2,}$")) { throw new IllegalArgumentException( "Invalid email address format"); } this.applicantEmailAddress = emailAddress; } }

পরে

 public class EmailAddress { // 2. Create an `EmailAddress` class to encapsulate validation rules. private final String value; public EmailAddress(String value) { // The rules are in a single place // And all objects are created valid if (!value.matches("^[\\w.%+-]+@[\\w.-]+\\.[a-zA-Z]{2,}$")) { throw new IllegalArgumentException( "Invalid email address format"); } this.value = value; } } public class Person { private final EmailAddress emailAddress; public Person(EmailAddress emailAddress) { // 1. Identify where email validation logic is duplicated. // 3. Refactor code to use the `Email Address` // class instead of raw strings. // No validation is required this.emailAddress = emailAddress; } } public class JobApplication { private EmailAddress applicantEmailAddress; public JobApplication(EmailAddress applicantEmailAddress) { this.applicantEmailAddress = applicantEmailAddress; } }

টাইপ

  • [x] আধা-স্বয়ংক্রিয়

নিরাপত্তা

এই রিফ্যাক্টরিং নিরাপদ যদি আপনি 'ইমেল ঠিকানা' ক্লাসের সাথে কাঁচা ইমেল স্ট্রিংগুলির সমস্ত ঘটনা প্রতিস্থাপন করেন এবং সমস্ত পরীক্ষায় উত্তীর্ণ হওয়া নিশ্চিত করেন।

কেন কোডটি ভাল?

আপনি আপনার অ্যাপ্লিকেশন জুড়ে ইমেল যাচাইকরণ সামঞ্জস্যপূর্ণ করুন।


যেহেতু বৈধকরণের নিয়মগুলি এক জায়গায় কেন্দ্রীভূত হয়, কোডটি বজায় রাখা সহজ হয়ে যায়।


আপনি অসামঞ্জস্যপূর্ণ যুক্তি দ্বারা সৃষ্ট বাগ ঝুঁকি কমাতে.


বাস্তব জগতে, Email Addresses হল ছোট বস্তু যা বিদ্যমান এবং স্ট্রিং নয়।


রিফ্যাক্টর করা কোডটি বাস্তব-বিশ্ব MAPPER- এর কাছাকাছি।


লক্ষ্য করুন যে বিজেকশন নামগুলি অপরিহার্য। এটি একটি EmailAddress তৈরি করতে সাহায্য করবে, একটি Email নয়, যেহেতু ইমেলটি প্রকৃত বার্তার সাথে মানচিত্র করা উচিত৷


প্রিম্যাচিউর অপ্টিমাইজারদের আপনাকে বলতে দেবেন না যে এই সমাধানটির কার্যক্ষমতার শাস্তি রয়েছে।


তারা কখনই বাস্তব-বিশ্বের ডেটা দিয়ে প্রকৃত বেঞ্চমার্ক করে না।

এআই সহ রিফ্যাক্টর

সঠিক নির্দেশনা ছাড়া

নির্দিষ্ট নির্দেশাবলী সহ

চ্যাটজিপিটি

চ্যাটজিপিটি

ক্লদ

ক্লদ

বিভ্রান্তি

বিভ্রান্তি

কপিলট

কপিলট

মিথুন

মিথুন

ট্যাগ

  • এনক্যাপসুলেশন

সম্পর্কিত রিফ্যাক্টরিং

ক্রেডিট

Pixabay- তে Gerd Altmann- এর ছবি


এই নিবন্ধটি রিফ্যাক্টরিং সিরিজের অংশ।

সহজ রিফ্যাক্টরিংয়ের সাথে কীভাবে আপনার কোড উন্নত করবেন