আমি কীভাবে নিজের তৈরি ওপেন সোর্স প্রকল্পগুলির সনাক্তকারী, প্যাকেজগুলি বা নেমস্পেসগুলিতে নিজের নাম ব্যবহার করা এড়াতে পারি?


15

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

জাভা / ম্যাভেন বিকাশের জন্য আমাকে একটি অনন্য groupId(উদাহরণস্বরূপ "com.mydomain") এবং একটি অনন্য package(ডিরেক্টরি) কাঠামো ব্যবহার করতে হবে, সাধারণত নট বিকাশটি অনন্য groupIdউত্সাহ দেয় namespacesযেখানে আমি জাভা packageধারণার অনুরূপ কনভেনশন ব্যবহার করি । স্বতন্ত্রতা নিশ্চিত করার জন্য, আমি সাধারণত আমার ডোমেন নামগুলির একটি অংশগুলি বিপরীত (যেমন "ca.jessewebb") সহ ব্যবহার করি; আমি বিশ্বাস করি এটি একটি খুব সাধারণ অনুশীলন।

আমি একটি নতুন, ওপেন সোর্স, জাভা / মাভেন প্রকল্প তৈরির প্রাথমিক পর্যায়ে রয়েছি (আসুন একে "নিউপ্রজ" বলি) এবং আমি এটি গিটহাবের উপরে রাখতে চাই। GitHub থেকে আমার ব্যবহারকারী নাম "jessewebb" তাই এই মত একটি URL দেব হল: https://github.com/jessewebb/newproj। আমি "newproj.com" ডোমেন নামটি নিবন্ধিত করতে বিরক্ত করতে চাই না তাই আমি সিদ্ধান্ত নিয়েছি যথাক্রমে groupIdএবং "ca.jessewebb" এবং "ca.jessewebb.newproj" হিসাবে ব্যবহার করব package

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

অন্য উদাহরণের জন্য, আমি কয়েক বছর আগে একটি গুগল কোড প্রকল্প তৈরি করেছি (আসুন একে "ওল্ডপ্রোজ" বলি)। যখন আমি প্রকল্পটি তৈরি করেছি, আমি জানতাম যে আমি এটি গুগল কোডে হোস্ট করতে যাচ্ছি তাই আমি groupId"com.googlecode.oldproj" এর প্যাকেজ নামটি ব্যবহার করি যা গুগল কোড প্রতিটি নতুন প্রকল্প সরবরাহ করে এমন ডিফল্ট ডোমেইনের নামের বিপরীত। এটি একটি অসাধারণ ধারণা হিসাবে পরিণত; এক বছর বা পরে, আমি একটি ভিন্ন রেপো কোড সরানো এবং আমি এই শনাক্তকারী নামান্তর করতে ছিল (ভাল আমি করিনি আছেto but ...)। এই সময়ে, আমি কোনও ডোমেইন নামগুলির মালিক ছিল না এবং আমি "oldproj.com" ডোমেন নামটি কিনে শেষ করে দিয়েছিলাম। আমি এটি পছন্দ করেছি কারণ এটি প্রকল্পটির নিজস্ব পরিচয় দিয়েছে এবং আমি কোডটিতে কোথাও আমার নামটি স্ট্যাম্প করছি না। আমি খুব সহজেই "jessewebb.ca" ডোমেইন নামটি নিবন্ধন করতে পারতাম এবং "ca.jessewebb.oldproj" প্যাকেজের নাম হিসাবে ব্যবহার করতে পারি তবে আমি তা করতে পারি নি কারণ আমার তখনও একই উদ্বেগ ছিল।

সুতরাং আমার প্রশ্ন ...

প্যাকেজ / নেমস্পেসের স্বতন্ত্রতা বজায় রেখে ওপেন সোর্স প্রকল্পগুলি তৈরি করার সময় আমি কীভাবে নিজের (ডোমেন) নামগুলি ব্যবহার করা এড়াতে পারি?

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


2
ওহ, বেশ লম্বা, তবে এখনও একটি ভাল প্রশ্ন!
মার্সেল

1
আপনার প্যাকেজ / নেমস্পেসে কোনও ইউআইডি ব্যবহার করবেন? ;-)
জেরোইন

উত্তর:


5

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

আমি .NET- তে অভ্যস্ত যেখানে এটি বেশ নিখরচায়ভাবে পরিচালনা করা হয়।


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

