কোডটির "অনুলিপি এবং পেস্ট" কেন বিপজ্জনক? [বন্ধ]


130

কখনও কখনও, আমার বস আমাদের কাছে অভিযোগ করবেন:

একটি বৈশিষ্ট্য বাস্তবায়নের জন্য আমাদের এত দীর্ঘ সময় প্রয়োজন কেন?

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

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

আপনার নন-টেকনিক্যাল বসকে এটি ব্যাখ্যা করার কোনও ভাল কারণ আছে কি?


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

5
কারণ যতবারই আপনি কোড অনুলিপি এবং পেস্ট করেন, তখন একটি শিশুর সিল মারা যায়।
ডেডলিচাম্বার্স

@ কারসনমায়ার্স কেবলমাত্র যদি উপাদানটি পুনরায় ব্যবহারযোগ্য হয়। এবং এটি বর্তমান প্রসঙ্গে ফিট করার জন্য বোঝানো হয়েছে।
শ্রীকান্ত করুণাঘাট

উত্তর:


171

যদি আপনি নিজের অনুলিপি-পেস্ট কোডটিতে একটি বাগ খুঁজে পান তবে আপনার এটি প্রতিটি জায়গাতেই এটি ঠিক করতে হবে এবং আশা করি আপনি সেগুলি সব মনে রাখতে পারেন (এটি পরিবর্তিত প্রয়োজনীয়তার জন্যও ধারণ করে)।

আপনি যদি এক জায়গায় যুক্তি রাখেন তবে প্রয়োজনে পরিবর্তন করা সহজ হয় (সুতরাং যদি আপনি সিদ্ধান্ত নেন যে অ্যাপ্লিকেশনটি আপডেট করার প্রয়োজন হয় তবে আপনি কেবল এটি একটি জায়গায় করেন)।

আপনার বসকে DRY নীতিটি পড়ুন (নিজেকে পুনরাবৃত্তি করবেন না) about

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

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


41
+1 টি। মুল বক্তব্যটি হ'ল অনুলিপি সমস্যা সমাধানের জন্য অনুলিপি এবং পেস্ট সস্তা। আসল বিষয়টি হ'ল মাঝারি / দীর্ঘ মেয়াদে সদৃশ কোডের তুলনায় ডুপ্লিকেট কোড বজায় রাখতে ব্যয় অনেক বেশি
পাওলো

7
এটি কেবল একটি বাগ সমস্যা নয়; প্রোগ্রাম প্রয়োজনীয়তা পরিবর্তন করতে পারেন। আমি পাঁচটির মধ্যে চারটি স্থান পরিবর্তন করেছি যেখানে আগে কিছু পরিবর্তন করা দরকার।
ডেভিড থর্নলি

1
যদি আপনি চাহিদা অনুসারে অনুলিপি-এন-পেস্ট করতে পারেন এবং নকলগুলি সহজেই কোথায় তা বিমূর্ত করতে বা সেগুলি আপডেট করতে ট্র্যাক করতে পারেন তবে অনুলিপি এবং পেস্ট করা খারাপ জিনিস নয়। আরও তথ্যের জন্য এবং এটি করার চেয়ে সরঞ্জামগুলির জন্য www.semantdesigns.com/Products/Cone এ ক্লোন সনাক্তকরণ সম্পর্কিত আলোচনা দেখুন।
ইরা

4
প্রচুর পরিমাণে ifs, এবং বেশিরভাগ টুলিং এই মুহুর্তে ক্লোন সনাক্তকরণকে সমর্থন করে না।
ওদে

2
একসময় এমন একজন প্রোগ্রামার ছিলেন যিনি ইএসএর পক্ষে কাজ করেন । তিনি আরিয়েন -৫ রকেটের জন্য সফ্টওয়্যারটিতে কাজ করছিলেন এবং তিনি কপি-পেস্ট পদ্ধতি ব্যবহার করতেন। তারপরে ... ঘটে
হাউলেথ

25

আপনি কপি এবং পেস্ট ব্যবহার করে কোডটি অনুলিপি করার চেয়ে একটি লাইব্রেরি তৈরি করে কোড ভাগ করে নেওয়া আরও ভাল ।

আপনি এখনও পুনরায় লেখার (গতিযুক্ত ডিআরওয়াই) এর চেয়ে দ্রুত গতি অর্জন করতে পারবেন তবে কোড বজায় রাখার জন্য কেবলমাত্র একটি জায়গা থাকবে।


1
আমি শুধু কৌতূহলী, আপনি যা করতে হবে তা যদি নকল করে দেওয়া হয় তবে আপনি কোডটি "কাটা" কেন করবেন?
ডিপিপি

গুড পয়েন্ট ডিপিপি সম্পাদিত!
সিলেস্ট করুন

12

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

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


