ডিজাইনের প্যাটার্নগুলি সৃজনশীলতার সীমাবদ্ধ করুন


21

বহু বছর আগে, আমি একজন অর্থনীতি বিভাগের অধ্যাপকের সাথে ডিজাইনের ধরণগুলি, কীভাবে প্রোগ্রামারদের জন্য একটি সাধারণ ভাষা প্রতিষ্ঠা করছিলাম এবং কীভাবে তারা সুপরিচিত সমস্যাগুলি সুদৃ manner়ভাবে সমাধান করছিল ইত্যাদি বিষয়ে কথা বলছিলাম etc.

তারপরে তিনি আমার সাথে ফিরে কথা বলেছিলেন যে তিনি তাঁর অর্থনীতি শিক্ষার্থীদের কাছে ঠিক এই বিপরীত পদ্ধতির ব্যবহার করবেন use তিনি সাধারণত একটি সমস্যা উপস্থাপন করেন এবং প্রথমে তাদের সমাধানের সন্ধান করতে বলেছিলেন, যাতে তারা প্রথমে এটি সম্পর্কে চিন্তা করতে পারে এবং প্রথমে সমস্যাটি সমাধানের উপায়গুলি খুঁজতে চেষ্টা করতে পারে এবং তার পরেই তিনি "শাস্ত্রীয়" সমাধান উপস্থাপন করেন।

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

আপনি কি মনে করেন?


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

11
ঝুঁকে পড়া / পড়াশোনা করা থেকে আলাদা। সুতরাং সত্যিই একটি ভাল সিএস কোর্সে আপনার একটি সংকলক লিখতে পারে - যদি আপনি আপনার নিয়োগকর্তাকে পরামর্শ দেন যে তার অর্ডার প্রসেসিং সিস্টেমের জন্য আপনাকে একটি সংকলক লিখতে হবে / আপনাকে বরখাস্ত করা উচিত।
জেমস অ্যান্ডারসন

2
আমি মনে করি না যে দুটো প্রয়োজনীয়ভাবে তুলনীয় - ডিজাইনের ধরণগুলি ধ্রুপদী সমাধান নয়, এগুলি বহু সংখ্যক সমাধানের একটি উপায়।
jmoreno

1
ডিজাইনের নিদর্শনগুলির সম্ভাব্য সদৃশ - আপনি সেগুলি ব্যবহার করেন? - প্রশ্নটি অন্যরকম মনে হতে পারে তবে এই প্রশ্নের উত্তরগুলি এই ক্ষেত্রে উপযুক্ত well
ডক ব্রাউন

2
আমি সৃজনশীলতা সম্পর্কে জানি না, তবে "এটি কী ধরণের?" বা "এর জন্য কি কোনও প্যাটার্ন আছে?" প্রশ্নগুলি এমন ধারণা দেয় যা কিছু দেবগণ মনে করেন যে সমস্ত কিছুর জন্য একটি প্যাটার্ন রয়েছে।
জেফো

উত্তর:


43

আপনার অর্থনীতির অধ্যাপক একেবারে সঠিক।

সফ্টওয়্যার ডিজাইন প্যাটার্নগুলি প্রাথমিকভাবে অভিজ্ঞ সফটওয়্যার বিকাশকারীদের একে অপরের সাথে যোগাযোগ করার একটি উপায় । তারা ज्ञात সমস্যার প্রতিষ্ঠিত সমাধানের জন্য একটি সংক্ষিপ্তকরণ hand

তবে সেগুলি কেবল সেই লোকদের দ্বারা ব্যবহার করা উচিত যারা প্যাটার্ন ছাড়াই কীভাবে সমস্যাটি সমাধান করবেন বুঝতে পারে বা নিজেরাই অনুরূপ প্যাটার্ন নিয়ে এসেছেন। অন্যথায়, তারা অনুলিপি / পেস্ট কোডার হিসাবে একই সমস্যা হবে; তাদের কোড থাকবে তবে তারা বুঝতে পারে না এটি কীভাবে কাজ করে এবং তাই এটির সমস্যা সমাধান করতে অক্ষম হবে।

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

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


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

