বয়লারপ্লেট জন্য একটি প্রতিরক্ষা?


14

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

যাতে আমি কম বয়লারপ্লেটের পক্ষপাতী হওয়ার জন্য একটি দৃinc় যুক্তি গঠন করতে পারি, কিছু পাল্টা কী কী? অন্য কথায় বয়লারপ্লেটের পক্ষে যুক্তি (যদি থাকে) কী?

(আমি যা বুঝি তা সাধারণত বয়লারপ্লেট দ্বারা বোঝানো হয় তবে জাভাতে আগতরা এবং সেটটারগুলির একটি ভাল উদাহরণ)


7
সদৃশ কোডের বিরুদ্ধে যুক্তি (বয়লারপ্লেটটি অনুলিপি / পেস্ট করা অনুমান): stackoverflow.com/a/2490897/1583
ওডে

1
@ ওদেড: ঠিক আছে। তবে আপনি প্রশ্নটি ভুলভাবে লিখেছেন। :) তিনি বয়লারপ্লেট কোডের জন্য কিছু বলার আছে কিনা তা দেখার চেষ্টা করছেন । আমার ধারণা তিনি অসুবিধাগুলি সম্পর্কে খুব ভালভাবে অবহিত।
স্টিভেন জিউরিস

3
@ স্টিভেন জিউরিস - আমি প্রশ্নটি পুরোপুরি পড়েছি। যে কারণে আমি কোনও উত্তর পোস্ট করিনি। আমি যুক্তির অন্যদিকে যুক্ত করছি adding ঠিক তাই ওপি "পরবর্তী সময়ের জন্য" এটির জন্য আমি যে ঘৃণার বিকাশ ঘটিয়েছি তার অতীতের জন্য একটি তাত্ক্ষণিকভাবে গঠিত, সুচিন্তিত যুক্তি দিয়েছিল;)
ওডে

2
বয়লারপ্লেটটি নান্দনিকভাবে আনন্দদায়ক হতে পারে: এন.ইউইউইকিপিডিয়া.আর
এসকে-যুক্তি

বেশ কয়েকটি ভাল উত্তর এবং মন্তব্য যা একে অপরের পরিপূরক ... কোনটি গ্রহণ করা বাছাই করা কঠিন।
বিমূর্ত

উত্তর:


15

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

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

আপনি বিরক্তিকর, পুনরাবৃত্তিমূলক বয়লারপ্লেটের মতো দেখতে আপনার কাছে যা লিখিত রয়েছে তা এক বছর পরে (বা পাঁচ) পরে আসে এবং আপনার কোড বজায় রাখতে হয় এমন কারও কাছে মূল্যবান প্রসঙ্গ হতে পারে।

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


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

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

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

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

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

7

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

ধরা যাক আপনার কাছে কোডের একটি অংশ রয়েছে যা বলছে

public ForTheBar(Foo foo)
{
    Bar bar = foo.bar();
    return bar.BeFooed();
}

এটি আপনার কোডে প্রায় 2 টি স্থানে ব্যবহৃত হয়।

একদিন কেউ এসে বললেন "ঠিক আছে, কেবল এই পথেই, আমরা চাই যে আপনি এটি ফাঁকি দেওয়ার আগে বারটি গ্রোমিট করুন।"

এবং আপনি "ভাল এটি সহজ।"

public ForTheBar(Foo foo, bool shouldIGrommit)
{
    Bar bar = foo.bar();

    if (shouldIGrommit)
    {
        bar.BeGrommitted();
    }

    return bar.BeFooed();
}

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

সুতরাং আপনি কেবল উপরের পদ্ধতিটি কল করুন।

তবে তারপরে আপনার ব্যবহারকারী বলেছেন "ঠিক আছে, অপেক্ষা করুন, তৃতীয় ক্ষেত্রে, আমরা আপনাকে বেফুয়েড কল করার আগে বার ডুডল দিতে চাই।"

কোনও সমস্যা নেই, আপনি ভাবেন, আমি এটি করতে পারি।

public ForTheBar(Foo foo, bool shouldIGrommit, bool shouldIDoodle)
{
    Bar bar = foo.bar();

    if (shouldIGrommit)
    {
        bar.BeGrommitted();
    }

    if (shouldIDoodle)
    {
        bar.BeDoodled();
    }

    return bar.BeFooed();
}

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

এই সমস্ত বলেছিল, আমি এটির সাথে পাল্টা বলব "এটি কোনও সাধারণ ঘটনা নয়, এবং যখন এটি ঘটে তখন আপনি পুনঃসংশোধক করতে পারেন।"

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

আমি আইওসি পাত্রে সম্পর্কে লোকেদের অনুরূপ বিষয়ে তর্ক করতে দেখেছি।

