নুগেট সহ সেরা অনুশীলন: ডিবাগ বা প্রকাশ?


92

বর্তমানে, আমি রিজার্ভ বিল্ডকে নুগেটের সাথে অফিসিয়াল বিল্ডস নুগেট.আরগ-এর জন্য প্যাকেজ করছি, তবে আমি প্রতীক উত্সের জন্য নুগেটের সাথে ডিবাগ বিল্ডগুলি প্যাকেজ করছি।

সম্পাদনা: (নোডা সময় বিকাশের কিছু পক্ষপাত সহ জন স্কিটি)

নুগেট এখন নুগেট গ্যালারী এবং চিহ্নসৈত্রে ..org (বা অনুরূপ সার্ভার) উভয়কে নথিভুক্ত হিসাবে সমর্থন করে । দুর্ভাগ্যক্রমে, এখানে দুটি স্ববিরোধী প্রয়োজনীয়তা রয়েছে:

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

এটি ঠিক আছে, তবে নুগেট (যতদূর আমি বলতে পারি) একই প্যাকেজটিতে রিলিজ এবং ডিবাগ বিল্ড উভয়কেই কার্যকর উপায়ে প্রকাশ করার অনুমতি দেয়।

সুতরাং, পছন্দগুলি হ'ল:

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

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

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

সুতরাং, অন্যান্য বিকল্প আছে যা আমরা বিবেচনা করিনি? কি অন্যান্য বিবেচনা আছে যা ভারসাম্য টিপ? সিম্বলসোর্সে নুগেট প্যাকেজগুলি ঠেকানো কি "নতুন অনুশীলন" সত্যই প্রতিষ্ঠিত হয়নি?


4
আমি একই প্রশ্ন করতে যাচ্ছিলাম - যদিও আমি প্রকাশিত কনফিগারেশনটিকে খুব বেশি প্রতীকী উত্সে চাপ দিচ্ছি, প্রদত্ত যে আমি কেবল nuget pack ... -Symbolউত্পন্ন প্যাকেজগুলি ব্যবহার করছি এবং চাপ দিচ্ছি ...
জন স্কিটি

4
আমার মনে হচ্ছে আমার এই প্রশ্নোত্তর / সেশনটি নুগেটের পিছনে লোকের কাছে জমা দেওয়া উচিত এবং তারা এতে ভারী হতে পারে কিনা তা দেখুন।
gzak

আপনার প্যাকেজে লগিং বেক করুন এবং তারপরে কেবল প্রকাশের বিল্ডটি প্রকাশ করুন। আপনি লগার ইনজেকশনটি মঞ্জুরি দিতে পারবেন যা গ্রাহককে তার পছন্দ অনুযায়ী লগিং সেট আপ করতে দেয়।
CShark

উত্তর:


31

সিম্বলসোর্সের পক্ষে বক্তব্য রেখে আমি বিশ্বাস করি যে সর্বোত্তম অনুশীলন হ'ল:

  1. রিলিজ বাইনারি + সামগ্রী প্যাকেজগুলি কেবল nuget.org এ (বা অন্য কোনও উত্পাদন ফিড) পুশ করুন
  2. ডেভলপমেন্ট ফিডে ডিবাগ বাইনারি + সামগ্রী প্যাকেজগুলি পুশ করুন:
    • প্রতিজ্ঞা
    • myget.org এ
    • প্রাক রিলিজ প্যাকেজ হিসাবে nuget.org এ।
  3. রিলিজ এবং ডিবাগ বাইনারি + সিম্বল প্যাকেজ উভয়ই সিম্বলসোর্স.অর্গ বা অন্য কোনও প্রতীক স্টোরগুলিতে চাপ দিন।

আমরা যখন এটি করছি, এটি একটি সাধারণ ভুল ধারণা যা রিলিজ এবং ডিবাগ তৈরি করে N .সেসার্টস।

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

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


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

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

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

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

আমার কোনও ধারণা নেইssssource.org উপস্থিত রয়েছে। চুলকানি হিসাবে আমার অনেকবার স্ক্র্যাচ করা দরকার ছিল, আমি এটি স্বাগত জানাই।
রিমাস রুসানু

4

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

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

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

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

নিউগেট টিম টানার অনুরোধ গ্রহণ করে। :)


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

