Posts

ডার্ট প্রোগ্রামিংয়ের খুবই মজাদার টপিক Mixin কি? কেন? কিভাবে ?

Image
Mixin হল একাদিক class কে ইনহেরিট করে পূনরায় ব্যবহার করার মাধ্যম। Mixin সত্যিই Dart Programming language এর  খুবই মজাদার টপিক।  Java and C# Background  থেকে মূলত ডার্টে মিক্সিনের আভির্বাব। ডার্টের ২.০০ ভার্সনে মিক্সিন নিয়ে আসা হয়। আর মিক্সিন ব্যবহারের মাধ্যমে  আমরা Code Duplication কে Avoid করতে পারি।   এইতো গেল প্রাথমিক কথাবার্তা,  তাহলে মূল আলোচনায় আসি - প্রথমেই প্রশ্ন জাগে Mixin আমরা কেন ব্যবহার করব? সঙ্গা থেকে হয়ত অনেকে বুঝে গেছেন। যারা বুঝেন নাই, তাদের নিরাশ হওয়ার কিছু নাই - চলুন তাদের জন্য একটি উদাহরণ  দেখি।  ধরুন আপনার তিনটি আলাদা বৈশিষ্ট্যের  গাড়ি আছে।  Gasoline, Electric  & Hybrid Car । এখন Hybrid Car এ যে সব ফাংশনালিটি কিনবা বৈশিষ্ট্য  আছে সেগুলোর কিছু Gasoline Car এবং কিছু  Electric Car আছে।  এখন আমরা যদি তিনটি গাড়িকে  ক্লাস হিসাবে এবং তাদের  ফাংশনালিটি গুলো দিয়ে কোড লিখে ফেলি- কোডটিতে আমারা GesolineCar এবং ElectricCar কে HybridCar দ্বারা inherit করেছি। যার ফলে কোডটিতে এরর দেখাচ্ছ...

ডার্ট প্রোগ্রামিংয়ের খুবই গুরুত্বপূর্ণ ফিচার Async & Await কি? কেন?

Image
আজকে  ডার্ট  প্রোগ্রামিংয়ের খুবই  গুরুত্বপূর্ণ  টপিক  Async  &  Await  নিয়ে আলোচনা করব।  এই  টপিক  নিয়ে আলোচনার পূর্বে আমাদের Synchronous & Asynchronous Program Execution  সম্পর্কে  জানতে হবে। Synchronous Programming : শুরুতেই কয়েকটি বৈশিষ্ট্য  জেনে নেই- ১. এখানে একই সময়ে Program execute হবে line by line. 2. যখন কোন Function কে কল করা হবে,  তখন ঐ ফাংশনটি Return  না করা পর্যন্ত কিনবা ফাংশনটির কাজ শেষ না হওয়া পর্যন্ত পরবর্তী  statement execute  হব না।  উদাহরণ দেখে ধারনা পরিষ্কার  করি - statement 1..... execute Function (); // 1s 2s 3s 4s.... execute Statement 2 ..... execute statement 3 ..... execute Asynchronous Programming: এখানে প্রোগ্রাম line by line execute হবে না। যখন কোন Function  call করা হয়, তখন ফাংশন সম্পূর্ণ  হতে যে সময় লাগবে তার জন্য অপেক্ষা  না করে পরবর্তী  statement execute  করবে। চলুন উদাহরণ  দেখি- statement 1...  // ex...

ডার্ট প্রোগ্রামিং ল্যাঙ্গুয়েজে enumeration or enum কি ? কেন? কিভাবে ?

Image
enum  কি ? এক কথায় enum or enumeration হল Constant value এর ডাটা। যার ভিতর Constant ভেলু থাকবে। আমরা যখন Program এ এমন পরিস্থিতির স্বীকার হব , যেখানে ভেরিয়েবলে কেবল মাত্র একটি সীমাবদ্ধ " নামযুক্ত মান " গ্রহন করতে পারে , সে সব ক্ষেত্রে আমরা enum ব্যবহার করব। যেমন - সপ্তাহের দিন , রংধনুর সাত রং , কিনবা কম্পাসের চারটি দিক। আর enum ব্যবহার করার সুবিধা হল , enum ব্যবহারের ফলে আমাদের কোডটি বেশি পঠনযোগ্য এবং কনসিসটেন্ট করে তোলে। যার ফলে প্রোগ্রামে অনাকাঙ্ক্ষিত ত্রুটিও কমে যায়। আর একটি কোড তখনি সবচেয়ে ভাল কোড হবে , যখন আমাদের লিখা কোন কোড অন্য কেউ খুব সহজেই পড়তে ও বুঝতে পারে৷ enum এর উদাহরন দেওয়ার জন্য সবচেয়ে ভাল উপায় হল switch case statement এর মাধ্যমে । আমিও তাই দেখাব। ধরুন একটি কম্পাসের চারটি দিকে ও চারটি নির্দশনা আছে৷ এখন আমরা switch case statement ব্যাবহার করে এমন একটি প্রোগ্রাম লিখব , যে ডিরেকশন টি সিলেক্ট করব সেই ডিরেকশনের নির্দেশনা আমাদের বলে দিবে৷ তাহলে কোডটি লিখে ফেলি-   উদাহরনের কোডটি তে আমরা কেইস এর কন্সটেন্ট গুলো 1...

