স্ট্রাক্টস এবং নগ্ন ক্ষেত্রগুলি কিছু পরিচালনা না করা API এর সাথে আন্তঃব্যবহারযোগ্যতা সহজ করবে। প্রায়শই আপনি দেখতে পাবেন যে নিম্ন স্তরের এপিআই মানগুলি রেফারেন্সের মাধ্যমে অ্যাক্সেস করতে চায়, যা কার্য সম্পাদনের জন্য ভাল (আমরা যেমন একটি অপ্রয়োজনীয় অনুলিপি এড়াতে পারি)। বৈশিষ্ট্যগুলি ব্যবহার করা এটির জন্য একটি অন্তরায় এবং প্রায়শই বার মোড়কযুক্ত গ্রন্থাগারগুলি সহজেই ব্যবহারের সহজতার জন্য এবং কখনও কখনও সুরক্ষার জন্য অনুলিপি করে।
তার কারণে, আপনি প্রায়শই ভেক্টর এবং ম্যাট্রিক্স ধরণের বৈশিষ্ট্যযুক্ত নয় তবে নগ্ন ক্ষেত্রগুলি সহ আরও ভাল পারফরম্যান্স পাবেন।
সেরা অনুশীলনগুলি টিকা তৈরি করছে না। কিছু কার্গো ধর্মবিশ্বাস সত্ত্বেও, সাধারণভাবে সর্বোত্তম অনুশীলনগুলি একটি ভাল কারণে রয়েছে।
এই ক্ষেত্রে, আমাদের একটি দম্পতি রয়েছে:
একটি সম্পত্তি আপনাকে ক্লায়েন্ট কোডটি পরিবর্তন না করেই বাস্তবায়ন পরিবর্তন করতে দেয় (বাইনারি স্তরে, উত্স স্তরের ক্লায়েন্ট কোডটি পরিবর্তন না করেই কোনও ক্ষেত্রটি কোনও সম্পত্তিতে পরিবর্তন করা সম্ভব, তবে পরিবর্তনের পরে এটি আলাদা কিছুতে সংকলন করবে) । এর অর্থ, শুরু থেকে কোনও সম্পত্তি ব্যবহার করে, আপনার অভ্যন্তরীণভাবে যা করণীয় তা পরিবর্তনের জন্য কোডটি যা আপনার উল্লেখ করে তা পুনরায় সংকলন করতে হবে না।
যদি আপনার ধরণের ক্ষেত্রগুলির সমস্ত সম্ভাব্য মানগুলি বৈধ রাষ্ট্র না হয় তবে আপনি সেগুলি ক্লায়েন্ট কোডে প্রকাশ করতে চাইবেন না যে কোডটি এটি পরিবর্তন করে ify সুতরাং, যদি মানগুলির সংমিশ্রণগুলি অবৈধ হয় তবে আপনি ক্ষেত্রগুলি ব্যক্তিগত (বা অভ্যন্তরীণ) রাখতে চান।
আমি ক্লায়েন্ট কোড বলছে। এর অর্থ কোডস যা আপনাকে কল করে। আপনি যদি কোনও গ্রন্থাগার তৈরি না করে (বা এমনকি লাইব্রেরি তৈরি করছেন তবে জনসাধারণের পরিবর্তে অভ্যন্তরীণ ব্যবহার করছেন), আপনি সাধারণত এটির সাথে এবং কিছু ভাল শৃঙ্খলা থেকে দূরে যেতে পারেন। সেই পরিস্থিতিতে আপনাকে পায়ে গুলি করা থেকে বিরত রাখতে সম্পত্তি ব্যবহারের সর্বোত্তম অনুশীলন। তদ্ব্যতীত, কোথাও কোথাও যুক্তিযুক্ত হওয়া অনেক সহজ, আপনি যদি এমন কোনও জায়গা দেখতে পান যেখানে ক্ষেত্রটি একটি ফাইলে পরিবর্তিত হতে পারে তবে যে কোনও জায়গাতেই এটি পরিবর্তন করা হচ্ছে কিনা তা নিয়ে চিন্তা করার পরিবর্তে। আসলে, আপনি কী ভুল হয়েছে তা নির্ধারণ করার সময় বৈশিষ্ট্যগুলি ব্রেকপয়েন্টগুলি রাখা ভাল put
হ্যাঁ, আন্তঃ শিল্প কী করা হচ্ছে তা দেখছে done তবে, আপনার কি সেরা অনুশীলনের বিরুদ্ধে যাওয়ার প্রেরণা রয়েছে? বা আপনি কেবল সেরা অভ্যাসের বিরুদ্ধে যাচ্ছেন - কোডটি কারণটিকে আরও শক্ত করে তুলছেন - কারণ অন্য কেউ এটি করেছে? আহ, যাইহোক, "অন্যরা এটি করে" আপনি কীভাবে একটি কার্গো কাল্ট শুরু করেন।
তো ... আপনার খেলা কি ধীর গতিতে চলছে? আপনি কী করতে পারেন তা অনুমান করার পরিবর্তে বাধাটি বের করার জন্য সময় ব্যয় করা এবং এটি সমাধান করা ভাল। আপনি আশ্বস্ত করতে পারেন যে সংকলক প্রচুর পরিমাণে অপ্টিমাইজেশন করবে, কারণ, সম্ভবত আপনি ভুল সমস্যার দিকে তাকাচ্ছেন।
ফ্লিপ দিকে, আপনি কী শুরু করবেন তা সিদ্ধান্ত নিচ্ছেন তবে ক্ষেত্র বনাম বৈশিষ্ট্যগুলির মতো ছোট বিবরণ সম্পর্কে চিন্তা করার পরিবর্তে আপনার প্রথমে কোন অ্যালগরিদম এবং ডেটা স্ট্রাকচার সম্পর্কে চিন্তা করা উচিত।
অবশেষে, আপনি কি সেরা অনুশীলনের বিরুদ্ধে গিয়ে কিছু উপার্জন করেন?
আপনার মামলার বিবরণের জন্য (অ্যান্ড্রয়েডের জন্য ityক্য এবং মনো), )ক্য কি রেফারেন্সের দ্বারা মান গ্রহণ করে? যদি এটি না হয় তবে এটি মানগুলি অনুলিপি করবে, সেখানে কোনও কার্য সম্পাদন হবে না।
যদি তা হয়, আপনি যদি কোনও ডেটা এমন কোনও এপিআই-এ পাঠাচ্ছেন যা রেফ নেয়। ফিল্ডটি সর্বজনীন করে তোলা কি অর্থবোধ করে না আপনি টাইপটি সরাসরি API এ কল করতে সক্ষম করতে পারেন?
হ্যাঁ, অবশ্যই, খালি ক্ষেত্রের সাথে স্ট্রাক্ট ব্যবহার করে আপনি করতে পারেন এমন অপ্টিমাইজেশন হতে পারে। উদাহরণস্বরূপ, আপনি পয়েন্টার Span<T>
বা এ জাতীয় দ্বারা তাদের অ্যাক্সেস করতে পারেন । এগুলি মেমোরিতেও কমপ্যাক্ট থাকে, যাতে তাদেরকে নেটওয়ার্কের মাধ্যমে পাঠাতে সিরিয়ালাইজ করা সহজ হয় বা স্থায়ী সঞ্চয়স্থানে রাখা হয় (এবং হ্যাঁ সেগুলি অনুলিপি হয়)।
এখন, আপনি কি সঠিক অ্যালগরিদম এবং কাঠামো বেছে নিয়েছেন, যদি সেগুলি কোনও বাধা হয়ে দাঁড়ায়, তবে আপনি এটি ঠিক করার সর্বোত্তম উপায় কোনটি ... আপনি নগ্ন ক্ষেত্রগুলির সাথে স্ট্রাক্ট হতে পারে এবং নাও তা স্থির করেন। এটি কখন এবং কখন ঘটে তা নিয়ে আপনি উদ্বেগ করতে সক্ষম হবেন। এদিকে আপনি আরও গুরুত্বপূর্ণ বিষয়ে যেমন উদ্বিগ্ন হয়ে উঠতে পারেন যেমন একটি ভাল বা মজাদার গেমটি খেলার যোগ্য।