রিফ্যাক্টরিং: আপনার কোড সাফ করার জন্য এটি কি অভিনব শব্দ নয়? [বন্ধ]


21

মার্টিন ফাউলারের বই "রিফ্যাক্টরিং: উন্নত ডিজাইনের রূপনির্মাণের বিদ্যমান কোড" প্রকাশের আগে, আমরা কোডকে "পুনর্নির্মাণ" এবং ছোটখাটো পরিবর্তনগুলিকে "ক্লিনআপ" বলে বড় পরিবর্তনগুলি বলতাম। আইএমও, রিফ্যাক্টরিং কৌশলগুলি সমস্ত সাধারণ জ্ঞান / সুস্পষ্ট জিনিস যা আমরা চিরকালের জন্য করে আসছি।

আপনি কি ভাবেন যে রিফ্যাক্টরিং কখনও নতুন কিছু ছিল? সম্ভবত কোড ক্লিনআপের জন্য সময় বরাদ্দ করার কৌশল পরিচালনা করার উপায়?


আপনি যখন "বইটি বের হওয়ার আগে" বলবেন, আমি অনুমান করি আপনি মার্টিন ফলোয়ারের বইটি উল্লেখ করছেন এটি কি সঠিক?
অ্যালেক্সসি

-১: এই প্রশ্নের দরকারীতা কী?
জিম জি

হ্যাঁ ফওলারের বই।
চক স্টেফানস্কি

উত্তর:


43

রিফ্যাক্টরিং পাহাড়ের চেয়ে পুরনো, তাই না, এটি নতুন কিছু নয়।

এবং রিফ্যাক্টরিং পরিষ্কার হচ্ছে না। ঠিক আছে, এটি হতে পারে তবে এটি পরিষ্কার করার মধ্যেই সীমাবদ্ধ নয়।

আচরণ সংরক্ষণের সময় এটি আপনার অ্যাপ্লিকেশনটির আর্কিটেকচারকে সামঞ্জস্য করে (বড় বা ছোট আকারের স্কেলে হোক)।

এর অর্থ হ'ল গতকাল আপনার আবেদনের কিছু অংশ পুরোপুরি পরিষ্কার এবং সূক্ষ্ম হতে পারে, তবে নতুন বৈশিষ্ট্যটি সামঞ্জস্য করার জন্য আজকের নতুন বৈশিষ্ট্যের জন্য সেই অংশটি সামঞ্জস্য করা দরকার।

আপনি বিদ্যমান কার্যকারিতা ভঙ্গ করতে চান না, তাই আচরণ সংরক্ষণের সময় আপনি আপনার অ্যাপ্লিকেশনটির কাঠামো সামঞ্জস্য করেন - যা রিফ্যাক্টরিং।

এটি বলেছে যে কোডটিতে যে কোনও পরিবর্তন আসুক না কেন তার সর্বদা তার পরীক্ষা চালানো উচিত ... কেবলমাত্র ক্ষেত্রে।


1
নিউটোপিয়ান: এটি একটি গুরুত্বপূর্ণ বিষয়। আপনি যদি পরীক্ষা না চালিয়ে থাকেন তবে আপনি এলোমেলোভাবে কিছু হ্যাক করেছেন, বা বাস্তবে রিফেক্টর করেছেন কিনা সে সম্পর্কে আপনার ধারণা নেই । (এবং অবশ্যই, আপনার পর্যাপ্ত পরীক্ষার স্যুট দরকার!)
ফ্রাঙ্ক শায়ারার

9

এটি কেবল কোডটি সাফাইয়ের কাজ। মূলত, প্রোগ্রামাররা (বিশেষত মার্টিন ফোলার) লক্ষ্য করেছেন যে প্রত্যেকবার তারা তাদের কোডটি সাজাতে একই কাজ সম্পাদন করতে ঝোঁক। তারা পরিপাটি করার পদ্ধতি এবং সম্পর্কিত কোড সমস্যা এবং প্রেস্টো সংজ্ঞায়িত ও লেবেল করেছে! রিফ্যাক্টরিংয়ের জন্ম হয়েছিল।

