আলগা দম্পতি ডাব্লু / ও কেস কি কোনও বিরোধী-নিদর্শন ব্যবহার করে?


22

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

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

আপনি কি আলগা সংযোগের জন্য কোনও ব্যবহারের মামলা ছাড়াই (যেমন কোডের নকল এড়ানো বা আগামীর ভবিষ্যতে ঘটতে পারে এমন পরিবর্তনের জন্য পরিকল্পনা করা) কোনও বিরোধী-নিদর্শন হিসাবে বিবেচনা করেন? আলগা দম্পতি কি YAGNI এর ছত্রছায়ায় পড়ে যেতে পারে?


1
সর্বাধিক সুবিধা একটি ব্যয় সঙ্গে আসে। সুবিধাটি ব্যয়ের চেয়ে বেশি হলে ব্যবহার করুন।
লেনি প্রোগ্রামার্স

4
আপনি আলগা কাপলিং মুদ্রার উল্টানো দিকটি ভুলে গেছেন, এবং এটি high cohesionঅন্যটি ব্যতীত এক প্রচেষ্টা এবং চিত্রগুলির বোধগম্যতা উভয়ের বোধগম্যতার অভাব বর্জ্য।

উত্তর:


13

কিছুটা।

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

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


22

প্রোগ্রামিং অনুশীলন এক্স ভাল বা খারাপ? স্পষ্টতই, উত্তরটি সর্বদা "এটি নির্ভর করে"।

আপনি যদি নিজের কোডটি দেখছেন, আপনি কী "নিদর্শনগুলি" ইনজেক্ট করতে পারেন তা ভাবছেন, তবে আপনি এটি ভুল করছেন।

যদি আপনি আপনার সফ্টওয়্যারটি তৈরি করে চলেছেন যাতে সম্পর্কযুক্ত জিনিসগুলি একে অপরের সাথে ঝাঁকুনি না দেয় তবে আপনি এটি সঠিকভাবে করছেন।

যদি আপনি আপনার সমাধানটিকে "ইঞ্জিনিয়ারিং" করেন যাতে এটি অসীমভাবে প্রসারিত এবং পরিবর্তিত হতে পারে, তবে আপনি আসলে এটিকে আরও জটিল করে তুলছেন।

আমি মনে করি দিনের শেষে, আপনি একক সত্য রেখে গেছেন: বস্তুগুলি decoupled করা কি কমবেশি জটিল? যদি তাদের দম্পতি করা কম জটিল হয় তবে এটি সঠিক সমাধান। যদি এগুলি ডিকুয়াল করা কম জটিল হয় তবে এটি সঠিক সমাধান।

