'মডুলারালিটি' অর্জনের জন্য আংশিক ক্লাস ব্যবহার করা কি সাধারণ?


24

আমি সম্প্রতি আমাদের কোডবেসে এমন পরিস্থিতির মুখোমুখি হয়েছি যেখানে একটি ভিন্ন দল প্রায় 800 টি পদ্ধতিযুক্ত একটি 'গড ক্লাস' তৈরি করেছে, এটি আংশিক শ্রেণীরূপে 135 ফাইলগুলিতে বিভক্ত।

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

এটি আসলে একটি সাধারণ অনুশীলন বা কোনও উপায়ে একটি ভাল ধারণা? আমি এই জন্তুটিকে নামিয়ে আনার জন্য তাত্ক্ষণিক পদক্ষেপ নেওয়ার ঝুঁকিতে আছি (বা কমপক্ষে এটিকে আরও বাড়তে বাধা দিন) তবে আমি বিশ্বাস করতে চাই যে আমি ভুল করছি।


6
এটা আগুনে মেরে ফেল! তবে গুরুতরভাবে, অন্য দল কি এই কথিত সাধারণ অভ্যাসটির জন্য কোনও উদ্ধৃতি দিতে পারে?
ম্যাটডেভি

1
কোনটিই নয়। আমি নিশ্চিত তারা ধোঁয়া দিচ্ছে তবে আমি হাতুড়িটি ফেলে দেওয়ার আগে আমার যথাসাধ্য চেষ্টা করার চেষ্টা করছি।
জোশুয়া স্মিথ

সারাক্ষণ এটি না করার জন্য তাদের যুক্তি কী?
জেফো

3
তাদের এক বাক্যে বর্ণনা করতে বলুন, ১৩৫ টি ফাইল জুড়ে ৮০০ টি পদ্ধতি যা একে অপরের সাথে মিল রয়েছে। যে কোনও বুদ্ধিমান এবং যুক্তিসঙ্গত শ্রেণীর জন্য এটির উত্তর দেওয়া সম্ভব হবে।
কারসন 63000

3
@ কারসন 63000 "এটি প্রকল্পের প্রয়োজনীয় সমস্ত কার্য সম্পাদন করে।" তোমার একটা বাক্য আছে
রাইথাল

উত্তর:


39

এটি কোনওভাবেই ভাল ধারণা নয়।

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

এটি এইভাবে দেখুন: যদি কোনও ফাইলে 800 পদ্ধতিযুক্ত কোনও দেবতা শ্রেণি, যেখানে আপনি জানেন যে সমস্ত কিছু কোথায় তা খারাপ জিনিস - এবং আমি মনে করি যে সকলেই এটির সাথে একমত হবেন - তবে 800 পদ্ধতি সহ কোনও দেবতা শ্রেণি কীভাবে পারেন? 135 ফাইল জুড়ে ছড়িয়ে, তুমি কোথায় না কোথায় সবকিছু সম্ভবত একটি ভাল জিনিস হতে হয়?


1
আমি বেশিরভাগ ক্ষেত্রেই একমত, তবে আমার মনে হয় এমন কিছু বিরল ঘটনা partialঘটতে পারে যেখানে উত্পন্ন কোড ব্যতিরেকেও কার্যকর হতে পারে। আপনার যখন নেস্টেড ক্লাসের মতো কিছু থাকবে তখন?
svick

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

5
আমি মাঝে মাঝে সুস্পষ্ট ইন্টারফেস প্রয়োগের জন্য আংশিক ক্লাস ব্যবহার করি - বিশেষত System.IConvertible এর মতো কিছু। আমার ক্লাসে একটি বিশাল # রেজিওন স্থাপনের চেয়ে কোনওরকম পরিচ্ছন্ন বলে মনে হচ্ছে।
ম্যাটডেভি

1
নেস্টেড ক্লাসের মন্তব্যটি আসলেই একটি ভাল ধারণা, আমি এটি কখনও ভাবিনি। যদিও ...
সংঘর্ষের সাথে

1
"ফর্ম ডিজাইনারকে সাহায্য করার জন্য আংশিক ক্লাস রয়েছে" " সাধারণভাবে সঠিক, তবে আমি "... এবং অন্যান্য কোড জেনারেটর যুক্ত করব।" আমি আপনার উত্তরের বাকী অংশে সম্মত;)
সিলাস

14

সুতরাং প্রশ্নটি ছিল:

এটি আসলে একটি সাধারণ অনুশীলন বা কোনও উপায়ে একটি ভাল ধারণা?

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

