নামকরণ ক্লাসগুলি দুর্বল হয়ে পড়ে [বন্ধ]


9

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

নামকরণটি ঠিক মতো না হলে (মনে মনে) আমি চালিয়ে যেতে পারি না ... সঠিক নামটি নিয়ে এসে চেষ্টা করতে গিয়ে আটকে যাই। আমি এমন ছোট ছোট অ্যাপ্লিকেশন লেখার চেষ্টা করেছি যা নামগুলি দেখতে কেমন তা দেখতে এটি ব্যবহার করবে তবে এটি তেমন সাহায্য করবে বলে মনে হচ্ছে না ...

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

কোনও টিপস / ধারণাগুলি প্রশংসা করা হবে ...


3
আমার অভিজ্ঞতা থেকে, একবার আপনি ক্লাসের বডি চূড়ান্ত করেছেন, পুনরায় ফ্যাক্টরড ইত্যাদি, তারপরে ক্লাসের নাম এবং পদ্ধতিগুলি তাদের জায়গায় পড়া শুরু করে।
জব

11
বাধ্যতামূলক উদ্ধৃতি: "কম্পিউটার বিজ্ঞানে দুটি মাত্র সমস্যা রয়েছে: ক্যাশে অবৈধকরণ এবং নামকরণের জিনিস।" - ফিল কার্লটন
ম্যাক

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

উত্তর:


10

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

এই ধরণের জিনিসটি কাটিয়ে উঠতে আমি কয়েকটি পদ্ধতি ব্যবহার করছি:

  1. সনাক্ত করুন যে কোনও নিখুঁত সমাধান নেই, কেবল এমন সমাধান যা অন্যের চেয়ে ভাল।
  2. প্রথম জিনিস রাখুন। প্রোগ্রামিং অ্যাসাইনমেন্টটি পুরোপুরি করার চেয়ে বেশি গুরুত্বপূর্ণ।
  3. অন্য লোকদের জিজ্ঞাসা করুন। আমাদের সকলেরই আমাদের অঞ্চল রয়েছে যেখানে আমরা দৌড়ঝাঁপ করি, তবে ভাগ্যক্রমে বিভিন্ন লোক বিভিন্ন জায়গায় দমন করে। সম্ভবত অন্য কেউ একটি ভাল নাম নিয়ে আসবে, বা আপনাকে বলবে যে এটির কোনও গুরুত্ব নেই।
  4. একটি সময় সীমা নির্ধারণ করুন। আপনি যে জিনিসটি ঝুলিয়ে রাখছেন তা করতে নিজেকে এক্স মিনিট দিন, তারপরে এগিয়ে যান।
  5. নিজেকে প্রতিশ্রুতি দিন যে আপনি পরে ফিরে আসবেন। আপনি যে জিনিসগুলিতে ফিরে আসতে চান তার লগ রাখুন। আপনি যখন এগুলিকে কিছুটা ফেলে রাখেন তখন প্রচুর ধরণের সমস্যা পরিষ্কার হয়ে যায়। হয় আপনি পরে আরও ভাল নাম নিয়ে আসবেন, অথবা আপনি বুঝতে পারবেন যে এটির কোনও গুরুত্ব নেই।
  6. শনাক্ত করুন যে 100 বছরের সময়ে, কেউ যেভাবেই যত্ন নেবে না।
  7. বিপরীত করুন। কোনও শ্রেণিকে সত্যই খারাপ নাম দিন এবং দেখুন কী ঘটে। এটি হয় আরও ভাল নামগুলির জন্য সময় ব্যয় করার প্রয়োজনীয়তার বিষয়টি নিশ্চিত করবে বা এটি দেখায় যে এটি কতটা গুরুত্বপূর্ণ। এছাড়াও, এটি আপনাকে অবসেসিভ মাইন্ড সেট থেকে বেরিয়ে আসতে সহায়তা করবে।
  8. প্রার্থনা। এটি প্রায়শই আমার জন্য কাজ করে।
  9. আপনি যা করেন তার থেকে নিজেকে আলাদা করুন। আপনার নিজস্ব মূল্য পরিপূর্ণতা প্রদান থেকে আসে এমন ধারণা থেকে দূরে যান। যখন আমরা স্বীকার করি যে আমাদের চাকরিগুলি থেকে আলাদাভাবে আমাদের নিজস্ব মূল্য রয়েছে, যখন আমরা আমাদের নিজস্ব মানগুলি না মেনে চলি তখন আমরা কম লজ্জা বোধ করি।
  10. নতুন শব্দগুলি তৈরি করুন এবং সেগুলি আপনার ক্লাসের নাম দেওয়ার জন্য, বা কেবল পুরানো শব্দগুলির পুনরায় উদ্দেশ্যে তৈরি করতে ব্যবহার করুন। প্রোগ্রামিং একটি সৃজনশীল প্রক্রিয়া, এবং কখনও কখনও আমরা ধারণাগুলি নতুন ধারণা হয়। নতুন আইডিয়াগুলির নতুন নাম প্রয়োজন। "কর্মচারী ট্রান্সমোগ্রিফায়ার" একটি শ্রেণীর জন্য পুরোপুরি বৈধ নাম।
  11. বিবেচনা করুন যে আপনি ভুল সমস্যা সমাধানের চেষ্টা করছেন। উদাহরণস্বরূপ, কলারের প্রয়োজনীয়তাগুলি কী তা সম্পর্কে খুব পরিষ্কার ধারণা ছাড়াই একটি API লেখা ভাল ধারণা নয় isn't আপনি যদি এই সমস্যাটি সমাধান করেন তবে আপনার নামকরণ সমস্যাটি অনেক সহজ হতে পারে।
  12. দুপুরের খাবার খাও. মধ্যাহ্নভোজন সবসময় ভাল হয়।

