এত লাইব্রেরির কেন / দুর্বল নথি নেই? [বন্ধ]


14

অনুরূপ শিরাতে কীভাবে ওপেন সোর্স প্রকল্পগুলি তাদের নকশা বা আর্কিটেকচার সম্পর্কে দলিল ছাড়াই সফল হতে পারে? প্রশ্ন, আমি কৌতূহলী: এতগুলি গ্রন্থাগার কেন এত শেষ ব্যবহারকারীর ডকুমেন্টেশনের অভাবে?

আমার মতামতটি হ'ল:

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

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

ওহ, নোট করুন যখন আমি ডকুমেন্টেশন বলি তখন আমার অর্থ আসল ডকুমেন্টেশন। স্যান্ডক্যাসল / জাভাদোক / ডক্সিজেন বয়লারপ্লেট নয়।


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

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

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

উত্তর:


20

আমি মনে করি আপনি বেশিরভাগ নিজের প্রশ্নের উত্তর দিয়েছেন: কারণ বেশিরভাগ ক্ষেত্রে বিকাশকারীরা বিরক্ত করবেন না। স্বেচ্ছাসেবক প্রকল্পগুলিতে সমস্যাটি প্রচলিত রয়েছে।

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

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

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


সুতরাং আপনি যা বলছেন তা হ'ল, বিকাশকারীরা সত্যই চিন্তা করছেন না যে তাদের লাইব্রেরিটি কীভাবে তাদের ব্যতীত অন্য ব্যক্তিরা প্রথম স্থানে ব্যবহার করবেন?
বিলি ওনিল

@ বিলি: প্রায়শই হ্যাঁ - বা কমপক্ষে তারা প্রায়শই এটি কেবল একটি খণ্ডিত ফ্যাশনেই ভাবেন - কেউ কীভাবে কোনও পৃথক ফাংশন ব্যবহার করবেন, পুরো লাইব্রেরিটি ব্যবহারের সামগ্রিক পদ্ধতির নয়।
জেরি কফিন 16'11

9

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


5

আপনি উত্তরটি নিজেই উল্লেখ করেছেন:

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

প্রোগ্রামার হিসাবে, আমরা লেখার কোড উপভোগ করি তবে আমাদের মধ্যে খুব কম লোকই ডকুমেন্টেশন লেখার বিষয়টি উপভোগ করে।

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

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


3

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

আমার মতে, ভাল ডকুমেন্টেশন লেখার ক্ষমতা এটি অন্যতম মূল বৈশিষ্ট্য যা দুর্দান্ত প্রোগ্রামারগুলিকে মধ্যম প্রোগ্রামারগুলির থেকে পৃথক করে।


3

ডকুমেন্টেশন লেখার জন্য যে ব্যক্তি সবচেয়ে উপযুক্ত, তিনিও সেই ব্যক্তি যার মধ্যে এটি করার জন্য সবচেয়ে কম প্রেরণা রয়েছে:

তিনি (বা তিনি) হলেন:

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

আমি ভাবতে পারি না "হুঁ, এর পক্ষে কিছু সঠিক ডকুমেন্টেশন লেখার জন্য আমার কয়েক ঘন্টা ব্যয় করা উচিত" এমন কাউকে । সে কেন করবে?

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

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


1

নথিপত্র? আমাদের কোনও দুর্গন্ধের দলিলের দরকার নেই!

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

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