একটি ব্যক্তিগত পাইথন প্রকল্পকে পুনরায় প্রকাশযোগ্য লাইব্রেরিতে পরিণত করা


28

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

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

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

সেটআপটুল ইত্যাদি ব্যবহার করা শিখতে আমি একবার এটি প্রকাশ করতে চাইার পর্যায়ে পৌঁছানো সম্ভবত এতটা কঠিন নয় - আমার সমস্যাটি জানার ক্ষেত্রে আমি কীভাবে এই পয়েন্টে পৌঁছানোর জন্য কাজ করা উচিত।

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

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

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

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

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

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

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

  • আমাকে কখনও সিস্টেমেটিক টেস্টিং করতে হয়নি, তবে আমি অবশ্যই এই প্রকল্পের জন্য করব, সুতরাং আমার প্রকল্পের জন্য কোন পদ্ধতিটি সঠিক তা জানতে আমি (i) পরীক্ষার বিষয়ে যথেষ্ট শিখতে হবে; (ii) আমার নির্বাচিত পদ্ধতিটির জন্য কী কী সরঞ্জামগুলি উপলভ্য তা শিখুন; (iii) আমার নির্বাচিত সরঞ্জামটি ব্যবহার করতে শিখুন; (iv) আমার প্রকল্পের জন্য পরীক্ষা স্যুট ইত্যাদি বাস্তবায়ন করুন। এটি নিজেই একটি প্রকল্প।

  • আমার পাশাপাশি অন্যান্য জিনিসও থাকতে পারে। উদাহরণস্বরূপ, জোনারশপে একটি সহায়ক লিঙ্ক পোস্ট করেছেন যাতে গিট-ফ্লো, টক্স, ট্র্যাভিসিসিআই, ভার্চুয়ালেনভ এবং কুকি কাটারের উল্লেখ রয়েছে, যার কোনওটিই আমি আগে শুনিনি। (পোস্টটি ২০১৩ সালের, সুতরাং এখনও কতটুকু বর্তমান রয়েছে তা জানতে আমাকেও কিছু কাজ করতে হবে))

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

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

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



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

@ জোনারশপে ধন্যবাদ, সেখানে প্রচুর সুপার দরকারী তথ্য রয়েছে
নাথানিয়েল

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

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

উত্তর:


22

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

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

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

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

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

অতিরিক্ত হিসাবে:

  1. আপনার লাইব্রেরি পাইথন 2 বা 3 বা উভয়ের সাথে কাজ করে কিনা তা পরিষ্কার করুন।

  2. লাইব্রেরি যদি উইন্ডোজে কাজ না করে, তাই বলুন।

  3. নিশ্চিত করুন যে আপনি সরকারী কনভেনশন ব্যবহার করেছেন (চেক করতে pep8 ব্যবহার করুন)। যদি তা না হয় হয় হয় তা পরিষ্কার করে ব্যাখ্যা করুন বা ঠিক করুন।

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


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

3
@ নাথানিয়েল স্পিনিক্স সেট আপ করা কিছুটা জটিল তবে এটি ডি-ফ্যাক্টো স্ট্যান্ডার্ড। ওয়েবে স্পিনক্স ডকুমেন্টেশন হোস্ট করতে আপনি readthedocs.org ব্যবহার করতে পারেন। স্ফিংক্স আপনার লাইব্রেরিতে ফাংশন এবং মডিউলগুলি থেকে ডকাস্ট্রিংগুলি ব্যবহার করতে সক্ষম। বিকল্পভাবে, কেবলমাত্র ডকগুলি নিজেই রিডমে ফাইলটিতে টাইপ করুন, তবে এটি বৃহত্তর প্রকল্পগুলির জন্য অকার্যকর হয়ে পড়ে। আমি যে পাইথন প্রকল্পটি বজায় রেখেছি তাতে স্পিনক্স ডকুমেন্টেশনের জন্য গিথুব পৃষ্ঠাগুলি ব্যবহার করা হয়েছে যার অর্থ আমি এইচটিএমএল ফাইলগুলি প্রতিপন্ন করতে হবে, যদিও আমি সে থেকে সরে যাওয়ার পরিকল্পনা করছি।
আমন

