আমি এখন থেকে প্রায় তিন বছর ধরে চটজলদি পদ্ধতি (এসসিআরএম) ব্যবহার করছি এবং আমি এর কিছু সুবিধা দেখতে পাচ্ছি, বিশেষত স্বল্প-মেয়াদী প্রতিক্রিয়াতে অনেক স্তরে (গ্রাহকরা বাস্তবায়িত বৈশিষ্ট্যগুলিতে প্রারম্ভিক প্রবেশাধিকার রয়েছে এমন পরীক্ষকগণ থেকে যা বৈশিষ্ট্যগুলি পরীক্ষা করতে পারে এগুলি কার্যকর করা মাত্রই, অন্যান্য বিকাশকারীদের কাছ থেকে যা পর্যালোচনা ইত্যাদির মাধ্যমে নতুন কোড সম্পর্কে খুব প্রাথমিক প্রতিক্রিয়া সরবরাহ করতে পারে)।
অন্যদিকে, আমার দুটি উন্মুক্ত সমস্যা রয়েছে যার মধ্যে প্রথমটি আমি এই প্রশ্নে ব্যাখ্যা করার চেষ্টা করব।
সমস্যা: একটি ভাল নকশা পেতে অসুবিধা
কোডটি অগোছালো হওয়ার সাথে সাথে আমি রিফ্যাক্টরিং করার চেষ্টা করি, আমি যতটা পারি ইউনিট টেস্টগুলি লিখি (যা সাধারণত বাগগুলি প্রতিরোধ করতে সহায়তা করে এবং বিশেষত রিফ্যাক্টরিং করার সময়)। অন্যদিকে, দৈনিক কমিটগুলি সহ কিছুটা জটিল বৈশিষ্ট্য বিকাশ করা এবং কোডটি যখন অস্ট্রাস্ট্রাক্ট হয়ে যায় তখন ধারাবাহিকভাবে পুনর্বিবেচনা করা আমাকে সত্যই ভাল ডিজাইন তৈরি করতে দেয় না।
আমি একমাত্র ভাল নকশাকৃত মডিউলটিই সম্প্রতি তৈরি করতে পেরেছি যা ভিন্ন পদ্ধতির মাধ্যমে আমি পেয়েছি: আমি কয়েক দিন ধরে সমস্যাটি বিশ্লেষণ করেছি (আমি আসলে কয়েক মাস ধরে আমার মন থেকে সমস্যাটি নিয়ে কাজ শুরু করার আগেই করেছি। ), আরও কয়েক দিনের জন্য জড়িত সমস্ত শ্রেণীর এবং তাদের সম্পর্কের একটি বরং একটি বিস্তারিত নকশা আঁকুন এবং তারপরে নিজেকে আমার অফিসে লক করে রেখেছেন এবং প্রায় তিন সপ্তাহ বিনা বাধায় কাজ করে পুরো কোডটি লিখেছিলেন। ফলাফলটি আমি কিছুক্ষণের মধ্যে তৈরি করেছি, খুব কম কিছু বাগ রয়েছে যা সনাক্ত করা এবং ঠিক করা ছিল এবং খুব স্পষ্ট ডিজাইনের সাথে, যার পরে কোনও প্রাসঙ্গিক পরিবর্তন প্রয়োজন হয়নি।
তাই এখন অবধি আমি বড় বুদ্ধিমান প্রক্রিয়াটিতে উদ্ভাসিত হয়ে উঠবে এই আশায় ছোট বর্ধনে কোড লিখতে শুরু করার চেয়ে আমি আগে যা করতে চাই তার সামগ্রিক চিত্র পেতে এটি আরও কার্যকর বলে মনে করেছি। আমার সর্বাত্মক প্রচেষ্টা সহ, ছোট-বর্ধিত বিকাশের পদ্ধতি আমাকে সর্বদা খারাপ ডিজাইনের দিকে নিয়ে যায়।
প্রশ্ন : কারও কি তেমন অভিজ্ঞতা হয়েছে? আমি কি এসসিআরএমটিকে ভুল উপায়ে প্রয়োগ করছি বা যদি আমি ছোট ইনক্রিমেন্টে বিকাশ করতে চাই এবং তারপরেও একটি ভাল ডিজাইনের সফ্টওয়্যার দিয়ে শেষ করতে চাই তবে আমার কী মনোযোগ দেওয়া উচিত? বা প্রকৃত কোডিং শুরু করার আগে আমার কোনও ডিজাইন ব্যবহারকারীর গল্প নির্ধারণ করা উচিত ? কমপক্ষে গড়ের চেয়ে জটিল যে বৈশিষ্ট্যগুলির জন্য এটি কি একটি ভাল অনুশীলন হিসাবে বিবেচিত হয়?
সম্পাদনা - দ্রষ্টব্য
আমি এই সত্যটি সম্পর্কে সচেতন যে ভাল ডিজাইনটি পরম কিছু নয় এবং এর নিজস্ব কোনও মূল্য নেই তবে এটি প্রসঙ্গের উপর নির্ভর করে এবং এটি এমন একটি নকশাকে লক্ষ্য করা উচিত যা হাতের সমস্যার জন্য যথেষ্ট উপযুক্ত ।
উদাহরণস্বরূপ, আমি যদি খুব সাধারণ ডিজাইনটি (1) যত তাড়াতাড়ি সম্ভব প্রস্তুত করা আবশ্যক, (2) শুধুমাত্র একবার ব্যবহার করা যাচ্ছে, (3) না হয় ভাল ডিজাইন সম্পর্কে (খুব বেশি) যত্ন নেই সিস্টেমের অন্যান্য অংশ (YAGNI) দ্বারা ব্যবহৃত।
আমি ভাল ডিজাইনের বিষয়ে যত্নশীল যখন একটি উপাদান (1) বেশ কয়েকবার ব্যবহৃত হবে এবং কোনও পণ্যের বিভিন্ন প্রকাশে, (২) সময়ের সাথে সাথে বজায় রাখা এবং প্রসারিত করা দরকার, (3) এর উপর নির্ভর করে প্রচুর অন্যান্য উপাদান রয়েছে ।
The only well-designed module I could produce recently I obtained by taking a different approach
- আপনি আপনার নিজের প্রশ্নের উত্তর দিয়েছেন। আপনার এখনও কিছু আপ-ফ্রন্ট ডিজাইন প্রয়োজন; আপনি রিফ্যাক্টরিং থেকে জৈবিকভাবে বাড়ার জন্য কোনও ভাল ডিজাইন আশা করতে পারেন না। এটি সেভাবে কাজ করে না।