নকশার নিদর্শনগুলির সাথে এটি একই - লোকেরা লক্ষ্য করেছেন যে তারা বারবার নির্দিষ্ট সমস্যার জন্য একই পন্থা ব্যবহার করার প্রবণতা দেখায়। তারা পদ্ধতির লেবেলযুক্ত এবং সংজ্ঞায়িত করেছে এবং এখন মনে হচ্ছে আপনি যদি সত্যই প্রোগ্রামার নন তবে আপনি যদি কেবল নিজের কোডটিতে একই ডজন বা অত্যাধিক নিদর্শন ব্যবহার না করেন।

রিফ্যাক্টরিং করার কোনও জাদু নেই; এটি একটি পুরানো অনুশীলনের বর্ণনা দেওয়ার জন্য মাত্র একটি নতুন সেট gon


উইলিয়াম ওপডিকে, 1992: অবজেক্ট-ওরিয়েন্টেড ফ্রেমওয়ার্কগুলি রিফেক্টরিং । ফোলার এবং বেক এবং বন্ধুরা রিফ্যাক্টরিংকে জনপ্রিয় করে তুলেছে। জন ব্রান্ট এবং ডন রবার্টস ১৯৯৯ সালের কিছু আগে প্রথম স্বয়ংক্রিয় সরঞ্জাম প্রয়োগ করেছিলেন So সুতরাং "জারগনের নতুন সেট" খুব সঠিক নয়।
ফ্রাঙ্ক শায়ারার

আপনি যদি স্বীকার করেন যে 1800 এর দশকের মাঝামাঝি অ্যাডা লাভলেস থেকে কম্পিউটার প্রোগ্রামিং চলছে, তবে হ্যাঁ - এটি একটি তুলনামূলকভাবে নতুন জারগানের সেট।
পিঁপড়া

1
আমি মনে করি পার্থক্যটি ডিজাইন প্যাটার্নসের সাথে প্রায় প্রতিটি বিকাশকারী কিছু নতুন নিদর্শন শিখেছিলেন এবং সেইজন্য বইটি থেকে ব্যবসায়ের কয়েকটি নতুন সরঞ্জাম। রিফ্যাক্টরিংয়ের সাথে আমার মনে হয় না যে কেউ সত্যিই কিছু শিখেছে। কোনও কিছুর নাম রাখার ক্ষেত্রে গৌণ মান রয়েছে (এবং নকশার নকশাগুলি তুলনাটি এতে ধারণ করে) তবে তিনি সেই ডাব্লু / ব্লগ পোস্টটি করতে পারতেন।
চক স্টেফানস্কি

আসলে, আমি উল্লেখ করেছি যে এটি ছিল নতুন জর্জি ... ল্যাম্বডা ক্যালকুলাসের সাথে তুলনামূলক।
ফ্র্যাঙ্ক শায়ারার

@ চক, আপনি কি রিফ্যাক্টরিং বইটি পড়েছেন? যদি তা হয় তবে আপনি এটি থেকে নতুন কিছু না শিখলে আমি খুব অবাক হব ।
মারসি

7

তিনটির জন্য বরাদ্দের সময় সহ আমরা আমাদের সংস্থায় তিনটি পৃথক কাজ করি:

  • রিফ্যাক্টরিং: কোডের কাঠামো পরিবর্তন করে, এভাবে আচরণ রাখে।

উদাহরণ: একটি কুৎসিত এবং অপঠনযোগ্য 100 লাইন পদ্ধতি বিভক্ত করা যা চারটি পুনরায় ব্যবহারযোগ্য পদ্ধতিতে 25 টি লাইন করে চারটি জিনিস করে।

  • ক্লিনআপ: কোডের আচরণ বা কাঠামোর পরিবর্তন না করে কোডকে আরও পঠনযোগ্য করার জন্য ছোটখাট পরিবর্তনগুলি অন্তর্ভুক্ত করে।