আমি তাদের সাথে একমত তা বলার অপেক্ষা রাখে না, তবে তা তবে এটি একটি ন্যায্য যুক্তি।


2
আমি আপনার উত্তরের দ্বিতীয় অংশ পছন্দ। ; পি +1
স্টিভেন জিউরিস

শুধু বুঝতে পারছি যে আমার উদাহরণটি আপনার সাথে বেশ অনুরূপ ... অনুমান করুন এমনকি যদি এটি সাধারণ জ্ঞান না হয় তবে এটি বেশ কিছুটা ঘটবে বলে মনে হয় :)
ক্রিটজিক্রাটজি

6

দক্ষতার বিবর্তন

আপনি এটি দিয়ে শুরু করুন:

<p>
    <label for="field">My field</label>
    <input type="text" id="field">
</p>

তারপরে আপনি সেই সমস্ত বিরক্তিকর বয়লারপ্লেট থেকে মুক্তি পেয়ে একটি ফাংশনে রেখে দিন:

  1. createFieldHtml( id, label )

    এই ভাল, আমি নিজেকে অনেক লাইন সংরক্ষণ করছি!

  2. createFieldHtml( id, label, defaultValue )

    হ্যাঁ, আমারও একটি ডিফল্ট মান প্রয়োজন, এটি যুক্ত করা সহজ ছিল।

  3. createFieldHtml( id, label, defaultValue, type )

    শীতল, আমি এখন এটি চেকবক্সগুলির জন্যও ব্যবহার করতে পারি

  4. createFieldHtml( id, label, defaultValue, type, labelFirst )

    ইউএক্স ডিজাইনার জানিয়েছেন লেবেলটি চেকবক্সের পরে থাকতে হবে।

  5. createFieldHtml( id, label, defaultValue, type, labelFirst, isDate )

    এটি যখন প্রয়োজন হয় তখন একটি তারিখ চয়নকারীকে রেন্ডার করে। এইচএম .. প্যারামগুলি কিছুটা হাতছাড়া হয়ে যাচ্ছে

  6. createFieldHtml( id, label, defaultValue, type, labelFirst, isDate, containerCssClasses )

    আমার এই সিএসএস ক্লাস যুক্ত করার দরকার আছে এমন একটি মামলা ছিল

  7. createFieldHtml( id, label, defaultValue, type, labelFirst, isDate, containerCssClasses, fieldCssClasses, disabled, clearAfter, helpText, uploadPath )

    aaaaaaaaaaaaaaaaaaaaa

বয়লারপ্লেট প্রতিরক্ষা মধ্যে

এটি কথায় কড়া বলতে আমার খুব কষ্ট হচ্ছে কারণ এটি সম্প্রতি এমন কিছু যা আমি সম্প্রতি দেখেছি been তাই আমি একটি তালিকা তৈরি করব:

  1. আমার কাছে মনে হচ্ছে ডুপ্লিকেট লাইন থাকার একটি নির্দিষ্ট ভয় রয়েছে যা কিছুটা প্রসারিত। এটি যদি কয়েকটি লাইন হয় তবে এটি কোনও সমস্যা হতে পারে না। কিছু জিনিস সহজাতভাবে "প্রায় পুনরাবৃত্তি" (উপরের উদাহরণের মতো)। আমি দীর্ঘমেয়াদে সেখানে অনুকূলিতকরণের খুব কম সুযোগ দেখতে পাচ্ছি।
  2. মানুষ কোথাও কার্যকারিতা encapsulate করতে ভালবাসেন; আপনি যদি অবজেক্টিভভাবে তাকান এবং মনে হয় এটি কেবল "গণ্ডগোলটি গোপন করছে" - সন্দেহজনক হোন! এটি কিছু ভাল পুরানো বয়লারপ্লেটের জন্য সময় হতে পারে
  3. আপনার যখন এমন একটি ফাংশন থাকে যা আরও বেশি শক্তিশালী হয়ে ওঠে; যে ইনপুট উপর নির্ভর করে বিভিন্ন বাস্তবায়ন পাথ গ্রহণ করে এবং শেষ পর্যন্ত খুব সামান্য কাজ করে - এটি বয়লারপ্লেট সময় হতে পারে!
  4. আপনি যখন বিমূর্ততার অন্য স্তরের উপরে বিমূর্তির একটি স্তর যুক্ত করেন তবে কেবল আপনার কোডটি সংক্ষিপ্ত করতে (অন্তর্নিহিত স্তরটি পরিবর্তিত হতে বোঝানো হয় না) - বয়লারপ্লেট সময়!
  5. আপনি যদি একটি ফাংশন যা অনেক প্যারামিটার আপনি কি সত্যিই লাগে যখন প্রয়োজন হয়তো এটা boilerplate, সময় - নামে পরামিতি আছে।

