নতুন বৈশিষ্ট্যগুলির উপর দৃষ্টি নিবদ্ধ করে কোনও প্রকল্পে ভাঙ্গা না থাকা বিদ্যমান কোডটি কি আপনার রিফ্যাক্টর করা উচিত?


11

একটি ছোট প্রকল্প দেওয়া হয়েছে যার লক্ষ্য অ্যাপ্লিকেশনটিতে নতুন কার্যকারিতা যুক্ত করতে হবে, পরিবর্তনগুলি কিছু বিদ্যমান কোডকে স্পর্শ করেছে, নির্দিষ্ট কিছু ক্ষেত্রে এটি আপডেট করে invol বাস্তবায়নের সময়, আমি এই কোডগুলির কয়েকটি আপডেট করেছি যা আপডেট হয়েছিল রিফ্যাক্টরিংয়ের প্রার্থী।

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


2
আপনি কি ওয়ান্ট রিফ্যাক্টরিং করার অনুমতি দিয়েছিলেন?

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

উত্তর:


17

একেবারে।

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

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

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

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


1
+1 বিশেষত ক্লায়েন্টদের রিফ্যাক্টরিংয়ের মান সম্পর্কে অনুচ্ছেদের জন্য।
মার্জন ভেনেমা

1
ধরে নেওয়া আপনার রিফ্যাক্টরিং যাচাই করার জন্য ইউনিট পরীক্ষার একটি ভাল সেট রয়েছে পর্যবেক্ষণ আচরণটি পরিবর্তন করে না। রিফ্যাক্টরিং বা ইউনিট পরীক্ষার পছন্দ দেওয়া হয়েছে। প্রথমে ইউনিট পরীক্ষা যুক্ত করুন।
মার্টিন ইয়র্ক

5
@ থমাস ওভেনস: +1 আমি সম্মত, তবে আমি রিফ্যাক্টরিংয়ের ক্ষেত্রে সতর্কতার একটি নোটও যুক্ত করব। রিফ্যাক্টরিংয়ের পক্ষে রিফ্যাক্টরিংয়ের একটি ক্যাসকেড শুরু করা খুব সহজ যা প্রকৃত কাজটি প্রয়োজনীয়ভাবে ফুটিয়ে তুলতে পারে এবং সময়সীমাটি আরও বাড়িয়ে তুলতে পারে।
জোয়েল ইথারটন

@ জোয়েল এটি একটি ভাল পয়েন্ট। সময়সীমা তৈরির জন্য আপনাকে সুযোগসীমাতে সীমিত রাখার দরকার নেই।
টমাস মালিক

3

নীচের প্রশ্নগুলির উত্তরগুলি বিবেচনা করুন, তারপরে সিদ্ধান্তটি নেওয়া আপনার পক্ষে সহজ হবে। প্রজ্ঞা "এটি যদি ভাঙা না হয় তবে এটি সংশোধন করবেন না" প্রলুব্ধকর তবে পেশাদার কাজের জন্য সর্বদা সত্য নয়।

0-এই কোড সম্পর্কে গ্রাহকের অভিযোগ আছে?

1-অ্যাপ্লিকেশন কার্যকারিতা জন্য এই প্রয়োজনীয়?

2-বর্তমান কোডটি কি ক্ষতিকারক?

3-পরিবর্তনের ব্যয়টি কি মূল্যবান?

4-আপনি কি খরচ বহন করতে পারবেন?

5-এটি কি আপনার দক্ষতার প্রতিষ্ঠানের কাছে সেরা ব্যবহার ization

6-আপনার পরিবর্তনগুলি কি আপনার ব্যবহারকারীর নতুন পরিবর্তনটি পুনরায় ইনস্টল করতে হবে - আপনি কি গ্রাহকের পক্ষে এটি ন্যায়সঙ্গত করতে পারেন?

7-আপনি কি কোনও খারাপ সমাধানের ঝুঁকি সহ্য করতে পারবেন?

8-পরিবর্তনটি কি আপনার প্রকল্পের বাইরের অন্যান্য কোডকে প্রভাবিত করবে?

9-এটি কি কোনও বিকশিত পণ্য বা একটি স্থিতিশীল পণ্য? যদি এটি বিকশিত হয় তবে আপনি কি পরবর্তী প্রকাশের সাথে পরিবর্তনগুলি অন্তর্ভুক্ত করতে পারবেন?


আপনি আমার মন পড়েছেন! আমি সেই বিখ্যাত নিয়মের ঠিক ভাবছিলাম "রিফ্যাক্টরিং স্থগিতকরণকে ন্যায়সঙ্গত করার জন্য" এটি ভাঙ্গা না হলে এটি ঠিক করবেন না "!
কার্লোস জাইম সি ডি লিওন

3

রিফ্যাক্টর শীঘ্রই, প্রায়শই রিফ্যাক্টর।

যদি আপনি এটি সামর্থ্য করতে পারেন (সময়, অর্থ ইত্যাদি) আপনার এটি করা উচিত।

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

আপনি একটি আপ টু ডেট কোড চান এবং আপনি যদি মনে করেন যে আপনার কোডটিতে আসলে কিছু পরিবর্তন দরকার, বিশেষত নতুন কার্যকারিতা যুক্ত করার সময়, তবে আপনার এটি পরিবর্তন করা উচিত।

কোনও সংস্করণ নিয়ন্ত্রণ সিস্টেমের সাথে ভুলে যাবেন না তবে আপনি আপনার প্রকল্পটিকে একটি নতুন শাখায় কাঁটাচামচ করতে পারেন, যাতে আপনি আপনার বর্তমান কোডটিকে মোটেই প্রভাব ফেলবেন না।


2

নতুন কার্যকারিতা বাস্তবায়নের জন্য যদি রিফ্যাক্টরিংয়ের প্রয়োজন হয় তবে এটি করা উচিত এবং নতুন বিকাশের অংশ হিসাবে এটি ফ্যাক্টর করা উচিত।

ডুপ্লিকেটড কোড থাকা দীর্ঘস্থায়ীভাবে সম্পাদনাগুলি অন্য জায়গায় নয়, আপনার জন্য (ব্যক্তিগতভাবে এবং সংস্থা উভয়ই) আপনার আরও বেশি ব্যয় করতে হবে।

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

যদি রিফ্যাক্টরিংটি কেবল "কাজটি করতে" ভাল - যেমন কোডটিতে সরাসরি নতুন কার্যকারিতা দ্বারা প্রভাবিত হয় না তবে আমি এটিকে একা রেখে দেব। আপনি পরিবর্তনের স্বার্থে একটি পরিবর্তন প্রবর্তন করছেন।


0

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

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