এই গন্ধগুলির বেশিরভাগই এমন কিছুর ইঙ্গিত যা ভুল হতে পারে। অতএব, সেগুলিকে নিজের প্রতি স্থির করার প্রয়োজন নেই... (যদিও আপনার এটির দিকে নজর দেওয়া উচিত।)
আপনি এখানে আগের সমস্ত কোড গন্ধ (Part i - XXXI) খুঁজে পেতে পারেন।
আমরা আমাদের প্রথম প্রোগ্রামিং দিনে যদি/অন্যথা শিখি। তারপর আমরা অন্য ভুলে যাই।
TL; DR: স্পষ্টভাবে বলুন। এমনকি এলসের সাথেও।
পরে, আমরা IF মুছে ফেলি এবং পলিমারফিজম ব্যবহার করি।
function carBrandImplicit(model) { if (model === 'A4') { return 'audi'; } return 'Mercedes-Benz'; }
function carBrandExplicit(model) { if (model === 'A4') { return 'audi'; } if (model === 'AMG') { return 'Mercedes-Benz'; } // Fail Fast throw new Exception('Model not found); }
এই ধরনের গন্ধ জনসাধারণের মধ্যে অনেক বিতর্ক এবং ঘৃণা নিয়ে আসে।
কোড গন্ধ 36 - স্যুইচ/কেস/else if/else/if স্টেটমেন্ট
কীভাবে চিরতরে বিরক্তিকর আইএফ থেকে মুক্তি পাবেন
সফ্টওয়্যার দলগুলির সবচেয়ে বড় সমস্যাটি নিশ্চিত করা যে সবাই বুঝতে পারছে অন্য সবাই কী করছে৷
মার্টিন ফাওলার
আজ, আমি আমার ওয়ালেটে একটি অর্থপ্রদান আশা করছিলাম। ভারসাম্য ছিল 0. আমি আতঙ্কিত.
TL;DR: নাল 0 নয়। ত্রুটি 0 নয়। শুধু 0 হল 0।
""" Below code is automatically generated by code-davinci-002 on GTP3 Codex 1. check balance with blockchain 2. If blockchain is unreachable show 0 as the balance """ import requests import json def get_balance(address): url = "//blockchain.info/q/addressbalance/" + address response = requests.get(url) if response.status_code == 200: return response.text else: return 0
""" Below code is automatically generated by code-davinci-002 on GTP3 Codex 1. check balance with blockchain 2. If blockchain is unreachable throw an error """ import requests import json def get_balance(address): url = "//blockchain.info/q/addressbalance/" + address response = requests.get(url) if response.status_code == 200: return response.text else: raise BlockchainNotReachableError("Error reaching blockchain")
আমরা প্যাটার্ন খুঁজে পেতে পারি যখন একটি ব্যতিক্রম বা রিটার্ন কোড নিক্ষেপ করা হয় এবং একটি 0 দিয়ে মাস্ক করা হয়।
কোড গন্ধ 139 - ইউজার ইন্টারফেসে বিজনেস কোড
কোড গন্ধ 73 - প্রত্যাশিত ক্ষেত্রে ব্যতিক্রম
কোড গন্ধ শুধু আমার মতামত .
নলের সাথে আমার আসল সমালোচনা হল যে এটি আপনার প্রোগ্রামটি পরীক্ষা না করে দ্রুত চালাতে বা চেক করার সাথে ধীর গতিতে চালাতে হবে কিনা তা বেছে নেওয়ার অপ্রয়োজনীয় সমস্ত যন্ত্রণা আবার ফিরিয়ে আনে।
টনি হোয়ার (নাল উদ্ভাবক)
সফটওয়্যার ইঞ্জিনিয়ারিং মহান উক্তি
আপনি একটি ভেরিয়েবলের জন্য একটি মান নির্ধারণ করেন এবং এটি ব্যবহার করেন তবে এটি কখনই পরিবর্তন করবেন না।
TL;DR: পরিবর্তনশীলতার বিষয়ে ঘোষণামূলক হন।
রিফ্যাক্টরিং 003 - এক্সট্রাক্ট কনস্ট্যান্ট
কখনও কখনও আমরা অনুমান করি যে MAPPER এর সাথে একটি মান পরিবর্তন হতে পারে।
এটি ম্যাজিক কনস্ট্যান্ট এড়াবে।
<?php function configureUser() { $password = '123456'; // Setting a password on a variable is another vulnerability // And Code Smell $user = new User($password); // Notice Variable doesn't change }
<?php define("USER_PASSWORD", '123456') function configureUser() { $user = new User(USER_PASSWORD); } // or function configureUser() { $user = new User(userPassword()); } function userPassword() : string { return '123456'; } // Case is an oversimplification as usual
পরিবর্তনশীল সুযোগ পরিষ্কার হলে আমাদের নিজেদেরকে এবং রিফ্যাক্টরকে চ্যালেঞ্জ করতে হবে, এবং আমরা এর বৈশিষ্ট্য এবং পরিবর্তনশীলতা সম্পর্কে আরও শিখি।
কোড গন্ধ 116 - ভেরিয়েবল 'var' দিয়ে ঘোষিত
কোড গন্ধ 127 - পরিবর্তনযোগ্য ধ্রুবক
কোড গন্ধ 107 - ভেরিয়েবল পুনরায় ব্যবহার
কোড গন্ধ 02 - ধ্রুবক এবং ম্যাজিক সংখ্যা
কোড গন্ধ শুধু আমার মতামত .
একটি জটিল সিস্টেম যা কাজ করে তা একটি সাধারণ সিস্টেম থেকে বিকশিত হয়েছে যা কাজ করে।
জন গ্যাল
গুরুতর উন্নয়ন অনেক বিভিন্ন মানুষ দ্বারা সম্পন্ন করা হয়. আমাদের একমত হতে শুরু করতে হবে।
TL;DR: ভিন্ন কেস রূপান্তর মিশ্রিত করবেন না
{ "id": 2, "userId": 666, "accountNumber": "12345-12345-12345", "UPDATED_AT": "2023-01-07T02:23:41.305Z", "created_at": "2020-01-07T02:23:41.305Z", "deleted at": "2023-01-07T02:23:41.305Z" }
{ "id": 2, "userId": 666, "accountNumber": "12345-12345-12345", "updatedAt": "2023-01-07T02:23:41.305Z", "createdAt": "2020-01-07T02:23:41.305Z", "deletedAt": "2023-01-07T02:23:41.305Z" // This doesn't mean THIS standard is the right one }
আমরা আমাদের লিন্টারদের আমাদের কোম্পানির বিস্তৃত নামকরণের মান সম্পর্কে বলতে পারি এবং সেগুলি প্রয়োগ করতে পারি।
একটি নাম ঠিক কি - পার্ট I দ্য কোয়েস্ট
কোড গন্ধ শুধু আমার মতামত .
আপনার যদি অনেকগুলি বিশেষ ক্ষেত্রে থাকে তবে আপনি এটি ভুল করছেন।
ক্রেগ জেরুনি
ম্যাক্সিন্ট একটি অবৈধ আইডির জন্য একটি খুব ভাল নম্বর। আমরা এটি কখনই পৌঁছাব না।
TL;DR: অবৈধ আইডির সাথে আসল আইডি জোড়া দেবেন না। আসলে: আইডি এড়িয়ে চলুন।
তারপরে আমরা বিলিয়ন ডলারের ভুল আবিষ্কার করেছি।
#include "stdio.h" #include "stdlib.h" #include "stdbool.h" #define INVALID_VALUE 999 int main(void) { int id = get_value(); if (id==INVALID_VALUE) { return EXIT_FAILURE; // id is a flag and also a valid domain value } return id; } int get_value() { // something bad happened return INVALID_VALUE; } // returns EXIT_FAILURE (1)
#include "stdio.h" #include "stdlib.h" #include "stdbool.h" // No INVALID_VALUE defined int main(void) { int id; id = get_value(); if (!id) { return EXIT_FAILURE; // Sadly, C Programming Language has no exceptions } return id; } get_value() { // something bad happened return false; } // returns EXIT_FAILURE (1)
Y2K22 - ভুল যা আমাদের বিব্রত করে
কোড গন্ধ শুধু আমার মতামত .
বাগগুলি কোণে লুকিয়ে থাকে এবং সীমানায় জড়ো হয়।
বরিস বেইজার