উদাহরণ: এই কোডটির আর দরকার নেই তা নিশ্চিত করার পরে মন্তব্য করা কোড সরিয়ে দেওয়া।

  • স্টাইলকপ / এফএক্সকপ বিধি প্রয়োগ করা: কোডটি স্টাইলকপ বা এফএক্সকপ নিয়মের ডিফল্ট সেটটির সাথে মেলে কিনা তা যাচাই করে থাকে এবং যদি তা না হয় তবে এই বিধিগুলির সাথে মেলে এটি পরিবর্তন করুন।

উদাহরণ: যুক্ত Culture.Invariantকরা string.Format(বা অন্য সংস্কৃতি যা আরও উপযুক্ত)।

সুতরাং আমার ক্ষেত্রে, রিফ্যাক্টরিং ক্লিনআপ থেকে খুব আলাদা কিছু । ক্লিনআপ করার সময়, আমাকে আবার ইউনিট পরীক্ষা চালাতে হবে না: কোডটি আগে কাজ করে থাকলে এটি ক্লিনআপের পরে কাজ করবে । অন্য কথায়, এটি নয় কারণ আমি একটি খালি লাইন সরিয়েছি বা একটি মন্তব্য যুক্ত করেছি যে কোড কাজ করা বন্ধ করবে। অন্যদিকে, আমি যখন পুরানো কোডের জটিল অংশগুলি রিফ্যাক্টর করি, তখন আমি কিছু ভুল করতে পারি, তাই অবশ্যই রিফ্যাক্টরিংয়ের পরে ইউনিট পরীক্ষা চালাতে হবে।


4
যদিও আমি একমত যে পরিষ্কার-পরিচ্ছন্নতা এবং ফ্যাক্টরিংয়ের মধ্যে একটি মৌলিক পার্থক্য রয়েছে এমন অনেকগুলি ক্ষেত্রে রয়েছে যেখানে এই লাইনটি বেশ খানিকটা ঝাপসা করে। পদ্ধতির স্বাক্ষর বা অবশিষ্ট সমিতি থেকে কোনও মৃত শ্রেণীর অপসারণ এবং এর সমস্ত উল্লেখ "পরিষ্কার-পরিচ্ছন্নতা" পরিষ্কার করা বা রিফ্যাক্টরিং হিসাবে বিবেচিত হবে? আমি দৃ strongly়ভাবে একমত নই যে ইউনিট পরীক্ষা চালানো alচ্ছিক। কীভাবে জিনিসগুলি ভেঙে যেতে পারে আপনার কোনও ধারণা নেই। আমি একটি ব্যতিক্রম ব্রেক ব্রেকের বার্তাটির স্ট্রিংয়ে পরিবর্তনগুলি দেখেছি কারণ কেউ কেউ মনে করেছিলেন যে কিছু ত্রুটিগুলির জন্য এটির জন্য পার্স করা ভাল ধারণা।
নিউটোপিয়ান

আমাকে নিউটোপিয়ানের সাথে একমত হতে হবে, বিশেষত পুনরায় পরীক্ষা না চালানোর বিষয়ে। আসলে, একটি স্বয়ংক্রিয় পরীক্ষার স্যুট থাকতে হবে যা প্রতিশ্রুতি প্রতি একবারের চেয়ে কম প্রায়ই সঞ্চালিত হয় । এটি ক্লিনআপ বা রিফ্যাক্টরিং নির্বিশেষে , আপনার যদি সংস্করণ নিয়ন্ত্রণে প্রতিশ্রুতিবদ্ধ করার জন্য কোড পরিবর্তন থাকে তবে পরীক্ষাগুলি চালানো উচিত।
কোজিরো

যে কোনও ক্লিনআপ করার পরে আপনার সর্বদা একটি পূর্ণ বিল্ড করা উচিত - এমনকি যদি এটি কেবল সাদা স্থান এবং মন্তব্যগুলির পরিবর্তন হয়। যে কোনও পাইথন বা মেকফিল লেখককে সে সম্পর্কে জিজ্ঞাসা করুন।
জেবিআরউইলকিনসন

3

