<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mehedi0911</title>
    <description>The latest articles on DEV Community by Mehedi0911 (@mehedi).</description>
    <link>https://dev.to/mehedi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1014296%2F7f21cecb-8ec1-4e7d-b523-4fc0334104f4.jpeg</url>
      <title>DEV Community: Mehedi0911</title>
      <link>https://dev.to/mehedi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mehedi"/>
    <language>en</language>
    <item>
      <title>Mastering React: Best Practices for Cleaner and More Efficient Code</title>
      <dc:creator>Mehedi0911</dc:creator>
      <pubDate>Sat, 06 Jan 2024 12:59:06 +0000</pubDate>
      <link>https://dev.to/mehedi/mastering-react-best-practices-for-cleaner-and-more-efficient-code-7m7</link>
      <guid>https://dev.to/mehedi/mastering-react-best-practices-for-cleaner-and-more-efficient-code-7m7</guid>
      <description>&lt;p&gt;এই আর্টিক্যাল এ আমরা React এর কিছু best practice নিয়ে কথা বলবো ।&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Destructuring and Spread Operator for Props:
&lt;/h2&gt;

&lt;p&gt;React component এ একাধিক prop রিসিভ করলে আমরা সেগুলো destructure করে ইউজ করলে কোড এর readability and efficiency বেড়ে যায় ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const MyComponent = ({ prop1, prop2, prop3, ...restProps }) =&amp;gt; {
  // Component logic here
  return &amp;lt;ChildComponent {...restProps} /&amp;gt;;
};

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এই example এ, ফাংশন প্যরামিটার এ props destructure করে নেয়ার কারনে সহজেই আমরা বুঝতে পারি এই কম্পোনেন্টটি কি কি props এর উপর dependent.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Conditional Rendering with Ternary Operators:
&lt;/h2&gt;

&lt;p&gt;আমরা যখন কন্ডিশনালি কোন কম্পনেন্ট রেন্ডার করি তখন if-else statement ইউজ না করে আমরা ternary ইউজ করতে পারি, এতে আমাদের কোড অনেক ক্লিন এবং রিডেবল হবে ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const MyComponent = ({ isLoggedIn }) =&amp;gt; {
  return isLoggedIn ? &amp;lt;UserDashboard /&amp;gt; : &amp;lt;Login /&amp;gt;;
};

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এই example এ, ইউজার যখন লগিন করা থাকবে তখন আমরা UserDashboard এবং যখন লগিন না থাকবে তখন Login কম্পনেন্ট কে রেন্ডার করব ternary operator ইউজ করে ।&lt;/p&gt;

&lt;h2&gt;
  
  
  3. React Fragments for Cleaner JSX:
&lt;/h2&gt;

&lt;p&gt;আমরা যখন একটা কম্পনেন্ট এ আরও কিছু child component ইউজ করি তখন সেগুলো একটা wrapper div দিয়ে wrap না করে আমরা react fragments ইউজ করে আমাদের কোড আরো বেশি ক্লিন এবং রিডেবল করে ফেলতে পারি ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const MyComponent = () =&amp;gt; (
  &amp;lt;&amp;gt;
    &amp;lt;Header /&amp;gt;
    &amp;lt;MainContent /&amp;gt;
    &amp;lt;Footer /&amp;gt;
  &amp;lt;/&amp;gt;
);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. PropTypes and Default Props:
&lt;/h2&gt;

&lt;p&gt;একটা component যে props গুলো রিসিভ করে সেগুলোর টাইপ ডিক্লেয়ার করে দেয়ার মাধ্যমে আর ডিফল্ট props সেট করে আমরা development স্টেজ এই আমাদের এরর গুলো ডিটেক্ট এবং হ্যান্ডল করে ফেলতে পারি । এতে আমাদের development টাইম অনেক কমে আসে ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import PropTypes from 'prop-types';

const MyComponent = ({ name, age }) =&amp;gt; {
  // Component logic here
};

MyComponent.propTypes = {
  name: PropTypes.string.isRequired,
  age: PropTypes.number,
};

MyComponent.defaultProps = {
  age: 25,
};

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এছাড়াও এরকম আরো অনেক বেস্ট প্র্যক্টিস আছে যা ফলো করে আমরা আমাদের আমাদের কোড বেজ কে ক্লিন, রিডেবল এবং Efficient করতে পারি । ধন্যবাদ ।&lt;/p&gt;