ডার্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে অপ্রত্যাশিত ইভেন্ট বা ঘটনা কিভাবে হ্যান্ডেল করবেন?

Image
আজকে আলোচনা করব ডার্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে কিভাবে Exception হ্যান্ডেল করতে হয় । ডার্ট ল্যাঙ্গুয়েজ কে Java, C++, C#, Python এর মত Exception Handling Facilities দিয়ে ডিজাইন করা হয়েছে । আচ্ছা ! তাহলে এই Exception জিনিসটা আবার কি ? এক কথায় - Exception হল প্রোগ্রামরের একটি অপ্রত্যাশিত ইভেন্ট বা ঘটনা যা কোনও প্রোগ্রাম কার্যকর করার সময় ঘটে। আর প্রোগ্রামের যেখানেই এই Exception ঘটে , কম্পাইলার প্রোগ্রামকে সেখানেই বন্ধ করে দেয়। যা সফটওয়্যার ডেভেলপমেন্টের ক্ষেত্রে মোটেও কাম্য নয়। তাহলে প্রোগ্রামে এই অপ্রত্যাশিত ইভেন্ট বা ঘটনা যদি ঘটে , সেটা কিভাবে মোকাবেলা করব ? প্রোগ্রাম এ সম্ভাব্য কোনও ত্রুটি মোকাবেলার জন্য আমরা ঐ প্রোগ্রাম কে ভিন্ন তিনটি ব্লক এ বিবক্ত করব । আর ব্লক তিনটি হল - Try Block Catch Block Finally Block   Syntax: এখন আসুন জেনে নেই এই ব্লক গুলোর কিভাবে কাজ করে -  1. Try block :- এই ব্লক এ আমরা সম্ভাব্য ত্রুটি ঘটতে পারে , এমন প্রোগ্রাম এর operation করব। যদি program কোন ধরনের Error দেখায় , তাহলে Try Block সেটা কে encounter করবে ...

ডার্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ এর খুবই শক্তিশালী ফিচার Generic কি? কেন? কিভাবে?

Image
আজকে আলোচনা করব ডার্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ এর খুবই শক্তিশালী ফিচার Generic নিয়ে । Generic মূলত ডাটা Collection এর টাইপ সেফটি নির্ধারন করে। কিন্ত যেনে রাখা ভাল , ডাটা টাইপকে ডার্ট ল্যাঙ্গুয়েজে অপশনাল রাখা হয়েছে। কোন ডাটা কালেকশনকে Generic করতে হলে আমাদের < > নেটেশন মার্ক ব্যবহার করতে হবে ৷ আর এই নোটেশনের মধ্যে যখন ডাটার টাইপ কি হবে অথাৎ ( int, double, string ) তা নির্দারন করে দেওয়া হয় তখন আমরা ঐ ডাটার কালেকশনকে জেনেরিক বলব। জেনে রাখা ভাল , ডার্টে লিষ্ট অন্যান্য ল্যাঙ্গুয়েজ এ অ্যারে নিয়ে কাজ করতে সবচেয়ে বেশি ডাটাকে Generic করার দরকার পড়ে। তাছাড়া আমরা Map, Set, HashMap, HashSet তে ব্যাবহার করতে পারি। আসুন তাহলে এবার লিষ্ট দিয়ে একটি উদাহরন দেখি - উপরের প্রোগ্রামটিতে লিস্ট এর মধ্যে ডাটা টাইপ হিসাবে স্ট্রিং কে Declare করা হয়েছে । তাই ডাটা হিসাবে শুধুমাত্র স্ট্রিং নিয়েছি। আমরা চাইলেও লিস্টের ভিতর স্ট্রিং ব্যতিত অন্য কোন ডাটা নিতে পারব না। কারন List এর ডাটা টাইপ ফিক্সড করে দিয়েছি । চলুন উদাহরন দিয়ে বিষয়টা পরিষ্কার করি -  ...