তবে সেই প্রশ্নটি আসল সমালোচনামূলক অংশটি যা অনুপস্থিত হয়েছে তার কাছে একটি লাল উত্তাপ ; ওপিতে যেমন পরিস্থিতি সম্পর্কে বলার জন্য নিম্নলিখিত বিষয়গুলি রয়েছে:

(...) আমার অন্ত্রের প্রতিক্রিয়াটি কক্ষপথ থেকে কমে যাওয়ার সময় তারা জোর দিয়েছিল ...

(...) আমি এই জন্তুটিকে নামিয়ে আনার জন্য তাত্ক্ষণিক পদক্ষেপ নেওয়ার ঝুঁকিতে আছি (বা কমপক্ষে এটি আরও বাড়তে বাধা দেবে) তবে আমি বিশ্বাস করতে চাই যে আমি ভুল করছি।

আপনার ঘোড়া ধরে রাখুন!

এটি এখানে এমন কিছু যা আমার রূপকভাবে কথা বলার একরকমকে আমার চিতুলের কাপে ফেলে দেবে।

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

আপনি যদি দলটিকে বলেন যে তাদের কোডটি সাফ করে ফেলেছে এবং কী করে?

(... বা এর মতো কিছু তবে আপত্তিজনক কিছু হলেও সত্যিকার অর্থে কিছু আসে যায় না কারণ আপনি যদি তাদের উপর পুরোপুরি জোরদার হওয়ার সিদ্ধান্ত নেন তবে আপনি যা করেন তা নির্বিশেষে তারা অসন্তুষ্ট হবে)

কোড বেস নিয়ে বর্তমান পরিস্থিতি কী? এটা কাজ করছে? তারপর আপনি তাদের গ্রাহকদের ব্যাখ্যা করলেন যে তাদের কোড মূলত বড় সমস্যা হবে sucks । তাদের কী কারণ রয়েছে তা বিবেচ্য নয়: যতক্ষণ না এটি কাজ করে চলেছে, বেশিরভাগ ক্লায়েন্টরা কোডটি কীভাবে সংগঠিত হয় সে সম্পর্কে যত্নশীল হন না।

নিজেকে জুতাতে রাখুন, তারা কী করবে? নীচের খুব সম্ভাব্য ফলাফল নিয়ে আমি আপনাকে আনন্দিত করতে দাও:

টিম সদস্য # 1: "সুতরাং এই লোকটি আমাদের বলছেন যে আমরা বিগত বছরগুলিতে এটি ভুল করে আসছি।"

টিম সদস্য # 2 এবং # 3: "কী জটলা।"

প্রভাবশালী টিম সদস্য # 4: "এটি নিয়ে চিন্তা করবেন না, আমি কেবল পরিচালনায় যাব এবং এটি হয়রানি হিসাবে রিপোর্ট করব" "

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

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

এমনকি যদি আপনি এই দলটিকে সাইন আপ করার জন্য একগুচ্ছ লোককে পরিচালনা করতে সক্ষম হন তবে "দলকে একটি পাঠ শেখাতে", মনে রাখবেন যে আপনি মোটামুটি স্মার্ট লোকদের জন্য এটি করছেন যা দৃশ্যত কিছু কাজ সম্পন্ন করে। একবার কোডটি পুনরায় লিখে / রিফেক্টর / ডিল / যা যা করা হবে এবং সমস্যা দেখা দিলে আপনি ফায়ার স্টার্টার হিসাবে আপনাকে দায়বদ্ধ বলে বিবেচিত হবেন

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

অন্যান্য (অনেক বেশি পরিপক্ক) উপায় রয়েছে

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

  • দ্য ইনফরমেশন - তারা সত্যিকার অর্থে জানত না যে অন্য কোনও উপায় রয়েছে বা কেবল বুঝতে পারিনি। জুনিয়র বিকাশকারীরা সাধারণত এই বিভাগে ফিট করে তবে অগত্যা নয়। (সত্যি বলতে কী: আমি জুনিয়র বিকাশকারীদের সাথে দেখা করেছি যা এর চেয়ে আরও উজ্জ্বল হবে))
  • হার্ড - তারা আংশিক ক্লাস ব্যবহার করার চেয়ে ভাল কৌশল জানত তবে তারা জানত না যে তাদের অনুমতি দেওয়া হয়েছিল।
  • সিনিক - তারা যুক্তি দিতে পছন্দ করে যে আর্গুমেন্ট ক্লাস করা কেবল তর্ক করার কারণে আপনার ধারণার চেয়ে ভাল। জনতার সামনে দাঁড়ানোর পরিবর্তে কোনও ভিড়ের মধ্যে এটি করা সহজ।
  • পোড়া - কিছু অদ্ভুত কারণে তারা নতুন ক্লাস তৈরি করতে পছন্দ করেন না, সম্ভবত তারা এটিকে খুব কঠিন হিসাবে উপলব্ধি করেছেন।
  • সময় কাটা - তারা এতটাই ব্যস্ত যে তারা তাদের কোড ঠিক করতে বিরক্ত করতে পারে না।
  • বস - তারা মনে করেন: "ঠিক আছে এটি কাজ করে; তবে বিরক্ত করবেন কেন?"
  • অযৌক্তিক - ঠিক আছে, তারা পুরোপুরি পাগল।

