কিভাবে নকশা নিদর্শন অধ্যয়ন? [বন্ধ]


352

আমি নকশার নিদর্শনগুলিতে প্রায় 4-5 টি বই পড়েছি, তবে এখনও আমার মনে হয় না আমি নকশার নিদর্শনগুলিতে মধ্যবর্তী স্তরের আরও কাছে এসেছি?

আমার কীভাবে ডিজাইনের ধরণগুলি অধ্যয়ন করা উচিত?

নকশা নিদর্শন জন্য কোন ভাল বই আছে?

আমি জানি এটি কেবল অভিজ্ঞতা নিয়ে আসবে তবে এগুলিকে আয়ত্ত করার কোনও উপায় থাকতে হবে?


6
ডিজাইন প্যাটার্ন শেখার সর্বোত্তম উপায় হ'ল একটি প্রকল্প করে। আপনি যখন প্রকল্পের নিদর্শনগুলি দেখেন আপনি বুঝতে পারবেন যে সেগুলি এখানে কীভাবে ব্যবহার করবেন তা এখানে একটি নিবন্ধ যা প্রজেক্টের কোডেপ্রজেক্ট
শিবপ্রসাদ কৈরালা

1
অ্যান্টিপ্যাটার্নগুলিও ভালভাবে দেখুন deviq.com/antipatterns
বিকাশকারী

আপনি এখান থেকে এটি শিখতে পারেন, play.google.com/store/apps/…
কিউর থুমার

সম্ভবত দেরীতে হলেও এখনও কারও সাহায্য করতে পারে .. বেসিক এবং পরিস্থিতিগুলি কোথায় ব্যবহার করা যেতে পারে তা বোঝার জন্য geeksforgeeks.org/software-design- Patterns ব্যবহার করে দেখুন। প্রতিটি প্যাটার্নের ভিত্তি এবং উদ্দেশ্য বুঝতে আমাকে সহায়তা করেছে
12'17 এ জিতিট করুন

এছাড়াও দেখুন, বহুত্বদৃষ্টি
স্মিথ

উত্তর:


206

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

একটি দুর্দান্ত সংস্থান হ'ল ডেটা ও অবজেক্ট ফ্যাক্টরি পৃষ্ঠা। তারা নিদর্শনগুলি অতিক্রম করে এবং আপনাকে ধারণাগত এবং বাস্তব উভয় উদাহরণ দেয়। তাদের রেফারেন্স উপাদানগুলিও দুর্দান্ত।


11
একদম ঠিক! আমি সর্বদা আনন্দিত হয়েছি যে সফ্টওয়্যারটি "কম্পিউটার বিজ্ঞানের" অধীনে আসে। আমি হার্ডওয়্যারটির পক্ষে যুক্তি দেখতে পাচ্ছি, তবে সফ্টওয়্যারটি একটি অত্যন্ত নিখুঁত বিজ্ঞানের জন্য তৈরি করে!
জোসেফ ফেরিস