4
"তবে আমি কেবলমাত্র পর্যাপ্ত লোককেই এই সম্পর্কে অভিযোগ করতে দেখছি না যে এই মুহুর্তে এটির পক্ষে এটি উপযুক্ত হবে" " সম্ভবত তারা অভিযোগ করছেন না, তবে আপনি যদি ব্যবহারকারীদের একটি নমুনা জিজ্ঞাসা করেন তবে তারা কী ভাবছে, আমি বাজি ধরছি যে আপনি বেশিরভাগ লোকেরা এই নির্দিষ্ট পদক্ষেপে কিছুটা বিভ্রান্তি স্বীকার করবেন (নুগেট.আর এবং আর সিম্বলসোর্সে কী প্রকাশ করবেন? .org)। যদি তারা জিজ্ঞাসা করে যে তারা কীভাবে বাছাই করে শেষ করেছে, আপনি সম্ভবত দেখতে পাবেন যে কোনও একমত সম্মত অনুশীলন নেই, প্রত্যেকে কেবল নিজের কাজটি করে।
gzak

7
আমি এই সম্পর্কে অভিযোগ করতে চাই, আমি কোথায় সাইন আপ করব?
অ্যালেক্স

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

4
আমি একমত, এটি একটি দুর্দান্ত পণ্য বর্ধন হবে।
এইচটিএম

2

ওপির পোস্টের পরে এটি 8 বছর হয়ে গেছে, তাই আজকাল যা ব্যবহার করা হচ্ছে তা দিয়ে আমি এটি একটি ক্র্যাক দেব।

একটি নুগেট প্যাকেজটিতে " প্রবেশের " জন্য দুটি উপায় রয়েছে :

১. পিডিবির বিতরণ

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

এখানে সরকারী নির্দেশাবলী দেওয়া আছে । কেবল এই দুটি লাইন সিএসপোজ ফাইলটিতে যুক্ত করুন:

<PropertyGroup>
  <IncludeSymbols>true</IncludeSymbols>
  <SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>

ভোক্তার পক্ষে, নিশ্চিত করুন যে ডিবাগিংয়ের সময় প্যাকেজ কোডে প্রবেশের অনুমতি দেওয়ার জন্য আপনার আইডিইটি NuGet.org (অথবা অ্যাজুরি ইত্যাদি) সিম্বল সার্ভারের জন্য কনফিগার করা হয়েছে

২. সোর্স লিংক the আসল কোডটি যুক্ত

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

এটি ভিজ্যুয়াল স্টুডিও 15.3+ এবং সমস্ত বড় বিক্রেতারা (এছাড়াও ব্যক্তিগত রেপো সমর্থন করে) দ্বারা সমর্থিত।

এটি সেটআপ করা ( অফিসিয়াল ডকস ) - এর কাছে খুব তুচ্ছ - কিছু ফ্ল্যাগের সাথে প্রজেক্ট ফাইলে একটি ডেভলপমেন্ট নির্ভরতা যুক্ত করুন (আপনার রেপোর ধরণের উপর নির্ভর করে):

<PropertyGroup>
    <PublishRepositoryUrl>true</PublishRepositoryUrl>
    <EmbedUntrackedSources>true</EmbedUntrackedSources>
</PropertyGroup>
<ItemGroup>
  <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>

"আরও ভাল NuGet প্যাকেজ 5 পদক্ষেপ " এই বিষয়ে আরও দেখুন ।


1

একটি প্রতীক প্যাকেজ তৈরি ও প্রকাশের উদাহরণটি ডিবেগ ডিরেক্টরিতে ফাইলগুলি dll এবং pdb ফাইলগুলির উত্স হিসাবে উল্লেখ করে।

প্রতীক প্যাকেজ বিষয়বস্তু উল্লেখ করা হচ্ছে

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

<files>
  <file src="Full\bin\Debug\*.dll" target="lib\net40" /> 
  <file src="Full\bin\Debug\*.pdb" target="lib\net40" /> 
  <file src="Silverlight\bin\Debug\*.dll" target="lib\sl40" /> 
  <file src="Silverlight\bin\Debug\*.pdb" target="lib\sl40" /> 
  <file src="**\*.cs" target="src" />
</files>

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


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

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

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

একটি জিনিস যা আমি ভাবতে চাই তা হ'ল নেট নিজেই: আমার মতে মাইক্রোসফ্ট .NET- র বিল্ড বিলম্ব না করে রিলিজ বিল্ড প্রকাশ করে এবং বলা নিরাপদ বলে মনে করি। একটি রিলিজ বিল্ড মান এবং স্থায়িত্বের একটি নির্দিষ্ট স্তরের বোঝায় তাই ধারণাটি হ'ল জিনিসগুলি নির্ণয়ের জন্য আপনার খুব কমই কোডে প্রবেশ করা উচিত।
gzak

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