"চাকা পুনর্নবীকরণ" এর বিপরীতে অ্যান্টিপ্যাটার্নটির নাম কী? [বন্ধ]


101

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

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

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

এই ধরণের অ্যান্টিপ্যাটার্নের জন্য কি সাধারণ নাম আছে?

(আমি এটি সঠিক বা ভুল হলে কোনও আলোচনা শুরু করার চেষ্টা করছি না, বা এটি যদি সত্যিকারের প্রতিষেধক বা কোনও মতামত ভিত্তিক হয় তবে এটি একটি সহজ সরল ও উদ্দেশ্যমূলক নামকরণ প্রশ্ন))

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


52
নির্ভরতা নরক । এটাই আমি ভাবতে পারি সবচেয়ে কাছের।
মাচাডো

5
@ মাখাদো: ভালো লাগছে, যদিও আমি বলি নির্ভরতা হেল্প এই বিরোধী-প্যাটার্নের প্রাচুর্যের প্রত্যক্ষ ফলাফল; অত্যন্ত জটিল সিস্টেমের ক্ষেত্রে এটি জটিলতার সোজা ফলাফল হিসাবে আসতে পারে।
এসএফ

27
আমি এটিকে ফিচার_ক্রিপ বা স্কোপ_ক্রিপগুলিতে "নির্ভরতা ক্রেপ " এনালগ বলব যেখানে আরও বেশি মূলত অযাচিত বৈশিষ্ট্যগুলি পণ্যটিতে যুক্ত করা হয়।
k3b

21
টলে বাম-প্যাড ফিয়াস্কো কার্যত এই সিনড্রোমের বাস্তব জীবনের উদাহরণ of
এসএফ

13
আমি সুপারিশ করি যে আমরা সম্মিলিতভাবে এটিকে বামপ্যাড হিসাবে উল্লেখ করতে শুরু করব।
রাবারডাক

উত্তর:


9

না There এমন কোনও সাধারণ ব্যবহৃত অ্যান্টি-প্যাটার্ন নাম নেই যা আপনার বর্ণনা দিয়ে থাকে covers


4
এটি উদ্ভূত ধারণা, পরামর্শ এবং আলোচনার সংখ্যার সাথে উপস্থিত হয়, এটি আসলে সঠিক।
এসএফ

3
আমি এটা করতে খারাপ লাগছি।
এসএফ

তাই না? "এখানে কোনও এক্সএক্সএক্স নেই" একটি অত্যন্ত দৃ statement় বক্তব্য এবং এটি প্রমাণ করা খুব কঠিন, বিশেষত মন্তব্যে উল্লেখ করা বেশ কয়েকটি প্রার্থী রয়েছে বলে বিবেচনা করে।
AnoE

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

@ কোনটি আপনি একটি নেতিবাচক, মাননীয় প্রমাণ করতে পারবেন না। সম্ভবত শব্দটি কোথাও বোর্নিওর একটি শিলার আড়ালে লুকিয়ে রয়েছে এবং আমরা এখনও এর উপরে পড়ে নি? জিলিয়ন upvotes সহ 1 এর পরিবর্তে 10 টি উত্তর আমার পক্ষে যথেষ্ট প্রমাণ proof

49

গোল্ডেন হাতুড়ি

সোনার হাতুড়িটি কেবল একটি পছন্দসই কারণ এটি পছন্দসই। এটি নির্ধারিত কাজ সম্পাদন করতে ব্যয়বহুল এবং কার্যকরও নয়।

উত্স: xkcd 801

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


5
সম্মত, এবং আপনি এটা উইকিপিডিয়া থেকে সোর্স পারেন: en.wikipedia.org/wiki/Anti-pattern , en.wikipedia.org/wiki/Law_of_the_instrument
Pierre.Sassoulas

3
আমার যদি রেপ থাকে তবে আমি এটিকে হ্রাস করব। এটি সামগ্রিকভাবে প্রশ্নের উত্তর দেয় না, তবে একটি (সঠিক) শব্দ প্রস্তাব করে যা প্রস্তাবিত পরিস্থিতিতে কেবলমাত্র একটিটির উত্তর দেয়।
ডেভিড