রিফ্যাক্টরিং আপনার কোডটিতে জ্ঞান যুক্ত করে। যদি আপনি জানেন যে কোনও কিছুর ভুল নাম দেওয়া হয়েছে, আপনি এটির আরও ভাল নাম দিন। যদি আপনি জানেন যে কিছু ভাল করা যায় তবে আপনি এটিকে আরও ভাল কিছুতে পরিবর্তন করেন।

এটি ছোট এবং বড় - অনেকগুলি পদক্ষেপ যা আশা করি একটি ভাল প্রোগ্রামের ফলাফল।


3

আমি "আপনার কোড সাফ করার জন্য রিফ্যাক্টরিং একটি অভিনব শব্দ" এর সাথে সম্মত তবে "ন্যায়সঙ্গত" দিয়ে নয়। লোকেরা কোনও কারণে অভিনব শব্দ ব্যবহার করে: কখনও কখনও তারা চতুর দেখতে চায় বলে এবং কখনও কখনও কারণেই তারা আরও বেশি বা আরও সুনির্দিষ্ট অর্থ জানায় এবং আইএমএইচও-র রিফ্যাক্টরিং (এমনকি মাঝে মাঝে অপব্যবহার করা হলেও) সাধারণত পরবর্তীটির উল্লেখ করে।

"ক্লিন আপ" এর অর্থ "কিছুটা পুনরায় ফর্ম্যাট করা" থেকে "বড় অংশগুলিকে পুনরায় লেখার" থেকে বোঝানো যায়।

"রিফ্যাক্টরিং" এর অর্থ বিশেষত "কোডটিতে ছোট বর্ধিত পরিবর্তনগুলি, একই কার্যকারিতা বজায় রাখার জন্য ডিজাইন করা হয়েছে, এটি আরও ভাল ডিজাইনে রূপান্তর করার সময়"। এবং আপনি যে ধরণের কাজ করেন সে সম্পর্কে সর্বোত্তম অনুশীলনের একটি সংস্থা রয়েছে: কয়েকটি অ্যাড-হক, তবে সাধারণ নীতিগুলি রয়েছে যেমন ইউনিট পরীক্ষা ব্যবহার করা, ফাংশনগুলির অংশটি নতুন ফাংশন বা ক্লাসে বের করা ইত্যাদি, যা মানুষ শিখতে পারে এবং শিখতে হবে ।

আপনি বলেছেন "কোড সাফ করার জন্য সময় বরাদ্দ করার জন্য কেবল কৌশলটি পরিচালনা করুন"। তবে যদি "রিফ্যাক্টরিং" বলতে সঠিকভাবে ধারণাটি পৌঁছে দেয় যে স্বচ্ছতার একটি অবিচল বিনিয়োগ এখন ভবিষ্যতে দক্ষতার লভ্যাংশ প্রদান করবে, তবে এটি "কৌশল" নয়, এটি পরিষ্কার এবং কার্যকর যোগাযোগ।


2

স্বাভাবিককরণ সম্পর্কিতকরণ সম্পর্কিত ডেটা হিসাবে রিফ্যাক্টরিং কোড হয়। এটি ক্লিনার, ক্লিয়ারার এবং প্রয়োগে তাদের ভূমিকার আরও দক্ষ প্রতিনিধিত্বগুলিতে ধারণাগুলি বিমূর্ত করার প্রক্রিয়া।


1
এটি দেখার জন্য এটি একটি আকর্ষণীয় উপায়। হতে পারে এটি আমার ডাটাবেস ব্যাকগ্রাউন্ড থেকে এসেছে, তবে এমন কিছু আছে যা আমাকে রিফ্যাক্টরিংয়ের চাপ সম্পর্কে উদ্রেক করে এবং আপনি আমাকে এটিতে আঙ্গুল রাখতে সাহায্য করেছিলেন। এটি এমন একটি ডাটাবেসে যা আপনি ডিজাইনে স্থির করেন না পরীক্ষার স্থির করতে 10x বেশি সময় এবং সম্ভবত উত্পাদনে 1000x বেশি সময় লাগে। সুতরাং একটি ভাল ডিবিএ হ'ল যত তাড়াতাড়ি সম্ভব পর্যায়ে থাকা জিনিসগুলি সম্পর্কে বিশুদ্ধ। আমার অন্ত্র অনুভূতি হ'ল পরবর্তী পর্যায়ে খুব বেশি সময় রিফ্যাক্টরিং ডিজাইনিংয়ের জন্য খুব অল্প সময় ব্যয় করার ইঙ্গিত দেয়।
ব্যবহারকারী 21007

