জাভাতে, ব্যক্তিগত সহায়করা কি পাবলিক পদ্ধতির উপরে বা নীচে যেতে হবে? [বন্ধ]


24

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

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


13
এটা কোন ব্যাপার না। একটি মুদ্রা টুসকি. একটা তোল. এটি দিয়ে বিদ্ধ করা.


@ কিলিয়ানফথ - এই প্রশ্নটি 3 মাস আগে জিজ্ঞাসা করা হয়েছিল এবং এর আরও উত্তর রয়েছে। এটি কি প্রশ্নটিকে এই প্রশ্নের সদৃশ করে তুলবে না?
ব্র্যান্ডন ইয়ারব্রু

উত্তর:


25

এটি সাধারণত অগ্রাধিকার হিসাবে নেমে আসে, আপনি অবশ্যই আপনার প্রতিষ্ঠানের মধ্যে একটি সাধারণ মান মেনে চলার চেষ্টা করা উচিত। সুতরাং আপনি যা সিদ্ধান্ত নিন না কেন, একটি মান চয়ন করুন এবং সর্বজনীনভাবে এটি গ্রহণ করুন।

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

public void doSomething()
{
     helpMe();
     helpMeAgain();
}

আপনার ফাইল হিসাবে কাঠামোগত করা হবে

public void doSomething() { }
private void helpMe() { }
private void helpMeAgain() { }

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


খুশী তুমি এটা বললে নাহলে আমারও তাই হত। আমি নিজেই বব মার্টিনকে জিজ্ঞাসা করেছি যে তিনি যদি 2 তম পদ্ধতি ব্যবহার করে তবে 2 টি পদ্ধতিতে তিনি জিনিসগুলি অর্ডার করেন কীভাবে। সেক্ষেত্রে তিনি অন্য দু'জনের নীচে তৃতীয় স্থান রাখেন।
ড্যানিয়েল কাপলান

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

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

11

পাবলিক পদ্ধতিগুলি শ্রেণীর ইন্টারফেস are আপনার শ্রেণিটি ব্যবহারে আগ্রহী কেউ কেবল ইন্টারফেসের বিষয়ে যত্নশীল হবে। শ্রেণীর ব্যবহারকারীর দৃষ্টিকোণ থেকে, স্ক্রোলিং হ্রাস করার জন্য সর্বজনীন পদ্ধতিগুলি ব্যবহার করা কার্যকর হবে।


5

সি এবং সি ++ তে সহায়তাকারী পদ্ধতিগুলি প্রায়শই প্রথমে রাখা হয় কারণ তারপরে আপনাকে কোনও ঘোষণার দরকার নেই। অনেক লোক এই অভ্যাসটি অন্য ভাষায় নিয়ে যায় যেখানে এটি কোনও গুরুত্ব দেয় না।

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


2

আমি পাঠ্যযোগ্যতা এবং প্রসঙ্গের উপর ভিত্তি করে কোনও শ্রেণিতে পদ্ধতির ক্রম পছন্দ করি, দৃশ্যমানতার চেয়ে নয়।

অর্থাত্ একটি 'উন্মুক্ত' পদ্ধতি সম্ভবত 'ক্লোজ' এর আগে অন্তর্ভুক্ত। যদি দুটি পাবলিক মেথড 'ক' এবং 'বি' কোনও প্রাইভেটকে 'সি' কল করে এবং তারাই কেবল এটির কল করে - তবে আমি তাদের পাশে থাকতে 'সি' পছন্দ করি।

আমি মনে করি না দৃশ্যমানতার উপর ভিত্তি করে পদ্ধতি অর্ডার করার একটি কনভেনশন একটি ভাল জিনিস।


1

আমি আমার ক্লাসগুলি সই করা পছন্দ করি যেখানে সদস্যদের গুরুত্ব / দৃশ্যমানতার ক্রমানুসারে তালিকাভুক্ত করা হয় (এখানে গুরুত্বের সাথে আমি বোঝাতে চাইছি এর পাবলিক ইন্টারফেসে প্রত্যক্ষ প্রভাব রয়েছে)।

এইভাবে ব্যক্তিগত ফাংশনগুলিকে নীচে নামানোর প্রবণতা রয়েছে।

এর ব্যতিক্রমগুলি রয়েছে যেখানে আমি একই সাথে ক্রিয়াকলাপগুলি গোষ্ঠী করবো তাই পাবলিক স্টাফের সাথে মিলিত ছোট ব্যক্তিগত ফাংশনগুলি খুঁজে পাওয়া এখনও সম্ভব।

এটি যেমন আপনি বলেছেন, স্বাদের বিষয়।

তবে কোডটি যেটি আমার নয় তা নিয়ে কাজ করার সময় আমি প্রকল্পে ব্যবহৃত কোন কনভেনশন অনুসরণ করার চেষ্টা করব।

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

স্বয়ংক্রিয় বিন্যাসগুলি ব্যবহারের যুক্ত বোনাস হ'ল আপনি যে কোনও কনভেনশন যা আপনাকে খুশী করে তোলে এবং কমিট করার আগে কোডটি বিন্যাস করে কেবল তা করতে পারেন। ওয়াইএমএমভি বলেন কনভেনশন এবং ফর্ম্যাটিং সরঞ্জামের উপর নির্ভর করে।

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