11

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

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

  • "অবশ্যই, আমি ইতিমধ্যে এমন কোড পেয়েছি যা ঠিক এটি করে!"
  • "অপেক্ষা করুন, কোডটির এই পাঁচটি সংস্করণগুলির মধ্যে কোনটি আমি আমার উত্স হিসাবে ব্যবহার করতে চাই?"
  • "হুঁ মম, এই সমস্ত 'ইউজার_ফানস সিটি 23' ফাংশনগুলি কী করে? আমি সেগুলি নথিভুক্ত করি নি? এখন তাদের মধ্যে আমার কী দরকার?"
  • "ওহ, হ্যাঁ, এই কোডটি কোড বেজ ওয়াই ব্যবহার করে Gu অনুমান করুন আমার [একটি চয়ন করতে হবে: আমার নতুন প্রকল্পে কোড বেজ ওয়াইয়ের সমস্ত অনুলিপি করতে / কোড বেজ ওয়াই থেকে আমার যে ফাংশনটি চান সেটি নিষ্ক্রিয় করতে একটি দিন ব্যয় করা / এক সপ্তাহ ব্যয় করতে হবে কোড বেইজ ওয়াই] এর একটি ফাংশন আমি চাই ""
  • "আমি সব কপি করে দিয়েছি, ইয়ে!"
  • "কেন এটা কাজ করছে না?"
  • আপনি যে কোডটি দিয়ে শুরু করতে চান তার পরিবর্তে আপনি যে কোডটি চান তার সাথে অনুরূপ বিদ্যমান কোডটি ডিবাগ করে আপনি ঘন্টা, দিন / সপ্তাহ ব্যয় করেন।

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

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


9

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


9

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


8

DRY নীতি (নিজেকে পুনরাবৃত্তি করবেন না): উইকিপিডিয়াতে DRY

"জ্ঞানের প্রতিটি অংশের অবশ্যই একটি সিস্টেমের মধ্যে একটি একক, দ্ব্যর্থহীন, অনুমোদনমূলক প্রতিনিধিত্ব থাকতে হবে" "

অন্যান্য লিঙ্ক


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

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

7

এটি আমার অ-প্রযুক্তিগত বসকে সবচেয়ে খারাপ ধারণা বলে মনে হচ্ছে আপনার কাজটি মূলত টাইপ করা। তারা মনে করেন আপনি টাইপিং বাদ দিয়ে অনেক সময় সাশ্রয় করতে পারেন।

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

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


4

আপনি কি নিশ্চিত যে আপনার বস DRY নীতি, বাগ এবং অন্যান্য প্রযুক্তি স্টাফ সম্পর্কে শুনতে চান?

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

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


3

কোড অনুলিপি করা এবং আটকানো সাধারণত কাকতালীয়ভাবে প্রোগ্রামিংয়ের দিকে পরিচালিত করে


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

3

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

মধ্যে একই আবেদন , "কপি এবং পেস্ট করুন" খারাপ, কিন্তু যে বিভিন্ন দল বা বিভিন্ন রিলিজ চক্র সঙ্গে "কপি এবং পেস্ট করুন" বিকশিত হয় কোড ঘাঁটি মধ্যে সবচেয়ে ভাল বিকল্প হতে পারে।


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

2

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


2

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

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


1

আপনার বসকে বলুন যে প্রতিটি পরিবর্তনশীল নামের অংশে পুরানো প্রকল্পের নাম অন্তর্ভুক্ত রয়েছে এবং এখন আপনাকে ম্যানুয়ালি এগুলি সব পরিবর্তন করতে হবে। যদি আপনার বস জানেন না (বা জানতে চান) কেন অনুলিপি / পেস্ট খারাপ সে / সে পাশাপাশি বিশ্বাস করতে পারে যে :)


1

হ্যাঁ, সবচেয়ে বড় সমস্যাটি হ'ল এটি কেবল অনুলিপি করুন এবং পেস্ট করুন না - এর অনুলিপিটি পেস্ট করুন তারপর কিছুটা সংশোধন করুন।

তারপরে যখন পেস্ট করা কোনও কোনও ভেরিয়েন্টে সমস্যা হয় তখন তা পরিবর্তিত হয়। তারপরে, আরও একটি রূপ বদলে যায়।

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

এবং আপনি কি এটি জানেন না, এই ধরণের ক্রেপি কোডিং প্রায়শই প্রায় সম্পূর্ণরূপে মন্তব্য থেকে বঞ্চিত হয়।

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

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

আমি সিস্টেমগুলি পছন্দ করি, একগুচ্ছ কোড নয়।


1

আপনার সামনে তাত্ক্ষণিক কার্যকারিতা বিকাশের গতির মধ্যে (বিশেষত যখন অ্যাপ্লিকেশনটি ছোট থাকে) এবং অ্যাপ্লিকেশন বাড়ার সাথে সাথে দীর্ঘমেয়াদী রক্ষণাবেক্ষণ ব্যয়ের মধ্যে বাণিজ্য রয়েছে।

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

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


0

তিনি ঠিক বলেছেন যে দলটি যদি এর আগে একই রকম কার্যকারিতা বাস্তবায়ন করে থাকে তবে দ্বিতীয়বার এটির পুনরাবৃত্তি করা আরও সহজ হবে ।

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


0

আমার সংস্থায়, আমরা সবসময় ক্লাস এবং পদ্ধতি নিয়ে কাজ করি এবং তাদের জন্য প্রযুক্তিগত ডকুমেন্টেশন করি। আমি মনে করি এটির সেরা অনুশীলন যদি আপনি আগে ব্যবহৃত পদ্ধতি শ্রেণীর সন্ধানের জন্য ভাল কীগুলির সাহায্যে নিজের এসএনএন অনুসন্ধান অ্যাপ্লিকেশনগুলি ব্যবহার করতে পারেন :)

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