ওয়েবসাইট পারফরম্যান্স বাড়াতে এবং সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতা প্রদানের জন্য React কনকারেন্ট রেন্ডারিং এবং গুণমান অভিযোজন কৌশলগুলি অন্বেষণ করুন। বিশ্বব্যাপী দর্শকদের জন্য পারফরম্যান্স-ভিত্তিক রেন্ডারিং কৌশলগুলি শিখুন।
React কনকারেন্ট রেন্ডারিং: গুণমান অভিযোজন সহ কর্মক্ষমতা অপটিমাইজ করা
আজকের দ্রুতগতির ডিজিটাল ল্যান্ডস্কেপে, ব্যতিক্রমী ব্যবহারকারীর অভিজ্ঞতা প্রদান করা অত্যন্ত গুরুত্বপূর্ণ। ওয়েবসাইট পারফরম্যান্স এটি অর্জনে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, যা সরাসরি ব্যবহারকারীর ব্যস্ততা, রূপান্তর হার এবং সামগ্রিক সন্তুষ্টির উপর প্রভাব ফেলে। React, ব্যবহারকারী ইন্টারফেস তৈরির জন্য একটি জনপ্রিয় জাভাস্ক্রিপ্ট লাইব্রেরি, কনকারেন্ট রেন্ডারিং এবং গুণমান অভিযোজন সহ কর্মক্ষমতা অপটিমাইজ করার জন্য শক্তিশালী সরঞ্জাম সরবরাহ করে, যা দুটি প্রধান কৌশল।
কনকারেন্ট রেন্ডারিং বোঝা
React-এ ঐতিহ্যবাহী রেন্ডারিং সিঙ্ক্রোনাস, যার মানে হল ব্রাউজারকে ব্যবহারকারীর ইনপুটের প্রতিক্রিয়া জানানোর আগে একটি বৃহৎ উপাদান রেন্ডারিং সম্পূর্ণ করতে হবে। এর ফলে বিশেষ করে জটিল অ্যাপ্লিকেশনগুলির সাথে দুর্বল ব্যবহারকারীর অভিজ্ঞতা হতে পারে। React 18-এ প্রবর্তিত কনকারেন্ট রেন্ডারিং, React-কে একাধিক কাজ একই সাথে করার অনুমতি দিয়ে এই সীমাবদ্ধতা দূর করে।
কনকারেন্ট রেন্ডারিং-এর মূল ধারণা
- Interruptible রেন্ডারিং: React অগ্রাধিকারের ভিত্তিতে রেন্ডারিং কাজগুলি থামাতে, পুনরায় শুরু করতে বা এমনকি বাতিল করতে পারে। এটি ব্যবহারকারীর মিথস্ক্রিয়াকে অগ্রাধিকার দিতে এবং একটি প্রতিক্রিয়াশীল অভিজ্ঞতা নিশ্চিত করতে দেয়।
- অগ্রাধিকার: React আপডেটগুলিকে অগ্রাধিকার দিতে হিউরিস্টিক ব্যবহার করে। উদাহরণস্বরূপ, টাইপ করা বা ক্লিক করার মতো সরাসরি ব্যবহারকারীর মিথস্ক্রিয়াগুলিকে কম গুরুত্বপূর্ণ ব্যাকগ্রাউন্ড আপডেটের চেয়ে বেশি অগ্রাধিকার দেওয়া হয়।
- টাইম স্লাইসিং: বৃহৎ রেন্ডারিং কাজগুলিকে ছোট ছোট অংশে ভাগ করা হয়, যা ব্রাউজারকে এর মধ্যে অন্যান্য ইভেন্টগুলি প্রক্রিয়া করার অনুমতি দেয়। এটি দীর্ঘ রেন্ডারিং অপারেশনের সময় UI-কে প্রতিক্রিয়াশীল হওয়া থেকে বাধা দেয়।
কনকারেন্ট রেন্ডারিং-এর সুবিধা
- উন্নত প্রতিক্রিয়াশীলতা: ব্যবহারকারীরা জটিল উপাদান এবং ঘন ঘন আপডেটের সাথেও একটি মসৃণ এবং আরও তরল UI অনুভব করেন।
- উন্নত ব্যবহারকারীর অভিজ্ঞতা: ব্যবহারকারীর মিথস্ক্রিয়াকে অগ্রাধিকার দেওয়া আরও আকর্ষক এবং সন্তোষজনক অভিজ্ঞতার দিকে পরিচালিত করে।
- নিম্ন-মানের ডিভাইসে ভালো পারফরম্যান্স: টাইম স্লাইসিং React-কে সীমিত প্রক্রিয়াকরণ ক্ষমতা সম্পন্ন ডিভাইসগুলিতেও দক্ষতার সাথে রেন্ডার করতে দেয়।
গুণমান অভিযোজন: ডিভাইসের ক্ষমতা অনুযায়ী রেন্ডারিং তৈরি করা
গুণমান অভিযোজন হল এমন একটি কৌশল যা ডিভাইসের ক্ষমতা এবং নেটওয়ার্ক অবস্থার উপর ভিত্তি করে রেন্ডারিং গুণমানকে সামঞ্জস্য করে। এটি নিশ্চিত করে যে কম-গুণমানের ডিভাইস বা ধীর ইন্টারনেট সংযোগ আছে এমন ব্যবহারকারীরা এখনও একটি ব্যবহারযোগ্য অভিজ্ঞতা পান, যেখানে উচ্চ-গুণমানের ডিভাইসের ব্যবহারকারীরা অ্যাপ্লিকেশনটির সম্পূর্ণ ভিজ্যুয়াল গুণমান উপভোগ করেন।
গুণমান অভিযোজনের কৌশল
- অলস লোডিং: গুরুত্বপূর্ণ নয় এমন রিসোর্স (ছবি, ভিডিও, উপাদান) লোড করা প্রয়োজন না হওয়া পর্যন্ত স্থগিত করুন। এটি প্রাথমিক লোডের সময় কমায় এবং অনুভূত কর্মক্ষমতা উন্নত করে। উদাহরণস্বরূপ, `react-lazyload`-এর মতো লাইব্রেরি ব্যবহার করে ভিউপোর্টে স্ক্রোল করার সময় ছবি লোড করা।
- ছবি অপটিমাইজেশন: ডিভাইসের স্ক্রীন রেজোলিউশন এবং নেটওয়ার্ক অবস্থার উপর ভিত্তি করে বিভিন্ন ফরম্যাট (WebP, AVIF) এবং আকারে অপটিমাইজ করা ছবি পরিবেশন করুন। রেসপনসিভ ইমেজের জন্য `srcset` এবং `sizes` অ্যাট্রিবিউটের মতো সরঞ্জাম ব্যবহার করা যেতে পারে। Cloudinary এবং অন্যান্য ইমেজ CDN স্বয়ংক্রিয়ভাবে বিভিন্ন ডিভাইসের জন্য ছবি অপটিমাইজ করতে পারে।
- উপাদান স্থগিতকরণ: প্রাথমিক রেন্ডারের পরে কম গুরুত্বপূর্ণ উপাদান রেন্ডারিং বিলম্বিত করুন। এটি অ্যাসিঙ্ক্রোনাসভাবে উপাদান লোড করার জন্য `React.lazy` এবং `Suspense` ব্যবহার করে অর্জন করা যেতে পারে।
- ডেবাউন্সিং এবং থ্রটলিং: ইভেন্ট হ্যান্ডলারগুলি কত দ্রুত কার্যকর করা হয় তা সীমিত করুন, অতিরিক্ত পুনরায় রেন্ডারিং প্রতিরোধ করে। স্ক্রোলিং বা রিসাইজিং-এর মতো ইভেন্টগুলির জন্য এটি বিশেষভাবে উপযোগী। Lodash-এর মতো লাইব্রেরি ডেবাউন্সিং এবং থ্রটলিং-এর জন্য ইউটিলিটি ফাংশন সরবরাহ করে।
- কঙ্কাল লোডিং: ডেটা লোড হওয়ার সময় প্লেসহোল্ডার UI উপাদানগুলি প্রদর্শন করুন। এটি ব্যবহারকারীকে ভিজ্যুয়াল প্রতিক্রিয়া প্রদান করে এবং অনুভূত কর্মক্ষমতা উন্নত করে। `react-content-loader`-এর মতো লাইব্রেরি কঙ্কাল লোডিং উপাদান তৈরি করতে ব্যবহার করা যেতে পারে।
- শর্তসাপেক্ষ রেন্ডারিং: ডিভাইস ক্ষমতা বা নেটওয়ার্ক অবস্থার উপর ভিত্তি করে বিভিন্ন উপাদান বা UI উপাদান রেন্ডার করুন। উদাহরণস্বরূপ, আপনি কম-গুণমানের ডিভাইসগুলিতে একটি জটিল চার্টের সরলীকৃত সংস্করণ দেখাতে পারেন।
- অভিযোজিত বিটরেট স্ট্রিমিং: ভিডিও এবং অডিও কনটেন্টের জন্য, ব্যবহারকারীর নেটওয়ার্ক সংযোগের উপর ভিত্তি করে স্ট্রিমের গুণমান সামঞ্জস্য করতে অভিযোজিত বিটরেট স্ট্রিমিং ব্যবহার করুন।
বাস্তবায়ন উদাহরণ: অলস লোডিং ছবি
`react-lazyload` লাইব্রেরি ব্যবহার করে কীভাবে ছবিগুলির জন্য অলস লোডিং প্রয়োগ করতে হয় তার একটি উদাহরণ এখানে দেওয়া হল:
import React from 'react';
import LazyLoad from 'react-lazyload';
const MyComponent = () => {
return (
);
};
export default MyComponent;
এই উদাহরণে, ছবিটি শুধুমাত্র তখনই লোড হবে যখন এটি ভিউপোর্টের 100 পিক্সেলের মধ্যে থাকবে। `height` প্রপটি ছবি লোড হওয়ার সময় প্লেসহোল্ডার উপাদানের উচ্চতা উল্লেখ করে।
বাস্তবায়ন উদাহরণ: নেটওয়ার্ক গতির উপর ভিত্তি করে শর্তসাপেক্ষ রেন্ডারিং
এই উদাহরণটি `navigator.connection` API ব্যবহার করে আনুমানিক নেটওয়ার্ক গতির উপর ভিত্তি করে শর্তসাপেক্ষ রেন্ডারিং প্রদর্শন করে। মনে রাখবেন এই API-এর জন্য ব্রাউজার সমর্থন পরিবর্তিত হতে পারে এবং এটি সবসময় সঠিক নাও হতে পারে।
import React, { useState, useEffect } from 'react';
const NetworkSpeedAwareComponent = () => {
const [isSlowConnection, setIsSlowConnection] = useState(false);
useEffect(() => {
const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
if (connection) {
const updateConnectionStatus = () => {
setIsSlowConnection(connection.downlink <= 2); // Consider < 2 Mbps as slow
};
connection.addEventListener('change', updateConnectionStatus);
updateConnectionStatus(); // Initial check
return () => {
connection.removeEventListener('change', updateConnectionStatus);
};
}
}, []);
return (
{isSlowConnection ? (
<p>Using simplified graphics to improve performance on a slower connection.</p>
) : (
<p>Displaying high-resolution graphics.</p>
)}
);
};
export default NetworkSpeedAwareComponent;
এই উপাদানটি নেটওয়ার্কের গতি অনুমান করতে `navigator.connection` অবজেক্টের `downlink` বৈশিষ্ট্যটি পরীক্ষা করে। যদি ডাউনলিঙ্ক গতি 2 Mbps-এর কম বা সমান হয় (আপনি এই থ্রেশহোল্ডটি সামঞ্জস্য করতে পারেন), তাহলে এটি UI-এর একটি সরলীকৃত সংস্করণ রেন্ডার করে। এটি একটি সরল উদাহরণ, তবে নেটওয়ার্ক অবস্থার উপর ভিত্তি করে UI-কে মানিয়ে নেওয়ার মূল ধারণাটি প্রদর্শন করে। প্রোডাকশন পরিবেশের জন্য আরও শক্তিশালী নেটওয়ার্ক গতির সনাক্তকরণ লাইব্রেরি ব্যবহার করার কথা বিবেচনা করুন।
পারফরম্যান্স-ভিত্তিক রেন্ডারিং: একটি সামগ্রিক পদ্ধতি
পারফরম্যান্স-ভিত্তিক রেন্ডারিং ওয়েবসাইট কর্মক্ষমতা অপটিমাইজ করার জন্য একটি সামগ্রিক পদ্ধতি তৈরি করতে কনকারেন্ট রেন্ডারিং এবং গুণমান অভিযোজনকে একত্রিত করে। কাজগুলিকে বুদ্ধিমানের সাথে অগ্রাধিকার দিয়ে এবং ডিভাইসের ক্ষমতা অনুযায়ী রেন্ডারিং তৈরি করার মাধ্যমে, আপনি সমস্ত ব্যবহারকারীর জন্য, তাদের ডিভাইস বা নেটওয়ার্ক অবস্থা নির্বিশেষে, একটি ধারাবাহিকভাবে মসৃণ এবং আকর্ষক অভিজ্ঞতা প্রদান করতে পারেন।
পারফরম্যান্স-ভিত্তিক রেন্ডারিং প্রয়োগ করার পদক্ষেপ
- কর্মক্ষমতা দুর্বলতা চিহ্নিত করুন: আপনার অ্যাপ্লিকেশনটি কোথায় ধীর বা প্রতিক্রিয়াশীল নয় তা সনাক্ত করতে ব্রাউজার ডেভেলপার সরঞ্জাম (Chrome DevTools, Firefox Developer Tools) ব্যবহার করুন।
- অপটিমাইজেশনকে অগ্রাধিকার দিন: ব্যবহারকারীর অভিজ্ঞতার উপর সবচেয়ে বেশি প্রভাব ফেলে এমন ক্ষেত্রগুলিতে ফোকাস করুন। এর মধ্যে ব্যয়বহুল উপাদানগুলি অপটিমাইজ করা, নেটওয়ার্কের অনুরোধ কমানো বা ছবি লোডিং উন্নত করা অন্তর্ভুক্ত থাকতে পারে।
- কনকারেন্ট রেন্ডারিং প্রয়োগ করুন: React 18-এ সরান এবং প্রতিক্রিয়াশীলতা উন্নত করতে কনকারেন্ট রেন্ডারিং বৈশিষ্ট্যগুলি ব্যবহার করুন।
- গুণমান অভিযোজন কৌশল প্রয়োগ করুন: ডিভাইস ক্ষমতা অনুযায়ী রেন্ডারিং তৈরি করতে অলস লোডিং, ছবি অপটিমাইজেশন, উপাদান স্থগিতকরণ এবং অন্যান্য কৌশল প্রয়োগ করুন।
- পর্যবেক্ষণ এবং পরিমাপ করুন: পারফরম্যান্স মনিটরিং সরঞ্জামগুলি (যেমন, Google PageSpeed Insights, WebPageTest) ব্যবহার করে আপনার অ্যাপ্লিকেশনের কর্মক্ষমতা ক্রমাগত নিরীক্ষণ করুন এবং লোডের সময়, ইন্টারঅ্যাক্টিভের সময় এবং ফ্রেম হারের মতো মূল মেট্রিকগুলি ট্র্যাক করুন।
- পুনরাবৃত্তি এবং পরিমার্জন করুন: আপনার মনিটরিং ডেটার উপর ভিত্তি করে, আপনি যেখানে কর্মক্ষমতা আরও অপটিমাইজ করতে পারেন এবং আপনার গুণমান অভিযোজন কৌশলগুলি পরিমার্জিত করতে পারেন এমন ক্ষেত্রগুলি চিহ্নিত করুন।
পারফরম্যান্স অপটিমাইজেশনের জন্য গ্লোবাল বিবেচনা
একটি বিশ্বব্যাপী দর্শকের জন্য ওয়েবসাইটের কর্মক্ষমতা অপটিমাইজ করার সময়, নিম্নলিখিত বিষয়গুলি বিবেচনা করা গুরুত্বপূর্ণ:
- নেটওয়ার্ক ল্যাটেন্সি: বিভিন্ন অঞ্চলের ব্যবহারকারীরা বিভিন্ন স্তরের নেটওয়ার্ক ল্যাটেন্সি অনুভব করতে পারে। ব্যবহারকারীদের কাছাকাছি আপনার অ্যাপ্লিকেশনের সম্পদ বিতরণ করতে এবং ল্যাটেন্সি কমাতে একটি কন্টেন্ট ডেলিভারি নেটওয়ার্ক (CDN) ব্যবহার করুন। Cloudflare, AWS CloudFront, এবং Akamai-এর মতো পরিষেবাগুলি জনপ্রিয় পছন্দ।
- ডিভাইস বৈচিত্র্য: বিভিন্ন দেশের ব্যবহারকারীদের বিভিন্ন ক্ষমতা সহ বিভিন্ন ধরণের ডিভাইস থাকতে পারে। বিভিন্ন ডিভাইসের প্রকারের জন্য রেন্ডারিং তৈরি করতে গুণমান অভিযোজন ব্যবহার করুন। কিছু অঞ্চলে, ব্রডব্যান্ডের চেয়ে মোবাইল ডেটা বেশি প্রচলিত হতে পারে।
- স্থানীয়করণ: ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে আপনার অ্যাপ্লিকেশনের কনটেন্ট এবং সম্পদ স্থানীয়করণ করুন। এর মধ্যে টেক্সট অনুবাদ করা, তারিখ এবং সংখ্যা বিন্যাসিত করা এবং সাংস্কৃতিকভাবে উপযুক্ত ছবি এবং আইকন ব্যবহার করা অন্তর্ভুক্ত।
- नियाমক সম্মতি: বিভিন্ন দেশে ডেটা গোপনীয়তা এবং নিরাপত্তার সাথে সম্পর্কিত কোনো নিয়ন্ত্রক প্রয়োজনীয়তা সম্পর্কে সচেতন থাকুন।
- অ্যাক্সেসযোগ্যতা: তাদের অবস্থান নির্বিশেষে, নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশনটি অক্ষমতা সম্পন্ন ব্যবহারকারীদের জন্য অ্যাক্সেসযোগ্য। আরও অন্তর্ভুক্তিমূলক ব্যবহারকারী ইন্টারফেস তৈরি করতে WCAG (ওয়েব কনটেন্ট অ্যাক্সেসিবিলিটি নির্দেশিকা) অনুসরণ করুন।
পারফরম্যান্স অপটিমাইজেশন কৌশলগুলির আন্তর্জাতিক উদাহরণ
- উন্নয়নশীল বাজারে ই-কমার্স: দক্ষিণ-পূর্ব এশিয়ার ব্যবহারকারীদের লক্ষ্য করে একটি ই-কমার্স প্ল্যাটফর্ম কম-গুণমানের ডিভাইস এবং ধীর ইন্টারনেট সংযোগে দ্রুত এবং নির্ভরযোগ্য অভিজ্ঞতা নিশ্চিত করতে ছবি লোডিং অপটিমাইজ করা এবং নেটওয়ার্কের অনুরোধ কমানোর অগ্রাধিকার দিতে পারে। তাদের স্থানীয় পেমেন্ট পদ্ধতির ব্যবস্থা করার জন্য তাদের পেমেন্ট গেটওয়ে ইন্টিগ্রেশনগুলিও মানিয়ে নিতে হতে পারে।
- আফ্রিকার নিউজ ওয়েবসাইট: আফ্রিকার ব্যবহারকারীদের পরিষেবা প্রদানকারী একটি নিউজ ওয়েবসাইট মোবাইল ডিভাইসগুলিতে সীমিত প্রক্রিয়াকরণ ক্ষমতা সহ অনুভূত কর্মক্ষমতা উন্নত করতে অলস লোডিং এবং কঙ্কাল লোডিং ব্যবহার করতে পারে। তারা একটি ডেটা-সংরক্ষণ মোডও অফার করতে পারে যা ছবির গুণমান কমায় এবং স্বয়ংক্রিয়ভাবে চালানো ভিডিওগুলি অক্ষম করে।
- দক্ষিণ আমেরিকার স্ট্রিমিং পরিষেবা: দক্ষিণ আমেরিকার ব্যবহারকারীদের লক্ষ্য করে একটি স্ট্রিমিং পরিষেবা এমনকি অস্থির নেটওয়ার্ক অবস্থার সাথেও একটি মসৃণ প্লেব্যাক অভিজ্ঞতা নিশ্চিত করতে অভিযোজিত বিটরেট স্ট্রিমিং প্রয়োগ করতে পারে। যাদের সীমিত বা নির্ভরযোগ্য ইন্টারনেট অ্যাক্সেস আছে তাদের জন্য তাদের অফলাইন ডাউনলোডও অফার করতে হতে পারে।
পারফরম্যান্স অপটিমাইজেশনের জন্য সরঞ্জাম ও লাইব্রেরি
- React প্রোফাইলার: React উপাদানগুলিতে পারফরম্যান্স দুর্বলতা সনাক্ত করার জন্য একটি বিল্ট-ইন টুল।
- Chrome DevTools এবং Firefox Developer Tools: ওয়েবসাইট কর্মক্ষমতা বিশ্লেষণ এবং অপটিমাইজেশনের জন্য ক্ষেত্র সনাক্ত করার জন্য শক্তিশালী সরঞ্জাম।
- Google PageSpeed Insights: ওয়েবসাইট কর্মক্ষমতা বিশ্লেষণ এবং উন্নতির জন্য সুপারিশ প্রদান করার জন্য একটি টুল।
- WebPageTest: বিভিন্ন নেটওয়ার্ক অবস্থার অধীনে ওয়েবসাইট কর্মক্ষমতা পরীক্ষার জন্য একটি টুল।
- Lighthouse: ওয়েবসাইট কর্মক্ষমতা, অ্যাক্সেসযোগ্যতা এবং SEO নিরীক্ষণের জন্য একটি স্বয়ংক্রিয় টুল।
- Webpack বান্ডেল বিশ্লেষক: আপনার Webpack বান্ডেলের আকার এবং বিষয়বস্তু বিশ্লেষণ করার জন্য একটি টুল।
- react-lazyload: ছবি এবং অন্যান্য উপাদান অলস লোড করার জন্য একটি লাইব্রেরি।
- react-content-loader: কঙ্কাল লোডিং উপাদান তৈরি করার জন্য একটি লাইব্রেরি।
- Lodash: একটি ইউটিলিটি লাইব্রেরি যা ডেবাউন্সিং, থ্রটলিং এবং অন্যান্য পারফরম্যান্স-সম্পর্কিত কাজের জন্য ফাংশন সরবরাহ করে।
- Cloudinary: একটি ক্লাউড-ভিত্তিক ইমেজ ম্যানেজমেন্ট প্ল্যাটফর্ম যা স্বয়ংক্রিয়ভাবে বিভিন্ন ডিভাইসের জন্য ছবি অপটিমাইজ করে।
- Sentry বা অনুরূপ ত্রুটি ট্র্যাকিং পরিষেবা ব্যবহারকারীদের প্রভাবিত করে এমন বাস্তব-বিশ্বের কর্মক্ষমতা মেট্রিকগুলি নিরীক্ষণ এবং সমস্যাগুলি সনাক্ত করতে।
উপসংহার
React কনকারেন্ট রেন্ডারিং এবং গুণমান অভিযোজন ওয়েবসাইট কর্মক্ষমতা অপটিমাইজ করার এবং ব্যতিক্রমী ব্যবহারকারীর অভিজ্ঞতা প্রদানের জন্য শক্তিশালী সরঞ্জাম। এই কৌশলগুলি গ্রহণ করে এবং উপরে আলোচনা করা গ্লোবাল বিষয়গুলি বিবেচনা করে, আপনি ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন যা দ্রুত, প্রতিক্রিয়াশীল এবং সমস্ত ব্যবহারকারীর কাছে অ্যাক্সেসযোগ্য, তাদের ডিভাইস বা অবস্থান নির্বিশেষে। আজকের প্রতিযোগিতামূলক ডিজিটাল ল্যান্ডস্কেপে পারফরম্যান্স অপটিমাইজেশনের মাধ্যমে ব্যবহারকারীর অভিজ্ঞতাকে অগ্রাধিকার দেওয়া অত্যন্ত গুরুত্বপূর্ণ। আপনার অপটিমাইজেশন কৌশলগুলিকে সূক্ষ্ম-টিউন করতে এবং আপনার ব্যবহারকারীদের জন্য সর্বোত্তম সম্ভাব্য অভিজ্ঞতা প্রদানের জন্য ক্রমাগত নিরীক্ষণ, পরিমাপ এবং পুনরাবৃত্তি করতে ভুলবেন না।