আমার কোডটি ওপেনসোর্সিং এবং এটি গিটহাবের উপরে রাখার জন্য কীভাবে প্রস্তুত হব?


9

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

আমি গিটহাবে সমস্ত পোস্ট করছি যাতে লোকেরা এটি টুইট করতে পারে এবং আশা করি এটি আরও ভাল করে তুলতে পারে।

আমি অনুমান করছি যে আমি যা জিজ্ঞাসা করছি তা হল, আমার কোডটি যথাযথভাবে ডকুমেন্টেড এবং অন্য লোকেরা ব্যবহার করার জন্য যথাযথভাবে শব্দযুক্ত তা নিশ্চিত করার সর্বোত্তম উপায় কী হবে?

আমি জানি আপনার সর্বদা সবকিছুর মন্তব্য করা উচিত এবং আমি প্রতিটি পদ্ধতির জন্য @params বৈশিষ্ট্যটি যুক্ত করতে যাচ্ছি, তবে সাধারণভাবে অন্য কোনও টিপস রয়েছে?


উত্তর:


12
  • ভান্ডারটির মূলটিতে একটি README.txt ফাইল রয়েছে যা লোকেরা কীভাবে এটি তৈরি করতে হয় তার নির্দেশাবলীর দিকে নির্দেশ করে তা নিশ্চিত করুন। নির্দেশাবলী সেই ফাইলে থাকতে পারে, বা সেগুলি একটি পৃথক ফাইল বা উইকি পৃষ্ঠায় থাকতে পারে।
  • আদর্শভাবে, এটি তৈরি করুন যাতে আপনি একটি একক কমান্ড দিয়ে কোডটি সম্পূর্ণরূপে তৈরি এবং পরীক্ষা করতে পারেন। একগুচ্ছ ম্যানুয়াল পদক্ষেপের প্রয়োজন নেই।
  • আপনার কোডটির পরীক্ষা রয়েছে কিনা তা নিশ্চিত করুন। এটি অন্যান্য বিকাশকারীদের জন্য আপনার কোডটি কীভাবে ব্যবহার করা হয় তা দেখার জন্য একটি সুবিধাজনক জায়গা সরবরাহ করে এবং এটি আপনার কোড সংশোধনকারীদের জন্য সুরক্ষা জাল সরবরাহ করে। জেনে আমি আপনার কোড সম্পাদনা করতে পারি এবং তারপরে আমি কোনও কিছু ভেঙে ফেলেছি কিনা তা স্যুট চালাতে পারি।
  • সাধারণ কোডিং মানগুলি অনুসরণ করুন বা আপনি যেগুলি ব্যবহার করেন তা প্রকাশ করুন।
  • যদি আপনার কোড OO ব্যবহার করে তবে নিশ্চিত হয়ে নিন যে কমপক্ষে সমস্ত পাবলিক পদ্ধতি এবং বৈশিষ্ট্যে পর্যাপ্ত ডকুমেন্টেশন রয়েছে
  • আপনার কোডটি কী লাইসেন্স ব্যবহার করে তা তা পরিষ্কার হয়ে গেছে তা নিশ্চিত করুন। সাধারণত এটির অর্থ একটি LICENSE.txt ফাইল অন্তর্ভুক্ত করা বা আপনার নির্দিষ্ট লাইসেন্সের জন্য প্রয়োজনীয় যেকোন প্রক্রিয়া অনুসরণ করুন। এছাড়াও, লাইসেন্স সম্পর্কে সচেতন পছন্দ করুন make কেবল জিপিএল ব্যবহার করবেন না কারণ এগুলি আপনি জানেন। তেমনি, আপনি কেবল বিএসডি বা এমআইটি বা অ্যাপাচি ব্যবহার করবেন না যদি আপনি এতটা পরিচিত হন ... তবে এইগুলি নিয়ে একটি ঘন্টা ব্যয় করুন যাতে আপনি কমপক্ষে জিপিএল এবং নন-জিপিএল লাইসেন্সগুলির মধ্যে মৌলিক পার্থক্য বুঝতে পারবেন understand
  • কোড থেকে সমস্ত সংবেদনশীল তথ্য, যেমন হার্ড-কোডড ব্যবহারকারীর নাম, পাসওয়ার্ড, ইমেল ঠিকানা, আইপি ঠিকানা, এপিআই কী ইত্যাদি ইত্যাদি সরিয়ে ফেলুন (পরামর্শের জন্য হাকান ডেরিয়ালকে ধন্যবাদ)

সদুপদেশ. এছাড়াও যোগ করার মতো আরও একটি জিনিস: পাসওয়ার্ড / এপিআই কীগুলির মতো ব্যক্তিগত তথ্য সরিয়ে ফেলুন।
হাকান ডেরিয়াল

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

3

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

উত্স কোড ডকুমেন্টেশন সহ কোনও প্রকল্পে কাজ করার চেষ্টা করা সর্বদা হতাশার।


1

আমি অনুমান করছি যে আমি যা জিজ্ঞাসা করছি তা হল, আমার কোডটি যথাযথভাবে ডকুমেন্টেড এবং অন্য লোকেরা ব্যবহার করার জন্য যথাযথভাবে শব্দযুক্ত তা নিশ্চিত করার সর্বোত্তম উপায় কী হবে?

ওপেন সোর্স হিসাবে, সবার গুরুত্বপূর্ণ মন্তব্যগুলি হ'ল কপিরাইট এবং লাইসেন্স চুক্তির মন্তব্য agreement প্রতিটি ফাইলের শুরুতে একটি দীর্ঘ দীর্ঘ মন্তব্যের পরিবর্তে, আপনি একটি সংক্ষিপ্ত এবং মিষ্টি একটি ব্যবহার করতে চাইতে পারেন যা সংক্ষিপ্তভাবে কপিরাইট নির্দিষ্ট করে এবং পাঠককে মূল ডিরেক্টরিতে লাইসেন্স.txt এ রেফার করে।

আমি জানি আপনার সর্বদা সবকিছুর মন্তব্য করা উচিত এবং আমি প্রতিটি পদ্ধতির জন্য @params বৈশিষ্ট্যটি যুক্ত করতে যাচ্ছি, তবে সাধারণভাবে অন্য কোনও টিপস রয়েছে?

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

সংস্করণ এ:

class Foo {
private:
   SomeType some_name; //!< State machine state

public:
   ...

   /**
    * Get the some_name data member.
    * @return Value of the some_name data member.
    */
   SomeType get_some_name () const { return some_name; }

   ...
};

সংস্করণ বি:

/**
 * A big long comment that describes the class. This class header comment is very
 * important, but also is the most overlooked. The class is not self-documenting.
 * Why is that class here? Your comments inside the class will say what individual parts
 * do, but not what the class as a whole does. For a class, the whole is, or should be,
 * greater than the parts. Do not forget to write this very important comment.
 */
class Foo {
private:

   /**
    * A big long comment that describes the variable. Just because the variable is
    * private doesn't mean you don't have to describe it. You might have getters and
    * setters for the variable, for example.
    */
   SomeType some_name;

public:
   ...

   // Getters and setters
   ...

   // Getter for some_name. Note that there is no setter.
   SomeType get_some_name () const { return some_name; }

   ...

};

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

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

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

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