হ্যাঁ।। নেট প্রোগ্রামাররা এটি করে তবে এটি কোনও ভাল ধারণা নয়। যদি প্রকল্পের নামটি একটি অন্তর্নিহিত শব্দ হয় তবে এটি ঠিক আছে, তবে আমি আশা করি যে প্রতিটি "ডাউনলোডার" বা "ব্রাউজার" প্রকল্প আমি দেখেছি তার জন্য আমার কাছে ডলার ছিল।
রস প্যাটারসন

1
আমি আমার সমস্ত প্রকল্পের জন্য এই কৌশলটি ব্যবহার শুরু করেছি। আমি প্রকল্পগুলির জন্য একটি অনন্য নাম, প্রায় একটি কোড-নাম (পুণ্য ক্ষমা করে) নিয়ে এসেছি এবং এটি আমার প্যাকেজগুলি / নেমস্পেসের জন্য ব্যবহার করি। ডোমেনের নামগুলি নিয়ে চিন্তা করতে বাঁচায়, অন্তত আমি যখন চাই তখন সময় না আসা পর্যন্ত।
জেসি ওয়েব

2

আমি এটি কোথায় দেখেছি তা মনে করতে পারছি না, তবে আমি এটির মতো কাঠামোটি ব্যবহার করার পরামর্শ দিয়ে দেখেছি:

YourIdentifier.YourProduct.YourComponent

আপনারআইডিটিফায়ারটি আপনার নিজের কোনও ডোমেনের মতো, আপনার (মোটামুটি অনন্য) ইন্টারনেট নাম, ইত্যাদি হতে পারে component উপাদানটির নামটি আপনার পণ্যের "কোর" কোডের জন্য রেখে দেওয়া হয়েছে। উদাহরণস্বরূপ, BarelyMVC নামে আমার একটি ছোট ছোট MVC কাঠামো রয়েছে, সুতরাং এতে আমার মতো এই জায়গাগুলি রয়েছে:

Earlz.BarelyMVC
Earlz.BarelyMVC.Authentication
Earlz.BarelyMVC.Caching

ইত্যাদি ইত্যাদি বেশিরভাগ ক্ষেত্রে আপনার অনলাইন নাম অন্যান্য বিকাশকারীদের মধ্যে বিরোধ এড়াতে যথেষ্ট অনন্য

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


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

1

জাভা প্যাকেজের নাম বা .NET নেমস্পেসের ডোমেন নাম থাকতে পারে এমন কোনও নিয়ম নেই। এমনকি তারা অনন্য হতে পারে এমন একটি প্রয়োজনও নেই যদিও এটি অবশ্যই একটি ভাল ধারণা। আমি প্রকৃতপক্ষে মনে করি আপনি সঠিকভাবে ব্যবহার করেছেন com.googlecode.oldprojএবং com.oldprojআমি নতুন ডোমেন নাম প্রচারের চেষ্টা না করা আমি আপনার জুতোতে স্যুইচ করতাম না।


আমি বুঝতে পারি যে আপনার ডোমেন নাম ব্যবহার করার কোনও নিয়ম নেই, তবে আমি মনে করি এটি একটি খুব সাধারণ অনুশীলন, অন্তত জাভা এবং .NET বিশ্বে, কারণ এটি স্বতন্ত্রতা নিশ্চিত করতে সহায়তা করে। এছাড়াও, আপনি বলেছিলেন যে আপনি আমি সঠিকভাবে সঠিক ব্যবহার করেছেন com.googlecode.oldprojবলে মনে করেন, কেন আপনি এটি একটি ভাল ধারণা বলে মনে করেন? পূর্ববর্তী ক্ষেত্রে, আমি ভেবেছিলাম হোস্টিং সরবরাহকারীর সাথে কোডটি বেঁধে দেওয়া মূর্খতা ছিল।
জেসি ওয়েব

1
মুল বক্তব্যটি এটি আপনাকে কোনও হোস্টিং সরবরাহকারীর সাথে সম্পর্কিত করে না, মূল বিষয়টি হ'ল এটি একটি প্রচলিত-অনন্য শনাক্তকারী যা এই প্রকল্পের জন্য অদ্ভুত। প্রযুক্তিগতভাবে যা সব "com.jesseweb.oldproj" হয়। সুতরাং যেহেতু আপনি নিজের নামটি এটির সাথে সংযুক্ত করতে চাননি, এটি একটি ভাল সিদ্ধান্ত ছিল। জাভা প্যাকেজ এবং। নেট নেমস্পেসগুলি এমন কোনও সাইনপোস্ট বলে মনে করা হয় না যা আপনাকে একটি ডাউনলোড সাইট ইত্যাদির দিকে পরিচালিত করে , কেবল একটি সনাক্তকারী যা কনভেনশন অনুসারে অনন্য।
রস প্যাটারসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.