@ ইউজার21007: কোডটি একটি ডেটাবেস স্কিমার চেয়ে অনেক বেশি জটিল তবে পরিবর্তন এবং মোতায়েন করা অনেক সহজ।
কেভিন ক্লায়েন

1

এটি নির্ভর করে আপনি কীভাবে টার্ম রিফ্যাক্টরিংটি বোঝেন। বেশিরভাগ মানুষের ক্ষেত্রে এটি আচরণ পরিবর্তন না করে কাঠামোর উন্নতি করার প্রক্রিয়া। আপনি যদি রাজি হন, তবে হ্যাঁ এই বইটি বের হওয়ার অনেক আগেই এটি করা হয়েছিল। আমি জানি, কারণ বইটি লেখার আগে আমি (অন্যান্য অনেক কিছুর মধ্যে) ক্লাসের নামকরণ, ক্লাস আহরণ এবং পদ্ধতিগুলি বের করার পদ্ধতি ছিল। আমি এটিকে রিফ্যাক্টরিং বলছিলাম না, তবে সংক্ষেপে আমি ঠিক একই জিনিসটি করছিলাম।

আমার ব্যক্তিগতভাবে রিফ্যাক্টরিং হ'ল লোকেরা এখন "অটোমেটেড কোড রিফ্যাক্টরিং" অর্থাত্: একটি আইডিইর অভ্যন্তরে বিভিন্ন রিফ্যাক্টরিং কৌশলগুলির জন্য সমর্থন। আমি এর আগে যা করছিলাম তার সত্যিকারের উন্নতি (যা সত্যই খুব বেদনাদায়ক ছিল)। আমি এক শ্রেণিতে পরিবর্তন আনতে পারি এবং এটি কীভাবে এই সফ্টওয়্যারটির বাকী অংশগুলিতে প্রভাব ফেলবে তা ভেবে চিন্তার দরকার নেই। আমি মনে করি যে মার্টিন এটিকে অ্যালগরিদম হিসাবে প্রতিনিধিত্ব করতে এবং সেখানে বিভিন্ন আইডিইতে এভাবে প্রয়োগ করা যেতে পারে এমন অবধি রিফ্যাক্টরিং টেকনিক্যাস্টিকে আনুষ্ঠানিকভাবে প্রবর্তন করেছিলেন।

সুতরাং যদি আপনি একটি প্রক্রিয়া হিসাবে রিফ্যাক্টরিং বুঝতে পারেন, তবে এটি নতুন কিছু নয়। যদি আপনি এটিকে অটোমেশন হিসাবে দেখেন তবে হ্যাঁ এটি বিশাল উন্নতি। যুক্তিসঙ্গতভাবে বড় প্রকল্পে কয়েকটি কোর ক্লাসের নামকরণ (আক্ষরিকভাবে, আপনার আইডিইয়ের রিফ্যাক্টরিং বিকল্পগুলির মাধ্যমে নয়) করার চেষ্টা করুন :)


0

রিফ্যাক্টরিং আসলে কোড "ক্লিনআপ", তবে কোডটিকে পুনর্গঠন করে। আমার দলে রিফ্যাক্টরিং সাধারণত পরে থাকে। যখন আমাদের "রিফ্যাক্টর" কেস থাকে তখন আমরা আমাদের কোডটি পুনর্গঠন করার জন্য সময় বরাদ্দ করি, যেমন এটি কোনও নতুন আর্কিটেকচার, বা তথ্য মডেলের সাথে সারিবদ্ধ করা বা আরও দক্ষ করার জন্য make

