আমি ইউনো ব্যবহার করে একটি আরডুইনো প্রকল্পে কাজ করছি। প্রকল্পে কোডের একটি উল্লেখযোগ্য পরিমাণ রয়েছে। আমি একটি লাইব্রেরি তৈরি করতে চাই এবং আমি এটি পরে ভাগ করে নিতে পারি। লাইব্রেরি ডিজাইন করার সময় আমার কোন গাইডলাইন অনুসরণ করা উচিত?
আমি ইউনো ব্যবহার করে একটি আরডুইনো প্রকল্পে কাজ করছি। প্রকল্পে কোডের একটি উল্লেখযোগ্য পরিমাণ রয়েছে। আমি একটি লাইব্রেরি তৈরি করতে চাই এবং আমি এটি পরে ভাগ করে নিতে পারি। লাইব্রেরি ডিজাইন করার সময় আমার কোন গাইডলাইন অনুসরণ করা উচিত?
উত্তর:
লাইব্রেরি ডিজাইনের সময় আপনার অনেকগুলি পয়েন্ট মনে রাখা উচিত। আপনি সম্ভবত যেমনটি অন্যের সাথে নিজের কাজ ভাগ করে নেবেন, তেমনিভাবে সামঞ্জস্যপূর্ণ ডিজাইনের ধরণগুলি অনুসরণ করা অত্যন্ত গুরুত্বপূর্ণ। মনে রাখবেন যে অন্যান্য ব্যবহারকারীদের দক্ষতার মাত্রাগুলি বিভিন্ন রকমের হবে, তাই সর্বাধিক সম্ভব সীমাতে লাইব্রেরি ব্যবহারের সহজ নকশা করুন।
আপনার গ্রন্থাগারটি প্রত্যাশা করে এমন একটি বেসিক পিন মানচিত্র সরবরাহ করুন। পিন ম্যাপিং স্থির রাখবেন না তবে ব্যবহারকারীকে সহজেই পরিবর্তন আনতে অনুমতি দিন।
আপনার প্রথম যে জিনিসটি নিশ্চিত করার চেষ্টা করা উচিত তা হ'ল আপনার গ্রন্থাগারটি কাজ করছে। যদি তা না হয় তবে পরিষ্কারভাবে বলুন। আপনি ভাঙা সফ্টওয়্যার নিয়ে কাজ করার চেষ্টা করে আপনার সময় নষ্ট করা শেষ করতে চান না, তাই অন্যকেও এটি করতে দেবেন না।
কোন বোর্ড (গুলি) এর জন্য গ্রন্থাগারটি নকশা করা হয়েছিল, তার উপর এটি পরীক্ষা করা হয়েছিল এবং কোন বোর্ড (গুলি) কাজ করবে বলে আশা করা হচ্ছে তা খুব স্পষ্টভাবে উল্লেখ করুন। এখানে উল্লিখিত প্রতিটি বোর্ডের প্রজন্ম (সংস্করণ) নির্দিষ্ট করুন।
পরবর্তী জিনিসটি হ'ল আপনার স্পষ্টভাবে সংজ্ঞায়িত ইন্টারফেস থাকা উচিত। বিশৃঙ্খল ইন্টারফেস সহ একটি ওয়ার্কিং লাইব্রেরি হতাশাজনক। এটি আপনাকে পরে লাইব্রেরিটি ব্যবহার করতে সহায়তা করবে এবং অন্যান্য ব্যবহারকারীর জন্য জিনিসগুলি আরও সহজ করে তুলবে। এটি মনে রাখা সবচেয়ে গুরুত্বপূর্ণ বিষয়গুলির মধ্যে একটি হওয়া উচিত।
আপনি একটি শীর্ষ-ডাউন বা নীচে আপ পদ্ধতির অনুসরণ করুন না কেন, ইন্টারফেসগুলি সর্বদা আপনার মনের মধ্যে পরিষ্কার হওয়া উচিত। নীচে আপ পদ্ধতির ক্ষেত্রে, এটি হতে পারে এবং কঠোর হতে পারে, তবে এটি এড়ানো উচিত নয়। অন্যথায়, আপনি একটি অত্যধিক জটিল লাইব্রেরি শেষ করবেন যা ব্যবহারযোগ্য নাও হতে পারে।
আপনার যদি এমন কোনও কার্যকারিতা থাকে যা কিছু বিশেষ বোর্ড বৈশিষ্ট্য ব্যবহার করে, তবে এই ফাংশনগুলি সুস্পষ্টভাবে নিশ্চিত করে নিন, রিডমে এবং মন্তব্যেও উল্লেখ করুন।
এমন পরিস্থিতিতে থাকতে পারে যেখানে আপনাকে ব্যস্ত অপেক্ষা করতে হবে। প্রোগ্রামের যুক্তির উপর নির্ভর করে এই ধরনের ফাংশনগুলি সাধারণ নিয়ন্ত্রণ প্রবাহকে আটকাতে পারে এইভাবে একটি জটিল কার্যের মধ্যবর্তী সময়ে সমস্যা সৃষ্টি করে। সম্ভব হলে বিঘ্ন বা অন্যান্য অ্যালগরিদম ব্যবহার করার চেষ্টা করুন। যদি তা না হয় তবে পরিষ্কারভাবে উল্লেখ করুন যে কোনও ফাংশন চিহ্নিত করুন।
আপনার করা প্রতিটি ছোট বড় পরিবর্তন মন্তব্য করেই ভুলবেন না। সমস্ত গুরুত্বপূর্ণ সমালোচনা এবং অন্যদের জন্য ছোটগুলির জন্য দীর্ঘ দীর্ঘ মন্তব্য লিখুন। আপনার ইন্টারফেস, প্রতিটি যুক্তি, এটি কী করে এবং কী ফিরে আসে তা স্পষ্টভাবে বর্ণনা করুন। এটি অনেক অতিরিক্ত কাজ, তবে আপনি এবং অন্য উভয়ের জন্যই এটি সহায়ক be আপনার যদি এমন কোনও ফাংশন থাকে যা বিভিন্ন বোর্ড (গুলি) জুড়ে কাজ না করে তবে এখানে এটি উল্লেখ করুন। যদি এগুলি মধ্যবর্তী ফাংশনগুলি অন্যান্য ফাংশন দ্বারা ব্যবহৃত হয় এবং প্রয়োজনীয় হতে পারে তবে রেডমে উল্লেখ করুন।
নিশ্চিত করুন যে সবকিছু, এমনকি মন্তব্যগুলিও .hএবং .cppফাইলগুলির মধ্যে সামঞ্জস্যপূর্ণ ।
একটি সম্পর্কিত ফাইলের মধ্যে কেবল সম্পর্কিত ফাংশন রাখুন। কয়েকটি ছোট, তবে যুক্তিযুক্তভাবে সামঞ্জস্যপূর্ণ, মডিউলগুলি এতে থাকা সমস্ত কিছু সহ একটি বিশাল ফাইলের চেয়ে ভাল।
লাইব্রেরি, এর ক্ষমতা, যে কোনও সমস্যা বা ত্রুটি এবং মৌলিক ব্যবহারযোগ্যতার বর্ণনা দিয়ে একটি স্পষ্ট রেডমি ফাইল লিখুন। উপরে বর্ণিত প্রতিটি ইন্টারফেসের সংজ্ঞা ও ব্যাখ্যা দেওয়ার জন্য একটি পৃথক ফাইল ব্যবহার করুন।
একবার লাইব্রেরি বড় হয়ে গেলে এটি ডিরেক্টরিতে বিভক্ত হয়। আরডুইনো-আদর্শ ব্যবহার করার সময় এটি সহজেই সম্ভব হয় না । তবে, আপনি যদি এ পর্যন্ত পৌঁছে যান তবে আপনি সম্ভবত উন্নত আরডুইনো ব্যবহারকারী এবং আরও শক্তিশালী বিকাশ সরঞ্জাম ব্যবহার করেন। যদি তা না হয় তবে এই মহাবিশ্ব আপনাকে এটি করতে বলছে।
একটি লাইসেন্স যোগ করতে ভুলবেন না।
গিট বা এসভিএন এর মতো একটি ভিসিএস সরঞ্জাম ব্যবহার করুন। এটি পরিবর্তনগুলি দেখতে, পুরানো সংস্করণগুলিতে ফিরে আসা, স্পট ত্রুটির কারণে কোড তৈরি করা এবং অন্যদের সাথে সহযোগিতা করা আরও সহজ করে তুলবে।
অ্যাশআরজের উত্তরটি খুব ভাল - এতে যুক্ত করার জন্য আমার কাছে মাত্র 2 পয়েন্ট রয়েছে।
পয়েন্ট 1: ডকুমেন্টেশন
অ্যাশআরজে বিস্তারিত রেডমে লেখার সুপারিশ করা হয়েছে। যদিও এটি ভাল অনুশীলন হতে পারে, বৃহত্তর গ্রন্থাগারগুলির সাথে এটি দ্রুত হাত থেকে বেরিয়ে যেতে পারে - প্রকৃতপক্ষে কয়েক হাজার লাইনেও (যা আসলে খুব বেশি নয়), একটি পঠনের প্রায় কোনও লাভ হবে না। আমার প্রস্তাবটি হ'ল আরও এক ধাপ এগিয়ে যাওয়া এবং সি ++ এর জন্য জাভাদোকসের সমতুল্য ব্যবহার করা - যেমন এই উত্তরটি ব্যাখ্যা করে (এটি স্ট্যাক ওভারফ্লোতে রয়েছে) ডকুমেন্ট হ'ল ডকুমেন্টেশনগুলি পরিচালনা করতে এবং হস্তান্তর করার জন্য খুব কার্যকর সরঞ্জাম (কেউই সম্পাদনা করতে চায় না 10 কে লাইন রিডমে ফাইল ...)
পয়েন্ট 2: ডিরেক্টরিগুলি
আবার আশআরজের উত্তরের বিপরীতে, সর্বদা ডিরেক্টরি ব্যবহার করুন। আপনার কাছে কেবলমাত্র 10 টি ফাইল থাকলেও, এমনকি কেবল 7 বা 8 দিয়েই I নথি পত্র. ডিরেক্টরিগুলি কেবল বড় প্রকল্পগুলির জন্য নয় - ছোটগুলি সেগুলিও ব্যবহার করা উচিত। কেবল মনে রাখবেন যে সি ++ (ডি-ফ্যাক্টো আরডুইনো ল্যাঙ্গুয়েজ) এ, লাইব্রেরির ফাইলগুলি অন্তর্ভুক্ত করার সময় ডিরেক্টরিগুলি উপেক্ষা করা হয় - সেগুলি কেবল একটি কোড-পরিচালন সরঞ্জাম হিসাবে উপস্থিত।