</description>
      <category>react</category>
      <category>bestpractice</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Front-End Web Application এ React ইউজ করার Advantages</title>
      <dc:creator>Mehedi0911</dc:creator>
      <pubDate>Fri, 10 Nov 2023 12:28:33 +0000</pubDate>
      <link>https://dev.to/mehedi/front-end-web-application-e-react-iuj-kraar-advantages-2h4e</link>
      <guid>https://dev.to/mehedi/front-end-web-application-e-react-iuj-kraar-advantages-2h4e</guid>
      <description>&lt;p&gt;ফ্রন্ট-এন্ড ডেভেলপমেন্টের current ল্যান্ডস্কেপে, React একটি game changer । রিঅ্যাক্ট হল ইউজার ইন্টারফেস তৈরির জন্য একটি জাভাস্ক্রিপ্ট লাইব্রেরি । web application development করতে React ইউজ করার অনেক গুলো advantages রয়েছে । এই আর্টিকেল এ আমরা সেগুলোর কয়েকটি সম্পর্কে জানবো ।&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Reusable Components
&lt;/h2&gt;

&lt;p&gt;রিঅ্যাক্টের reusable component এর মাধ্যমে আমরা একটা কমন এলিমেন্ট বানিয়ে আমরা সেটা রি ইউজ করতে পারি । আমাদের এপ্লিকেশন এ যদি সিমিলার বা কাছাকাছি দেখতে কোন এলিমেন্ট থাকে যেটা আমাদের এপ্লিকেশনে বিভিন্ন প্লেস এ ইউক হচ্ছে, তাহলে আমরা একটি কমন কম্পনেন্ট বানিয়ে ফেলতে পারি । আমরা এই কম্পনেন্ট এ প্রপ্স পাস করে এটাকে ডাইমামিক করে ফেলতে পারি । যেমন&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';

const Button = (props) =&amp;gt; {
  return &amp;lt;button&amp;gt;{props.label}&amp;lt;/button&amp;gt;;
};

const App = () =&amp;gt; {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;Button label="Click me" /&amp;gt;
      &amp;lt;Button label="Submit" /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};

export default App;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;2. Virtual DOM&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;React page rendering এর জন্য virtual dom ইউজ করে যা আমাদের পেজ রেন্ডারিং কে আরও smooth এবং efficient করে । এখানে React actual dom কে ম্যনুপুলেট না করে এর একটা কপি তৈরি করে, এবং শুধুমাত্র যে পার্ট গুলো change করা হয়েছে সেটাই Update করে । এছাড়াও আমদের পেজ লোডিং স্পিড কে অনেক কমিয়ে ফেলে ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState } from 'react';