কোড "ক্লিনআপ" এমন একটি জিনিস যা আমরা এর জন্য বিশেষভাবে বরাদ্দ না করে ক্রমাগত করি। আমার জন্য "ক্লিনআপ" সাধারণত নাম পরিবর্তন করা, মন্তব্য পরিষ্কার করা ইত্যাদি etc.


1
নামকরণ একটি স্ট্যান্ডার্ড রিফ্যাক্টরিং কৌশল!
চক স্টেফানস্কি

0

আমি বলব না

রিফ্যাক্টরিং প্রক্রিয়াতে পরিষ্কার-পরিচ্ছন্নতা থাকতে পারে তবে এটি মর্মার্থ নয়।

পূর্ববর্তী কোডটি পরিষ্কার নয় এমন ধারণা নিয়ে ক্লিনআপ আসে। বাস্তবে, বিকাশকারীরা তাদের কোডটি এমনকি কোডটি রিফ্যাক্টর এমনকি মূল কোডটি ইতিমধ্যে পরিষ্কার।

শুকনো refactoring পিছনে একটি কী ড্রাইভ।

একটি বিদ্যমান কোড বেসে নতুন কোড যুক্ত করার সময়, DRY নীতিটির কারণে স্বাভাবিকভাবেই রিফ্যাক্টরিং করা হয়।

আমার 0.02


0

আপনার কোড পরিষ্কার করা আপনার ঘরটি পরিষ্কার করার মতো, রিফ্যাক্টরিংটি কোনও দেয়াল ছিঁড়ে ফেলার মতো এবং সম্ভবত এটি অন্য কোথাও স্থাপন করার মতো is


0

যখন অন্য কেউ আপনার ঘর পরিষ্কার করে, আপনি কিছুই খুঁজে পাবেন না কারণ লক্ষ্যটি জিনিসগুলি পরিষ্কার এবং উপায়ের বাইরে চলে যাচ্ছে। রিফ্যাক্টরিং ঘর, পায়খানা, ক্যাবিনেটস, তাক, ডাব ইত্যাদি তৈরি এবং লেবেল করবে এটি এখনও একই জিনিস রাখে (আপনি এখনও রান্নাঘরে একটি গ্রিলড পনির স্যান্ডউইচ তৈরি করতে পারেন এবং বসার ঘরে এটি খেতে পারেন) তবে এটি তৈরি করা উচিত নতুন জিনিসগুলি রাখার জন্য কার্যকর জায়গাগুলি খুঁজে পাওয়া সহজ এবং সম্ভাব্য।


আমি কোনও বুজওয়ার্ড ধর্মান্ধ নই, তবে কখনও কখনও সাধারণ কাজগুলি লেবেল করা এবং আনুষ্ঠানিককরণ করা প্রয়োজন যাতে আপনারা কী বলছেন তা সবাই জানে। একজন ক্লায়েন্ট একটি বাগ রিপোর্ট করে এবং ম্যানেজার চিৎকার করে বলে, "যাও আপনার কোডটি পরিষ্কার করুন!" আপনি জানেন যে তারা রিফ্যাক্টরিংয়ের বিষয়ে কথা বলছে না।
জেফো

0

'রিফ্যাক্টরিং' শব্দটি বীজগণিত থেকে মার্জিতভাবে ধার করা হয়েছে। এর অর্থ একই পদক্ষেপের জন্য পদগুলি সরল করা। কেবল মার্জিত নয়, এটি বৈপ্লবিক ছিল - এটির জন্য আপনার কোডের জন্য কঠোর সীমাবদ্ধ পদ্ধতির প্রয়োজন, এমন একটি স্তরে যা অনেককে অবাক করেছিল। এবং সুতরাং শব্দটি নিজেই তাৎপর্যপূর্ণ এবং সহায়ক ছিল।


-1

না। রিফ্যাক্টরিং আচরণ পরিবর্তন না করে কাঠামোর উন্নতি করছে। কঠোর অর্থে রিফ্যাক্টরিং ভাল পরীক্ষা শৃঙ্খলা জড়িত। আপনি "জিনিসগুলি পরিষ্কার" করার সময় এটি প্রয়োজন হয় না।


