সিস্টেম ফাংশন অনুকরণের জন্য একটি পদ্ধতি অ্যান্টি-ইমুলেশন ব্যবস্থাগুলিকে বাইপাস করার আহ্বান জানায়। একটি ফাংশন কল ইভেন্ট অনুকরণ একটি মোবাইল ফোন কল এমুলেশন কি

গোল

  • একটি নতুন মাইক্রোপ্রসেসর/মাইক্রোকন্ট্রোলার তৈরি করা হচ্ছে। এই ক্ষেত্রে, এই প্রসেসরের কমান্ডগুলি একটি এমুলেটর (প্রোগ্রাম বা ডিভাইস) ব্যবহার করে কার্যকর করা হয়।
  • অন্য ডিভাইস বা অপারেটিং সিস্টেমের জন্য লিখিত সফ্টওয়্যার চালানোর প্রয়োজন।
  • বিভিন্ন সিস্টেমের জন্য লিখিত পরীক্ষার প্রোগ্রাম।

হার্ডওয়্যার এবং সফ্টওয়্যার অনুকরণ

একটি সফ্টওয়্যার এবং হার্ডওয়্যার কমপ্লেক্সের ক্ষেত্রে, এমুলেটর একটি বিশেষ ইলেকট্রনিক ডিভাইস, একটি বোর্ড আকারে তৈরি.

সফ্টওয়্যার অনুকরণ

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

উচ্চ-স্তরের ভাষা ব্যবহার করার সময়, কখনও কখনও এক্সিকিউটেবল প্রোগ্রামের কার্যকারিতা রক্ষা করার জন্য, এমুলেশনের পরিবর্তে, তারা প্রোগ্রামগুলিকে একটি নতুন পরিবেশে পোর্ট করে। এই ক্ষেত্রে, কোডের হার্ডওয়্যার-নির্ভর বিভাগগুলি পুনরায় লেখা হয়।

এমুলেশনের একটি জনপ্রিয় ব্যবহার হল ব্যক্তিগত কম্পিউটারে স্লট মেশিন বা ভিডিও গেম কনসোলের জন্য লেখা গেম চালানো।

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

বিপরীতে, কিছু অন্যান্য প্ল্যাটফর্ম সরাসরি হার্ডওয়্যার অ্যাক্সেসের মোটামুটি সামান্য ব্যবহার দেখেছে। এই ক্ষেত্রে, ইমুলেটেড সিস্টেমের সিস্টেম কলগুলি চলমান সিস্টেমের কলগুলিতে অনুবাদ করা হয়েছে তা নিশ্চিত করার জন্য সামঞ্জস্যের কিছু স্তর সরবরাহ করা যথেষ্ট।

সাধারণত, একটি এমুলেটর এমুলেটেড কম্পিউটারের বিভিন্ন সাবসিস্টেমের জন্য দায়ী বেশ কয়েকটি মডিউল নিয়ে গঠিত। প্রায়শই, একটি এমুলেটর থাকে:

  • কেন্দ্রীয় প্রসেসরের এমুলেটর বা সিমুলেটর;
  • মেমরি সাবসিস্টেম মডিউল অনুকরণ RAM এবং ROM;
  • বিভিন্ন ইনপুট/আউটপুট ডিভাইস অনুকরণের জন্য মডিউল বা মডিউল।

সিস্টেম বাস সাধারণত অনুকরণ করা হয় না, সরলতা বা কর্মক্ষমতার কারণে, এবং ভার্চুয়াল পেরিফেরাল সরাসরি CPU মডিউল এবং মেমরি মডিউল অ্যাক্সেস করে।

এছাড়াও দেখুন

নোট

সাহিত্য

  • A. Aganichev, D. Panfilov, M. Plavic, O. Polyansky। MOTOROLA থেকে MC68HC11 পরিবারের মাইক্রোকন্ট্রোলারের উপর ভিত্তি করে এমপি সিস্টেম ডিবাগ করার জন্য সফ্টওয়্যার এবং হার্ডওয়্যার কমপ্লেক্স
  • Shagurin I., Brodin V., Kalinin L., Tolstov Yu., Petrov S., Isenin I., Eidelman S., Vanyulin V. Motorola MK-এর উপর ভিত্তি করে কন্ট্রোল সিস্টেম ডিজাইন এবং ডিবাগ করার জন্য টুলস।