18
@ মাহদী যখন প্রচুর লোক একই সমাধান খুঁজে পায়, তখন সেই দ্রবণটিকে প্যাটার্ন বলা হয়। এটি অন্যভাবে নয় - আপনি নিদর্শনগুলিকে দেখেন না এবং সেগুলি সমাধান হিসাবে ব্যবহার করেন না, আপনি সমাধানগুলি দেখেন এবং নিদর্শনগুলি সন্ধান করেন।
ব্যবহারকারী 253751

13
@ মাহদী আমি আরও অনেক নবজাতককে দেখতে পাচ্ছি যারা মনে করে যে কেবল তারা যদি প্যাটার্ন XXX ব্যবহার করে তবে তারা প্রতিবার নিখুঁত সফ্টওয়্যার তৈরি করবে (যেখানে XXX তারা শেষের দিকে যা পড়েছে তাই হয়) এবং তারপরে প্রতিটি প্রকল্পের উপর অত্যাচার চালানোর উপায় থেকে বেরিয়ে যায় যে প্যাটার্ন।
জেভেন্টিং

5
@ মাহদী: "আক্ষরিকভাবে প্যাটার্ন ছাড়া সমস্যা কীভাবে সমাধান করা যায়" এমন লোকেরা "বাক্যটি গ্রহণ করবেন না"। রবার্ট অবশ্যই বোঝাতে চেয়েছেন "এমন লোকদের দ্বারা যারা ঝুঁকির সমস্যাটি যথেষ্ট ভালভাবে বুঝতে পেরেছেন যে কোনও প্যাটার্নটি কখন ব্যবহার করতে হবে এবং কখন নয়" সম্পর্কে যুক্তিসঙ্গত সিদ্ধান্ত নিতে পারে।
ডক ব্রাউন

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

21

ডিজাইন প্যাটার্নগুলি লোকেদের যেভাবে ডিজাইন প্যাটার্নগুলি আপনি দেখতে চান সেটি হ'ল সমাধানগুলির সেট হিসাবে যা একই রকম সমস্যাগুলি সামনে এলে আপনি প্রয়োগ করতে পারেন। তারা চায় না যে আপনি তাদের একমাত্র সম্ভাব্য সমাধান হিসাবে ভাবেন, যা Godশ্বর মূসার কাছে দিয়েছিলেন, তিনি পর্বতের উপরে পাথরের ট্যাবলেট খোদাই করেছিলেন।

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

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

যদি আপনি কোনও সমস্যার দিকে লক্ষ্য করেন এবং নিজেকে "এটির জন্য নকশার প্যাটার্নটি কী?" জিজ্ঞাসা করেন, তবে আপনি এটি ভুল করছেন, এবং আপনাকে এমন কোনও সমাধান দেখবেন যার মুখোমুখি আপনি ঘুরে দেখছেন less

যদি আপনি কোনও সমস্যার দিকে নজর দেন এবং নিজেকে জিজ্ঞাসা করেন "এটি কীভাবে সমাধান করব?", তবে যদি কোনও অ-প্যাটার্ন সমাধান থাকে তবে আপনি এটি দেখতে পাবেন এবং যদি কোনও প্যাটার্ন ফিট করে তবে আপনি এটিও দেখতে পাবেন।


10

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

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

আমি মনে করি এটি আমাদের বেশিরভাগের জন্য একই। যদি কেউ আপনাকে ডিআই সম্পর্কে না বলে - একটি ভাল অনুশীলন হিসাবে, তবে তাদের বিকাশকারীরা পাঠ না শিখলে কতগুলি এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলির লড়াই বা ব্যর্থ হওয়া উচিত?

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

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


3
"আমি অনেক কিছু শিখেছি কিন্তু এগুলির সবকটিই মূলত ব্যর্থ হয়েছিল I আমি যথাসাধ্য চেষ্টা করেছি তবে সেখানে এমভিসি না থাকলে কী হবে? আচ্ছা, সোজা, আমার উত্স কোডটি সফল হয়" - শক্ত সোনার শব্দ!
ankush981

