আমি এমন একটি দলের সাথে কাজ করি যা এক বছরেরও কম সময়ে 2 বিকাশকারী থেকে 10 এ উন্নীত হয়েছিল। আমি 3 নম্বরে ছিলাম এবং কোডিং মানগুলির ইস্যু উত্থাপনকারী প্রথম। দু'জন মূল বিকাশকারী কয়েক বছর ধরে পাশাপাশি কাজ করছিলেন এবং তারা একটি সাধারণ মান গ্রহণ করেছিলেন যা আমার কাছে পরক বলে মনে হয়েছিল। আপনি বর্ণনা করছেন ঠিক আমাদের একই সমস্যা ছিল।
আমরা যা করেছি তা হ'ল:
কোডিং মানসমূহ গবেষণা
আমরা প্রতিষ্ঠিত ওপেন সোর্স প্রকল্পগুলি পরীক্ষা করে কিছু দিন ব্যয় করেছি। আমরা জানতাম যে টিমটি দ্রুত প্রসারিত হবে এবং আমরা বাস্তব প্রকল্পগুলির ভিত্তিতে প্রকৃত সমাধানগুলি সন্ধান করছি যা কিছু জেনেরিক নির্দেশিকা নয়। এছাড়াও আমরা সর্বোত্তম কোডিং মানগুলির জন্য যত্ন নিই না, তবে এমন একটি নিয়ম এবং নির্দেশিকাগুলির একটি সেটের জন্য যা বোধগম্য হয় এবং আমাদের সমস্ত কোডবেসের রিফ্যাক্টরিংয়ের জন্য কল করে না। আমরা চাইলে কোডিং স্ট্যান্ডার্ড হ্যাকের সন্ধান করছি।
আমরা তিনজন স্থির করেছিলাম যে একটি প্রতিষ্ঠিত পিএইচপি প্রকল্পের জন্য সর্বোত্তম কোডিং মানগুলি জেন্ড ফ্রেমওয়ার্ক অনুসরণ করে। ভাগ্যক্রমে জেন্ড ফ্রেমওয়ার্কের লোকেরা একটি খুব বিস্তৃত কোডিং মান নথি সরবরাহ করে ।
আমাদের নিজস্ব কোডিং স্ট্যান্ডার্ড তৈরি করা হচ্ছে
অবশ্যই আমাদের প্রকল্পে অন্য প্রকল্পের কোডিং স্ট্যান্ডার্ড প্রয়োগ করা অর্থযুক্ত নয়। আমরা টেমপ্লেট হিসাবে জেন্ড ফ্রেমওয়ার্ক নথিটি ব্যবহার করি:
- প্রথমে আমরা আমাদের প্রকল্পে প্রযোজ্য না এমন সমস্ত কিছু সরিয়ে দিয়েছি
- তারপরে আমরা স্টাইলের বিষয় হিসাবে আমাদের উপলব্ধি করা সমস্ত কিছুকে আমাদের শৈলীতে পরিবর্তন করেছি
- এবং অবশেষে আমরা সবকিছু লিখেছিলাম
সুতরাং আমাদের হাতে একটি মোটামুটি বড় দলিল ছিল, যা আমাদের অভিনব উইকিতে সংরক্ষিত ছিল, এটি একটি চমৎকার পড়া ছিল, আমাদের সবার দ্বারা একমত হয়েছিল। এবং নিজস্বভাবে সম্পূর্ণ অকেজো।
আমাদের প্রতিশ্রুতি সত্য
আমাদের কোডবেস তখন প্রায় 1 * 10 ^ 6 স্লোক ছিল। আমরা জানতাম যেহেতু আমরা আনুষ্ঠানিক কোডিং মানগুলি অবলম্বন করেছি আমাদের কোডটি রিফ্যাকচারিং শুরু করতে হয়েছিল, কিন্তু সেই সময়ে আমাদের অন্যান্য সমস্যা নিয়ে চাপ দেওয়া হয়েছিল। সুতরাং আমরা কেবলমাত্র আমাদের খুব কোর লাইব্রেরিগুলিকে রিফেক্টর করার সিদ্ধান্ত নিয়েছি, কেবল 5 * 10 ^ 3 স্লোক।
আমরা আমাদের একজনকে কোডিং স্ট্যান্ডার্ড মাস্টার হিসাবে নিয়োগ করেছি (আমরা মাস্টারের স্থলে স্থানীয় কৌতূহল ব্যবহার করেছি ) মানগুলি পরীক্ষা করে প্রয়োগ করার দায়িত্ব নিয়ে। আমরা প্রতি কয়েক স্প্রিন্টে ভূমিকাটি পুনর্ব্যবহার করি। আমি প্রথম ছিলাম, এবং এটি অনেক কাজ ছিল, কারণ আমাকে প্রায় প্রতিটি প্রতিশ্রুতি নিরীক্ষণ করতে হয়েছিল।
আমার আমলে মূল নথিতে আমাদের বেশ কয়েকটি নতুন আলোচনা এবং ছোট সংযোজন হয়েছিল এবং শেষ পর্যন্ত আমাদের কিছুটা স্থিতিশীল দলিল ছিল। আমরা এখনই এটিকে সর্বদা পরিবর্তন করি তবে এই পরিবর্তনগুলির বেশিরভাগটি ভাষার নতুন বৈশিষ্ট্যে হয় কারণ পিএইচপি 5.3 নাম বাদে সমস্ত ক্ষেত্রেই একটি প্রধান প্রকাশ ছিল।
নতুন লোকটির সাথে ডিল করছে
যখন পরের নতুন লোকটি উপস্থিত হল, তখন আমাদের কোডিং মানগুলি পরীক্ষায় নেওয়ার সময় হয়েছিল। আমাদের কোডবেসের একটি ছোট্ট পরিচয়ের পরে, আমরা তাকে আমাদের কোডিং মান নথির মূল্যায়ন করতে বলেছিলাম। সে প্রায় কেঁদেছিল। দেখা গেল যে তিনি সব কিছু আলাদাভাবে করেছিলেন।
আমি যখন কোডিং মানদণ্ডের মাস্টার ছিলাম তখন তার ইনপুটটি মূল্যায়ন করা এবং সেই অনুসারে দলিলটি সংশোধন করা আমার উপর নির্ভর করে। তাঁর প্রস্তাবগুলি ছিল:
- ব্যক্তিগত স্টাইলের বিষয়গুলি (সংক্ষিপ্তভাবে বরখাস্ত)
- স্ট্যান্ডার্ডগুলি যা তার জাভা ব্যাকগ্রাউন্ডে বুঝায় তবে পিএইচপি (বরখাস্ত) এর সাথে তেমন কিছুই হয় না
- তিনি পিএইচপি-র সাথে তাঁর সংক্ষিপ্ত এক্সপোজার থেকে নিয়ে আসা কনভেনশনগুলি (কিছু কিছু বরখাস্ত করা হয়েছিল, তবে অনেকগুলি প্রচলিত প্রচলিত কনভেনশন হিসাবে প্রমাণিত হয়েছিল যা আমরা কখনই ভাবিনি বা আমাদের প্রাথমিক গবেষণায় খুঁজে পাইনি)
পরের দু'সপ্তাহ ধরে তাঁকে একটি সাধারণ কাজ অর্পণ করা হয়েছিল: আমাদের কোডবেসের বেশ কয়েকটি অংশ মানক সহ আপ টু ডেট আনুন। কয়েকটি নিয়মের ভিত্তিতে আমাকে সেই অংশগুলি সাবধানে বেছে নিতে হয়েছিল:
- কোডটি আমাদের কোডবেসের সাথে অপরিচিত কারও (এবং সাধারণভাবে পিএইচপি) তুলনামূলকভাবে সহজ হওয়া উচিত
- কোড তার করা উচিত ছিল তার উচিত
আমি তার প্রক্রিয়া পর্যবেক্ষণ করেছি এবং তিনি একটি ভাল কাজ করেছেন। আমরা কোডের বেশ কয়েকটি অংশ সনাক্ত করেছি যা আমাদের নথির সাথে মানানসই অসম্ভব এবং তদনুসারে সংশোধন করা হয়েছে (কোড এবং / বা মানকগুলি, যা আরও বেশি জ্ঞাত করে)
এবং তারপরে আর এক নতুন লোক এসেছিল। আমরা প্রক্রিয়াটি পুনরাবৃত্তি করেছি (এবার ভিন্ন ভিন্ন মাস্টার) এবং এটি আবার কাজ করেছে। এবং আবার.
উপসংহারে
- কোডিং স্ট্যান্ডার্ড ডকুমেন্ট তৈরি করুন, তবে নিশ্চিত করুন যে আপনার মানগুলি কেবল আপনার নিজস্ব নয় তবে আপনার প্ল্যাটফর্মের বৃহত্তর সম্প্রদায়ের সাধারণ মানগুলি প্রতিফলিত করে।
- আমাদের কোডিং স্ট্যান্ডার্ড মাস্টারকে অনুরূপ ভূমিকা অর্পণ করুন। কমপক্ষে নতুন কোড এবং বিশেষ করে নতুন সদস্যদের কাছ থেকে নতুন কোড নিরীক্ষণ করার জন্য কেউ। ভূমিকাটি পুনরায় চালনা করুন, কারণ এটি অত্যন্ত বিরক্তিকর।
- সর্বদা নতুন সদস্যের কাছ থেকে ইনপুট মূল্যায়ন করুন। আপনার মানটি যদি বোধগম্য হয় তবে সর্বদা এটি সংশোধন করুন। আপনার কোডিং মানদণ্ডের নথিটি বিকশিত হওয়া উচিত, তবে ধীরে ধীরে। আপনি প্রতিটি পুনরাবৃত্তিতে আপনার কোডবেসটিকে রি-রিফ্যাক্টর করতে চান না।
- প্রতিটি নতুন সদস্যকে আপনার মানদণ্ড এবং নিয়মাবলী শিখতে এবং খাপ খাইয়ে নিতে কিছু সময়ের জন্য অনুমতি দিন। এই পরিস্থিতিতে সেরা কাজ করে শিখুন।
- উইকি এই জাতীয় দলিলগুলির জন্য আশ্চর্য কাজ করে।
- কোড পর্যালোচনা কোনও পরিস্থিতির জন্য আশ্চর্য কাজ!
প্রক্রিয়াটির এক পর্যায়ে প্রস্তাবিত হয়েছিল যে মানগুলির চেকিং স্বয়ংক্রিয় করতে আমরা একটি প্রাক-কমিট হুক ব্যবহার করি । আমরা বিভিন্ন কারণে এর বিরুদ্ধে সিদ্ধান্ত নিয়েছি, ইস্যুতে স্ট্যাকওভারফ্লোতে কিছু আকর্ষণীয় আলোচনা রয়েছে:
কিছু পিএইচপি নির্দিষ্ট, কিন্তু উত্তরগুলি সমস্ত প্ল্যাটফর্মগুলিতে প্রয়োগ হয়।