লিঙ্ক


উইকিমিডিয়া ফাউন্ডেশন।

2010।:
  • সমার্থক শব্দ
  • আন্দ্রে

জিওফিজিক্স

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

    আর্থিক অভিধানঅনুকরণ - অন্য ডিভাইস বা কম্পিউটারের ডিভাইসগুলির মাধ্যমে একটি ডিভাইসের কার্যকারিতার অনুকরণ, যেখানে অনুকরণকারী ডিভাইস একই ডেটা উপলব্ধি করে, একই প্রোগ্রাম চালায় এবং একই ফলাফল অর্জন করে ... ...

    প্রযুক্তিগত অনুবাদকের গাইডঅনুকরণ - [ইংরেজি] অনুকরণ প্রতিযোগিতা, প্রতিদ্বন্দ্বিতা] প্রতিদ্বন্দ্বিতা, প্রতিযোগিতা, কাউকে ছাড়িয়ে যাওয়ার ইচ্ছা। বিদেশী শব্দের অভিধান। কমলেভ এনজি, 2006 ...

    আর্থিক অভিধানরাশিয়ান ভাষার বিদেশী শব্দের অভিধান - বিশেষ্য, প্রতিশব্দ সংখ্যা: 3 প্রতিযোগিতা (8) অনুকরণ (25) প্রতিদ্বন্দ্বিতা (21) ...

    আর্থিক অভিধানসমার্থক শব্দের অভিধান - এবং, চ. অনুকরণ চ. অনুকরণ দেখুন...

    আর্থিক অভিধানরাশিয়ান ভাষার গ্যালিসিজমের ঐতিহাসিক অভিধান

    অন্যান্য অভিধানে "ইমুলেশন" কী তা দেখুন:- 53. ইমুলেশন ইমুলেশন অন্য ডিভাইস বা কম্পিউটারের ডিভাইসের মাধ্যমে একটি ডিভাইসের কার্যকারিতার অনুকরণ, যেখানে সিমুলেটিং ডিভাইস একই ডেটা উপলব্ধি করে, একই প্রোগ্রাম চালায় এবং একই অর্জন করে... ... আদর্শিক এবং প্রযুক্তিগত ডকুমেন্টেশনের শর্তাবলীর অভিধান-রেফারেন্স বই

    আর্থিক অভিধান- এবং। কিছুতে একে অপরকে ছাড়িয়ে যাওয়ার ইচ্ছা; প্রতিদ্বন্দ্বিতা ইফ্রেমের ব্যাখ্যামূলক অভিধান। টি.এফ. এফ্রেমোভা। 2000... এফ্রেমোভা দ্বারা রাশিয়ান ভাষার আধুনিক ব্যাখ্যামূলক অভিধান

    আর্থিক অভিধান- অনুকরণ, এবং... রাশিয়ান বানান অভিধান

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

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

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

  1. মৃত্যুদন্ডের ফলাফল
  2. আর্গুমেন্ট পাস
  3. কলের প্রসঙ্গ (কল করার সময় এটি কী হয়)
  4. হ্যান্ডলার তৈরির পর ফাংশন কলের সংখ্যা
(এই তালিকাটি হ্যান্ডলারের কাছে প্রেরিত আর্গুমেন্টের সাথে সম্পূর্ণভাবে মিলে যায়)

addCallListener = function(func, callback)( var callNumber = 0; return function())( var args = .slice.call(arguments); var ফলাফল; চেষ্টা করুন ( ফলাফল = func.apply(this, arguments); callNumber++; ) ক্যাচ (ই) ( কলব্যাক (ই, আর্গস, এই, কল নম্বর); ই ফেলুন; ) কলব্যাক (ফলাফল, আর্গস, এই, কল নম্বর) )

