কোডিং মানগুলির বিবর্তন, আপনি তাদের সাথে কীভাবে আচরণ করবেন?


12

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

ধরা যাক আপনার কোডবেস কোডের প্রায় 500.000+ লাইনের। আপনি কি এখনও বিদ্যমান সমস্ত কোড পরিবর্তন করতে চান? বা আপনি কি কেবল নতুন কোডকেই নতুন মানকে মেনে চলতে দেবেন? মূলত ধারাবাহিকতা হারাবেন?

আপনি কীভাবে আপনার প্রকল্পের কোডিং মানগুলিতে একটি বিবর্তন মোকাবেলা করবেন?

উত্তর:


16

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

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

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


6

আমরা কী করি কোড বেজের জন্য বিবর্তন (বিপ্লব নয়), আমরা আপডেট স্ট্যান্ডার্ডটি ব্যবহার করব যখন;

  • নতুন কোড লেখা আছে
  • কোড রিফ্যাক্টর
  • বাগগুলি স্থির রয়েছে
  • বিদ্যমান অংশে নতুন অংশ যুক্ত করা হয়

এটি গুরুত্বপূর্ণ যে আপনার কোডবেসটি সামঞ্জস্যপূর্ণ, সুতরাং যদি পরিবর্তনটি "পুরানো" এবং "নতুন" স্টাইলের কোডের মধ্যে বিভ্রান্তির সম্ভাবনা খোলে, তবে পরবর্তী কোডটিতে আপনার কোডিং স্ট্যান্ডার্ডের আপডেট সংরক্ষণ করা ভাল।


3

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

এতে বলা হয়েছে, কোডিং স্ট্যান্ডার্ডে পরিবর্তনের জন্য দুটি বিষয় বিবেচনা করতে হবে:

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

2

এটি আপনার তৈরির ধরণের উপর নির্ভর করে:

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

1
আমি যুক্ত করব যে এটি আপনার পরীক্ষার কভারেজের উপরও নির্ভর করে। সমালোচনামূলক কার্যকারিতা ইন্টিগ্রেশন এবং ইউনিট পরীক্ষাগুলি দ্বারা আচ্ছাদিত হওয়ায় আমি আত্মবিশ্বাসের সাথে বেশ কিছু বিশাল 10,000+ লাইন পুনরায় ফ্যাক্টর করেছি।
মার্টিজ ভার্বার্গ

@ মার্তিজন - ভাল কথা, এটিও সত্য।
mrwooster

0

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


আপনি কি এই পছন্দ পিছনে যুক্তি ব্যাখ্যা করতে পারেন?
ওয়ার্ড বেকার

ওহ ... আপনি বলতে পারেন, এটা দারুণ স্বজ্ঞাততা। এমআরওয়ুস্টার উপরে যা বলেছে তার উপর ভিত্তি করে, যদি এটি একটি বাণিজ্যিক অ্যাপ্লিকেশন হয় তবে আমি আমার কসমেটিক পরিবর্তনগুলি করার জন্য আমার সময় নষ্ট করব না। (মনে রাখবেন, কার্যকারিতা একই থাকে)। তদুপরি, বলুন, পরিবর্তনটি কেবলমাত্র আপনি কীভাবে বস্তুগুলিকে ইনস্ট্যান্ট করেন তা নয়। তবে এটিও বলুন যে আপনি এর পদ্ধতিগুলিতে কীভাবে অ্যাক্সেস করেন। তারপরে বাগ প্রবর্তনের সুদর্শন সুযোগের সাথে প্রচুর কোড ঠিক করা দরকার। সুতরাং, আরও ভাল বুড়ো সেখানে থাকতে দিন।
বরুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.