কৌশলটি কৌশলগুলির তালিকা সহ বইটি চলছে, তবে ওপি-র ক্ষেত্রে এটি অনুধাবনের বিষয়। অ্যান্টি-প্যাটার্নের সাথে সত্যের সাথে দৃ head়ভাবে এগিয়ে যাওয়া যথেষ্ট নয়।

কোডের গুণমান বাড়ানো যদি আপনার আগ্রহী হয় তবে কমপক্ষে আপত্তিজনক দলটিকে তাদের নিজস্ব জগাখিরি পুনর্বার এবং সংশোধন করার সুযোগ দিন । ব্যক্তিগতভাবে আমি নেতৃস্থানীয় প্রশ্নগুলি শুনে এবং জিজ্ঞাসা করে তাদের দমন করার চেষ্টা করব, তাদের গল্পটি বলতে দিন:

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

... ইত্যাদি। তাদের ছোট পরামর্শ দিন যাতে তারা এগিয়ে যেতে পারে। এটি সময় নেয় এবং কিছু অফিসের রাজনীতির গ্রেড কনুই গ্রীস প্রয়োজন তবে ধৈর্য এবং কঠোর পরিশ্রম একটি পুণ্য?


এটি একটি খুব অন্তর্দৃষ্টিপূর্ণ উত্তর। আপনি যদি নতুন বিকাশকারী হন তবে আপনার এটি বুঝতে হবে। বেশিরভাগ অভিজ্ঞ বিকাশকারীরা বেশ কয়েক বছর পরে এটি বুঝতে পারেন, কেউ কখনও তা করেন না।
ফিশুইসওয়েড

6

এমএসডিএন আংশিক ক্লাস এবং পদ্ধতি পৃষ্ঠাটি আংশিক ক্লাস ব্যবহারের জন্য দুটি অবস্থার পরামর্শ দেয়:
১. দৈত্য শ্রেণিকে একাধিক পৃথক ফাইলে বিভক্ত করা।
২. স্বয়ংক্রিয়ভাবে উত্পন্ন উত্স কোড রাখার জন্য একটি জায়গা থাকা।

2 ভিজ্যুয়াল স্টুডিওতে প্রচুর পরিমাণে ব্যবহৃত হয় (যেমন, এসপেক্স ফাইলগুলির জন্য এবং উইনফর্মগুলির জন্য) forms এটি আংশিক শ্রেণীর যুক্তিসঙ্গত ব্যবহার।

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

যদিও আপনি যদি বুদ্ধিমানভাবে কোনও শ্রেণিকে আলাদা আলাদা আলাদা ফাইলগুলিতে কাজ করার জন্য আলাদা করতে পারেন তবে তার পরিবর্তে আপনি কি আলাদা শ্রেণিতে ভাগ করতে পারবেন না?


"এর পরিবর্তে আপনি কি এর পরিবর্তে পৃথক শ্রেণিতে বিভক্ত করতে পারবেন না?"। এটি ঠিক আমরা পরামর্শ দিচ্ছি। সাধারণ জ্ঞানের মতো মনে হচ্ছে এটি মূলত এটি করা উচিত ছিল।
জোশুয়া স্মিথ

4

সুতরাং শেষ পর্যন্ত, তারা কোনও ওওপি ছাড়াই স্বাভাবিক পদ্ধতিগত বিকাশ করছে। সমস্ত পদ্ধতি, ভেরিয়েবল এবং হোয়াট নোট সহ তাদের একটি গ্লোবাল নেমস্পেস রয়েছে।

হয় তাদের প্ররোচিত করুন তারা এটিকে অন্যায় করছে বা সেখান থেকে বেরিয়ে আসবে।


1

একটি ইউটিলিটি ক্লাসে এমন পদ্ধতি রয়েছে যা বুদ্ধিমানভাবে কোনও ক্লাস তৈরির জন্য অন্য পদ্ধতির সাথে সংযুক্ত করা যায় না। আপনার যদি 800+ পদ্ধতি থাকে তবে 135 ফাইলগুলিতে বিভক্ত হয়ে যায়, সম্ভবত মনে হয় যে কেউ কিছু সাধারণ পদ্ধতি আবিষ্কার করতে সক্ষম হয়েছে ...