3
বিপরীতে জিজ্ঞাসা করা হয়েছিল। এটি জোর দেওয়ার মতো যে "বেকেরেল" (রেডিয়েশন, ইউনিট এস ^ -1) পরিবর্তে হার্টজ (এইচজেড, ইউনিট s ^ -1) সংগীতের জন্য ব্যবহার করা যেতে পারে কারণ তাদের উভয়টির অর্থ "প্রতি সেকেন্ড" "
থরবজর্ন রাভন অ্যান্ডারসন

@ থরবজরন রাভানঅ্যান্ডারসেন আমি আমার দিনে বেশ কয়েকটি বিপজ্জনক সংগীত শুনেছি।

34

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


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

18

" উদ্ভাবিত এখানে " এই উইকিপিডিয়া পৃষ্ঠায় কিছুটা ভিন্ন পরিস্থিতি বর্ণনা করা হয়েছে তবে খুব একই রকমের ফলাফল-ফলাফল রয়েছে। যখন সমমানের কার্যকারিতাটি সেখানে খুঁজে পাওয়া যায় তখন তাদের নিজস্ব কোড তৈরি করার দিকে একটি দলের বিদ্বেষ বর্ণনা করে।

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


13

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


9

একটি মশা মারতে কামান ব্যবহার করবেন না

কনফুসিয়াস

একেএ ওভারকিল


5
প্রচলিত (যুক্তরাজ্য) ইংরেজি বাক্যাংশটি হল "বাদাম ফাটানোর জন্য স্লেজহ্যামার ব্যবহার করা"।
নিগেল 222


এছাড়াও: "একটি ট্যাঙ্ক সহ হরিণ শিকার"
জিউটার্নগ

"

একটি মাছি মারার জন্য হাতুড়ি ব্যবহার করবেন না
জেফ্মসনিল

8

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

আমরা যদি ইচ্ছা করি তবে আমরা ফুলে যাওয়া নির্ভরতার মতো একটি শব্দ দিয়ে স্পষ্ট করে বলতে পারি ।


5

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

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

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


5

আমি মনে করি না কোনও সঠিক অ্যানালগ রয়েছে, তবে আমি বলব যে ওভারডাইসাইন বা অতিমাত্রায় কাজ খুব কাছাকাছি আসে।

কমপক্ষে, আমি যুক্তি দিয়ে বলব যে আপনি যখন যা বর্ণনা করেছেন তার অনুরূপ কিছু আমি মুখোমুখি হয়েছি যখন এটি সত্যিই ঘটছিল।

একই কার্যকারিতা বাস্তবায়নের জন্য আপনার নিজের কোড লেখার পরিবর্তে একটি লাইব্রেরি ব্যবহার প্রায় ক্ষতিকারক নয়।

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

একটি সাধারণ কাজ করার জন্য একটি গ্রন্থাগারও সহজ হবে। আপনার প্রশ্নের ইঙ্গিতটি মাথা ব্যাথা দেওয়ার সম্ভাবনা নেই।

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

যেমন প্রয়োজনীয় বৈশিষ্ট্যগুলিতে বিল্ড করা, এমন ভবিষ্যতের জন্য প্রস্তুত করুন যা কখনই না আসতে পারে ইত্যাদি etc.

এখানে সমস্যাটি হ'ল প্রতি সেলে চাকা পুনরুদ্ধার করতে ব্যর্থতা নয় ।


4

আপনি যদি চাকাটি পুনরায় উদ্ভাবন না করে থাকেন তবে সম্ভবত কেউ একজন বিক্রেতার বা তৃতীয় পক্ষের সরবরাহিত একটি চাকা বিদ্যমান সেট ব্যবহার করছেন।

এটি যদি কোনও অ্যান্টি-প্যাটার্ন হয় তবে এটিকে সাধারণত বিক্রেতা লক-ইন বলা হয় called


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

@ বেন - ঠিক আছে, আমি আরও ভাল বিক্রেতার লকের বিপরীতে ফ্রেমওয়ার্ককে আবদ্ধ করতে পছন্দ করি। এই প্রশ্নটি মতামত ভিত্তিক এবং এটিই প্রথম জিনিস যা আমার মাথায় popুকে পড়ে।
জন রেয়নর

0

কাজের নিরাপত্তা?
আপনি জিনিসগুলি সিঙ্কে রাখার সমস্ত চেষ্টার কথা উল্লেখ করেছেন ইত্যাদি Some কিছু লোক বরং তাদের নিজের লেখার চেয়ে অন্য লোকের কোড পরিচালনা করে। বিশেষত পরিচালকদের।

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