ইসলামে ছোঁয়াচে রোগ । । বিভ্রান্তি ও বাস্তবতা

Image
প্রশ্ন : ইসলামে কি ছোঁয়াচে রোগকে অস্বীকার করা হয়েছে ? উত্তর : আবু হুরায়রা রা . হতে বর্ণিত , নবী সাল্লাল্লাহু আলাইহি ওয়াসাল্লাম বলেছেন , “ রোগ সংক্রমণ , কুলক্ষণ , পেঁচা এবং সফর মাস বলতে কিছু না ই।” ( সহীহু বুখারী , হা / ৫৭০৭ ) মুহাদ্দিসগণ বলেন , উক্ত হাদীসে পেঁচা ও সফর মাসের অস্তিত্বকে অস্বীকার করা হয় নি বরং জাহেলী যুগে পেঁচার ডাক এবং সফর মাসকে কুলক্ষণে মনে করা হত ( বর্তমানেও মূর্খ লোকদের মাঝে এ কুসংস্কার প্রচলিত রয়েছে ) এই বাতিল ও ভ্রান্ত বিশ্বাসকে অস্বীকার করা হয়েছে। অনুরূপভাবে সংক্রমন রোগের অস্তিত্বকেও অস্বীকার করা হয় নি বরং একটি ভ্রান্ত বিশ্বাসের অনোদন করা হয়েছে। তা হল , জাহেলী যুগে কোনো কোন ব্যাধিকে এমন মনে করা হত যে , তা নিজে নিজেই সংক্রমিত হয়। কিন্তু ইসলামের সৃষ্টিভঙ্গী হল , রোগ কখনও নিজে নিজে সংক্রমিত হতে পারে না। বরং তা আল্লার ইচ্ছার সাথে সংম্পৃক্ত। তার লিখিত তাকদীর ছাড়া কোন কিছুই ঘটে না। ❑ উক্ত হাদীসের এই ব্যাখ্যাটি নিন্মোক্ত হাদীস থেকে স্পষ্ট হয় : আবূ হুরায়রা রাদিয়াল্লাহু আনহু বর্ণনা করেন যে , নবী সাল্লাল্লাহু আলাইহি ওয়াসাল্লাম ছোঁয়াচে রোগ বলতে কিছু নাই বলল...

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বেসিক কনসেপ্ট

Image
  Object-Oriented Programming আজ আলোচনা করব প্রোগ্রামিং এর সবচেয়ে গুরুত্বপূর্ণ Concept “OOP” নিয়ে । Object-oriented programming ( OOP ) মূলত চারটি খুঁটির উপর নীর্বর করে দাড়িয়ে আছে । খুঁটিগুলো হল - Abstraction Encapsulation Inheritance Polymorphism এই খুঁটিগুলো নিয়ে বিশাদ আলোচনা করার আগে জেনে নেই প্রোগ্রামিং এ OOP আবার কি জিনিস ? এক কথায় বলতে গেলে - ক্লাস এবং অবজেক্টের ধারণাকে কাজে লাগিয়ে যে প্রোগ্রামিং করা হয় তাকেই বলা হয় অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং। তাহলে এই যে বললাম অবজেক্ট ও ক্লাস ধারণাকে কাজে লাগিয়ে যে প্রোগ্রামিং করা হয় তাকেই বলা হয় অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বলে । এই অবজেক্ট ও ক্লাস কি ? একটু জেনে নেওয়া যাক - অবজেক্ট হলো কোন একটি ক্লাস এর একটি মূর্ত অস্তিত্ব ৷ আর ক্লাস হলো অবজেক্ট তৈরীর একটা ব্লুপ্রিন্ট বা সংগা যা নির্দিষ্ট করে দেয় ওই ক্লাসের একটি অবজেক্টের কী কী গুনাগুন হবে ৷ যেমন – আপনি নিজে , যে কিনা কোথাও বিরাজ করছেন , আপনি হলেন একজন মানুষ / হিউম্যান ৷ এবং আপনার মতই আরো অনেক মানুষ আছেন ৷ এখানে আপনারা সবাই...