4
মধ্যাহ্নভোজনের জন্য +1 অনেক লোক সমস্যা সমাধানের জন্য অন্য কিছু নিয়ে ভাবার পক্ষে যথেষ্ট মূল্য দেয় না।
আনহোলিস্যাম্পলার

কিছু দুর্দান্ত এবং সুচিন্তিত পয়েন্ট ...
ডেভিডস

5

প্রথমত

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

দ্বিতীয়ত

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

তৃতীয়ত

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


অবশেষে এবং সামান্য বিষয় বন্ধ

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


হ্যাঁ, আমি এই ধরণের মুহুর্তটিও করেছি ... সমস্যাটি কি আপনি এটিতে খুব ভাল পেয়েছেন এবং আপনি কখনই কেবল উদ্দেশ্যিত কোডটি লিখতে পারবেন না, তিনটি সর্বদা বিমূর্ততার আনহোর লেআউট ...
রবিন ভেসি

1

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

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

অথবা একটি কফি তৈরি করতে যান। আপনি মেশিনে উঠার আগে আপনার কাছে এটি থাকবে ...


ভীতিজনকভাবে, আমি শিপড সফ্টওয়্যারটি জানি যেটিকে সেই নামে নামকরণ করা হয়েছিল ... 5 বছর পরে যখন আপনি এই সংস্থার একমাত্র একজন যে এখনও জানেন যে "টিম" কে তিনি তা বোঝানোর চেষ্টা করছিলেন imagine
ইয়াউর

0

আমি কিছুক্ষণ আগে একটি বন্ধুর কাছ থেকে এটি পেয়েছি। আপনার প্রক্রিয়াটি কী করার কথা রয়েছে তা লিখুন। একটি সংক্ষিপ্ত বিবরণ। তারপরে বিশেষ্যগুলি গ্রহণ করুন এবং সেগুলি ক্লাসে রূপান্তর করুন, ক্রিয়াগুলি পদ্ধতিগুলিতে এবং ক্রিয়াকলাপগুলিকে বৈশিষ্ট্যে পরিণত করুন।


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