খুব সহজ এবং সংক্ষিপ্ত, তাই না?

তারপরে, আমরা নিম্নরূপ কিছু ফাংশন পুনরায় সংজ্ঞায়িত করি:

SomeFunct = addCallListener(someFunct, function(ফলাফল, args, self, callNumber)( //Do Something)); // অথবা Constructor.prototype.method = addCallListener(Constructor.prototype.method, ফাংশন(ফলাফল, args, self, callNumber)( //Do Something));

স্পষ্টতই, এটি কোডের অংশে "দৃশ্যমান" হওয়া উচিত যেখানে এটি ঘটে।

কিছু উদাহরণ
উদাহরণগুলি চালানোর জন্য, আপনার অবশ্যই একটি ওপেন কনসোল থাকতে হবে (ক্রোমে, এটিকে Ctrl+Shift+i বলুন)।

সমালোচনা এবং সংযোজনের জন্য javascript.ru ফোরাম থেকে কমরেডদের ধন্যবাদ।

ইউপিডি
আমি ফাংশনটি সামান্য প্রসারিত করেছি: এখন একটি কলব্যাকের পরিবর্তে, একটি বস্তু দ্বিতীয় আর্গুমেন্ট হিসাবে পাস করা হয়েছে

  1. আগে (ফাংশন চালানোর আগে বলা হয়)
  2. সাফল্য (ফাংশন সফলভাবে সম্পন্ন হলে বলা হয়)
  3. ত্রুটি (যদি একটি ত্রুটি ঘটেছে)
  4. পরে (যে কোনও ক্ষেত্রেই বলা হয়, সাফল্য নির্বিশেষে)
প্রতিটি হ্যান্ডলার একটি বস্তু পাস করা হয়
  1. স্ব (প্রসঙ্গ)
  2. নাম (ফাংশনের নাম)
  3. অবস্থা ("ত্রুটি" বা "সফল")
  4. সফলতার নম্বর (সফল কলের সংখ্যা)
  5. errorNumber (ত্রুটি সহ কলের সংখ্যা)
  6. ফলাফল (ফলাফল, যদি থাকে)
  7. ত্রুটি (ত্রুটি, যদি থাকে)
উপরন্তু, addCallListener ফাংশনটি এখন ফাংশন কনস্ট্রাক্টর অবজেক্টের অংশ, উইন্ডোতে আঘাত করা বা প্রক্রিয়া এড়াতে।

আপনি এখানে কাঁটাচামচ এবং পরীক্ষা করতে পারেন।


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

কথা বলছি সহজ ভাষায়, এমুলেটর- এটি আমাদের ফোনের ইন্টারফেসের মতোই, শুধুমাত্র কম্পিউটারে প্রদর্শিত হয়৷ প্রোগ্রামটি আপনার ফোনে ডাউনলোড না করেই চেক করা সম্ভব করে তোলে। উপরন্তু, এটি আপনাকে সংস্করণ 1.1 থেকে শুরু করে swf দেখতে দেয়। এবং উচ্চতর, যা Nokia S40 ThemeStudio_2.2 (S40 3য় সংস্করণ) থিম তৈরির জন্য প্রোগ্রাম নিজেই দেখতে পায় না।

এমুলেটরটি আপনার কম্পিউটারে সম্পূর্ণরূপে কাজ করার জন্য, আপনাকে jre-1_5_0_16-windows-i586-p প্রোগ্রামটি ডাউনলোড করতে হবে, যা অবস্থিত।

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

এমুলেটরে আপনার প্রয়োজনীয় ডিজাইন থিম লোড করার জন্য, প্রোগ্রামের প্রধান প্যানেলে ট্যাবে ক্লিক করুন ফাইলএবং ড্রপ-ডাউন মেনু থেকে ট্যাবটি নির্বাচন করুন খোলা .

দ্রষ্টব্য. ভুলে যাবেন না যে এমুলেটর সঠিকভাবে কাজ করার জন্য, নোকিয়ার থিমের নাম অবশ্যই ল্যাটিন বা সংখ্যায় নির্দিষ্ট করা উচিত।

এমুলেটরটি forum.nokia-এ পাওয়া যাবে, যেখানে আপনাকে শুধুমাত্র নির্বাচন করতে হবে প্রয়োজনীয় সংস্করণ. উদাহরণস্বরূপ, নতুন ফোনের জন্য নকিয়াসিরিজ 40 5ম সংস্করণ SDK (47MB) নির্বাচন করুন।

দ্রষ্টব্য: অতিরিক্ত উপাদান ডাউনলোড করার আগে, আপনার S40 প্ল্যাটফর্মের কোন সংস্করণ তৈরি করা হয়েছে তা পরীক্ষা করে দেখুন। নকিয়া ফোন.

একটি প্রোগ্রাম নিবন্ধন একটি প্রোগ্রাম নিবন্ধন হিসাবে একই Nokia S40 ThemeStudio_2.2(S40 3য় সংস্করণ)। আপনি নিবন্ধে এটি কীভাবে করা হয় তা পড়তে পারেন।

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

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

আমি ফোনের চেহারা পছন্দ করি। আড়ম্বরপূর্ণ, ঝরঝরে, পাতলা. খুব ভালো প্লাস্টিক। ফোনের আকার তুলনামূলকভাবে বড়, তবে এটি আপনার পকেটে ফিট করে। ফোনের স্ক্রিন বড়, রং বিরক্তিকর নয়, শেডগুলো নরম এবং চোখের কাছে আনন্দদায়ক। বোতামগুলি আরামদায়ক, এছাড়াও সময়ের সাথে সাথে সেগুলি ফুরিয়ে যাবে না, তবে সেগুলি ফুলে যাওয়ার সম্ভাবনা রয়েছে (আমার কাছে ইতিমধ্যে একই রকম "সলিড" কীবোর্ড সহ একটি ফোন ছিল, এবং এটি নিয়মিত ব্যবহার থেকে সবসময় ফোলা ছিল, আমি আশা করি যে এই ফোনে ঘটবে না)। ফোনের পলিফোনি পরিষ্কার, কিন্তু তুলনামূলকভাবে শান্ত। রাস্তায় এমনকি কখনও কখনও বাড়িতে, আমি তাকে শুনতে পাই না এবং সবসময় কল মিস করি। এটি "নেটিভ" সংকেত এবং ডাউনলোড করা সঙ্গীত উভয় ক্ষেত্রেই প্রযোজ্য৷ এটা বিরক্তিকর. কিন্তু গান শোনার জন্য, উদাহরণস্বরূপ, স্পিকার আদর্শ। মাঝে মাঝে বাসায় রেডিও শুনি স্পিকারফোন- একটি ভাল টেপ রেকর্ডার মত শোনাচ্ছে. আমি সত্যিই ফোনে মেনু পছন্দ করি, এটি সুবিধাজনক, বিভিন্ন অ্যাপ্লিকেশন উপলব্ধ আছে। ফোন বইটি দুর্দান্ত! এখানে আপনার প্রথম এবং শেষ নামের উভয়েরই একটি গণনা রয়েছে৷ আপনি একটি পরিচিতিতে সংখ্যার গুচ্ছ যোগ করতে পারেন, অনেকগুলি বিকল্প। কিন্তু কোন প্রধান জিনিস নেই, আমি কি মনে করি প্রতিটি ফোনে থাকা উচিত - একটি কালো তালিকা। কষ্টটা আরো বাড়লো এই যে আমার মোবাইল অপারেটরএকটি নম্বর ব্লকিং পরিষেবা প্রদান করে না। প্রস্তাবিত হিসাবে এটি চেষ্টা জ্ঞানী ব্যক্তিসংশ্লিষ্ট অ্যাপ্লিকেশন খুঁজুন - কিন্তু নিরর্থক. তাই আমাকে আমার নম্বর পরিবর্তন করতে হয়েছিল এবং তাকে চেনেন এমন লোকেদের পরিপ্রেক্ষিতে সতর্ক থাকতে হয়েছিল।

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

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

সামগ্রিকভাবে, আমি হতাশ। আমি আরো ভালো আশা করেছিলাম। আমি নকশা পছন্দ করি, অন্য সবকিছু তাই-তাই. আমি সময়ের সাথে সাথে আরেকটি কিনব। আমি ফোনটিকে গড়ে তিন পয়েন্টে রেট করি, কিন্তু আমি এটি কেনার জন্য সুপারিশ করি: মূল্য-মানের অনুপাত যথেষ্ট পর্যাপ্ত।

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

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

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

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

  1. মৃত্যুদন্ডের ফলাফল
  2. আর্গুমেন্ট পাস
  3. কলের প্রসঙ্গ (কল করার সময় এটি কী হয়)
  4. হ্যান্ডলার তৈরির পর ফাংশন কলের সংখ্যা
(এই তালিকাটি হ্যান্ডলারের কাছে প্রেরিত আর্গুমেন্টের সাথে সম্পূর্ণভাবে মিলে যায়)

addCallListener = function(func, callback)( var callNumber = 0; return function())( var args = .slice.call(arguments); var ফলাফল; চেষ্টা করুন ( ফলাফল = func.apply(this, arguments); callNumber++; ) ক্যাচ (ই) ( কলব্যাক (ই, আর্গস, এই, কল নম্বর); ই ফেলুন; ) কলব্যাক (ফলাফল, আর্গস, এই, কল নম্বর) )

খুব সহজ এবং সংক্ষিপ্ত, তাই না?

তারপরে, আমরা নিম্নরূপ কিছু ফাংশন পুনরায় সংজ্ঞায়িত করি:

SomeFunct = addCallListener(someFunct, function(ফলাফল, args, self, callNumber)( //Do Something)); // অথবা Constructor.prototype.method = addCallListener(Constructor.prototype.method, ফাংশন(ফলাফল, args, self, callNumber)( //Do Something));

স্পষ্টতই, এটি কোডের অংশে "দৃশ্যমান" হওয়া উচিত যেখানে এটি ঘটে।

কিছু উদাহরণ
উদাহরণগুলি চালানোর জন্য, আপনার অবশ্যই একটি ওপেন কনসোল থাকতে হবে (ক্রোমে, এটিকে Ctrl+Shift+i বলুন)।

সমালোচনা এবং সংযোজনের জন্য javascript.ru ফোরাম থেকে কমরেডদের ধন্যবাদ।

ইউপিডি
আমি ফাংশনটি সামান্য প্রসারিত করেছি: এখন একটি কলব্যাকের পরিবর্তে, একটি বস্তু দ্বিতীয় আর্গুমেন্ট হিসাবে পাস করা হয়েছে

  1. আগে (ফাংশন চালানোর আগে বলা হয়)
  2. সাফল্য (ফাংশন সফলভাবে সম্পন্ন হলে বলা হয়)
  3. ত্রুটি (যদি একটি ত্রুটি ঘটেছে)
  4. পরে (যে কোনও ক্ষেত্রেই বলা হয়, সাফল্য নির্বিশেষে)
প্রতিটি হ্যান্ডলার একটি বস্তু পাস করা হয়
  1. স্ব (প্রসঙ্গ)
  2. নাম (ফাংশনের নাম)
  3. অবস্থা ("ত্রুটি" বা "সফল")
  4. সফলতার নম্বর (সফল কলের সংখ্যা)
  5. errorNumber (ত্রুটি সহ কলের সংখ্যা)
  6. ফলাফল (ফলাফল, যদি থাকে)
  7. ত্রুটি (ত্রুটি, যদি থাকে)
উপরন্তু, addCallListener ফাংশনটি এখন ফাংশন কনস্ট্রাক্টর অবজেক্টের অংশ, উইন্ডোতে আঘাত করা বা প্রক্রিয়া এড়াতে।

আপনি এখানে কাঁটাচামচ এবং পরীক্ষা করতে পারেন।

পর্যালোচনা