আমি বয় স্কাউট নিয়মে একটি দুর্দান্ত বিশ্বাসী :
আপনি যখন যাচাই করেছিলেন তার চেয়ে সর্বদা ক্লিনারে কোনও মডিউল পরীক্ষা করে দেখুন "" মুল মডিউলটি উন্নত করতে আমরা যতটা চেষ্টা করি না কেন, আমরা যতটা চেষ্টা করি না কেন, ফলাফলটি কী হবে? আমি মনে করি যদি আমরা সকলেই এই সহজ নিয়মটি অনুসরণ করেছিল, আমরা আমাদের সফ্টওয়্যার সিস্টেমগুলির নিরবিচ্ছিন্ন অবনতির শেষ দেখতে চাইতাম Instead পরিবর্তে, আমাদের সিস্টেমগুলি ধীরে ধীরে উন্নত হওয়ার সাথে সাথে আরও উন্নত হবে We আমরা আরও দেখতে চাই দলগুলি সামগ্রিকভাবে সিস্টেমটির জন্য যত্ন নেওয়া, বরং কেবলমাত্র ব্যক্তিরা তাদের নিজের ছোট্ট অংশের যত্ন নিচ্ছেন।
আমি অপারচুনিস্টিক রিফ্যাক্টরিং সম্পর্কিত ধারণা সম্পর্কেও দুর্দান্ত বিশ্বাসী :
যদিও কিছু নির্ধারিত রিফ্যাক্টরিং প্রচেষ্টার জন্য জায়গা রয়েছে, আমি যখনই এবং যেখানেই কোড সাফ করা দরকার - যাহাই হোক না কেন, রিফ্যাক্টরিংকে একটি সুবিধাবাদী ক্রিয়াকলাপ হিসাবে উত্সাহিত করতে পছন্দ করি। এর অর্থ হ'ল যে কোনও সময় যে কোনও কোড এমন কোনও কোড দেখে যা এটি যতটা পরিষ্কার হওয়া উচিত ঠিক ততক্ষণে, তার উচিত ঠিক সেখানে এটি ঠিক করার সুযোগটি নেওয়া উচিত - বা কমপক্ষে কয়েক মিনিটের মধ্যেই
বিশেষ করে রিফ্যাক্টরিং নিবন্ধের নীচের অংশটি নোট করুন:
সুবিধাবাদী রিফ্যাক্টরিংয়ের জন্য ঘৃণার কারণ ঘটাতে এমন কোনও উন্নয়ন অনুশীলনের বিষয়ে আমি সতর্ক থাকি ... আমার ধারণাটি হল যে বেশিরভাগ দল পর্যাপ্ত পরিমাণে রিফ্যাক্টরিং করে না, তাই এটি করা থেকে মানুষকে নিরুৎসাহিত করে এমন কোনও কিছুর প্রতি মনোযোগ দেওয়া গুরুত্বপূর্ণ। এটিকে ফ্লাশ করতে সাহায্য করার জন্য আপনি যখন কোনও ছোট রিফ্যাক্টরিং করা থেকে নিরুৎসাহিত হন তখন যে সচেতন হন সে সম্পর্কে সচেতন হতে আপনি নিশ্চিত হন যে এটি কেবলমাত্র এক বা দুই মিনিট সময় নেবে। এই জাতীয় যে কোনও বাধা হল একটি গন্ধ যা কথোপকথনকে প্ররোচিত করে। তাই হতাশার একটি নোট তৈরি করুন এবং এটি দলের সাথে নিয়ে আসুন। খুব কমপক্ষে এটি আপনার পরবর্তী পূর্ববর্তী সময়ে আলোচনা করা উচিত।
আমি যেখানে কাজ করি সেখানে একটি বিকাশ অনুশীলন রয়েছে যা ভারী ঘর্ষণ সৃষ্টি করে - কোড পর্যালোচনা (সিআর)। যখনই আমি এমন কিছু পরিবর্তন করি যা আমার "কার্যনির্বাহী" এর আওতায় না থাকে তখন আমার পর্যালোচকরা আমাকে তিরস্কার করে যাচ্ছেন যে আমি পরিবর্তনটি পর্যালোচনা করা শক্ত করে তুলছি। এটি বিশেষত সত্য যখন রিফ্যাক্টরিং জড়িত থাকে, যেহেতু এটি "লাইন বাই লাইন" পার্থক্য তুলনাকে কঠিন করে তোলে। এই পদ্ধতির এখানে স্ট্যান্ডার্ড, যার অর্থ সুবিধাবাদী রিফ্যাক্টরিং খুব কমই করা হয়ে থাকে, এবং কেবলমাত্র "পরিকল্পিত" রিফ্যাক্টরিং (যা সাধারণত খুব কম, খুব দেরিতে হয়) হয়, যদি তা হয় তবে।
আমি দাবি করি যে সুবিধার জন্য এটি মূল্যবান এবং 3 টি পর্যালোচক কিছুটা বেশি কঠোর পরিশ্রম করবে (কোন কোডটি পরিবর্তিত হয়েছে তার সরু ক্ষেত্রটি দেখার চেয়ে বরং আগে এবং পরে কোডটি বোঝার জন্য - পর্যালোচনা নিজেই সেই একার কারণে আরও ভাল হবে) ) যাতে পরবর্তী 100 জন বিকাশকারী কোডটি পড়া এবং বজায় রাখতে সুবিধা পাবেন। আমি যখন এই তর্কটি আমার পর্যালোচকদের উপস্থাপন করি তখন তারা বলে যে আমার রিফ্যাক্টরিংয়ের সাথে তাদের কোনও সমস্যা নেই, যতক্ষণ না এটি একই সিআর-তে নেই। তবে আমি দাবি করি এটি একটি পৌরাণিক কাহিনী:
(1) বেশিরভাগ সময় আপনি যখন বুঝতে পারেন যে আপনি যখন নিজের অ্যাসাইনমেন্টের মাঝে রয়েছেন তখন আপনি কী এবং কীভাবে রিফ্যাক্টর করতে চান। মার্টিন ফোলার যেমন লিখেছেন:
কার্যকারিতা যুক্ত করার সাথে সাথে আপনি বুঝতে পেরেছেন যে আপনি যে কোডটি যুক্ত করছেন তাতে কিছু বিদ্যমান কোডের সাথে কিছু নকল রয়েছে, সুতরাং আপনার জিনিসগুলি পরিষ্কার করার জন্য বিদ্যমান কোডটির পুনরায় চুলক করা দরকার ... আপনি কিছু কাজ করতে পারেন তবে বুঝতে পারেন যে এটি হবে বিদ্যমান ক্লাসগুলির সাথে মিথস্ক্রিয়া পরিবর্তন করা হলে আরও ভাল। নিজেকে সম্পন্ন করার বিষয়টি বিবেচনা করার আগে সেই সুযোগটি গ্রহণ করুন।
(২) আপনার "রিফ্যাক্টরিং" সিআরগুলি প্রকাশের বিষয়ে আপনার পক্ষে কেউ অনুকূলভাবে তাকাবে না you একটি সিআর এর একটি নির্দিষ্ট ওভারহেড থাকে এবং আপনার ব্যবস্থাপক চান না যে আপনি রিফ্যাক্টরিংয়ে "আপনার সময় নষ্ট করবেন"। আপনার যে পরিবর্তনটি করা উচিত তা যখন এটি বান্ডিল হয়ে থাকে তখন এই সমস্যাটি হ্রাস করা হয়।
সমস্যাটি রেশার্পার দ্বারা তীব্রতর করা হয়েছে, আমি যে প্রতিটি নতুন ফাইল পরিবর্তনের সাথে যুক্ত করেছি (এবং আমি আগে জানতাম না যে কোন ফাইলগুলি পরিবর্তিত হবে ঠিক তেমনভাবে) সাধারণত ত্রুটি এবং পরামর্শ দিয়ে লিখিত হয় - যার বেশিরভাগ স্পট এবং সম্পূর্ণ প্রাপ্য স্থাপন করা.
শেষ ফলাফলটি হ'ল আমি ভয়ঙ্কর কোডটি দেখতে পাচ্ছি এবং আমি কেবল এটি সেখানে রেখেছি। হাস্যকরভাবে, আমি অনুভব করি যে এই জাতীয় কোড ঠিক করা কেবল আমার অবস্থানগুলিকেই উন্নত করবে না, তবে এগুলি কমিয়ে দিন এবং আমাকে "ফোকাসযুক্ত" লোক হিসাবে আঁকেন যিনি নিজের কাজটি করার পরিবর্তে সময় ফিক্সিংয়ের বিষয়গুলি ব্যয় করেন না nobody আমি এটি সম্পর্কে খারাপ লাগছি কারণ আমি সত্যই খারাপ কোডকে তুচ্ছ করি এবং এটি দেখার পক্ষে দাঁড়াতে পারি না, আমার পদ্ধতিগুলি থেকে এটিকে একা বলা যাক!
আমি কীভাবে এই পরিস্থিতির প্রতিকার করতে পারি সে সম্পর্কে কোনও চিন্তাভাবনা?
your manager doesn't want you to "waste your time" on refactoring