আপনার একটি ইউটিলিটি ক্লাস থাকার কারণে, এর অর্থ এই নয় যে আপনার আর একটি ইউটিলিটি ক্লাস থাকতে পারে না।

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

এবং না, এটি সাধারণ নয় (ফ্রি ফাংশনের সংখ্যার চেয়ে বেশি ফাইলের সংখ্যা)।


0

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

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

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

সুতরাং সাবধান হন এবং হত্যার সিদ্ধান্তটিকে ন্যায়সঙ্গত করুন। এছাড়াও, কী পরীক্ষার প্রয়োজন হবে তা বিবেচনা করুন।


0

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


3
OO- তে প্রসেসিয়াল কোডটি রিফ্যাক্ট করার ক্ষেত্রে সাধারণত সেই সমস্যা থাকে - আমি মনে করি যে এটি ঠিক করা একটি বিশাল কাজ হবে এবং দলকে সঠিকভাবে এমনকি হুজারের কোড শেখানো হবে, তার পরের বছর জোশুয়া সমস্ত কিছুর জন্য দোষী হবে (এবং এর বাইরেও) ) যদি তিনি তাদেরকে রিফ্যাক্টর করতে রাজি করেন। এ কারণেই কেউ কখনও এ জাতীয় রিফ্যাক্টরগুলি করতে খুব বেশি চাপ দেয় না (কমপক্ষে ফলাফল একবার দেখলে তা নয়)। এছাড়াও যদি আপনি ভাবেন যে এটি একটি সূক্ষ্ম নকশা - ভাল - এই উত্তরটি 5 বছরে আবার ঘুরে দেখুন এবং আপনি তখন কী মনে করেন তা আমাদের জানান (মনে হয় আমি প্রতি 5 বছর বা তার পরে ডিজাইন সম্পর্কে যা জানি তার সবই পুনর্বার করি)।
বিল কে

@ বিল্ক আপনি যদি দশ বছর অপেক্ষা করেন তবে আপনি যা জানেন তা সম্ভবত বর্তমান "ইন" ডিজাইন দর্শনের হয়ে থাকবে।
রাইথাল

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

@ রাইথাল এটি "ইন" এর মধ্যে নয়, এটি আপনি যা ভাল ডিজাইন বলে মনে করেন (ভাল কারণে) এবং তারপরে, আপনি যখন অনুশীলন এবং উন্নতি করে বুঝতে পারেন যে এটি আপনি ভাবেন ঠিক তেমন ধারণা নয়। মনে হয় এটি প্রতি 5 বছর বা তার পরে ঘটেছিল এবং একবার আমি বুঝতে পেরেছিলাম যে এটি কিছু লোকের মন্তব্যে আমার প্রতিক্রিয়াকে ক্ষুন্ন করে কারণ আমি বুঝতে পারি যে তারা প্রকৃতপক্ষে আমাদের চর্চা উন্নত করার প্রক্রিয়াতে (আমরা সবাই যেমন) সেরা ডিজাইনার। আমি কেবলমাত্র সেই প্রোগ্রামারকেই চিন্তিত যারা হ'ল 5 বছর আগে তারা লিখেছিল কোডে তারা উন্নতি করতে পারে বলে মনে করেনি।
বিল কে

0

ইতিমধ্যে নির্দেশিত উত্তরের বাইরে, আংশিক শ্রেণিগুলি স্তরযুক্ত নকশায় কার্যকর হতে পারে যেখানে আপনি কার্যকারিতা সংগঠিত করতে চান যা আপনার শ্রেণি শ্রেণিবিন্যাসকে পৃথক স্তর-নির্দিষ্ট ফাইলগুলিতে কাটবে। এটি সমাধান প্রতিবেদককে প্রতি-স্তর কার্যকারিতা (ফাইল সংস্থার দ্বারা) নেভিগেট করতে এবং ক্লাস ভিউ প্রতি শ্রেণীর কার্যকারিতা নেভিগেট করতে ব্যবহার করতে দেয়। আমি এমন ভাষা ব্যবহার করতে পছন্দ করব যা মিশ্রণগুলি এবং / অথবা বৈশিষ্ট্যগুলিকে সমর্থন করে তবে আংশিক শ্রেণিগুলি অল্প পরিমাণে ব্যবহার করা হলে একটি যুক্তিসঙ্গত বিকল্প, এবং ভাল শ্রেণীর শ্রেণিবদ্ধ নকশার প্রতিস্থাপন হওয়া উচিত নয়।

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