const App = () =&amp;gt; {
  const [count, setCount] = useState(0);

  const incrementCount = () =&amp;gt; {
    setCount(count + 1);
  };

  return (
    &amp;lt;div&amp;gt;
      &amp;lt;p&amp;gt;Count: {count}&amp;lt;/p&amp;gt;
      &amp;lt;button onClick={incrementCount}&amp;gt;Increment&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Unidirectional Data Flow
&lt;/h2&gt;

&lt;p&gt;React এর ডাটা ফ্লো ইউনিডিরেকশনাল অর্থাৎ রিএক্ট শুধু প্যারেন্ট থেকে চাইল্ড এই ডাটা পাস করতে পারে । যার জন্য ডেভেলপমেন্ট এর সমস্য এরর track করা আর debug করা অনেক সহজ আর Time saving হয় ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useState } from 'react';

const ParentComponent = () =&amp;gt; {
  const [message, setMessage] = useState('Hello from Parent');

  return (
    &amp;lt;div&amp;gt;
      &amp;lt;ChildComponent message={message} /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};

const ChildComponent = (props) =&amp;gt; {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;p&amp;gt;{props.message}&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Strong Community Support
&lt;/h2&gt;

&lt;p&gt;রিএক্ট এর একটা vast and active community আছে । যার ফলে ডেভেলপমেন্ট এর সময় একজন ডেভেলপার এর কাছে plenty of resources, libraries, and updates থাকে । যার ফলে খুব সহজের জেকন সমস্যার সলুশন পাওয়া যায় ।&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Excellent Developer Tools
&lt;/h2&gt;

&lt;p&gt;রিএক্ট এর powerful developer tools আছে, যেমন React DevTools and component inspection. এগুলো debugging, profiling এ অনেক হেল্প করে ।&lt;br&gt;
সব মিলিয়ে আমরা বলতে পারি ফ্রন্ড এন্ড application ডেভেলপমেন্ট এ রিএক্ট আমাদের first choice এই থাকে ।&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A glimpse of JavaScript strings.</title>
      <dc:creator>Mehedi0911</dc:creator>
      <pubDate>Wed, 25 Jan 2023 03:41:59 +0000</pubDate>
      <link>https://dev.to/mehedi/a-glimpse-of-javascript-strings-379e</link>
      <guid>https://dev.to/mehedi/a-glimpse-of-javascript-strings-379e</guid>
      <description>&lt;p&gt;জাভাস্ক্রিপ্ট স্ট্রিং বলতে যেকোনো টেক্সট কে বুঝায় । স্ট্রিং জাভাস্ক্রিপ্ট এ খুবই গুরুত্বপুর্ন একটি টার্ম । স্ট্রিং লিখতে সিঙ্গেল বা ডাবল কোট ব্যাবহার করা হয়, যেমন -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let str1 = "Hello, world!";
let str2 = 'Hello, world!';
console.log(str1); // "Hello, world!"
console.log(str2); // "Hello, world!"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;জাভাস্ক্রিপ্ট স্ট্রিং কে সুবিধামত পরিবর্তন করার জন্য বিভিন্ন স্ট্রিং মেথড ইউস করা হয় যেগুলো একেকটা ফাংশন । যেমন, আমরা যদি কোনো স্ট্রিংকে ছোট থেকে বড় হাতের অক্ষরে পরিবর্তন করতে চাই তাহলে string.toUpperCase() মেথড টি ইউস করতে পারি। এরকম আরোও কয়েকটি উদাহরণ নিচে দেয়া হল -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myString = "Hello, world!";
console.log(myString.length); // 13
console.log(myString.toUpperCase()); // "HELLO, WORLD!"
console.log(myString.toLowerCase()); // "hello, world!"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এরকম আরোও একটি কমন স্ট্রিং মেথড হল .indexOf() মেথড । এর দ্বারা আমরা কোন একটি স্ট্রিং এর ভেতর কোন স্পেসিফিক ওয়ার্ড বা আরেকটি স্ট্রিং আছে কিনা সেটা সার্চ করে দেখতে পারি। নিচের উদাহরণ এ "Hello, world!" স্ট্রিং এর ভেতর "world" শব্দটি ৭ম ইনডেক্স এ আছে ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myString = "Hello, world!";
console.log(myString.indexOf("world")); // 7

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;.split() মেথড টি দিয়ে আমরা একটি বড় স্ট্রিং কে যেকোনো ক্যরেক্টার অনুযায়ী আলাদা আলাদা করে একটি অ্যারে তে নিতে পারি। নিচের উদাহরণ এ "JavaScript is a powerful language" স্ট্রিং টিকে স্পেস এর প্রেক্ষিতে আলাদা করা হয়েছে এবং অউটপুট একটি অ্যারে আকারে এসেছে ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myString = "JavaScript is a powerful language";
let words = myString.split(" ");
console.log(words); // ["JavaScript", "is", "a", "powerful", "language"]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;আমরা যদি কোন একটি স্ট্রিং কে একটি স্পেসিফিক ইনডেক্স এ আলাদা করতে চাই তাহলে আমরা .slice() মেথড টি ইউস করতে পারি ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myString = "JavaScript is a powerful language";
console.log(myString.slice(0, 10)); // "JavaScript"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;.substr() মেথড টি .slice() এর মতই তবে এখানে আমরা এন্ডিং ইনডেক্স না বলে দিয়ে বলে দিব সে কোন ইনডেক্স থেকে শুরু করবে আর কত লেংথ এর স্ট্রিং কে আলাদা করবে ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myString = "JavaScript is a powerful language";
console.log(myString.substr(0, 10)); // "JavaScript"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;আমরা যদি কয়েকটি স্ট্রিং কে একসাথে জোড়া দিতে চাই তাহলে .concat() মেথড ইউস করতে পারি । নিচের উদাহরণ টি দেখলেই সেটা সহজে বুঝা যায় ।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let str1 = "Hello";
let str2 = "world";
let str3 = "!";
console.log(str1.concat(" ", str2, str3)); // "Hello world!"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;.split() এর ঠিক উল্টো হল .join() । এর দ্বারা আমরা একটি অ্যারে তে থাকা কয়েকটি স্ট্রিং বা শব্দ কে কোন একটা স্পেসিফিক ক্যরেক্টার বা শব্দ দিয়ে জোড়া দিতে পারি।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let arr = ["JavaScript", "is", "a", "powerful", "language"];
console.log(arr.join(" hello ")); // "JavaScript hello is hello a hello powerful hello language"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;উপরে উল্লেখিত মেথড গুলো ছাড়াও আরো অনেক মেথড আছে যেগুলো আমরা নিচে দেয়া লিংক থেকে দেখে প্র্যাকটিস করতে পারি।&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ধন্যবাদ&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>coding</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