দুঃখজনকভাবে এই সম্পদ আর উপলব্ধ নেই :(।

5
@ নিলসডব্লিউ এটি শেষ, সম্ভবত এটি কেবল অস্থায়ী ছিল।
uthomas

211

আমি তিনটি বই পড়েছি এবং এখনও ওড়েলি দ্বারা পরিচালিত হেড ফার্স্ট ডিজাইন প্যাটার্নগুলি না পড়া পর্যন্ত প্যাটার্নগুলি খুব ভালভাবে বুঝতে পারি নি । এই বইটি আমার চোখ খুলেছে এবং সত্যই ভাল ব্যাখ্যা করেছে।

বিকল্প পাঠ


14
এটি দেখতে দেখতে "সিরিয়াস" বইটি পড়ে প্রথমে কিছুটা অদ্ভুত, তবে পড়তে গিয়ে আমি লক্ষ্য করেছি যে আমি আসলে পরিবর্তনের ধারণাগুলি বুঝতে পেরেছিলাম। অবশ্যই একটি পাঠ্য মূল্য।
টিম হুইটকম্ব

18
আমি অবশ্যই মনে করি এটি ডিজাইনের নিদর্শন সম্পর্কে শেখার জন্য সেরা বই। আপনি আরও ভালভাবে বুঝতে পারার পরে GoF বইটি একটি রেফারেন্স হিসাবে ব্যবহার করা উচিত।
বিলটি

আপনি তিনটি বই পড়ার কথা বলেছেন .. আপনিও কি এটি পড়েছেন? amazon.com/… যদি তাই হয়, আপনি কি ভেবেছিলেন?
শিববধু

11
২০০ 2006 সালে ফ্রান্সের
ন্যান্তেসে

1
এই বইটি পড়ার পরে, ওও উপলব্ধি করে। @ সিম্পলফেলো দ্য জিওএফ বইটি নিস্তেজ। ডিজাইনের ধরণ সম্পর্কে পূর্বের জ্ঞান ছাড়াই এটি আপনাকে কোনও সময় ঘুমায় না। তবে এটি একটি ভাল ( the ) রেফারেন্স বই এবং EAA এর DDD এবং P এর সাথে কোনও পেশাদার লাইব্রেরির অংশ হওয়া উচিত।
এমবিএক্স

93

যেমন এবং পুরানো প্রশ্নের জন্য আমার দুটি সেন্ট

কিছু লোক ইতিমধ্যে উল্লিখিত, অনুশীলন এবং রিফ্যাক্টরিং। আমি বিশ্বাস করি নিদর্শন সম্পর্কে শেখার সঠিক ক্রমটি এটি:

  1. পরীক্ষা চালিত বিকাশ শিখুন (টিডিডি)
  2. রিফ্যাক্টরিং শিখুন
  3. নিদর্শন শিখুন

বেশিরভাগ লোক 1 টি উপেক্ষা করে, অনেকের বিশ্বাস তারা 2 করতে পারে এবং প্রায় প্রত্যেকে 3 এর জন্য সরাসরি চলে যায়।

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

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

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


তোমার দর্শন লগ করা TDD- এ জন্য কিছু বই সুপারিশ এবং C ++ নানা ধরণের অসুখে refactoring করতে
আনন্দ

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

62

ডেরেক বানাস ইউটিউব টিউটোরিয়াল তৈরি করেছেন যাতে আমি অনেক পছন্দ করি patterns

http://www.youtube.com/playlist?list=PLF206E906175C7E07

এগুলি সময়ে কিছুটা কম হতে পারে তবে তাঁর সময় এবং উপস্থাপনা এগুলি শিখতে খুব আনন্দদায়ক করে তোলে।


35

অনুশীলন, অনুশীলন, অনুশীলন।

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

ডিজাইনের নিদর্শনগুলি একটি উচ্চ-স্তরের ইস্যু হিসাবে সেরা স্বীকৃত; এগুলি কেবলমাত্র প্রাসঙ্গিক যদি আপনার সেগুলি দরকারী হিসাবে চিনতে প্রয়োজনীয় অভিজ্ঞতা থাকে। এটি আপনার পক্ষে ভাল যে আপনি সেগুলি কার্যকর বলে স্বীকৃতি দিয়েছেন, তবে যদি আপনি এমন পরিস্থিতিগুলি না দেখে থাকেন যেখানে তারা প্রয়োগ করতে পারে বা প্রয়োগ করে না থাকে তবে তাদের আসল মানটি বোঝা প্রায় অসম্ভব।

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

এটি কোডিংয়ের মতোই; কে অ্যান্ড আর সি এর জন্য "বাইবেল" হতে পারে, তবে এটি বেশ কয়েকবার কভার-টু-কভার পড়া কেবল একটি ব্যবহারিক অভিজ্ঞতা দেয় না; অভিজ্ঞতার কোনও প্রতিস্থাপন নেই।


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

25

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

আপনি যদি তাদের সমস্যার সমাধান না করেন তবে আপনি তাদের সম্পূর্ণ প্রশংসা করতে পারবেন না। এবং দয়া করে মনে রাখবেন যে এগুলি সিলভার বুলেট নয় - আপনার এগুলি মুখস্ত করার দরকার নেই এবং ফ্লাইতে প্রয়োগ করার জন্য এটি কঠোরভাবে চাপ দেওয়ার দরকার নেই। আমার দুই সেন্ট..


15

নিজেকে এই প্রশ্নগুলি জিজ্ঞাসা করুন:

তারা কি করে?

তারা কি / যুগল decouple না?

এগুলি কখন ব্যবহার করা উচিত?

আপনি কখন তাদের ব্যবহার করবেন না?

কোন অনুপস্থিত ভাষার বৈশিষ্ট্য তাদের দূরে সরিয়ে দেবে?

এটি ব্যবহার করে আপনি কোন প্রযুক্তিগত debtণ গ্রহণ করেন?

কাজটি করার সহজ উপায় কি আছে?


14
এবং পরিশেষে নিজেকে উল্লিখিত সমস্ত প্রশ্নের উত্তর কোথায় পাবেন তা জিজ্ঞাসা করুন
যতীন ধূত

চিন্তা দ্বারা @JatinDhoot ..
gtrak

8

আমি দেখতে পেয়েছি যে কেউ তাদের সমাধান করা সমস্যাগুলি না বোঝে এবং অন্যটি (আরও খারাপতর) যেভাবে সমস্যাগুলি কার্যকর করা হয়েছে সেগুলি না বোঝা পর্যন্ত কিছু নিদর্শনগুলির সুবিধাগুলি বোঝা বা বোঝা কিছুটা কঠিন।

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

শুভকামনা


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

8

অনেক ভাল উদাহরণ দেওয়া হয়েছে। আমি একটি যুক্ত করতে চাই:

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

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

মঞ্জুর, এটি আসলে -21 দিনের উত্তর-এর-যা-যা-তা-শিখবে না, তবে আমার অভিজ্ঞতায় এটি আপনাকে বিষয়টি সম্পর্কে ভাল অন্তর্দৃষ্টি দেওয়ার সম্ভাবনা সবচেয়ে বেশি।


7

আপনি কি অ্যালান শ্যালোয়ের "ডিজাইনের প্যাটার্নগুলি ব্যাখ্যা করেছেন" পড়েছেন?

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

সমস্যাগুলি দুটি ভাগে বিভক্ত হতে পারে: যে জিনিসগুলি সাধারণ এবং বিভিন্ন জিনিস things এটি হয়ে গেলে, আমরা একটি ইন্টারফেসে সাধারণ জিনিসগুলি এবং যে প্রয়োগগুলিতে পরিবর্তিত হয় তা ম্যাপ করি। সংক্ষেপে, অনেক নিদর্শন এই "প্যাটার্ন" এর মধ্যে পড়ে।

কৌশল প্যাটার্নে উদাহরণস্বরূপ, সাধারণ জিনিসগুলি কৌশলটির প্রসঙ্গ হিসাবে প্রকাশ করা হয়, এবং পরিবর্তনশীল অংশগুলি কংক্রিট কৌশল হিসাবে প্রকাশ করা হয়।

আমি এই বইটি অন্যান্য প্যাটার্ন বইয়ের সাথে বিপরীতভাবে উজ্জীবিত বলে মনে করেছি যা আমার কাছে ফোনের বই পড়ার মতোই উত্তেজিত ছিল।


6

7
আমি সেই বইটিকে "চোখ খোলা" বই হিসাবে সুপারিশ করব না :)
জিও

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

