আইওএস / ওএসএক্স ওপেন সোর্স প্রকল্পগুলির নামকরণের সম্মেলন


12

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

উদাহরণ:

কোথা থেকে আসে? একজন ব্যক্তি কি প্রথমে এটি লিখেছিল এবং তারপরে সবাই অনুসরণ করেছে?

অ্যাপল গাইডলাইনগুলিতে এমনকি আমি এটি সম্পর্কে কিছুই খুঁজে পাইনি । সেই প্রতিমাটি কি কোথাও লেখা আছে?


1
দুর্দান্ত প্রশ্ন, এবং দুর্দান্ত ওপেন সোর্স উদাহরণ! ;-)
লিও নাটান

উত্তর:


16

সি'র মতো অবজেক্টিভ সি এর কোনও নামস্থান নেই। এর অর্থ হ'ল যদি কেউ ইতিমধ্যে কোনও ফাংশন fooবা শ্রেণি সংজ্ঞায়িত করে থাকে তবে Barএটি অবশ্যই বিশ্বব্যাপী অনন্য হতে হবে এবং আপনি এটি সংজ্ঞা দিতে পারবেন না। আপনার কোড থাকলে এবং পরে অন্য একটি লাইব্রেরি যুক্ত করুন এবং হঠাৎ অদ্ভুত জায়গায় জিনিসগুলি ভেঙে যাওয়ার ফলে এটি প্রচুর মাথাব্যাথা তৈরি করতে পারে।

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

কিছু অ্যাপ্লিকেশন জুড়ে অবশ্যই অনন্য হওয়া উচিত

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

পুরো অ্যাপ্লিকেশন জুড়ে ক্লাসের নাম অবশ্যই অনন্য হতে হবে

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

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

...

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

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


NSHipster দ্বারা আরও নাম পড়ার
নাম উদ্দেশ্য-সি নেমস্পেস সংঘর্ষের সমাধানের সবচেয়ে ভাল উপায় কী?
আইওএস অবজেক্ট-সি কোডে কীভাবে একজন নেমস্পেস ব্যবহার করে?


অবজেক্টিভ-সি এর মতো
শোনার জন্য

1
@ ক্রিসক্রাইফাইস এটি সত্যিই দুর্দান্ত লাগবে তবে বুঝতে হবে যে বিষয়টি অবজেক্টিভ সি সি এর উপরে একটি পাতলা স্তর যা সেখানে নাম স্পেসগুলি প্রবর্তন করার চেষ্টা করার কারণে জিনিসগুলি না ভাঙার চেয়ে সম্ভবত শক্ত হতে পারে। উদ্দেশ্য খনন করে কেন অবজেক্টিভ-সি এর নাম স্থান নেই? আমি ঝনঝন বিকাশকারীদের পেয়েছি - উদ্দেশ্য-সিতে নেমস্পেস যুক্ত করছি । মনে রাখবেন, @ব্যবহৃত হয় কারণ এটি সি তে ব্যবহৃত হয় না ... অন্য অপারেটর যুক্ত করার চেষ্টা করা যা অন্য জিনিসগুলিকে ভঙ্গ করে না চ্যালেঞ্জিং।

1
পুনঃটুইট করুন উপসর্গ সংঘর্ষ সবেমাত্র নেমস্পেস সংঘর্ষে পরিণত হয়।
মাইলস রাউট

@ মিশেলটি অবজেক্টিভ সি কিছু সময়ের জন্য সি এর শীর্ষে একটি পাতলা স্তর হয়ে উঠেনি (উদ্দেশ্য সি 2.0)। এখন অ্যাপল মনোযোগ স্থানান্তরিত করেছে সুইফটে, যার মধ্যে আরও আধুনিক বৈশিষ্ট্য রয়েছে যেমন নামের জায়গাগুলি অন্তর্ভুক্ত রয়েছে তবে বর্তমানে উদ্দেশ্য সি এর অন্যান্য বৈশিষ্ট্যগুলি নেই
লিও নাটান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.