5
How can I tell which one I should invest in learning for my project?- আপনি না। আপনি যুক্তিসঙ্গত বলে মনে করেন এমন একটি নির্বাচন করে কিছুটা সময় ব্যয় করেছেন এবং এটির সাথে রোল করুন। একটি জাভাস্ক্রিপ্ট দেব হিসাবে যেখানে আপনার প্রতিটি সিদ্ধান্তের জন্য 40 টি বিকল্প রয়েছে, আমি প্রতিশ্রুতি দিয়েছি এটিই সঠিক সিদ্ধান্ত :)
aaaaaa

2

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

আপনার গ্রন্থাগারের নির্ভরতাগুলি সনাক্ত করুন।

একটি পরিষ্কার পরিবেশে একটি স্থাপনার চেষ্টা করুন ডককেট ধারক বা ভিএম either আমি এই পদক্ষেপটিকে গুরুত্বপূর্ণ হিসাবে বিবেচনা করি প্রায়শই ব্যক্তিগত পরিবেশ সম্পর্কে যা কিছু সমস্যা সৃষ্টি করে সে সম্পর্কে অনন্য কিছু রয়েছে।

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

আপনি বা আপনার দলটি লাইব্রেরিটি পরীক্ষা ও নথিভুক্ত রাখার প্রতিশ্রুতি রাখতে চান কিনা তা বিবেচনা করুন (ইউনিট টেস্ট এবং সিআই পাইপলাইনগুলি এখানে সমীকরণের অংশ হতে শুরু করেছেন)।


2

সম্ভবত আপনি আপনার ক্ষেত্রে একটি পরিপক্ক ওএসএস প্রকল্প খুঁজে পেতে এবং যে প্রকল্পে আপনার কোড অবদান রাখতে পারেন? কয়েকটি সুবিধা থাকতে পারে যেমন:

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

যদি আপনার পছন্দসই কোনও প্রাসঙ্গিক ওএসএস প্রকল্প থাকে এবং আপনি সম্ভবত ব্যবহার করেন তবে কেন কোনও সমস্যা বা একটি টান অনুরোধ খুলবেন না বা অন্যথায় রক্ষণাবেক্ষণকারীদের সাথে যোগাযোগ করুন? (শুরু করার একটি ভাল উপায় হতে পারে কোনও বিদ্যমান সমস্যা সমাধান করা))


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

2

এটি 2019, আমি সর্বাধিক আধুনিক সরঞ্জাম দিয়ে শুরু করার পরামর্শ দিচ্ছি। আপনার কোনও দরকার নেই setup.py, এটি পাইথন সম্প্রদায়ের লোকেরা মুক্তি পেতে চায় এবং আমি বিশ্বাস করি অবশেষে তারা তা করবে will

কবিতা চেষ্টা করুন , আপনি এটির জন্য আফসোস করবেন না।


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

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

@ নাথানিয়েল পাইথন "প্যাকেজিং" দ্রুত পরিবর্তন হচ্ছে (এবং এ কারণেই অনেক উপায় আছে এবং এটি সর্বোত্তম কী তা খুঁজে পাওয়া শক্ত) তবে পিইপি 517, 518 এর মাধ্যমে অনেক সরঞ্জাম (কবিতার মতো) প্রয়োগ করেছে, শেষ পর্যন্ত আমাদের এমন কিছু আছে যা এত ভয়ানক নয়। নোট করুন যে কবিতা অগত্যা "সেরা" সরঞ্জাম নয়, তবে অন্তত এটি অন্যতম সেরা। Testandcode.com/52 একবার দেখুন , আপনি এই বিষয় সম্পর্কে একটি চমত্কার ধারণা পাবেন।
লাইক

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

2

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

আপনি অবশ্যই কিছু বিষয় বিবেচনা করুন

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

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


2

এগুলি দুর্দান্ত প্রশ্ন।