2
আমি যখন এই বইটি পড়তে পড়তে মাঝখানে ঘুমিয়ে পড়েছিলাম তখন এখানে এসেছি। 'বোঝার ডিজাইনের ধরণগুলি' অনুসন্ধান করেছেন। পোস্টটি খুঁজে পেয়েছি। উপরের মন্তব্য পাওয়া গেছে। আমার দিন তৈরি। অন্যদের সাথে সম্মত
হোন

5

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


4

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

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


3

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


2

আমার পরামর্শটি তাদের কয়েকটি বাস্তবায়ন এবং সেগুলির কয়েকটি বাস্তবায়ন বিশ্লেষণের সংমিশ্রণ হবে। উদাহরণস্বরূপ, নেট মধ্যে, অ্যাডাপ্টার নিদর্শনগুলির ব্যবহার রয়েছে যদি আপনি ডেটা অ্যাডাপ্টারের দিকে তাকান, সেই সাথে যদি কেউ ফ্রেমওয়ার্কটিতে কিছুটা খনন করেন a


2

আমি সেরা বই সম্পর্কে জানি না, তবে শুদ্ধবাদীরা ডিজাইন প্যাটার্নস: পুনরায় ব্যবহারযোগ্য অবজেক্ট-ওরিয়েন্টড সফ্টওয়্যার এর উপাদানসমূহ বলতে পারে

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

অনুশীলন - অনুশীলন - অনুশীলন।


2

ডিজাইনের নিদর্শনগুলি কেবলমাত্র সরঞ্জাম - লাইব্রেরির ফাংশনগুলির মতো। আপনি যদি জানেন যে তারা সেখানে আছে এবং তাদের আনুমানিক ফাংশন, আপনি যখন প্রয়োজন তখন এগুলি একটি বই থেকে সরিয়ে নিতে পারেন।

নকশার নিদর্শনগুলি সম্পর্কে কোনও জাদু নেই, এবং কোনও ভাল প্রোগ্রামার কোনও বই বের হওয়ার আগে তাদের 90% নিজের জন্য বের করে ফেলেছিল। বেশিরভাগ অংশে আমি বইগুলি কেবলমাত্র বিভিন্ন ধরণের নামগুলি সংজ্ঞায়িত করতে সবচেয়ে দরকারী বলে মনে করি যাতে আমরা সেগুলি আরও সহজে আলোচনা করতে পারি।


2

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

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


2

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