2
বিপজ্জনক মনোভাব ডেড কোড এবং ডেড কনফিগারেশনের পুরো সোয়াথ সরিয়ে ফেলা হচ্ছে একটি একক পদ্ধতির স্বাক্ষরটি রিফ্যাক্টরটি পরিষ্কার করছে। তবুও উভয় ক্ষেত্রেই আমি যাতে কোনও কিছু ভঙ্গ না করি তা নিশ্চিত করার জন্য আমি একটি ভাল পরীক্ষার শৃঙ্খলা পেতে চাই।
নিউটোপিয়ান

আমি বলছি না যে পরীক্ষার শৃঙ্খলা ছাড়াই বড় পরিবর্তনগুলি করা ভাল / নিরাপদ / আকাঙ্ক্ষিত। আমি বলছি যে পদ্ধতি হিসাবে রিফ্যাক্টরিং পরীক্ষা শৃঙ্খলা জড়িত, "" জিনিস পরিষ্কার করা "মোটেও কোনও পদ্ধতি নয়।
উইলি হুইলারের

সুতরাং যদি আমি সঠিকভাবে বুঝতে পারি যদি এটির কোনও সঠিক অভিনব নাম না থাকে তবে আমরা যেতে ভাল are : - ও মজা করে বলছি, আপনি যা বলতে চাইছেন তা আমি দেখতে পেয়েছি, সত্য যে জিনিস পরিষ্কার করার বিষয়টি খুব কমই কোনও পদ্ধতি বলা যেতে পারে তবে তারপরে আবার দু'টিও রিফ্যাক্টরিং হয় না। এটি কেবল একটি অভিনব শব্দ যা আপনাকে কোডের আচরণের পরিবর্তন না করেই পরিবর্তন করছে বলে জানিয়েছে। এটি নিজেই, যা যা কিছু পরীক্ষা করার জন্য কোনও জড়িত ছিল না। ভাল কোডিং অনুশীলন অনুসরণ করে বলা হবে যে কোডটি যদি পরিবর্তিত হয় তবে আপনি কীভাবে এই ক্রিয়াকলাপটি পরিবর্তনটি কল করেছেন তা বিবেচনা না করেই এটি পরীক্ষা করা উচিত।
নিউটোপিয়ান

1
অবশ্যই, আমি এটি কিনতে পারি। টেস্ট ডিসিপ্লিনটি কীভাবে রিফ্যাক্টরিং সম্পাদন করতে যায় সে সম্পর্কে আরও বেশি, তবে এটি সংজ্ঞাতে অন্তর্নিহিত নয়। (অর্থাৎ আমি কোনও পরীক্ষা ছাড়াই কোড রিফ্যাক্টর করতে পারি)) আমি জানি না যে আমি সম্মতি জানাতে পারি যে রিফ্যাক্টরিং কোনও পদ্ধতি নয় - এখানে ধাপে ধাপে ধাপে লেখা সমস্ত বই রয়েছে।
উইলি হুইলার

-1

দুটি প্রান্তে কিছুটা ওভারল্যাপ করে তবে আমার কাছে এটি ঘর পরিষ্কার করা এবং ঘরটি পুনর্নির্মাণের মধ্যে পার্থক্য। পরিষ্কার করা, আমার কাছে, কাঠামোগত পরিবর্তনগুলি বোঝায় না, যখন রিফ্যাক্টরিং করে।


-2

"রিফ্যাক্টরিং" আসলে "পুনর্নির্মাণ" হিসাবে একই জিনিস, তবে "কোনও কার্যকারিতা পরিবর্তন হয় না" এর দৃ a় অর্থের সাথে। এটি পুনঃ-আর্কিটেকচারের লক্ষের ক্ষেত্রেও পরিষ্কার, যা প্রায়শই পুনরায় ব্যবহারযোগ্য অংশগুলিতে সাধারণ কোড "ফ্যাক্ট আউট" করতে হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.