আমার এক বন্ধু একটি প্রকল্পে একটি ছোট সংস্থার জন্য কাজ করছে যা প্রতিটি বিকাশকারী তাকে ঘৃণা করবে: যত তাড়াতাড়ি সম্ভব মুক্তি দেওয়ার জন্য তার উপর চাপ দেওয়া হয়েছে, তিনিই একমাত্র যিনি প্রযুক্তিগত debtণ সম্পর্কে যত্নবান বলে মনে করছেন, গ্রাহকের কোনও প্রযুক্তিগত পটভূমি নেই ইত্যাদি।
তিনি আমাকে একটি গল্প বলেছেন যা আমাকে এর মতো প্রকল্পগুলিতে নকশার ধরণগুলির যথাযথতা সম্পর্কে ভাবতে বাধ্য করে। গল্পটি এখানে।
আমাদের ওয়েবসাইটে বিভিন্ন জায়গায় পণ্য প্রদর্শন করতে হয়েছিল। উদাহরণস্বরূপ, কন্টেন্ট ম্যানেজাররা পণ্যগুলি দেখতে পেতেন, তবে এপিআইয়ের মাধ্যমে শেষ ব্যবহারকারী বা অংশীদারদেরও দেখতে পারে।
কখনও কখনও, পণ্যগুলি থেকে তথ্য অনুপস্থিত ছিল: উদাহরণস্বরূপ, যখন পণ্যটি সবেমাত্র তৈরি করা হয়েছিল তখন তাদের একগুচ্ছের কোনও দাম ছিল না, তবে দামটি এখনও নির্দিষ্ট করা হয়নি। কারও কারও কাছে বিবরণ ছিল না (বিবরণটি একটি পরিবর্তনযোগ্য ইতিহাস, স্থানীয়করণ বিষয়বস্তু, ইত্যাদি সহ একটি জটিল অবজেক্ট)। কারও কারও চালানের তথ্য ছিল না।
ডিজাইনের ধরণ সম্পর্কে আমার সাম্প্রতিক পড়া দ্বারা অনুপ্রাণিত হয়ে আমি ভেবেছিলাম যে এটি যাদু নাল অবজেক্ট প্যাটার্নটি ব্যবহার করার একটি দুর্দান্ত সুযোগ । সুতরাং আমি এটি করেছি, এবং সবকিছু মসৃণ এবং পরিষ্কার ছিল। একজনকে কেবল
product.Price.ToString("c")
দামটি প্রদর্শন করতে, বাproduct.Description.Current
বর্ণনাটি দেখানোর জন্য কল করতে হয়েছিল; কোন শর্তসাপেক্ষ জিনিস প্রয়োজন। একদিন অবধি, স্টেকহোল্ডারnull
জেএসওএন থাকাতে এটিকে এপিআইতে আলাদাভাবে প্রদর্শন করতে বলেছিল । এবং পৃথকভাবে "মূল্য অনির্দিষ্ট [পরিবর্তন]" দেখিয়ে সামগ্রী সামগ্রীগুলির জন্য। এবং আমাকে আমার প্রিয় নুল অবজেক্ট প্যাটার্নটি হত্যা করতে হয়েছিল, কারণ এর আর কোনও প্রয়োজন নেই।একইভাবে, আমাকে কয়েকটি বিমূর্ত কারখানা এবং কয়েকজন নির্মাতা অপসারণ করতে হয়েছিল, আমি আমার সুন্দর ফেক্যাড প্যাটার্নটি প্রত্যক্ষ এবং কুরুচিপূর্ণ কলগুলির দ্বারা প্রতিস্থাপন করে শেষ করেছি, কারণ অন্তর্নিহিত ইন্টারফেসগুলি তিন মাসের জন্য প্রতিদিন দুবার পরিবর্তিত হয়েছিল, এবং এমনকি সিঙ্গেলটন আমাকে ছেড়ে গেছে যখন প্রয়োজনীয়তাগুলি জানিয়েছিল যে প্রসঙ্গের উপর নির্ভর করে সংশ্লিষ্ট বিষয়টিকে আলাদা হতে হবে।
তিন সপ্তাহেরও বেশি কাজের মধ্যে ডিজাইনের নিদর্শনগুলি যুক্ত করা ছিল, তারপরে এক মাস পরে এগুলি ছিঁড়ে ফেলা হবে এবং অবশেষে আমার কোডটি স্প্যাগেটি হয়ে উঠেছে, নিজেকে সহ অন্য কারও দ্বারা বজায় রাখা অসম্ভব। এই নিদর্শনগুলি প্রথম স্থানে ব্যবহার না করা ভাল কি না?
ছেলেঃ আমি প্রকল্পের যারা ধরনের যেখানে প্রয়োজনীয়তা ক্রমাগত পরিবর্তন করা হয় নিজেকে কাজ করতে ছিল, এবং হয় dictated ব্যক্তি যিনি সত্যিই মনে সংযোগ বা পণ্যের সঙ্গতি না থাকে দ্বারা। এই প্রসঙ্গে আপনি কতটা চটজলদি হন তা বিবেচনাধীন নয়, আপনি সমস্যার একটি মার্জিত সমাধান নিয়ে আসবেন এবং শেষ পর্যন্ত আপনি এটি বাস্তবায়ন করার পরে আপনি শিখবেন যে প্রয়োজনীয়তাগুলি এত মারাত্মকভাবে পরিবর্তিত হয়েছে যে আপনার মার্জিত সমাধানটি উপযুক্ত নয় that আর.
এক্ষেত্রে কী সমাধান হবে?
কোনও ডিজাইনের নিদর্শন ব্যবহার করছেন না, চিন্তাভাবনা বন্ধ করুন, এবং সরাসরি কোড লিখবেন?
এমন একটি অভিজ্ঞতা করা আকর্ষণীয় হবে যেখানে কোনও দল সরাসরি কোড লিখছে, অন্য একজন টাইপ করার আগে দু'বার চিন্তা করছেন, কয়েক দিন পরে আসল নকশাটি ফেলে দেওয়ার ঝুঁকি নিয়ে: কে জানে, সম্ভবত উভয় দলেরই থাকতে হবে একই প্রযুক্তি debtণ এই জাতীয় ডেটার অভাবে, আমি কেবল দৃ .়ভাবেই বলব যে 20-মাস-প্রকল্পে কাজ করার আগে পূর্ব চিন্তা না করে কোড টাইপ করা ঠিক মনে হচ্ছে না ।
ডিজাইনের প্যাটার্নটি রাখুন যা আর বোঝা যায় না এবং সদ্য নির্মিত পরিস্থিতির জন্য আরও নিদর্শন যুক্ত করার চেষ্টা করবেন?
এটিও ঠিক মনে হয় না। কোডগুলি বোঝার সহজ করার জন্য প্যাটার্নগুলি ব্যবহার করা হয়; অত্যধিক নিদর্শনগুলি রাখুন, এবং কোডটি একটি গোলযোগে পরিণত হবে।
একটি নতুন ডিজাইনের কথা ভাবতে শুরু করুন যা নতুন প্রয়োজনীয়তাগুলিকে ঘিরে রেখেছে, তারপরে আস্তে আস্তে পুরানো নকশাকে নতুন করে রিফ্যাক্টর করুন?
একজন তাত্ত্বিক এবং যিনি আগলেকে সমর্থন করেন তিনি হিসাবে আমি সম্পূর্ণরূপে এতে আছি। অনুশীলনে, যখন আপনি জানেন যে আপনাকে প্রতি সপ্তাহে হোয়াইটবোর্ডে ফিরে যেতে হবে এবং পূর্ববর্তী ডিজাইনের বড় অংশটি আবার করতে হবে এবং গ্রাহকের কাছে তার জন্য আপনাকে অর্থ দেওয়ার মতো পর্যাপ্ত তহবিল নেই, অপেক্ষা করার মতো পর্যাপ্ত সময় নেই , সম্ভবত এটি কাজ করবে না।
সুতরাং, কোন পরামর্শ?