আমাকে বলছে আমি প্রাথমিকভাবে পদ্ধতি অ্যাক্সেস নিয়ে এখানে কথা বলছি, এবং একটি সামান্য ক্ষুদ্রতর ব্যাপ্তি, চিহ্নিত শ্রেণীর চূড়ান্ত, এই ভূমিকা যাক না সদস্য অ্যাক্সেস।
পুরানো জ্ঞান
"আপনার ব্যক্তিগত না করার উপযুক্ত কারণ না থাকলে এটিকে ব্যক্তিগত হিসাবে চিহ্নিত করুন"
দিনগুলিতে যখন এটি লেখা হয়েছিল তখন বোধগম্যতা প্রকাশের আগে মুক্ত উত্স বিকাশকারী লাইব্রেরি স্পেস এবং ভিসিএস / নির্ভরতা এমজিএমটি আধিপত্য বিস্তার করে। গিথুব, মাভেন ইত্যাদির জন্য হাইপার সহযোগী ধন্যবাদ হয়ে ওঠে আবার যখন তখন কোনও লাইব্রেরি ব্যবহার করতে পারে এমন উপায় (গুলি) সীমাবদ্ধ করে অর্থোপার্জনও করা হত। আমি সম্ভবত আমার ক্যারিয়ারের প্রথম 8 বা 9 বছর এই "সেরা অনুশীলনের" সাথে কঠোরভাবে মেনে চলেছি।
আজ, আমি এটি খারাপ পরামর্শ বলে বিশ্বাস করি। কখনও কখনও কোনও পদ্ধতি ব্যক্তিগত, বা একটি শ্রেণীর ফাইনাল চিহ্নিত করার জন্য যুক্তিসঙ্গত যুক্তি থাকে তবে এটি অত্যন্ত বিরল, এবং তারপরেও এটি সম্ভবত কিছু উন্নতি করে না।
তুমি কি কখনো:
- লাইব্রেরি ইত্যাদির দ্বারা হতাশ, অবাক হয়েছেন বা আহত হয়েছিলেন যার মধ্যে একটি বাগ রয়েছে যা উত্তরাধিকারসূত্রে এবং কোডের কয়েকটি লাইন দিয়ে স্থির করা যেতে পারে তবে ব্যক্তিগত / চূড়ান্ত পদ্ধতিগুলির কারণে এবং ক্লাসগুলি কখনই না আসতে পারে এমন কোনও সরকারী প্যাচের জন্য অপেক্ষা করতে বাধ্য হয়েছিল? আমার আছে.
- লেখকরা যেমন কল্পনা করেছিলেন তার চেয়ে কিছুটা আলাদা ব্যবহারের ক্ষেত্রে একটি লাইব্রেরি ব্যবহার করতে চেয়েছিলেন তবে ব্যক্তিগত / চূড়ান্ত পদ্ধতি এবং ক্লাসগুলির কারণে তা করতে অক্ষম? আমার আছে.
- লাইব্রেরি ইত্যাদির দ্বারা হতাশ, অবাক হয়েছেন বা আহত হয়ে গেছেন যা এর এক্সটেনসিবলিতে অতিরিক্ত মাত্রায় অনুমোদিত? আমার নেই.
ডিফল্টরূপে ব্যক্তিগত চিহ্নিতকরণের পদ্ধতিগুলির জন্য আমি এই তিনটি বৃহত্তম যৌক্তিকতা শুনেছি:
যুক্তিযুক্তকরণ # 1: এটি অনিরাপদ এবং একটি নির্দিষ্ট পদ্ধতি ওভাররাইড করার কোনও কারণ নেই
আমি লিখেছি এমন একটি নির্দিষ্ট পদ্ধতি ওভাররাইড করার প্রয়োজন হবে কিনা সে সম্পর্কে আমি কতবার ভুল হয়েছি তা গণনা করতে পারি না। বেশ কয়েকটি জনপ্রিয় ওপেন সোর্স লিবগুলিতে কাজ করে, আমি ব্যক্তিগতভাবে চিহ্নিত করার সত্যিকারের ব্যয়টি খুব শক্তভাবেই শিখেছি। এটি প্রায়শই অনাবৃত সমস্যা বা ব্যবহারের ক্ষেত্রে একমাত্র ব্যবহারিক সমাধানকে সরিয়ে দেয়। বিপরীতে, আমি 16+ বছরের পেশাদার বিকাশে কখনও এপিআই সুরক্ষা সম্পর্কিত কারণে ব্যক্তিগত পরিবর্তে সুরক্ষিত পদ্ধতি চিহ্নিত করার জন্য আফসোস করি না । যখন কোনও বিকাশকারী কোনও শ্রেণি প্রসারিত করতে এবং কোনও পদ্ধতিকে ওভাররাইড করতে পছন্দ করেন, তারা সচেতনভাবে বলছেন "আমি জানি আমি কি করছি"। এবং উত্পাদনশীলতার খাতিরে যা যথেষ্ট হওয়া উচিত। সময়কাল। যদি এটি বিপজ্জনক হয় তবে ক্লাস / পদ্ধতি জাভাদোকগুলিতে এটি নোট করুন, কেবল অন্ধভাবে দরজা বন্ধ করে স্ল্যাম করবেন না।
ডিফল্টরূপে সুরক্ষিত পদ্ধতি চিহ্নিত করা আধুনিক এসডাব্লু বিকাশের অন্যতম প্রধান সমস্যার হ্রাস: কল্পনাশক্তি ব্যর্থ।
যুক্তিযুক্তকরণ # 2: এটি সর্বজনীন এপিআই / জাভাদোকসকে পরিষ্কার রাখে
এইটি আরও যুক্তিসঙ্গত, এবং লক্ষ্য দর্শকদের উপর নির্ভর করে এটি করাও সঠিক জিনিস হতে পারে তবে এপিআই "পরিষ্কার" রাখার ব্যয়টি আসলে কী তা বিবেচনা করা মূল্যবান: এক্সটেনসিবিলিটি। উপরে উল্লিখিত কারণগুলির জন্য, সম্ভবত ডিফল্টরূপে সুরক্ষিত জিনিসগুলি কেবল ক্ষেত্রে ক্ষেত্রে চিহ্নিত করা আরও বোধগম্য।
যুক্তিযুক্তকরণ # 3: আমার সফ্টওয়্যারটি বাণিজ্যিক এবং আমার এটির ব্যবহার সীমাবদ্ধ করতে হবে।
এটিও যুক্তিসঙ্গত, তবে একজন গ্রাহক হিসাবে আমি প্রতিবারে কম প্রতিরোধী প্রতিযোগী (কোনও উল্লেখযোগ্য মানের পার্থক্য বিদ্যমান না ধরে) নিয়ে যাব।
কখনও না বল না
আমি বলছি না কখনই পদ্ধতিগুলিকে ব্যক্তিগত হিসাবে চিহ্নিত করো না। আমি বলছি থাম্বের সর্বোত্তম নিয়ম হ'ল "যদি না করার কোনও ভাল কারণ না থাকে তবে পদ্ধতিগুলিকে সুরক্ষিত করা"।
এই পরামর্শগুলি লাইব্রেরিতে বা মডিউলগুলিতে বিভক্ত হয়ে যাওয়া বৃহত্তর স্কেল প্রকল্পগুলিতে কাজ করার জন্য উপযুক্ত best ছোট বা ততোধিক একতরফা প্রকল্পগুলির জন্য এটি যতটা না আপনি যেভাবেই সমস্ত কোড নিয়ন্ত্রণ করেন এবং এটি আপনার কোডের অ্যাক্সেসের স্তরটি পরিবর্তন করা সহজ / যখন আপনার প্রয়োজন হয় তা ততটা গুরুত্ব দেয় না। তারপরেও, আমি এখনও একই পরামর্শটি দিতাম :-)