প্রোগ্রামিংয়ে কখন ড্যাগ (নির্দেশিত অ্যাসাইক্লিক গ্রাফ) ব্যবহার করবেন?


37

আমি সম্প্রতি ইক্টো নামের একটি কাঠামো পেয়েছি ।

এই কাঠামোটিতে, "প্লাজম" নামে একটি মৌলিক উপাদান যা ইক্টো ডাইরেক্টেড অ্যাসাইক্লিক গ্রাফ I

আমি ভাবছি যে এই প্রক্রিয়াটির সুবিধা কী, এবং অন্যান্য কোন পরিস্থিতিতে আমরা ডিজের ধারণাটি কাজে লাগাতে পারি?


6
বেশিরভাগ সোর্স কন্ট্রোল ম্যানেজমেন্ট সিস্টেমগুলি ডিএজি হিসাবে সংশোধনগুলি প্রয়োগ করে।
ওডেড

1
পরিকল্পনা হ'ল সমস্যাগুলির একটি সম্পূর্ণ শাখা যা ডাগকে প্রচুর পরিমাণে ডিল করে ।
টিসি 1

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

হার্ড লিঙ্ক সহ @JoachimSauer যেমন ফাইল সিস্টেম
জে।

উত্তর:


29

চমৎকার প্রশ্ন।

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

সম্পাদনা:

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

সুসংস্থান:


1
লুপ নেই? আমি ভাবব যে যতক্ষণ একটি লুপ শেষ হবে ততক্ষণ এটি যোগ্যতা অর্জন করা উচিত। এ -> বি -> সি হওয়ার পরিবর্তে এটি এ -> বি -> এ 1 -> বি 1 -> এ 2 -> বি 2 -> সি এক অর্থে চক্রীয় হতে পারে তবে অন্য দিকে নয়। বৃত্তের চেয়ে সর্পিলের মতো।
গ্লেনপিটারসন

@ গ্লেনপিটারসন, হ্যাঁ আপনি ঠিক বলেছেন। আমি আমার উত্তর সম্পাদনা করেছি। মন্তব্যের জন্য ধন্যবাদ। :)
মোঃ মাহবুবুর রহমান

তবুও "স্ট্রেট লাইন" প্রয়োজনীয় মনে করবেন না is ডিএজে থাকা 'জি' এর অর্থ গ্রাফ। নীচে আমার উত্তর দেখুন। দুঃখিত, আমি উত্তর দেওয়ার আগে আপনার যথেষ্ট যত্ন সহকারে পড়িনি, তবে আমি আপনার সম্পূর্ণতা এবং জ্ঞানের সমস্ত স্তরের জন্য আপনার উত্তরটি +1 করেছি।
গ্লেনপিটারসন

@ গ্লেনপিটারসন, ভুলের জন্য দুঃখিত আমি আমার উত্তর আপডেট করেছি। আমি আপনার উত্তরও পছন্দ করি সুতরাং আপনার উত্তরটি +1 করেছেন।
মোঃ মাহবুবুর রহমান

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

12

উত্তরটি হ'ল প্রোগ্রামিংয়ের সাথে এর তেমন কিছু করার নেই। সমস্যা সমাধানের সাথে এটি করতে হবে।

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

এখনও যদি আপনি প্রোগ্রামিংয়ের সাথে কিছু সম্পর্ক চান তবে নীচের বিষয়গুলি বিবেচনা করুন:

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

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

6

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

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

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

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

প্রথমে আমি ভেবেছিলাম যে ফাংশনাল প্রোগ্রামিং কোনও ডিএজি নাও হতে পারে কারণ কখনও কখনও মৃত্যুদণ্ড কার্যকর করার আদেশটি পরিষ্কার হয় না বা এমনকি প্রোগ্রামার দ্বারা চিন্তাও করে না। তবে একটি কার্যকরী প্রোগ্রাম নির্ভরতা নির্ধারণ করে। প্রকৃতপক্ষে, কার্যকরী প্রোগ্রামিংয়ের ঘোষিত প্রকৃতিটি নির্বাহের আদেশ নির্দিষ্ট না করে কেবল নির্ভরতা (a ^ 2 = b ^ 2 + c ^ 2) হিসাবে সংজ্ঞায়িত হিসাবে বিবেচনা করা যেতে পারে ('বি' বা 'সি' প্রথমে স্কোয়ার করা যায় কিনা তা বিবেচ্য নয়) , যতক্ষণ না তারা উভয় একসাথে যুক্ত হওয়ার আগে স্কোয়ার হয়)।

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

দুর্দান্ত প্রশ্ন - পোস্ট করার জন্য ধন্যবাদ!


1
এই অনুজ্ঞাসূচক প্রোগ্রামটি আপনার মতে একটি DAG হল: while (true) { print("hi"); }? হতে পারে আপনি নন-টার্মিনেটিং প্রোগ্রামগুলি বাদ দিতে চান?
আন্দ্রেস এফ

5

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


2

আমি ভাবছি এক্সটোর প্লাজমের সুবিধা কী ...

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

অন্যান্য কোন পরিস্থিতিতে আমরা ডিজের ধারণাটি কাজে লাগাতে পারি?

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

যদিও এটি অনেক দিন হয়ে গেছে ... তবে আমি মনে করি এই উত্তরটি সত্যই আমাকে ইটোর চেতনা বুঝতে সহায়তা করে। এটি উল্লেখ করতে হবে। ধন্যবাদ!
পো-জেন লাই

0

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


-1

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


-2

অন্য একটি উত্তর যুক্ত করা যেমন সিস্টেম তৈরির জন্য কোনও রেফারেন্স দেখা যায় নি makeযা বিল্ডিংয়ের নির্ভরতা জানতে ডিএজি ব্যবহার করে।

আরও বিশদ এখানে


আমি কি কিছু ভুল বলেছিলাম, কেন এটি
নিম্নচালিত

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

ঠিক আছে, আমাকে পরে এটি বিস্তারিতভাবে
জানাতে

ঠিক আছে, পুনরাবৃত্তি না করে কেবল একটি লিঙ্কের সাথে আপডেট হয়েছে যা এটি কীভাবে সরঞ্জামগুলিতে ব্যবহৃত হচ্ছে তার বিবরণ দেয়make
dlmeetei

লিঙ্কগুলিতে বাসি বা ব্যর্থ হওয়ার একটি বাজে অভ্যাস রয়েছে। যদি এটি ঘটে থাকে তবে আপনি ঠিক যেখানেই শুরু করেছেন - ঠিক সেখানেই একটি সংক্ষিপ্ত এক লাইনের উত্তর যা খুব বেশি সহায়ক হয় না। আপনি কি লিঙ্কের বিষয়বস্তু সংক্ষিপ্ত করতে পারেন যাতে এই উত্তরটি নিজেরাই দাঁড়াতে পারে? (লিঙ্কটি রাখুন, কেবল লিঙ্কটি ছাড়াই উত্তরটি ভাল কিনা তা নিশ্চিত করুন)।
ড্যান পিচেলম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.