নির্দিষ্ট ক্ষেত্রে সমাধানের চেয়ে সাধারণ সমাধান কখন পছন্দ করবেন


18

প্রোগ্রামিংয়ে আমাদের প্রায়শই একটি নির্বাচনের মুখোমুখি হতে হয়: প্রতিটি অনুমেয় ব্যবহারের কেস পৃথকভাবে কভার করুন বা সাধারণ সমস্যা সমাধান করুন:

এক্সকেসিডি - সাধারণ সমস্যা

এটি সুস্পষ্ট যে তাত্ক্ষণিক সমস্যার সমাধান দ্রুত, তবে একটি সাধারণ সমাধান তৈরি করা ভবিষ্যতে সময় সাশ্রয় করবে।

আমি কীভাবে জানতে পারি যে কেসগুলির সসীম তালিকাটি চেষ্টা করা বা কভার করা ভাল, বা সমস্ত সম্ভাবনা কভার করার জন্য জেনেরিক সিস্টেম তৈরি করা ভাল?


4
এত ডাউনভোটস কেন?
পিওরফেরেট

3
আমার কাছে যুক্তিসঙ্গত প্রশ্নের মতো মনে হচ্ছে। দেখে মনে হচ্ছে আপনার কোনও অসম্পূর্ণ সম্পাদনা আছে; আপনি যে যত্ন নিতে চাইবেন।
স্টুয়ার্ট


@ যে বিভিন্ন প্রোগ্রাম / প্রকল্পের মধ্যে থাকা। আমি একই প্রকল্প / দৃশ্যে জিজ্ঞাসা করছি।
পিয়ারফেরেট

খুবই অস্পষ্ট. সব ক্ষেত্রেই আচ্ছাদন হয় সাধারণ সমস্যা সমাধানের। এর পরে, আপনি কীভাবে আপনার কোডটি লেখেন এটি কেবল বিষয়।
কালেব

উত্তর:


29

প্রথমে, আপনি লবণ পাস। তারপর আপনি মরিচ পাস। তারপরে আপনি grated parmesan পনির পাস। এই মুহুর্তে, আপনার একটি সাধারণ কন্ডিমেন্ট-পাসিং সিস্টেম বিকাশ করার জন্য যথেষ্ট অভিজ্ঞতা রয়েছে।

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


4
এটি একটি দুর্দান্ত উত্তর!
পিওরফেরেট

আর এ কারণেই চটপটে পাথর।
ইওফোরিক


9

আমি কীভাবে জানতে পারি যে কেসগুলির সসীম তালিকাটি চেষ্টা করা বা কভার করা ভাল, বা সমস্ত সম্ভাবনা কভার করার জন্য জেনেরিক সিস্টেম তৈরি করা ভাল?

অভিজ্ঞতা থাকতে হবে।

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

তারপরেও, আপনি সত্যই জানেন না ; আপনার আরও ভাল অনুমান আছে


3

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

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


2

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

পূর্ববর্তী জীবনে আমি এমন যন্ত্রপাতিগুলির জন্য প্রচুর শিল্প অটোমেশন প্রকল্প করেছি যা ধারাবাহিকভাবে সামগ্রীর ওয়েব পরিচালনা করে। ইস্পাত, অ্যালুমিনিয়াম, কাগজ, প্লাস্টিক, ... আপনি এটিকে এক প্রান্তে তালিকাভুক্ত করুন এবং মাঝখানে দরকারী কিছু করার পরে এটি অন্যদিকে রোল আপ করুন। একটি ইন্ডাস্ট্রিতে আপনি "আনফেন্ডার" নয়, "পেওফ রিল" থেকে শুরু করুন। যদি আপনি ভুল পরিভাষা ব্যবহার করেন তবে আপনি ক্লায়েন্টের বহু মিলিয়ন ডলারের চোখের একজন নির্বোধ। আপনি কিভাবে একটু যেতে পারে বিস্মিত হবে আনমনা পরবর্তী এক প্রকল্প থেকে পুনঃব্যবহারের জন্য। OTOH, একজন প্রায়শই একটি সূচনা পয়েন্ট হিসাবে কাঠামো বা টেম্পলেট তৈরি করতে পারে। এটি হাতের কাজের জন্য স্বনির্ধারিত হবে তবে কমপক্ষে এটি পূর্ববর্তী প্রকল্পগুলি থেকে শেখার সুবিধা পেয়েছিল had এবং দলের সবাই জানত যে আমরা কোথা থেকে শুরু করছি।


2

একবার করুন, দু'বার করুন, তিনবার করুন, জেনারালাইজ করুন।


1

এক, দুই, অনেক!

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

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