কিছুক্ষণ আগে আমি সত্যিই একটি ভাল ব্লগ পড়েছিলাম যা এই সমস্যাটি নিয়ে আলোচনা করেছে (কার্ল বিলেফেল্ড উল্লেখ করেছেন) এটি মূলত যা বলে তা হ'ল ইউআই কিট থ্রেডটিকে নিরাপদ করে চেষ্টা করা খুব বিপজ্জনক, কারণ এটি সম্ভাব্য অচলাবস্থার পরিচয় দেয় এবং এটি কীভাবে নির্ভর করে কাঠামোতে কার্যকর, জাতি শর্ত।
একটি পারফরম্যান্স বিবেচনা আছে। এখন এত বেশি নয়, তবে সুইং যখন প্রথম প্রকাশিত হয়েছিল তখন এটির অভিনয় (খারাপ হওয়া) এর জন্য এটির তীব্র সমালোচনা হয়েছিল, তবে এটি আসলে সুইংয়ের দোষ ছিল না, এটি কীভাবে ব্যবহার করতে হবে তা জনগণের জ্ঞানের অভাব ছিল।
এসডাব্লুটিটি থিম সুরক্ষার ধারণাটিকে ব্যতিক্রম ছুঁড়ে দিয়ে প্রয়োগ করে যদি এটি লঙ্ঘন করে, সুন্দর নয় তবে কমপক্ষে আপনাকে সে সম্পর্কে সচেতন করা হয়েছে।
উদাহরণস্বরূপ, আপনি পেইন্টিংয়ের প্রক্রিয়াটি যদি দেখে থাকেন তবে যে ক্রমে উপাদানগুলি আঁকা হয়েছে তা খুব গুরুত্বপূর্ণ। আপনি চান না যে কোনও উপাদানটির চিত্রকর্মটির পর্দার অন্য কোনও অংশে পার্শ্ব প্রতিক্রিয়া রয়েছে। কল্পনা করুন আপনি যদি কোনও লেবেলের পাঠ্য সম্পত্তি আপডেট করতে পারেন তবে এটি দুটি পৃথক থ্রেড দ্বারা আঁকা হয়েছে, আপনি একটি দূষিত আউটপুট দিয়ে শেষ করতে পারেন। সুতরাং সমস্ত চিত্রকর্ম একত থ্রেডের মধ্যে সম্পন্ন হয় সাধারণত প্রয়োজনীয়তা / অনুরোধের ক্রমের ভিত্তিতে (তবে কখনও কখনও প্রকৃত শারীরিক পেইন্ট চক্রের সংখ্যা হ্রাস করতে সংঘবদ্ধ)
আপনি সুইং থেকে জাভাএফএক্স-তে পরিবর্তনের কথা উল্লেখ করেছেন, তবে আপনার কোনও ইউআই কাঠামো (কেবল পুরু ক্লায়েন্ট নয়, ওয়েবও) নিয়ে এই সমস্যাটি রয়েছে, সুইং কেবল সমস্যাটিকেই হাইলাইট করে বলে মনে হচ্ছে।
আপনি একটি মধ্যবর্তী স্তর (একটি নিয়ামকের একটি নিয়ামক) ডিজাইন করতে পারেন যার কাজটি ইউআইতে কলগুলি সঠিকভাবে সিঙ্ক্রোনাইজ করা হয়েছে তা নিশ্চিত করা। আপনি কীভাবে আপনার ইউআইআই-এর অংশগুলিকে ইউআইআই API এর দৃষ্টিকোণ থেকে ডিজাইন করতে পারেন তা সঠিকভাবে জানা অসম্ভব এবং বেশিরভাগ বিকাশকারীরা অভিযোগ করবেন যে ইউআই এআইপি-তে প্রয়োগ করা কোনও থ্রেড সুরক্ষা বাধা ছিল বা তাদের প্রয়োজনগুলি মেটেনি। আপনার প্রয়োজনের ভিত্তিতে আপনি কীভাবে এই সমস্যাটি সমাধান করতে চান তা সিদ্ধান্ত নেওয়ার অনুমতি দেওয়া আরও ভাল
আপনার বিবেচনা করা উচিত সবচেয়ে বড় সমস্যাগুলির মধ্যে একটি হ'ল জ্ঞাত ইনপুটগুলির উপর ভিত্তি করে ইভেন্টের প্রদত্ত ক্রমকে ন্যায়সঙ্গত করার দক্ষতা। উদাহরণস্বরূপ, যদি ব্যবহারকারী উইন্ডোটিকে পুনরায় আকার দেয়, ইভেন্ট কুইউ মডেল গ্যারান্টি দেয় যে প্রদত্ত ইভেন্টগুলির ক্রম ঘটবে, এটি সহজ মনে হতে পারে তবে যদি সারি ইভেন্টগুলিকে অন্য থ্রেড দ্বারা ট্রিগার করার অনুমতি দেয় তবে আপনি আর আদেশের গ্যারান্টি দিতে পারবেন না যা ঘটনাগুলি ঘটতে পারে (একটি দৌড়ের অবস্থা) এবং হঠাৎ করেই আপনাকে বিভিন্ন রাজ্যের বিষয়ে চিন্তা করতে শুরু করতে হবে এবং অন্য কিছু না হওয়া পর্যন্ত একটি কাজ না করা এবং আপনার চারপাশে রাষ্ট্রীয় পতাকা ভাগাভাগি করতে শুরু করা এবং আপনি স্প্যাগেটি দিয়ে শেষ করতে পারেন।
ঠিক আছে, আপনি কিছুটা সারি রেখে সমস্যার সমাধান করতে পারেন যা ইভেন্টগুলি জারি হওয়ার সময় ভিত্তিক অর্ডার করেছিল, তবে আমাদের ইতিমধ্যে তা কি নেই? তদাতিরিক্ত, আপনি এখনও কোনও গ্যারান্টি দিতে পারেননি যে থ্রেড বি এর থ্রেড এর পরে ইভেন্টগুলি উত্পন্ন করবে
লোকেরা তাদের কোড সম্পর্কে চিন্তাভাবনা করা সম্পর্কে বিরক্ত হওয়ার প্রধান কারণ হ'ল তারা তাদের কোড / ডিজাইন সম্পর্কে চিন্তাভাবনা করে। "কেন এটি সহজ হতে পারে না?" এটি সহজ হতে পারে না, কারণ এটি কোনও সাধারণ সমস্যা নয়।
আমার মনে আছে যখন পিএস 3 প্রকাশিত হয়েছিল এবং সনি সেল প্রসেসরের সাথে কথা বলছিলেন এবং লডিক্সের পৃথক লাইন সম্পাদন, অডিও, ভিডিও, লোড এবং মডেল ডেটা সমাধান করার ক্ষমতা রাখে ability একজন গেম ডেভেলপার জিজ্ঞাসা করেছিলেন, "এগুলি দুর্দান্ত? তবে আপনি কীভাবে স্রোতগুলিকে সমন্বয় করবেন?"
বিকাশকারী যে সমস্যার কথা বলছিলেন তা হ'ল, এক পর্যায়ে all সমস্ত পৃথক স্ট্রিমগুলি আউটপুট দেওয়ার জন্য একক পাইপে সিঙ্ক্রোনাইজ করা দরকার। দরিদ্র উপস্থাপক কেবল সঙ্কল্প করেছিলেন কারণ এটি তাদের পরিচিত সমস্যা ছিল না। স্পষ্টতই, এই সমস্যাটি এখনই সমাধান করার জন্য তাদের কাছে সমাধান রয়েছে, তবে এটি সময়ে মজার।
আধুনিক কম্পিউটারগুলি একই সাথে বিভিন্ন স্থান থেকে প্রচুর ইনপুট নিচ্ছে, সমস্ত ইনপুট প্রক্রিয়াজাতকরণ এবং দূরে ব্যবহারকারীর কাছে সরবরাহ করা দরকার যা অন্যান্য তথ্যের উপস্থাপনে বাধা দেয় না, সুতরাং এটি একটি জটিল সমস্যা, কারণ একটি একক সহজ সমাধান।
এখন, ফ্রেমওয়ার্কগুলি স্যুইচ করার ক্ষমতা থাকা, এটি ডিজাইনের পক্ষে সহজ জিনিস নয়, তবে এক মুহুর্তের জন্য এমভিসি নিন, এমভিসি একাধিক স্তরযুক্ত হতে পারে, এটি হ'ল আপনার একটি এমভিসি থাকতে পারে যা সরাসরি ইউআই কাঠামো পরিচালনার সাথে সম্পর্কিত হয়, আপনি এরপরে, আবারও, এমন একটি উচ্চতর স্তর এমভিসিতে আবৃত হতে পারে যা অন্যান্য (সম্ভাব্য মাল্টি থ্রেডেড) ফ্রেমওয়ার্কগুলির সাথে মিথস্ক্রিয়া নিয়ে কাজ করে, নীচের এমভিসি স্তরটি কীভাবে বিজ্ঞপ্তি / আপডেট হয় তা নির্ধারণ করা এই স্তরের দায়িত্ব হবে।
তারপরে আপনি এই বিভিন্ন স্তর তৈরি করতে ইন্টারফেস ডিজাইনের ধরণ এবং কারখানা বা বিল্ডার নিদর্শনগুলিতে কোডিং ব্যবহার করবেন। এর অর্থ, আপনি মাল্টিথ্রিডেড ফ্রেমওয়ার্কগুলি একটি ধারণা হিসাবে একটি মধ্য স্তর ব্যবহারের মাধ্যমে ইউআই স্তর থেকে ডিকোপলড হয়ে যান।