এটির গন্ধ রয়েছে কারণ সম্ভবত এমন অনেক উদাহরণ রয়েছে যেখানে এটি সম্পাদনা বা উন্নত করা যেতে পারে।
এই গন্ধগুলির বেশিরভাগই এমন কিছুর ইঙ্গিত যা ভুল হতে পারে। অতএব, সেগুলিকে নিজের প্রতি স্থির করার প্রয়োজন নেই... (যদিও আপনার এটির দিকে নজর দেওয়া উচিত।)
আপনি এখানে আগের সমস্ত কোড গন্ধ (Part i - XXXIII) খুঁজে পেতে পারেন।
চল অবিরত রাখি...
মারাত্মক ত্রুটি: ধরা পড়া ত্রুটি: ক্লাস 'logs_queries_web' /var/www/html/query-line.php:78 এ পাওয়া যায়নি
স্ট্যাক ট্রেস: 718 লাইনে /var/www/html/query-line.php-এ #0 {main} নিক্ষেপ করা হয়েছে
TL;DR: আপনার ভুল ধরুন। এমনকি যাদের আপনি আশা করেন না।
একটি উচ্চ-স্তরের হ্যান্ডলার ব্যবহার করুন।
রিটার্ন কোডের পক্ষে ভাষাগুলি এড়িয়ে চলুন।
ডাটাবেস এবং নিম্ন-স্তরের ত্রুটি আশা করুন।
এমনকি 2022 সালে, আমরা নৈমিত্তিক ব্যবহারকারীদের একটি স্ট্যাক বা ডিবাগিং বার্তা দেখাচ্ছে "গুরুতর" ওয়েবসাইটগুলি দেখতে পাচ্ছি।
<? Fatal error: Uncaught Error: Class 'MyClass' not found in /nstest/src/Container.php:9
<? // A user-defined exception handler function function myException($exception) { logError($exception->description()) // We don't show Exception to final users } // Set user-defined exception handler function set_exception_handler("myException");
আমরা সমস্যাগুলি অনুকরণ করতে এবং সেগুলি সঠিকভাবে পরিচালনা করা হয়েছে কিনা তা দেখতে মিউটেশন পরীক্ষা ব্যবহার করতে পারি।
আমাদের পরিপক্ক হতে হবে।
আমাদের সমাধান অগোছালো হওয়া উচিত নয়।
গুরুতর সফ্টওয়্যার ইঞ্জিনিয়ার হিসাবে আমাদের খ্যাতি উন্নত করতে হবে।
কোড গন্ধ শুধু আমার মতামত .
আমার সমস্যার 80 শতাংশ সরল লজিক ত্রুটি। বাকি সমস্যার 80 শতাংশ পয়েন্টার ত্রুটি। বাকি সমস্যাগুলো কঠিন।
মার্ক ডোনার
সফটওয়্যার ইঞ্জিনিয়ারিং মহান উক্তি
হ্যাশিং গ্যারান্টি দেয় দুটি বস্তু ভিন্ন। তারা যে একই রকম তা নয়।
TL;DR: আপনি যদি হ্যাশ পরীক্ষা করেন, তাহলে আপনার সমতাও পরীক্ষা করা উচিত
7ই অক্টোবর, 2022-এ, বৃহত্তর ব্লকচেইনগুলির একটিকে থামাতে হয়েছিল।
এই খবরটি হতবাক কারণ বেশিরভাগ ব্লকচেইন সংজ্ঞা দ্বারা বিকেন্দ্রীকৃত।
আপনি এখানে একটি সম্পূর্ণ নিবন্ধ পড়তে পারেন:
কিভাবে একজন হ্যাকার একটি কোডের গন্ধকে কাজে লাগিয়ে $566M USD চুরি করেছে৷
public class Person { public String name; // Public attributes are another smell @Override public boolean equals(Person anotherPerson) { return name.equals(anotherPerson.name); } @Override public int hashCode() { return (int)(Math.random()*256); } // This is just an example of non-correlation // When using HashMaps we can make a mistake // and guess the object is not present in the collection }
public class Person { public String name; // Public attributes are another smell @Override public boolean equals(Person anotherPerson) { return name.equals(anotherPerson.name); } @Override public int hashCode() { return name.hashCode(); } // This is just an example of non-correlation }
অনেক লিন্টারের হ্যাশ এবং সমতা পুনর্নির্ধারণের নিয়ম রয়েছে।
মিউটেশন পরীক্ষার মাধ্যমে, আমরা একই হ্যাশ দিয়ে বিভিন্ন বস্তুর বীজ বপন করতে পারি এবং আমাদের পরীক্ষাগুলি পরীক্ষা করতে পারি।
প্রতিটি কর্মক্ষমতা উন্নতি তার ত্রুটি আছে.
ক্যাশে এবং প্রতিলিপিগুলি উল্লেখযোগ্য উদাহরণ।
আমরা তাদের সাবধানে ব্যবহার করতে পারি (অবশ্যই)।
কোড গন্ধ শুধু আমার মতামত .
এটি আপনার কিছু পাঠককে অবাক করবে, তবে আমার প্রাথমিক আগ্রহ কম্পিউটার সুরক্ষার সাথে নয়। আমি প্রাথমিকভাবে সফ্টওয়্যার লিখতে আগ্রহী যা উদ্দেশ্য হিসাবে কাজ করে।
উইটসে ভেনেমা
সফটওয়্যার ইঞ্জিনিয়ারিং মহান উক্তি
আমাদের কিছু পরিবর্তন করতে হবে। আমরা কেন পরিষ্কার হতে হবে
TL;DR: আপনার নকশা বা বাস্তবায়নের সিদ্ধান্ত সম্পর্কে ঘোষণামূলক হন।
কখনও কখনও আমরা স্বেচ্ছাচারী নিয়মগুলিকে এত সহজে পরীক্ষাযোগ্য নয়।
যদি আমরা একটি ব্যর্থ পরীক্ষা লিখতে না পারি, আমাদের একটি মন্তব্যের পরিবর্তে একটি চমৎকার এবং ঘোষণামূলক নাম সহ একটি ফাংশন থাকতে হবে।
// We need to run this process with more memory set_memory("512k) run_process();
increase_memory_to_avoid_false_positives(); run_process();
এটি একটি শব্দার্থিক গন্ধ।
আমরা মন্তব্য সনাক্ত করতে এবং আমাদের সতর্ক করতে পারেন.
কোড হল গদ্য। এবং নকশা সিদ্ধান্ত বর্ণনামূলক হতে হবে.
কোড গন্ধ 05 - মন্তব্য অপব্যবহারকারীরা
কোড গন্ধ 75 - একটি পদ্ধতির ভিতরে মন্তব্য
কোড গন্ধ শুধু আমার মতামত .
Unsplash- এ Goh Rhy Yan- এর ছবি
প্রোগ্রাম, মানুষের মত, পুরানো হয়. আমরা বার্ধক্য রোধ করতে পারি না, তবে আমরা এর কারণগুলি বুঝতে পারি, এর প্রভাব সীমিত করতে পারি এবং কিছু ক্ষতিকে বিপরীত করতে পারি।
মারিও ফুসকো
সফটওয়্যার ইঞ্জিনিয়ারিং মহান উক্তি
একসাথে দুটি বা তার বেশি জিনিস তৈরি করবেন না।
TL;DR: আপনার পদ্ধতিতে যতটা সম্ভব পারমাণবিক হওয়ার চেষ্টা করুন
https://maximilianocontieri.com/refactoring-002-extract-method
আপনি যদি 'এন্ড' দিয়ে একটি পদ্ধতির নাম দেন, আপনি সম্ভবত একটি নির্যাস এবং বিরতি পদ্ধতির সুযোগ মিস করছেন।
calculatePrimeFactorsRemoveDuplicatesAndPrintThem() // Three responsibilities
calculatePrimeFactors(); removeDuplicates(); printNumbers(); // Three different methods // We can test them and reuse them
কিছু লিন্টার 'এবং' শব্দটি সহ পদ্ধতি সম্পর্কে আমাদের সতর্ক করতে পারে।
পদ্ধতি তৈরি করার সময়, কিছু রাবার হাঁসের গল্প খেলা এবং আমরা জিনিসগুলি সঠিকভাবে তৈরি করছি কিনা তা নিজেদেরকে বলা খুবই গুরুত্বপূর্ণ।
%[ https://maximilianocontieri.com/code-smell-85-and-functions ]
কোড গন্ধ শুধু আমার মতামত .
আনস্প্ল্যাশে স্কট স্যাঙ্কারের ছবি
প্রোগ্রামিং এর আর্ট শেখা, অন্যান্য শৃঙ্খলার মতো, প্রথমে নিয়মগুলি শেখা এবং তারপর কখন সেগুলি ভাঙতে হবে তা শেখা।
জোশুয়া ব্লচ
উন্নয়নশীল মহান. রিফ্যাক্টরিং আশ্চর্যজনক। একই সময়ে এটি তৈরি করবেন না
TL;DR: একই সময়ে কার্যকরী এবং রিফ্যাক্টর পরিবর্তন করবেন না।
কখনও কখনও আমরা আরও বিকাশের জন্য একটি রিফ্যাক্টরিং প্রয়োজন শনাক্ত করি।
আমরা শেখার বিশেষজ্ঞ.
আমাদের সমাধান রাখা উচিত। রিফ্যাক্টরিংয়ের উপর কাজ করুন এবং আমাদের সমাধানটি চালিয়ে যান।
getFactorial(n) { return n * getFactorial(n); } // Rename and Change factorial(n) { return n * factorial(n-1); } // This is a very small example // Things go works while dealing with huge code
getFactorial(n) { return n * getFactorial(n); } // Change getFactorial(n) { return n * getFactorial(n-1); } // Run the tests factorial(n) { return n * factorial(n-1); } // Rename
এটি একটি রিফ্যাক্টরিং গন্ধ।
আমাদের একটি শারীরিক টোকেন ব্যবহার করা উচিত।
হয় আমরা রিফ্যাক্টরিং পর্যায়ে বা উন্নয়নশীল পর্যায়ে আছি।
কোড গন্ধ শুধু আমার মতামত .
আনস্প্ল্যাশে ড্যানি জিং এর ছবি
যখন আমি কোড অধ্যয়ন করছি, তখন রিফ্যাক্টরিং আমাকে বোঝার উচ্চ স্তরে নিয়ে যায় যা আমি অন্যথায় মিস করব। যারা কম্প্রিহেনশন রিফ্যাক্টরিংকে কোডের সাথে অকেজো ফিডলিং হিসাবে খারিজ করে তারা বুঝতে পারে না যে তারা বিভ্রান্তির পিছনে লুকানো সুযোগগুলি দেখতে পায় না।
মার্টিন ফাওলার
আরও 5টি কোড গন্ধ শীঘ্রই আসছে...