একটি রিলিজযোগ্য লাইব্রেরির দিকে গুরুত্বপূর্ণ কংক্রিট বর্ধমান পদক্ষেপগুলি সম্পর্কে:

  • প্রকল্পের বাকী অংশ থেকে ফাইলগুলি লাইব্রেরিতে পরিণত হবে Sep
    • লাইব্রেরির নিজস্ব গিট সংগ্রহস্থলের মধ্যে যাওয়া উচিত তবে এটি আপনার বর্তমান সংগ্রহশালার মধ্যে একটি পৃথক শীর্ষ-স্তরের ডিরেক্টরিতে স্থাপন করার জন্য এটি একটি কার্যকর মধ্যবর্তী পদক্ষেপ খুঁজে পেতে পারেন। আপনি যখন এটি একটি পৃথক সংগ্রহস্থল তৈরি করেন, তখন আপনার প্রকল্পের বাকী সংলগ্ন স্থানটি সংরক্ষণ করুন, যা ../libraryআপনি পাইপ প্যাকেজিং এবং ডেভলপমেন্ট মোড পদক্ষেপগুলি না পাওয়া পর্যন্ত এটির মাধ্যমে উল্লেখ করতে পারেন ।
    • প্রকল্পের বাকী থেকে এই লাইব্রেরিতে সমস্ত অ্যাক্সেসগুলি এর সর্বজনীন এপিআইয়ের মধ্য দিয়ে যাওয়া উচিত। আপনি বিরক্ত করার জন্য কিছু আন্তঃনির্ভরতা পেতে পারেন।
  • লাইব্রেরির এপিআই নথির জন্য ডকাস্ট্রিংগুলি ক্রমান্বয়ে লিখুন।
    • শেষ পর্যন্ত ডকাস্ট্রিংগুলি একটি ডকুমেন্টেশন সরঞ্জামে ফিড করবে তবে গুরুত্বপূর্ণ কাজটি এমন লেখাটি লেখা যা এপিআইকে সংক্ষিপ্তভাবে এবং পর্যাপ্তভাবে অন্য ব্যক্তিকে ব্যাখ্যা করে। এটি একবারে একবারের চেয়ে কিছুটা পূরণ করা সহজ এবং রুক্ষ খসড়া লেখার পরে এবং আরও ভাল ব্যাখ্যা এবং উদাহরণগুলি মাথায় এলে এটির পরে ফিরে আসার মাধ্যমে এটি আরও ভাল।
    • আপনি যদি এপিআইর কিছু অংশ নথিভুক্ত করা কঠিন পান, তবে API এর সেই অংশটির উন্নতির কোনও জায়গা আছে কিনা তা জিজ্ঞাসা করুন। এটা সহজ হতে পারে? আরও নিয়মিত? এটা কি খুব সাধারণ? খুব বিশেষায়িত? এটি কি আরও পরিচিত নাম ব্যবহার করতে পারে?
    • ডকাস্ট্রিংগুলি কাঠামোগত মন্তব্যগুলি ব্যবহার করে আর্গুমেন্টের প্রকারগুলি নথিভুক্ত করতে পারে যা সরঞ্জামগুলি চেক করতে পারে। আমি এখনও এটিতে সত্যিকারের ডকুমেন্টেশন খুঁজে পাইনি, তবে পাইচার্ম আইডিই সেই ডকাস্ট্রিংগুলি তৈরিতে সহায়তা করবে এবং পদ্ধতি কলগুলি সম্পাদনা করার সাথে সাথে তাত্ক্ষণিকভাবে যুক্তির প্রকারগুলি পরীক্ষা করবে।
    • যার কথা বলতে গিয়ে পাইকার্ম বিকাশকারীদের সময় বাঁচানোর এবং কোডের মান উন্নত করার জন্য একটি দুর্দান্ত সরঞ্জাম। কোডটি সম্পাদনা করার সময় কোডটি পরীক্ষা করার জন্য এটি "পরিদর্শন" চালাবে, উদাহরণস্বরূপ, এটি যখন প্রযোজ্য প্রকারগুলি পরীক্ষা করতে পারে, নিখোঁজ এবং অব্যবহৃত আমদানিগুলির জন্য পরীক্ষা করা, সদৃশ পদ্ধতি, পিইপি 8 স্টাইলের ভুল ইত্যাদি।
  • ব্যবহার করে ইউনিট পরীক্ষা লিখতে শুরু করুন pytest। রিলিজ দেওয়ার অনেক আগে, ইউনিট পরীক্ষাগুলি কোণার ক্ষেত্রে বাগগুলি খুঁজে পেয়ে এবং কোড পরিবর্তনগুলি ভেঙে দেয় না এমন আত্মবিশ্বাস সরবরাহ করে আপনার নিজস্ব বিকাশে অর্থ প্রদান করবে। আবার আপনি সময়ের সাথে এটি তৈরি করতে পারেন। এটি শুরু করা বেশ সহজ।
  • তারা কীভাবে ফাইল এবং রিলিজগুলি সংগঠিত করে তা দেখতে গিটহাবের বিদ্যমান ওপেন সোর্স লাইব্রেরিগুলি (যা প্রায় একই আকারের) ব্যবহার করুন। তারা কীভাবে বাগ / ইস্যু ট্র্যাকিং করে এবং অনুরোধগুলি টানছে তা দেখুন। যদি আপনার সেখানে অভিজ্ঞতা না থাকে তবে এই বহু-ব্যক্তি প্রকল্প সংগঠন প্রক্রিয়াগুলির সাথে অভিজ্ঞতা পেতে তাদের এক বা একাধিককে অবদান রাখুন। এই প্রক্রিয়াগুলির জন্য গিটহাবের ভাল সরঞ্জাম রয়েছে। এটি README.mdশীর্ষ স্তরের এবং যে কোনও ডিরেক্টরিতে ডকুমেন্টেশন ফাইল এবং লাইসেন্স ফাইল সহ দুর্দান্ত কাজ করে।
  • গ্রন্থাগার, এর এপিআই এবং ডকুমেন্টেশনের বিষয়ে প্রতিক্রিয়া জানাতে কোনও সহযোগীকে তালিকাভুক্ত করার বিষয়টি বিবেচনা করুন।
    • আপনি যখন প্রকাশ করবেন, আপনি ছুটিতে থাকাকালীন বাগগুলি ঠিক করতে এক বা একাধিক সহযোগী রাখতে সহায়তা করবেন, ব্যবহারকারীর প্রশ্নের জবাব দিতে সহায়তা করবেন এবং এদিকে কোড রিভিউ সহ পুলের অনুরোধগুলি শুরু করবেন, লাইব্রেরি-প্রকাশের কাজগুলি প্রকাশ করুন, এবং প্রকল্প পরিচালনা এবং লাইব্রেরি ডিজাইনের সাথে অতিরিক্ত অভিজ্ঞতা আনুন।
  • এখনও অবধি আপনি লিনিয়ার গিট কমিটের ইতিহাস করছেন। অবশেষে নির্দিষ্ট সংশোধন ও পরিবর্তনের জন্য "ইস্যু শাখাগুলি", একটি রিলিজের নিয়ন্ত্রিত রান-আপের জন্য "রিলিজ শাখাগুলি" এবং কোনও একাধিক ব্যক্তি কাজের জন্য "উন্নয়ন শাখা" ব্যবহার করা কার্যকর হবে যা মার্জ করার জন্য প্রস্তুত নয় মাস্টার শাখায়। সুতরাং এই সম্পর্কে শিখতে যাওয়ার পথে দু'একটি দিন আলাদা করে রাখুন এবং আপনাকে এই গিটার দক্ষতার উপর নির্ভর করার আগে তার সাথে অনুশীলন করা শুরু করুন। গিটটি খুব নমনীয় এবং দরকারী তবে ব্যবহারকারী ইন্টারফেসটি পরিপূর্ণ হতে পারে
    • গিট শাখা এবং সেগুলির ব্যবহারগুলি সম্পর্কে পড়ার জন্য একটি জায়গা প্রো গিট বইটিতে । এর অনেক শাখা ব্যবহার করার উপায়, শুধু দিয়ে শুরু "ইস্যু শাখা।"
    • গিটিহাব ডেস্কটপ অ্যাপ্লিকেশন শাখা পরিচালনা করার জন্য একটি দুর্দান্ত সরঞ্জাম। কমিটগুলি করার জন্য এটিও দুর্দান্ত কারণ যেহেতু সমস্ত পরিবর্তনগুলি পর্যালোচনা করার সময় কমিট বার্তাটি লেখা সহজ করে তোলে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.