আমি সম্প্রতি সর্বদা নিজেকে জিজ্ঞাসা করি একটি জিনিস হ'ল:
আমি কি কোনও পরিবর্তন না করেই অন্য কোনও প্রকল্পে অনুলিপি এবং আটকানোতে পারি? যদি হ্যাঁ, এটি ঠিক করা বা একটি লাইব্রেরিতে রাখা ঠিক আছে, যদি না: এটি বয়লারপ্লেট সময়।

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


আপডেট : আমি স্রেফ একটি নিবন্ধটি পেয়েছি যা আমার উদাহরণটিকে একটি আসল নামের উপরে তুলে ধরেছে: "খুব DRY অ্যান্টি-প্যাটার্ন"।

ফাংশনটি আরও পরামিতি পায় এবং বিভিন্ন ক্ষেত্রে এর আচরণ নিয়ন্ত্রণের জন্য ক্রমবর্ধমান জটিল অভ্যন্তরীণ যুক্তি রয়েছে। খুব DRY ফাংশন স্পট করা সহজ। তাদের যদি প্রচুর পরিমাণে জটিল হয় তবে যুক্তি যা ব্যবহারের বিস্তৃত বৈচিত্র্যকে সম্বোধন করার চেষ্টা করে। [...] এছাড়াও, কোডটি ছোট হয় এবং একটি পৃথক কার্য সম্পাদন করে যদি কোড পুনরাবৃত্তি করা সবসময় খারাপ জিনিস হয় না।

এটি একটি সংক্ষিপ্ত এবং আকর্ষণীয় পঠন, আপনি নিবন্ধটি এখানে পাবেন: খুব শুকনো অ্যান্টি-প্যাটার্ন


1
"আপনি যখন বিমূর্ততার অন্য স্তরের উপরে বিমূর্তির একটি স্তর যুক্ত করেন তবে কেবল আপনার কোডকে আরও ছোট করতে" সত্য, পুনরায় ব্যবহারের সম্ভাবনা থাকলে আপনার কেবল বিমূর্ততার স্তর যুক্ত করা উচিত।
স্টিভেন জিউরিস

4
+1 টি। নিজেকে পুনরাবৃত্তি করবেন না, তবে নিজেকে প্রায় পুনরাবৃত্তি এড়াতে বিশ্রী দৈর্ঘ্যে না যান ।
জুলিয়া হ্যাওয়ার্ড

4

আমি বয়লারপ্লেট কোডকে ঘৃণা করি , তবে বয়লারপ্লেট কোডটি সরাতে সক্ষম হওয়ার অর্থ সর্বদা এটি সর্বোত্তম উপায় doesn't

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

সমস্যাটা কি? নতুন জিনিস শিখতে, এবং বিকল্প সমাধানগুলি অনুসন্ধান করার জন্য এটি দুর্দান্ত but তবে এটি সম্ভবত সেরা বাণিজ্যিক সিদ্ধান্ত নয়।

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


তবে এই মুহুর্তে যে ফলাফলটি পেয়েছি তাতে আমি এখনও বেশ খুশি এবং খুশি হয়ে আমার অতিরিক্ত সময় প্রকল্পগুলিতে এটি ব্যবহার করি। :)
স্টিভেন জিউরিস

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

@ ডিএক্সএম যদি আপনি এটি করেন এবং এটি মারাত্মকভাবে ক্র্যাশ হয় তবে আমাকে দোষ দিতে এবং ত্রুটিগুলি পোস্ট করতে ভুলবেন না। ; পি
স্টিভেন জিউরিস

কোড স্নিপেট নির্ভরতা বৈশিষ্ট্যগুলির জন্য আমার পক্ষে বেশ ভালভাবে কাজ করেছিল।
কোডিজম

@Codism: ওয়েল, তারা হয় একটি সমাধান, কিন্তু আমি তুচ্ছ সেগুলিও । :)
স্টিভেন জিউরিস

1

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

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


2
বয়লারপ্লেটের পক্ষে এটি কীভাবে যুক্তিযুক্ত ?
ক্রিস ওয়েসলিং

0

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

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

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

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


-3

বয়লারপ্লেট কোডের সাথে একমাত্র আসল সমস্যাটি হ'ল আপনি যখন এতে কোনও ত্রুটি খুঁজে পান তখন আপনি যে জায়গাটি পুনরায় ব্যবহার করেছিলেন তার চেয়ে আপনি যে জায়গাটি ব্যবহার করেছিলেন তা সর্বত্রই ঠিক করতে হবে ।

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