আমি মনে করি এটি সামগ্রিক প্রকল্পটি কতটা বড় হবে তার উপর নির্ভর করে kind
এক পর্যায়ে, ধরা যাক আপনার একটি 1 মিল্ক প্রকল্প রয়েছে। এই বিশাল প্রকল্পের পক্ষে, সম্ভবত জড়িত সমস্ত ক্ষেত্রেই একজন ব্যক্তি একজন "বিশেষজ্ঞ" হতে পারবেন না। সুতরাং এই ক্ষেত্রে, আমি প্রতিটি বড় উপাদানগুলির জন্য বিদ্যমান কোড শৈলীর সাথে আটকে থাকব। নতুন বিকাশকারীরা একটি অঞ্চল বেছে নেবে, এটি শিখবে এবং এগুলি সম্ভবত বিভিন্ন কোড শৈলীতে থাকতে পারে এমন আরও অনেক উপাদান তারা দেখতে পাবে unlikely
প্রকল্পের অনেক ছোট, যেখানে এটি হয়, তাহলে হয় ব্যক্তি সমগ্র কোড বেস বুঝতে হওয়ার সম্ভাবনা, তারপর আমি একটি প্রভাবশালী কোড শৈলী এবং যে সঙ্গে লাঠি বাছাই করবে। এই ক্ষেত্রে, আমি মনে করি পুরো প্রকল্প জুড়ে ধারাবাহিকতা আরও বোধগম্য হয় কারণ নতুন বিকাশকারীরা প্রকল্পের সমস্ত ক্ষেত্রে কাজ করতে পারে।
মাঝারি আকারের প্রকল্পগুলি সম্ভবত এই সিদ্ধান্ত নেওয়া সবচেয়ে কঠিন। এই ক্ষেত্রে, আপনাকে প্রতিটি পদ্ধতির জন্য ব্যয়টি মাপতে হবে এবং আপনি যেটি সবচেয়ে কম ব্যয়বহুল দীর্ঘমেয়াদী বলে মনে করেন তার সিদ্ধান্ত নিতে হবে। চ্যালেঞ্জটি হ'ল মাঝারি আকারের প্রকল্পগুলি সাধারণত পর্যাপ্ত পরিমাণে বেড়ে যায় যেখানে একটি সম্পূর্ণ স্টাইলের রিফ্যাক্টরিংকে ব্যয়বহুল ব্যয়বহুল বলে মনে হয়। আপনি কোড ট্রি কাঠামোর উপর দ্বিতীয় নজর রাখতে চাইতে পারেন যে নির্দিষ্ট কোড শৈলগুলি একসাথে গ্রুপে সাজানোর ব্যবস্থা করা যেতে পারে কিনা তা দেখতে।
যেভাবেই হোক, চূড়ান্ত সিদ্ধান্তটি এই দলের সাথে বিশ্রাম নেওয়া উচিত যা আপনি এই প্যাকেজটিকে একসাথে রেখে চলেছেন।
এমন কিছু বিদেশি যা আমার যুক্তিটি উপর থেকে বদলে দিতে পারে:
যদি এক বা একাধিক মডিউলগুলির একটি নৃশংস শৈলী থাকে, তবে এটি বৃহত্তর প্রকল্পেও, এটি চারপাশে রাখার কোনও ধারণা নেই। হ্যাঁ, শৈলী বিষয়গত, তবে আপনি এবং আপনার সহকারী প্রকল্পের অংশগ্রহণকারীরা যদি সত্যিই বিশেষ অঞ্চলগুলিকে প্রবাহিত করতে পছন্দ করেন না তবে পুরানো শৈলীর দিকে ঝুঁকুন এবং আরও ভাল দিন।
সমস্ত শৈলী যদি একে অপরের সাথে যুক্ত হয় তবে এটি "নতুন উপায় এখানে" ঘোষণা করা এবং এটি সমস্ত নতুন কোড এবং উল্লেখযোগ্য রিফ্যাক্টরিংগুলির জন্য ব্যবহার করা ঠিক তত সহজ। এটি পর্যালোচনাগুলিকে কিছুটা ব্যথা করতে পারে তবে আমার অভিজ্ঞতায় বেশিরভাগ লোক এই পদ্ধতির সাথে খাপ খাইয়ে নিতে বেশ সক্ষম। এটি পুরানো কোডটি কোথায় রয়েছে তা বলার লক্ষণ সরবরাহ করে।
কখনও কখনও স্টাইলটি ভাষাতে যুক্ত হওয়া নতুন কার্যকারিতার উপর ভিত্তি করে স্থানান্তরিত হয়। সি ++ বছরের পর বছর ধরে বেশ কয়েকটি বৈশিষ্ট্য তুলে ধরেছে। পুরানো শৈলীর প্রয়োজন অনুসারে নতুন স্টাইলে প্রয়োজনীয় বৈশিষ্ট্যগুলি ব্যবহার করে যা রিফ্যাক্টরটি বোঝাতে পারে।
কিছু লাইব্রেরির একটি বিশেষভাবে আইডোম্যাটিক পদ্ধতি বা স্টাইল থাকতে পারে। যদি তা হয় তবে আমি সেই লাইব্রেরির জন্য সেই শৈলীর সাথে লেগে থাকব এমনকি এটি যদি প্রকল্পের বাকী অংশগুলির সাথে বিরোধীও হয়। এখানে উদ্দেশ্যটি হ'ল প্রতিকূলতা বাড়াতে হবে যে কেউ frobnosticatorsঅন্য প্রকল্পগুলিতে কাজ করে সেও আপনার প্রকল্পে কাজ করবে।
কিছু মন্তব্যে বিবেচনা হিসাবে উল্লেখযোগ্য এবং অবজেক্ট-ভিত্তিক শৈলীর উল্লেখ করা হয়েছে।
একটি বিশেষ শৈলীতে "ভারী" মডিউলগুলি যদি মডিউলটি মাঝারি আকারের বা বড় হয় তবে সম্ভবত সেভাবেই থাকা উচিত। আমি তিনটি প্রধান শৈলীর সাথে কাজ করেছি (আবশ্যকীয়, উদ্দেশ্যমূলক এবং কার্যকরী), এবং আমি একটি ওও স্টাইলে ভারী অপরিহার্য শৈলীর রিফেক্টর করেছি। মাঝারি বা বৃহত পরিমাণের কোড সহ, রিফ্যাক্টরিং (ব্যতিক্রমী) কঠিন হতে পারে। আমার অভিজ্ঞতা বিস্মিত হয়েছিল কারণ রিফ্যাক্টরিংয়ে সহায়তা করার জন্য আমার কাছে কোনও সরঞ্জাম সরঞ্জাম নেই।
আমি কল্পনা করব যে ভারীভাবে আবশ্যকীয় স্টাইলযুক্ত মডিউলগুলির মধ্যে একটি নির্দিষ্ট সম্পর্ক রয়েছে এবং সেইগুলি মডিউলগুলি নির্দিষ্ট বিকাশের কুলুঙ্গিগুলির জন্য মূর্তিমানিক, যা আমি বহিরাগতদের সাথে উত্থাপিত শেষ পয়েন্টে ফিরে যায়। সুতরাং যে কার্যকারিতাটির জন্য আপনি যে কোনও মডিউলটি খুঁজে পাবেন সেটি দেখতে হবে এবং আপনি চান যে সেই ডোমেনের বিশেষজ্ঞরা আপনার প্রকল্পেও সহজে কাজ করতে সক্ষম হন। তবে যদি বিকল্প থাকে এবং আপনার দলটি সেই মডিউলটির স্টাইল পছন্দ না করে, তবে আমি বিকল্পগুলি তদন্ত করব।
তেমনি, আমি একটি ভারী-ওও স্টাইলযুক্ত মডিউল নিয়ে কাজ করেছি যেখানে ওও নীতিগুলি খুব বেশি দূরে নেওয়া হয়েছিল এবং ভুলভাবে ব্যবহার করা হয়েছিল। উদাহরণ হিসাবে, ইন্টারফেসগুলি একাধিক উত্তরাধিকারের বিকল্প হিসাবে ব্যবহৃত হচ্ছিল। এবং আপনি যেমন আশা করতে পারেন, এটি একটি অশোধিত বাস্তবায়ন ছিল। আমি সেই মডিউলটির পুনঃনির্মাণে যুক্তিসঙ্গত অগ্রগতি করতে সক্ষম হয়েছি, তবে পরিবর্তে আরও ভাল প্যাকেজ পেলাম বলে আমি শেষ পর্যন্ত সেই পদ্ধতির বিষয়টি ত্যাগ করেছি।