ইউনিট পরীক্ষার একটি ব্যক্তিগত শ্রেণি ব্যবহার করে সি ++ তে ব্যক্তিগত পদ্ধতি


15

আমি জানি যে এটি একটি বিতর্কিত অনুশীলন, তবে ধরা যাক এটি আমার পক্ষে সেরা বিকল্প। এটি করার আসল কৌশলটি কী তা নিয়ে আমি ভাবছি। যে পদ্ধতিটি আমি দেখছি তা হ'ল:

1) আমি ক্লাসের যাকে পদ্ধতি পরীক্ষা করতে চাই তার একটি বন্ধু ক্লাস করুন।

2) বন্ধু শ্রেণিতে, একটি সর্বজনীন পদ্ধতি তৈরি করুন যা পরীক্ষিত শ্রেণীর ব্যক্তিগত পদ্ধতি (গুলি) বলে।

3) বন্ধু শ্রেণীর পাবলিক পদ্ধতি পরীক্ষা করুন।

উপরের পদক্ষেপগুলি চিত্রিত করার জন্য এখানে একটি সাধারণ উদাহরণ:

#include <iostream>

class MyClass
{
  friend class MyFriend; // Step 1

  private:
  int plus_two(int a)
  {
    return a + 2;
  }
};

class MyFriend
{
public:
  MyFriend(MyClass *mc_ptr_1)
  {
    MyClass *mc_ptr = mc_ptr_1;
  }

  int plus_two(int a) // Step 2
  {
    return mc_ptr->plus_two(a);
  }
private:
  MyClass *mc_ptr;
};

int main()
{
  MyClass mc;
  MyFriend mf(&mc);
  if (mf.plus_two(3) == 5) // Step 3
    {
      std::cout << "Passed" << std::endl;
    }
  else
    {
      std::cout << "Failed " << std::endl;
    }

  return 0;
}

সম্পাদনা:

আমি দেখতে পাচ্ছি যে উত্তরগুলির একটির পরে আলোচনায় লোকেরা আমার কোড বেস সম্পর্কে ভাবছেন।

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

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


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

4
@ জেতরানা: সঠিক উত্তর হিসাবে কেন লেখেন না?
বার্ট ভ্যান ইনজেন শেেনা

ঠিক আছে. আপনি যেগুলির সম্পর্কে অতি-গর্বিত বোধ করেন এটির মধ্যে এটি নয়, তবে আশা করি এটি সহায়তা করবে।
জে ট্রানা

উত্তর:


23

বন্ধুর বিকল্প (ভাল, একটি অর্থে) যা আমি প্রায়শই ব্যবহার করি তা এমন একটি প্যাটার্ন যা আমি অ্যাক্সেস_বাই হিসাবে জানতে পেরেছি। এটি বেশ সহজ:

class A {
  void priv_method(){};
 public:
  template <class T> struct access_by;
  template <class T> friend struct access_by;
}

এখন, ধরুন বি শ্রেণি A. পরীক্ষা করার সাথে জড়িত আপনি এটি লিখতে পারেন:

template <> struct access_by<B> {
  call_priv_method(A & a) {a.priv_method();}
}

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


তৈরি করার জন্য একটি বৈধ ব্যবহারের কেস সম্পর্কে কৌতূহল friend access_by, প্রথম অ-বন্ধু যথেষ্ট নয় - একটি নেস্টেড স্ট্রাক্ট হওয়ার কারণে এটি এ এর ​​মধ্যে সমস্ত কিছুর অ্যাক্সেস পাবে? যেমন। coliru.stacked-crooked.com/a/663dd17ed2acd7a3
টাঙ্গি

10

যদি এটি পরীক্ষা করা শক্ত হয় তবে এটি খারাপভাবে লেখা আছে

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

আপনি একটি নতুন শ্রেণিতে (বা ক্লাস) পরীক্ষা করতে চান এমন ব্যক্তিগত পদ্ধতিগুলি বের করুন এবং সেগুলি সর্বজনীন করুন। নতুন ক্লাস পরীক্ষা।

কোডটি পরীক্ষা করা আরও সহজ করার পাশাপাশি, এই রিফ্যাক্টরিং কোডটি বোঝা ও বজায় রাখা সহজ করে তুলবে।


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

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

1
@ নীর: তুচ্ছ করুন: এই সমস্ত পদ্ধতির সাথে একটি ক্লাস বের করে সর্বজনীন করুন এবং আপনার বিদ্যমান বর্গকে নতুন শ্রেণীর চারপাশে একটি মুখোমুখি করুন।
কেভিন ক্লাইন 21

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

4

আপনার ব্যক্তিগত পদ্ধতি পরীক্ষা করা উচিত নয়। সময়কাল। আপনার ক্লাসটি ব্যবহার করে ক্লাসগুলি কেবল এটির যে পদ্ধতিগুলি সরবরাহ করে সেগুলি সম্পর্কে যত্নশীল, এটি হুডের নীচে কাজ করার জন্য নয়।

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


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

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

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

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

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

3

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

  • আপনি পরীক্ষিত শ্রেণিতে একটি বন্ধু (বর্গ বা ফাংশন) ঘোষণা যুক্ত করতে পারেন।

  • আপনি পরীক্ষিত কোডটি তৈরি করার #define private publicআগে, আপনার পরীক্ষার ফাইলগুলির শুরুতে যুক্ত করতে পারেন #include। যদি পরীক্ষিত কোডটি ইতিমধ্যে সংকলিত লাইব্রেরি হয় তবে এটি শিরোনামগুলি ইতিমধ্যে সংকলিত বাইনারি কোডের সাথে আর মেলে না (এবং ইউবির কারণ হতে পারে)।

  • আপনি আপনার পরীক্ষিত শ্রেণিতে একটি ম্যাক্রো sertোকাতে এবং পরবর্তী সময়ে সিদ্ধান্ত নিতে পারেন যে সেই ম্যাক্রোর অর্থ কী (পরীক্ষার কোডের জন্য পৃথক সংজ্ঞা সহ)। এটি আপনাকে ইন্টার্নাল পরীক্ষা করার অনুমতি দেবে, তবে এটি তৃতীয় পক্ষের ক্লায়েন্ট কোডটিকে আপনার শ্রেণিতে হ্যাক করার অনুমতি দেবে (আপনি যে ঘোষণায় তাদের নিজস্ব সংজ্ঞা তৈরি করে)।


2

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

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

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


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

0

আপনার বন্ধুদের ব্যবহার বন্ধ করতে আপনি প্রচুর পরিশ্রমের সাথে আপনার কোডটি লিখতে পারেন।

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

এবং হ্যাঁ এর অর্থ হ'ল আপনি ভবিষ্যতে আপনার শিরোনাম পরিবর্তন না করে স্বাক্ষরগুলি পরিবর্তন করতে বা নতুন "বাস্তবায়ন" পদ্ধতি যুক্ত করতে পারেন।

এটি মূল্যবান হওয়া সত্ত্বেও আপনাকে ওজন করতে হবে। আপনার শিরোনামটি কে দেখতে পাবে তার উপর অনেক কিছুই নির্ভর করবে।

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

পরীক্ষা গ্রন্থাগারের লেখকদের কাজ, এটির ব্যবহারকারীরা নয়।

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

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

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