ফ্লপ সঠিক দিকে এগিয়ে চলেছে। "একক দায়িত্ব নীতি" মূলত পদ্ধতিতে প্রয়োগ করা হয়। উদাহরণস্বরূপ, ডেনিস রিচি বলতেন যে কোনও ফাংশনে একটি কাজ করা উচিত এবং এটি ভালভাবে করা উচিত। তারপরে, সি ++ তে, বার্জন স্ট্রস্ট্রপ বলতেন যে একটি শ্রেণীর একটি কাজ করা উচিত এবং এটি ভালভাবে করা উচিত।
লক্ষ্য করুন যে, থাম্বের নিয়ম ব্যতীত, এই দু'জনের আনুষ্ঠানিকভাবে একে অপরের সাথে সামান্য বা কিছুই করার নেই। এগুলি কেবল প্রোগ্রামিং ভাষায় প্রকাশ করার জন্য সুবিধাজনক cater ঠিক আছে, এটি কিছু। তবে ফ্লপ কী চালাচ্ছে তার চেয়ে এটি সম্পূর্ণ আলাদা গল্প।
আধুনিক (যেমন, চৌকস এবং ডিডিডি) বাস্তবায়নগুলি প্রোগ্রামিং ভাষাটি কী প্রকাশ করতে পারে তার চেয়ে ব্যবসায়ের পক্ষে কী গুরুত্বপূর্ণ তা আরও বেশি জোর দেয়। আশ্চর্যের বিষয় হ'ল প্রোগ্রামিং ভাষাগুলি এখনও ধরা যায় নি। পুরানো ফরট্রানের মতো ভাষা সেই সময়ের কালের প্রধান ধারণাগত মডেলগুলির সাথে খাপ খায় এমন দায়বদ্ধতাগুলি: কার্ডের পাঠকের মাধ্যমে প্রতিটি কার্ডে প্রসেসগুলি প্রয়োগ করা হয়, বা প্রতিটি সিড হিসাবে প্রসেসিং রয়েছে। তারপরে এডিটি ভাষাগুলি এসেছিল, যা ডিডিডি লোকেরা পরবর্তীকালে গুরুত্বপূর্ণ হিসাবে পুনরায় উদ্ভাবন করবে তা ক্যাপচারের পয়েন্টে পরিণত হয়েছিল (যদিও জিম নেবার্সগুলির মধ্যে এটি বেশিরভাগই মূর্তিযুক্ত, প্রকাশিত এবং 1968 সালে ব্যবহৃত হয়েছিল): আজ আমরা ক্লাসগুলি কী বলি । (এগুলি মডিউল নয়))
এই পদক্ষেপটি একটি দুলের সুইংয়ের চেয়ে কম বিবর্তন ছিল। পেনডুলাম ডেটাতে স্ফীত হওয়ার সাথে সাথে আমরা ফরট্রেনের অন্তর্নিহিত ব্যবহারের কেস মডেলিংটি হারিয়েছি। যখন আপনার প্রাথমিক ফোকাসে কোনও স্ক্রিনের ডেটা বা আকারগুলি অন্তর্ভুক্ত থাকে তখন তা ঠিক। এটি পাওয়ারপয়েন্টের মতো প্রোগ্রামগুলির জন্য বা কমপক্ষে তার সাধারণ কাজকর্মগুলির জন্য দুর্দান্ত মডেল।
যা হারিয়ে গেছে তা হ'ল সিস্টেমের দায়িত্ব । আমরা ডিডিডির উপাদানগুলি বিক্রি করি না। এবং আমরা ক্লাসের পদ্ধতিগুলি ভালভাবে করি না। আমরা সিস্টেমের দায়িত্ব বিক্রি করি। কিছু স্তরে, আপনার একক দায়িত্বের নীতিটি আপনার সিস্টেমকে ডিজাইন করতে হবে design
সুতরাং আপনি যদি রেবেকা ভাইফস-ব্রক বা আমার মতো লোকদের দিকে নজর দেন, যারা ক্লাস পদ্ধতি সম্পর্কে কথা বলতেন, আমরা এখন ব্যবহারের ক্ষেত্রে কথা বলছি। এটাই আমরা বিক্রি করি। সেগুলি হল সিস্টেম অপারেশন। ব্যবহারের ক্ষেত্রে একক দায়িত্ব থাকা উচিত। একটি ব্যবহারের ক্ষেত্রে খুব কমই একটি স্থাপত্য ইউনিট হয়। তবে সবাই এটির ভান করার চেষ্টা করছিল। উদাহরণস্বরূপ, এসওএর লোকদের সাক্ষ্য দিন।
এ কারণেই আমি ট্রিগভ রেইনসকাগের ডিসিআই আর্কিটেকচার সম্পর্কে उत्साहিত - যা উপরের লিন আর্কিটেকচার বইটিতে বর্ণিত। এটি "একক দায়বদ্ধতা" হিসাবে একটি স্বেচ্ছাসেবী এবং রহস্যবাদী মানসিকতা হিসাবে ব্যবহৃত হবে যা শেষ পর্যন্ত কিছু বাস্তব প্রসারণ দেয় - যেমন উপরের বেশিরভাগ যুক্তি খুঁজে পাওয়া যায়। এই মাপটি মানব মানসিক মডেলগুলির সাথে সম্পর্কিত: শেষ ব্যবহারকারীরা প্রথম এবং প্রোগ্রামার্স দ্বিতীয়। এটি ব্যবসায়ের উদ্বেগের সাথে সম্পর্কিত। এবং প্রায়শই ঘটনাক্রমে, এটি ফ্ল্যাপটিকে আমাদের চ্যালেঞ্জ করার সাথে সাথে পরিবর্তনকে আবদ্ধ করে।
আমরা জানি যে একক-দায়িত্বের নীতিটি এটি হ'ল ডাইনোসরটি তার উত্সের দিনগুলি থেকে বাকি রয়েছে বা শখের ঘোড়া যা আমরা বোঝার বিকল্প হিসাবে ব্যবহার করি। দুর্দান্ত সফ্টওয়্যারটি করার জন্য আপনাকে এই শখের কয়েকটি ঘোড়া রেখে যেতে হবে। এবং এটি বাক্সের বাইরে চিন্তা করা প্রয়োজন। সমস্যাগুলি সহজ এবং বোঝা সহজ জিনিসগুলি কেবল তখনই কাজ করে যখন সমস্যাটি সহজ এবং সহজে বোঝা যায়। আমি এই সমাধানগুলিতে মারাত্মক আগ্রহী নই: এগুলি সাধারণ নয়, এবং চ্যালেঞ্জটি যেখানে রয়েছে সেখানেও এটি নেই।