সংস্থান সম্পর্কে আপনি এগুলি পরীক্ষা করতে পারেন

  1. www.dofactory.com
  2. ডিজাইনের প্যাটার্নস: এরিচ গামা, রিচার্ড হেলম, রাল্ফ জনসন এবং জন এম। ভ্লিসাইডস দ্বারা পুনঃব্যবহারযোগ্য অবজেক্ট-ওরিয়েন্টেড সফ্টওয়্যার (অ্যাডিসন-ওয়েসলি পেশাদার কম্পিউটিং সিরিজ) এর উপাদানসমূহ
  3. মার্টিন ফওলারের এন্টারপ্রাইজ অ্যাপ্লিকেশন আর্কিটেকচারের প্যাটার্নস

1 হ'ল দ্রুত শুরু, 2 গভীর অধ্যয়নের মধ্যে থাকবে..3 আপনাকে 2 এ কী শিখেছে তা এন্টারপ্রাইজ সফ্টওয়্যারটিতে ব্যাখ্যা করবে বা আপনাকে ভাবিয়ে তুলবে।

আমার 2 সেন্ট ...


1

আমি মনে করি এটি নকশা নিদর্শন অধ্যয়ন করাও কঠিন। আপনাকে ওওপি সম্পর্কে আরও জানতে হবে এবং মাঝারি থেকে বড় অ্যাপ্লিকেশন বিকাশের কিছু অভিজ্ঞতা। আমার জন্য, আমি আলোচনার জন্য বিকাশকারীদের একটি গ্রুপ হিসাবে অধ্যয়ন করি। প্যাটার্নগুলি নকশা করার জন্য আমরা একটি শিক্ষণ গাইড অনুসরণ করি যা তারা নিদর্শন অধ্যয়ন সম্পূর্ণ করেছে। সেখানে সি # এবং জাভাস্ক্রিপ্ট বিকাশকারীরা একসাথে যোগদান করছেন। জাভাস্ক্রিপ্টে সি # বিকাশকারী লেখার কোড এবং জাভাস্ক্রিপ্ট বিকাশকারী সি # কোডের জন্য একই জিনিসটি করা আমার পক্ষে অভিনব বিষয়। আমি একটি সভা ছেড়ে যাওয়ার পরে আমি পর্যালোচনা করতে বাড়িতে কয়েকটি বইও গবেষণা এবং পড়ি। আমার মনের আরও বেশি বোঝার এবং মনে রাখার আরও ভাল উপায় হ'ল এখানে http://tech.wowkhmer.com/category/Design-Patterns.aspx এ সি # এবং জাভাস্ক্রিপ্ট উভয় ক্ষেত্রেই উদাহরণ সহ ব্লগিং করা ।

আমি প্রতিটি ডিজাইনের নিদর্শনগুলিতে যাওয়ার আগে প্রথমে পরামর্শ দেব দয়া করে প্যাটার্নগুলির নামটি বুঝুন। এছাড়াও যদি কেউ ধারণাটি জানেন তবে দয়া করে কেবল প্রোগ্রামিংই নয়, পড়ার বিশ্বে একটি উদাহরণ প্রদান করুন।

উদাহরণ স্বরূপ:

কারখানার পদ্ধতি:

বিশ্ব পড়ুন: আমি কেবল $ 5, $ 10 বা 20 money টাকা দিই এবং এটি কীভাবে উত্পাদন করে তা সম্পর্কে কিছু না জেনে পিজ্জা ফিরিয়ে আনবে, আমি কেবলমাত্র একটি ছোট, মাঝারি বা বড় পিজ্জা অর্থের ইনপুটের উপর নির্ভরশীল করি যাতে আমি খেতে বা যা কিছু করতে পারি।

প্রোগ্রামিং: ক্লায়েন্ট কেবলমাত্র কারখানার পদ্ধতিতে প্যারামিটারের মান $ 5, 10 ডলার বা 20 ডলার দিয়ে দেয় এবং এটি পিজ্জা অবজেক্টটি ফিরিয়ে দেবে। সুতরাং ক্লায়েন্ট কীভাবে এটি প্রক্রিয়া করে তা না জেনে সেই বস্তুটি ব্যবহার করতে পারে।

আমি নিশ্চিত না যে এটি আপনাকে সাহায্য করতে পারে। এটি সভায় যোগদানকারীদের জ্ঞান স্তরের উপর নির্ভর করে।


উত্তরের দ্বিতীয় লিঙ্কটি মারা গেছে।
পাইং

1

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

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


1

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

বইটি আপনাকে প্রাথমিক ধারণাগুলি বুঝতে সাহায্য করবে, যতক্ষণ না আপনি বাস্তব বিশ্বে প্রয়োগ না করা পর্যন্ত আপনি ডিজাইন প্যাটার্নসের একজন মাস্টার হতে পারবেন না

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