(আমি বর্তমানে একটি মোটামুটি ছোট কোডবেসে কাজ করছি যা খুব জটিল পদ্ধতিতে একটি সহজ কাজ করে এবং যা এত জটিল করে তোলে তার একটি অংশ হ'ল মূল অংশটির "সংযুক্তি" এবং "সংহতি" শর্তাবলী বোঝার অভাব is ডেভেলপারদের।)


4
আমি অন্য দিন এটি করেছি: আমি ভেবেছিলাম "কেবলমাত্র" ক্ষেত্রে আমার দুটি শ্রেণির মধ্যে কিছুটা দিকনির্দেশ প্রয়োজন। তারপরে আমি কোনও কিছু ডিবাগ করার চেষ্টা করে আমার মাথায় আঘাত করেছিলাম, দিকনির্দেশটি ছিঁড়ে ফেলেছিলাম এবং অনেক বেশি খুশি হয়েছিলাম।
ফ্র্যাঙ্ক শায়ারার

3

আমি মনে করি তুমি এখানে কি এ পেয়ে করছি ধারণা সংযোগ । এই কোড একটি ভাল উদ্দেশ্য আছে? আমি কি সেই উদ্দেশ্যটি অভ্যন্তরীণ করতে এবং যা চলছে তার "বড় চিত্র" বুঝতে পারি?

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

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

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

সামগ্রিকভাবে, আপনি আপনার মডিউলগুলির মধ্যে হাই-কাপলিং এবং তাদের মধ্যে আলগা সংযোগ স্থাপন করতে চান। উচ্চ সংযুক্তি ছাড়া আপনার সম্ভবত সামঞ্জস্যতা নেই।


1

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

একবার যখন এমন পরিস্থিতিতে আসে যখন মনে হয় উপাদানগুলি যুক্তিযুক্তভাবে শক্তভাবে মিলিত হওয়া উচিত, আমি সেগুলি ভেঙে ফেলার আগে আমি একটি বাধ্যতামূলক যুক্তির সন্ধান করব।

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


1

সহজ উত্তরটি হ'ল আলগা সংযুক্ত হওয়া ভাল হয় যখন সঠিকভাবে করা হয়।

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

সাধারণ নকশার নিয়ম: ১. যদি আপনি একটি মুখোমুখি ইন্টারফেস তৈরি না করে থাকেন তবে একাধিক আইটেমের জ্ঞানকে একটি বিন্দুতে (যেখানেই সর্বত্র দেখানো হয়েছে, নির্ভর করে) তৈরি করবেন না। ২. একটি ফাংশন - একটি উদ্দেশ্য (সেই উদ্দেশ্যটি বহুমুখী যেমন একটি মুখোমুখি হতে পারে) ৩. একটি মডিউল - আন্তঃসম্পর্কিত ফাংশনগুলির একটি সুস্পষ্ট সেট - একটি স্পষ্ট উদ্দেশ্য ৪. যদি আপনি কেবল ইউনিট পরীক্ষা করতে না পারেন তবে এটির নেই একটি সহজ উদ্দেশ্য

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

আজকাল সফ্টওয়্যার বিকাশের দুঃখজনক বিষয় হ'ল 90% মানুষ নতুন সিস্টেম বিকাশ করে এবং পুরানো সিস্টেমগুলি বোঝার ক্ষমতা রাখে না এবং বিট এবং টুকরোগুলির ক্রমাগত রিফ্যাক্টরিংয়ের কারণে যখন সিস্টেমটি এতটা স্বাস্থ্যহীন অবস্থায় পড়ে তখন কখনই হয় না।


0

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

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

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

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

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

সংযোজন এবং স্থিতিশীলতা, ইসিএস উদাহরণ

আমি সত্তা-উপাদান সিস্টেমগুলিকেও পছন্দ করি এবং তারা প্রচুর আঁটসাঁট মিলনের প্রচলন করে কারণ উপাদানটি নির্ভরতা অনুসারে সিস্টেমগুলি সমস্ত অ্যাক্সেস করে এবং কাঁচা ডেটা সরাসরি পরিচালনা করে, যেমন:

এখানে চিত্র বর্ণনা লিখুন

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

ইতিমধ্যে একটি আলগা কাপল বিকল্প এটি হতে পারে:

এখানে চিত্র বর্ণনা লিখুন

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

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

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

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

সর্বাধিক স্থিতিশীল ফাংশন যা আমি লিখেছি (80 এর দশকের শেষের দিক থেকে আমি এগুলি ব্যবহার না করে এবং পুনরায় ব্যবহার করে আসছি) সেগুলি কাঁচা ডেটার উপর নির্ভর করে যেমন জ্যামিতি ফাংশন যা কেবল একটি অ্যারে গ্রহণ করেছিল ভাসে এবং পূর্ণসংখ্যার না বেশী যে একটি জটিল উপর নির্ভর করে Meshবস্তু বা IMeshইন্টারফেস, বা ভেক্টর / ম্যাট্রিক্স গুণ মাত্র উপর নির্ভরশীল যা float[]বা double[]এক যে উপর নির্ভরশীল, FancyMatrixObjectWhichWillRequireDesignChangesNextYearAndDeprecateWhatWeUse

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