অবজেক্ট ওরিয়েন্টড পিটফলস এড়ানো, সি থেকে হিজরত, আপনার জন্য কী কাজ করেছে?


12

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

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

আমি /programming/2688910/learning-to-think-in-the-object-oriented-way এবং /programming/1157847/learning-object-oriented- চিন্তা , এবং সেই উত্তরগুলিতে নির্দেশিত কয়েকটি বইয়ের দিকে তাকাবে।

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

আপনার অভিজ্ঞতার ভিত্তিতে, এই সমস্যাগুলি কী কী এবং সেগুলির চারপাশে যুক্তিসঙ্গত উপায়গুলি কী? যদি আপনি ব্যাখ্যা করতে পারেন যে সেগুলি কেন ঘটছে, এবং সমস্যাটি সমাধানে আপনার পরামর্শ কীভাবে কার্যকর it

আমি এমন কিছুর লাইনের সাথে ভাবছি যে "নিখরচায় পর্যবেক্ষক এবং সংশোধক পদ্ধতি রয়েছে এবং বেসরকারী ভেরিয়েবলগুলি ব্যবহার করা কি সাধারণ বা তাদের একীকরণ / হ্রাস করার কৌশল রয়েছে?"

আমি মিশ্রিত পদ্ধতিগুলির যদি ভাল কারণ থাকে তবে আমি খাঁটি ওও ভাষা হিসাবে সি ++ ব্যবহার করার বিষয়ে চিন্তিত নই। (কিছুটা হলেও তবুও জিওটিও ব্যবহার করার কারণগুলির কথা মনে করিয়ে দিন))

ধন্যবাদ!


2
সম্পূর্ণ উত্তরের যোগ্য নয়, তবে এমন একটি গুরুত্বপূর্ণ যা আমাকে গ্রহণ করতে দীর্ঘ সময় নিয়েছিল (যেমন আমি এটি সম্পর্কে প্রচুর সময় পড়েছি তবে এটিকে ফ্যানবয় টক হিসাবে বিবেচনা করেছি): সদস্যের কার্যক্রমে ফ্রি ফন্টিয়েন্সকে পছন্দ করুন। এটি আপনার ক্লাসগুলিকে ন্যূনতম রাখে যা একটি ভাল জিনিস।
স্টিঞ্জ করুন

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

হ্যাঁ এটাই আপনি যদি 'অ-সদস্য অ-বন্ধুকে পছন্দ করেন' অনুসন্ধান করেন তবে আপনি এটি সম্পর্কে প্রচুর তথ্য পাবেন। শেষ পর্যন্ত এটি একক
দায়িত্বের নীতিটি

উত্তর:


10

একটি বড় জিনিস আমি শিখেছি হ'ল বাইরে থেকে ক্লাসগুলি ডিজাইন করা the এমনকি আপনি বাস্তবায়ন সম্পর্কে চিন্তাভাবনা শুরু করার আগে ইন্টারফেসটি ডিজাইন করুন। অন্তর্নিহিত অ্যালগরিদমগুলি লিখতে এবং শ্রেণিটি তৈরি করা এবং প্রয়োজনীয় হিসাবে নতুন পাবলিক সদস্য ফাংশনগুলি লেখার চেয়ে এটি আপনার ব্যবহারকারীদের (শ্রেণীর ব্যবহারকারীদের) জন্য শ্রেণিকে অনেক বেশি স্বজ্ঞাত করে তুলবে।


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

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

9

ঠিক আছে প্রথমটি হ'ল খুব বেশি তথ্য প্রকাশের সমস্যা। ডিফল্ট হওয়া উচিত private, না public

এর পরে অনেকগুলি গেটার / সেটার আসে। ধরা যাক আমার একটি ডেটা সদস্য আছে। আমি কি সত্যিই একটি অন্য ক্লাসে এই তথ্য প্রয়োজন? ঠিক আছে, একটি গেটর তৈরি করুন। আমি কি সত্যই অবজেক্টের জীবনকালীন সময়ে এই ডেটা পরিবর্তন করতে চাই? তারপরে একটি সেটার তৈরি করুন।

বেশিরভাগ নববী প্রোগ্রামারদের প্রতিটি ডেটা সদস্যের জন্য একটি গেটর / সেটার তৈরির জন্য ডিফল্ট থাকে। এই বিশৃঙ্খলা ইন্টারফেস এবং প্রায়শই খারাপ নকশা পছন্দ হয়।


2
হ্যাঁ, যারা ডেটা ব্যক্তিগত করার জন্য পর্যাপ্তরূপে এনক্যাপসুলেশন বুঝতে পেরেছিলেন এবং তারপরে গেটর এবং সেটারগুলির সাথে এনক্যাপসুলেশনটি ফুঁ দিয়েছিলেন তাদের মধ্যে এটি বেশ জনপ্রিয়।
জিন বুশুয়েভ

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

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

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

2

আমি যখন এই অট্টালিকা অতিক্রম করেছি তখন আমি নীচের পদ্ধতির উপর স্থির হয়েছি:

0) আমি ছোট / মাঝারি আকারের পদ্ধতিগত অ্যাপ্লিকেশন সহ ধীর শুরু করেছি, এবং কোনও মিশন-সমালোচনামূলক কাজ কর্মক্ষেত্রে নেই।

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

2) তারপরে পরবর্তী পদক্ষেপটি ডেরাইভেশনগুলি তৈরি করা হয়েছিল।

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

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


2

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


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

1

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

একটি জিনিস যা আপনি অবশ্যই করতে চান না তা হ'ল এমন একটি ক্ষেত্র রয়েছে যা অবশ্যই মিউটরেটে ধারাবাহিকতার জন্য পরীক্ষা করা উচিত, এবং এটি সর্বজনীনভাবে ছেড়ে যায়।


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

1
হ্যাঁ, আপনি যদি সি ++ এ থাকেন তবে আমি এখানে একমত হয়েছি (যা প্রশ্নটি উল্লেখ করেছে) তবে আমি জাভাতে আমার বেশিরভাগ কাজ করি এবং দুর্ভাগ্যক্রমে আমাদের কোনও কাঠামো নেই।

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

1

কেন্ট বেকের বই বাস্তবায়ন প্যাটার্নস কীভাবে অপব্যবহার না করে, অবজেক্ট-ওরিয়েন্টেড মেকানিজম ব্যবহার করবেন সে সম্পর্কে দুর্দান্ত ভিত্তি ground


1

আমি মিশ্রিত পদ্ধতিগুলির যদি ভাল কারণ থাকে তবে আমি খাঁটি ওও ভাষা হিসাবে সি ++ ব্যবহার করার বিষয়ে চিন্তিত নই। (কিছুটা হলেও তবুও জিওটিও ব্যবহার করার কারণগুলির কথা মনে করিয়ে দিন))

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

ওও দৃষ্টিকোণ থেকে আমার ধারণা সি ++ আসলে কিছুটা কম। উদাহরণস্বরূপ অ-ভার্চুয়াল ফাংশন থাকার ধারণাটি এই ক্ষেত্রে এটির বিরুদ্ধে একটি টিক। আমার সাথে দ্বিমত পোষণকারীদের সাথে আমার যুক্তি রয়েছে, তবে অ-ভার্চুয়াল সদস্যরা যতটা না আমার দৃষ্টিভঙ্গি ঠিক তেমন মানানসই নয়। পলিমॉर्फিজম ওওর মূল উপাদান এবং অ-ভার্চুয়াল ফাংশন সহ ক্লাসগুলি ওও অর্থে বহুকর্মী নয়। সুতরাং ওও ভাষা হিসাবে আমি মনে করি জাভা বা অবজেক্টিভ-সি এর মতো ভাষার তুলনায় সি ++ আসলে বরং দুর্বল।

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

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

ধাতব প্রোগ্রামিং একটি খাঁটি কার্যকরী দৃষ্টান্ত।

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


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

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

1

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

@nightcracker

ঠিক আছে প্রথমটি হ'ল খুব বেশি তথ্য প্রকাশের সমস্যা। ডিফল্টটি ব্যক্তিগত হওয়া উচিত, সর্বজনীন নয়। এর পরে অনেকগুলি গেটার / সেটার আসে।

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

ডমিনিক গুর্তো

এমনকি আপনি বাস্তবায়ন সম্পর্কে চিন্তাভাবনা শুরু করার আগে ইন্টারফেসটি ডিজাইন করুন। চূড়ান্ত ইন্টারফেসটি স্ফটিক না হওয়া পর্যন্ত জিন বুশুয়েভ ইন্টারফেস ডিজাইন এবং বাস্তবায়ন প্রায় একটানা পুনরাবৃত্তির সাথে এক সাথে চলে যায়।

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

wantTheBest

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

এটি অনেক অর্থবহ করে তোলে ... জিনিসগুলিকে কাজ করে রাখার ধারণাটি আমি পছন্দ করেছি তবে ক্লাস সহ কিছু অ-সমালোচক বিষয়গুলি রিফেক্টর করতে পারি।

Jpm

একটি জিনিস যা আপনি অবশ্যই করতে চান না তার মধ্যে একটি ক্ষেত্র রয়েছে যা অবশ্যই মিউটরেটারের মধ্যে ধারাবাহিকতার জন্য পরীক্ষা করা উচিত, এবং এটি সর্বজনীন ছেড়ে দেওয়া উচিত

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

ক্রেজি এডি

কেউ ভাবেন যে ওঁর দৃষ্টান্তটি তাদের আটকে থাকা উচিত এবং অনৈতিকতার স্তরে গোটো স্টেটমেন্টের আদেশে অন্যের সাথে আচরণ করা উচিত এই দৃষ্টান্তটি না দেখে সত্যই অনুপস্থিত। টেমপ্লেটগুলির রূপক ক্ষমতাটিও বেশ চিত্তাকর্ষক।

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

আবার, যারা প্রত্যুত্তর করেছেন তাদের সবাইকে ধন্যবাদ!


0

সবচেয়ে বড় ক্ষতি হ'ল বিশ্বাস এই যে ওওপি রূপালী বুলেট বা "একটি নিখুঁত দৃষ্টান্ত"।

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