"খুব অবজেক্ট ভিত্তিক"


21

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

টিডিডি এখানে খুব বেশি অনুশীলন করা হয় না তবে আমি টেস্টেবল কোড পেতে চাই। স্থিতিশীল ব্যক্তিগত পদ্ধতিতে বড় বড় "গড-ক্লাস" (যা এই দলের পক্ষে আদর্শ বলে মনে হয়) ব্যবসায়িক যুক্তি কবর দেওয়া খুব পরীক্ষামূলক নয়।

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

প্রযুক্তিগত debtণ সম্পর্কে এই প্রশ্নটি আমার প্রশ্নের সাথে সম্পর্কিত। যাইহোক, আমি প্রথমে theণ জোগানো এড়াতে চেষ্টা করছি , অন্য প্রশ্নটি যা বোঝায় তার পরে তা পরিশোধ করার বিপরীতে।


17
আপনার ভূমিকা কি? গ্রান্ট ডেভেলপার? আপনি ভুল করেছেন - আরও ভাল কাজ পান। মুখ্য ডেভেলোপার? আপনি একটি পার্থক্য করতে সক্ষম হতে পারেন ...
ম্যাথু ফ্লিন

2
দুর্বল নকশা এবং যে পরিবর্তন হবে না এমন লোকদের সাথে ডিল করার কারণে তেমন কারিগরি debt

1
আমি প্রযুক্তিগত এবং ব্যবসায়িক যুক্তি সম্পর্কে সচেতন, আমি জিজ্ঞাসা করছি কীভাবে এই জ্ঞানটি আমার সহকর্মীদের কাছে পুরোপুরি পৌঁছে দেওয়া যায়, যারা মনে হয় এ সম্পর্কে অবহেলা বলে মনে হয়। তারা অনেকগুলি ক্লাস দেখে, আমি একটি
টেস্টেবল

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

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

উত্তর:


32

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

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

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

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

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


3
এটি প্রক্রিয়াগত এবং অগোছালো। তবে আমি এমন নতুন কোডের কথা বলছি যা আমি লিখি "খুব অবজেক্ট ওরিয়েন্টেড"
থুনগ্রিল

5
অগোছালো প্রক্রিয়াজাত কোডটি ওও কোড দিয়ে প্রসারিত হওয়া সর্বোপরি কোনও উন্নতি হতে পারে না, কেবল বিভ্রান্তি যুক্ত করে।
ভাইরবল

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

3
@ থুনগ্রিল: কার্ল ডান ধর্মীয় কারণে নয়, ব্যবহারিক কারণে অটল থাকুন। ওওপি অবশ্যই একটি ভাল ধারণা, তবে আমি এটি হাস্যকর চূড়ান্ত দিকে নিয়ে যেতে দেখেছি। ফলাফলটি মোলহিল থেকে পাহাড় তৈরি করছে। 1000 লাইনের কোডগুলিতে যে কাজগুলি করা হতে পারে তার ক্লাসগুলি সহ 10,000 টি কোডের কোড রয়েছে। তারপরে জি, এটি বজায় রাখা শক্ত, এবং অভিনয়টি সফল হয়। (সংগ্রহের ক্লাসগুলি কীভাবে ব্যবহৃত হয় তা বিবেচনা করে না))
মাইক ডুনলাভে

1
আপনি অগত্যা এই ধারণাটি ছেড়ে যাবেন না যে আপনি এই সম্পর্কে মানুষকে বোঝাতে পারেন। এটি শক্ত, তবে এটি করা যেতে পারে - আমি এটি করেছি। যেহেতু এই প্রশ্নটি বন্ধ বলে মনে হচ্ছে, কর্মক্ষেত্র
অ্যামি ব্লাকনশিপ

7

আপনার প্রশ্নটি পড়ে, আমি প্রাগমেটিক প্রোগ্রামার বইটির একটি টিপ মনে পড়ে।

এর একটি টিপস হ'ল Be a Catalyst for Change:

আপনি এমন পরিস্থিতিতে পড়তে পারেন যেখানে আপনি ঠিক কী জানেন এবং এটি কীভাবে করা দরকার তা জানেন। পুরো সিস্টেমটি আপনার চোখের সামনে উপস্থিত হবে - আপনি জানেন যে এটি ঠিক। তবে পুরো বিষয়টি মোকাবেলার জন্য অনুমতি জিজ্ঞাসা করুন এবং আপনাকে বিলম্ব এবং ফাঁকা দৃষ্টিতে দেখা হবে। লোকেরা কমিটি গঠন করবে, বাজেটের অনুমোদনের প্রয়োজন হবে এবং জিনিসগুলি জটিল হয়ে উঠবে। প্রত্যেকে নিজের সম্পদ রক্ষা করবে। কখনও কখনও একে "স্টার্ট আপ ক্লান্তি" বলা হয়।

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

সুতরাং, আমি মনে করি আপনি যদি ওও এবং টিডিডি জ্ঞান নিয়ে কোনও ভাল কাজ শুরু করেন, শীঘ্রই তারা আপনার কাজটি সন্ধান করতে এবং জিজ্ঞাসা করতে শুরু করবে।


হওয়ার চেষ্টা করা হচ্ছে তবে উবার-আর্কিটেক্টের (যিনি কোড করেন না) এর কোনওটিই থাকবে না।
থুনগ্রিল

যত তাড়াতাড়ি তিনি টিডিডি এবং আরও ভাল ওও (নির্ভরযোগ্যতা, উত্পাদনশীলতা, ...) এর সুবিধাগুলি লক্ষ্য করবেন, আপনি আপনার দৃষ্টি আকর্ষণ করবেন!
রডরিগো

3

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

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

"সত্য OO" এ আমি প্রায়শই যা দেখি তা হ'ল উন্নত কৌশলগুলি অতি জটিল পদ্ধতিতে সত্যই সাধারণ সমস্যাগুলি সমাধান করার জন্য ব্যবহৃত হয়।

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

যুদ্ধগুলি একবারে একটি যুদ্ধে জয়ী হয়।


1

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

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


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