5

হাতুড়ি পুনরায় উদ্ভাবন করবেন না, কিন্তু পেরেকের মতো প্রতিটি সমস্যার সাথে ব্যবহার করবেন না

প্রোগ্রামিং নিদর্শন একটি দুর্দান্ত সময় সাশ্রয়কারী, কারণ তারা আপনাকে সহজেই ব্যবহারের জন্য প্রস্তুত সমাধান দেয়, ভাল ডকুমেন্টেড এবং পরীক্ষিত গড়গুলি দিয়ে পরীক্ষা করে যা আপনি সহজেই ভুলে যেতে পারেন। তবে এগুলি কখন ব্যবহার করবেন তা আপনার শিখতে হবে (এবং চিন্তা করুন)।

আপনার প্রশ্নের প্যারাফ্রেসিং: গাড়ি চালানো শিখতে আমাকে আরও দ্রুত সরানো, বা কেবল ধীর করে চলবে?

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

আপনার প্রশ্নের দ্বিতীয় অংশে ফিরে - আপনার অধ্যাপক ঠিক?

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

এই কারণেই আপনি প্রথমে শিক্ষার্থীদের প্রোগ্রাম করতে শেখান, এবং নিদর্শনগুলি আরও সেমিস্টারে প্রবর্তিত হয়েছে।


5

আমি একেবারে ডিজাইনের ধরণগুলি শেখানোর মাধ্যমে প্রোগ্রামিং শেখানোর বিরুদ্ধে পরামর্শ দেব। আপনি তাদের পিছনে নীতিগুলি না বুঝে এগুলি ভালভাবে প্রয়োগ করতে পারবেন না, সুতরাং এই নীতিগুলি শেখানো আরও গুরুত্বপূর্ণ।

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

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

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


হুম, আকর্ষণীয় উত্তর। তবে আমি শুনেছি যে প্রোগ্রামিং সাক্ষাত্কারগুলি ডিজাইনের ধরণগুলির উপর ভারী। তাদের মধ্যে যদি খুব কম মূল্য থাকে তবে তা কেন হবে?
ankush981

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

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

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

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

3

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

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


1

উত্তরটি অবশ্যই: হ্যাঁ।

ডিজাইন নিদর্শনগুলি তাদের মধ্যে একটি দুর্দান্ত শেখার সরঞ্জাম, যতক্ষণ না কেউ কীভাবে তারা কাজ করে এবং তারা যে মূল্য নিয়ে আসে তার মূল্য কেন নিয়ে যায় তা নির্ধারণের জন্য সময় নেয়।

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

তবে, যদি তারা শর্ট সার্কিটের নকশা খুব বেশি করে করে, বা লোকেরা তাদের ব্যবহার সম্পর্কে কৌতূহলবশত এবং অতি-সুনির্দিষ্ট হয়ে যায়, তবে তাদের বিপরীত প্রভাব রয়েছে।


3
তারা প্রোগ্রামিং শেখানোর জন্য ভয়ানক শিক্ষার সরঞ্জাম (ডিজাইনের পরিবর্তে)। তারা "YYY প্যাটার্নটি ব্যবহার করে কীভাবে XXX প্রয়োগ করতে পারি" এর ইন্টারনেট ফোরামে ওহ এত সাধারণ প্রশ্ন বাড়ে, যা জিজ্ঞাসা করা ভুল প্রশ্ন, প্রশ্নটি হওয়া উচিত (যখন আপনি নিদর্শনগুলিকে জোর করতে চান) "কোন প্যাটার্ন উপযুক্ত হবে? XXX বাস্তবায়নের জন্য "।
জেভেন্টিং

1
lol আমি বলেছিলাম শেখার সরঞ্জাম, না শেখানোর সরঞ্জাম - যদি কেউ শিখতে চায়;)
রব

-2

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


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