প্রোগ্রামিং লেবেলটি সহ পোস্টগুলি দেখানো হচ্ছে৷ সকল পোস্ট দেখান
প্রোগ্রামিং লেবেলটি সহ পোস্টগুলি দেখানো হচ্ছে৷ সকল পোস্ট দেখান
অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং কি এবং কেন?

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

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং কি : অবজেক্ট অরিয়েন্টেড কোডিং সাধারন প্রসিডিউরাল (Procedural) কোডিং এর মতই শুধু পার্থক্য হচ্ছে এখানে একই ধরনের ফাংশন এবং এর সাথে কোডগুলিকে এক একটি অবজেক্ট এর মধ্যে রাখা হয়।কিন্তু প্রসিডিউরাল পদ্ধতিতে একই সাথে সব ফাংশন বা কোড রাখা হয় এতে অনেক অসুবিধা হয় যেমন
*একই নামের অনেক গুলি ভেরিয়েবল বা ফাংশন তৈরী করতে পারবেননা (যেখানে প্রতিটি ভেরিয়েবলের মান এবং প্রতিটি ফাংশনের কাজ অলাদা হবে)।
*কোড অনেক বড় হবে ফলে পরে এই কোডে কোন সমস্যা হলে বা নতুন কোড যোগের প্রয়োজন হলে পুরো কোড আবার পড়ে দেখতে হবে যে, নতুন যে ফাংশন বা ভেরিয়েবল (গ্লোবাল) যোগ হচ্ছে সেই নামে আগে থেকে এখানে কোন ভেরিয়েবল বা ফাংশন আছে কিনা।
আরও অনেক সমস্যা হয় প্রসিডিউরাল কোড লিখলে এবং এই সমস্যাগুলির সমাধানের জন্য অবজেক্ট অরিয়েন্টেড প্রোগামিং নতুন কনসেপ্ট নিয়ে এসেছে।উপরের সমস্যাগুলির সমাধান ছাড়াও আরও অনেক সুবিধা আছে নিচে সংক্ষেপে আলোচনা করা হল:
**একটা স্ক্রিপ্টে যদি ১০ টা অবজেক্ট লিখেন এবং প্রতিটি অবজেক্টে একই নামের ফাংশন বা ভেরিয়েবল থাকে তবু সমস্যা হবেনা যদিও ফাংশনগুলি এক একটা অবজেক্টে এক এক রকম কাজ করবে।এরুপ ভেরিয়েবলেরও ক্ষেত্রেও প্রযোজ্য।
**আপনার সাইটের প্রতিটি অংশের জন্য আলাদা আলাদা মডিউল তৈরী করে সেখানে প্রাসংগিক অবজেক্ট গুলি ভাগ ভাগ করে রাখতে পারবেন।
যেমন আপনার সাইট যদি অনেক বড় হয় ধরুন ফেসবুকের মত তাহলে ইউজার ম্যানেজমেন্ট নামে একটা মডিউল বানাতে পারেন।সেখানে ইউজারের লগিন এবং রেজিস্ট্রেশনের জন্য একটা অবজেক্ট বানাতে পারেন,একটা প্রোফাইল অবজেক্ট থাকতে পারে। এরপর মেসেজের জন্য একটা মডিউল বানাতে পারেন সেখানে মেসেজ হ্যান্ডলিং এর জন্য একটা অবজেক্ট থাকতে পারে ইত্যাদি ইত্যাদি।
**ফলে স্ক্রিপ্টগুলি ছোট ছোট হবে এবং পরে নতুন কোড বা অবজেক্ট যোগ করতে চাইলে প্রাসংগিক কোন মডিউলে ঢুকে প্রয়োজনীয় কোডটুকু যোগ করে দিতে পারবেন।
**আপনার তৈরী অবজেক্টগুলি একটি ফ্রেমওয়ার্কের মত হয়ে থাকবে,ধরুন অন্য আরেকটা সাইট তৈরী করছেন সেখানে একই ধরনের এপ্লিকেশন আছে তাহলে নতুন করে কোড না লিখে এখান থেকে অবজেক্ট তুলে নিয়ে গিয়ে সেই প্রজেক্টে ব্যবহার করতে পারেন।
**কোডগুলি মডিউলার হয়ে থাকবে,কোন অবজেক্ট আরেকটা অবজেক্টে কোন প্রভাব ফেলবেনা।ধরুন সাইটে ইউজার রেজিস্ট্রেশনে সমস্যা হচ্ছে তাহলে পুরো কোড আর পড়ে দেখতে হবেনা শুধু ইউজারের রেজিস্ট্রেশনের জন্য যে অবজেক্ট তৈরী করেছেন সেখানে গিয়ে ঠিক করলেই কাজ হয়ে যাবে।
এছাড়াও আরও অনেক সুবিধা আছে তাই অন্যান্য ল্যাংগুয়েজের মত পিএইচপিতেও অবজেক্ট অরিয়েন্টেড পদ্ধতিতে কোডিং করা হয়।অবজেক্ট অরিয়েন্টেড পদ্ধতিতে কোডিং করতে যেসব জান হবে তা হল-
  • অবজেক্ট এবং ক্লাস (class) কি ও এদের মধ্যে পার্থক্য
  • প্রোপার্টিজ (মেম্বার ভেরিয়েবল) এবং মেথড
  • কনস্ট্রাক্টর (constructor) এবং ডিস্ট্রাক্টর (destructor) মেথড + $this সিডো (pseudo) ভেরিয়েবল
  • এনক্যাসুলেশন
  • অবজেক্ট relation
  • ইনহেরিটেন্স
  • টাইপ হিন্টিং (Type hinting) +   instanceof কিওয়ার্ড
  • পলিমরফিজম (Polymorphism)
  •  মেথড ওভাররাইডিং
  •  স্টাটিক প্রোপার্টিজ এবং মেথড
  • এবস্ট্রাক্ট ক্লাস এবং মেথড
  • ক্লাস অটোলোডিং
  • ইন্টারফেস ক্লাস
  • নেমস্পেস (Namespace)
  • ম্যাজিক মেথড এবং কনস্টান্ট
চমকপ্রদ কিছু CMS টুল কাজ করে ডেটাবেস সার্ভার ছাড়াই

চমকপ্রদ কিছু CMS টুল কাজ করে ডেটাবেস সার্ভার ছাড়াই

আমরা অনেকেই ব্লগ বা ওয়েব সাইট বানানোর জন্য WordPress , Joomla ইত্যাদি ব্যবহার করি । এগুলো সবই CMS টুল । এদের জন্য php ছাড়াও MySQL বা কোনো না কোনো ডেটাবেস সার্ভিস দরকার হয় । ভাল খবর হচ্ছে এমন অনেক CMS টুল আছে যেগুলো দিয়ে MySQL বা কোনো ডেটাবেস সার্ভিস ছাড়াই চালানো যায় ।

কেন ব্যবহার করব?

  • ১. সহজ ইনস্টলেশন: কোনো ধরনের অটো ইনস্টলার না থাকলে wordpress বা joomla ইনস্টল করা একটু কষ্টকর কাজ। তাছাড়া ব্যকআপ রাখাও কঠিন। ডেটাবেস ছাড়া CMS গুলো শুধু আপলোড করে extract করলেই হয়ে গেল। আর ব্যকআপ রাখতে ডারেক্টরীটি ডাউনলোড করে নিলেই হয়ে গেল।
  • ২. গতি : যেহেতু কোনো ডেটাবেস সার্ভার লাগবে না , তাই অন্য যে কোনো CMS থেকে কয়েকগুন দ্রুত গতিতে এর দ্বারা তৈরী সাইটগুলো ব্রাউজ করা যাবে। যা যেকোনো সাইটের জন্য সুসংবাদ বটে।
  • ৩. সহজ মোডিফিকেশন : শুধু html, xml বা php ব্যবহার করা হয় বলে অনেক সহজে মোডিফিকেশন করা যায়।
  • ৪. শুধু একটি সার্ভার দরকার: আপনার সার্ভারে MySQL না থাকলেও সমস্যা নেই শুধু ওয়েব সারভার থাকলেই হল।

সমস্যা:

  • ১. থিম ও উইডজিট : এই টুলগুলো কিছুটা অপরিচিত বলে থিম ও উইডজিট পেতে একটু অসুবিধা হতে পারে। কিন্তু যারা কোডিং পারেন তারা অন্যান্য থিম ও উইডজিট নিজেরা মোডিফাই করে নিতে পারবেন।
  • ২. নিরাপত্তা : শুধু html, xml তে সব তথ্য রাখা হয় বলে নিরাপত্তা ব্যবস্থা একটু দূর্বল মনে হয়েছে । যদিও এটি সম্পূর্ন নিজের মতামত ।

এমন কিছু টুল:

ionic ফ্রেমওয়ার্ক দিয়ে ক্রসপ্লাটফরম অ্যাপ তৈরি – অ্যান্ড্রয়েড, আইওএস

ionic ফ্রেমওয়ার্ক দিয়ে ক্রসপ্লাটফরম অ্যাপ তৈরি – অ্যান্ড্রয়েড, আইওএস

ionic ফ্রেমওয়ার্ক হচ্ছে HTML5 ব্যবহার করে হাইব্রিড অ্যাপ তৈরির ফ্রন্টএন্ড ফ্রেমওয়ার্ক। ionic ব্যবহার করে কিভাবে অ্যাপ তৈরি করব, আমরা তা দেখব। ক্রসপ্লাটফরম অ্যাপ তৈরি করার জন্য ionic দারুণ একটা ফ্রন্টএন্ড ফ্রেমওয়ার্ক।
ionic ইন্সটলের পূর্বে আমাদের node.js ইন্সটল করতে হবে। ইন্সটল করা না থাকলে http://nodejs.org/ এ গিয়ে ইন্সটল করে নিব।
উইন্ডোজে ionic ইন্সটল করার জন্য আমরা কমান্ড লাইনে গিয়ে লিখবঃ
1
npm install -g cordova ionic
ionic এর ব্যাক এন্ডে কাজ করে cordova. cordova হচ্ছে এইচটিএমএল বা ওয়েব ভিত্তিক অ্যাপ গুলো মোবাইল অপারেটিং সিস্টেমে সাফোর্ট করার লাইব্রেরী। উপরের কমান্ড দিয়ে এক সাথে cordova এবং ionic ইন্সটল হবে। ইন্সটল হতে কিছুক্ষণ সময় নিবে। ইন্সটল হয়ে গেলে আমরা অ্যাপ তৈরি করার জন্য প্রস্তুত।
ionic এ অনেক গুলো ডিফল্ট টেম্পলেট রয়েছে। যেমন ট্যাব যুক্ত একটা অ্যাপ তৈরি করার জন্য নিচের কমান্ড লিখবঃ
1
ionic start myApp tabs
আমাদের অ্যাপের জন্য যত গুলো Defedency দরকার, সব ডাউনলোড হবে।
অ্যাপ তৈরি হয়ে গেলে আমরা অ্যাপের ডিরেক্টরিতে যাবো। তার জন্য লিখব:
1
cd myApp
ionic এ কোন ফ্রেমওয়ার্ক যুক্ত করা থাকে না। আমরা যদি আমাদের প্রজেক্টে অ্যান্ড্রয়েড যুক্ত করতে চাই, তার জন্য লিখবঃ
1
ionic platform add android
আমাদের প্রজেক্টে এন্ড্রয়েড প্লাটফম যুক্ত হবে। একই ভাবে আমরা iOS ও যুক্ত করতে পারি এভাবেঃ
1
ionic platform add ios
প্লাটফরম যুক্ত করার পর আমরা অ্যাপ বিল্ড করব, যেমন এন্ড্রয়েড বিল্ড করার জন্যঃ
1
ionic build android
তাহলে অ্যান্ড্রয়েড বিল্ড হবে, প্রথমবার কিছু সময় নিবে। যদি Android SDK লোকেশন ঠিক মত সেট করা না থাকে তাহলে হয়তো নিচের মত ইরর দেখাতে পারে।
error

ইররটি সলভ করার জন্য Android SDK পাথে যুক্ত করার পাশা পাশি তাহলে ANDROID_HOME নামে সিস্টেম ভ্যারিয়েবল যুক্ত করে নিব। যার ভ্যালু হবে Android SDK পাথ লোকেশন, নিচের ছবির মতঃ
system variable

যদি বিল্ড করতে সমস্যা হয়, তাহলে প্রজেক্ট এন্ড্রয়েড স্টুডিওতে ইম্পোর্ট করেও রান করে দেখা যাবে। একটু পরেই তা নিয়ে বলছি।
বিল্ড করার পর ইমিউলেটরে বা রিয়েল ডিভাইসে রান করে দেখতে পারি। তার জন্যঃ
1
ionic emulate android
তাহলে ইমিউলেটরে তাহলে অ্যাপটি ওপেন হবে।
অ্যাপটি আমরা এন্ড্রয়েড স্টুডিওতে ইম্পোর্ট করতে পারি। তার জন্য এন্ড্রয়েড স্টুডিও ওপেন করে Import Project এ ক্লিক করব।
import project android studio
এরপর আমাদের প্রজেক্ট ন্যাভিগেট করে প্রজেক্টের ভেতরে Platform ফোল্ডারের ভেতর থেকে Android ফোল্ডার সিলেক্ট করে ওকে দিব।
andorid import
তাহলে প্রজেকটি এন্ড্রয়েড স্টুডিওতে ওপেন হবে। সেখান থেকে রান বা ইচ্ছে মত পরিবর্তন করা যাবে।
একটা গ্রেট ফিচার হচ্ছে আমরা আমাদের অ্যাপ ionic.io তে আপলোড করে আমাদের ফ্রেন্ডদের সাথে শেয়ার করতে পারি।
তার জন্য https://apps.ionic.io এ গিয়ে একাউন্ট খুলে নিতে হবে। এরপর কমান্ড লাইন থেকে প্রজেক্ট ডিরেক্টরিতে গিয়ে লিখতে হবেঃ
1
ionic login
তাহলে ইমেইল এবং পাসওয়ার্ড চাইবে। সেগুলো দেওয়ার পর লিখবঃ
1
ionic upload
তাহলে অ্যাপটি ionic.io তে আপলোড হবে। এরপর সব গুলো অ্যাপ https://apps.ionic.io/apps এ দেখতে পাব। এবং চাইলে অন্যদের সাথে শেয়ার করা যাবে।যদিও এটা গুরুত্বপূর্ণ নয়।
এবার Ionic Crash Course নামক ভিডিওটা দেখে পেলুন। দেখে দেখে করার পর অনলাইন থেকে আরো কিছু টিউটোরিয়াল দেখে ionic নিয়ে বিস্তারিত জানতে পারেন। অনেক গুলো টিউটোরিয়াল রয়েছে। অনেক ধরনের অ্যাপ তৈরি করার টিউটোরিয়াল পাবেন।
এদুইটা অবশ্যই দেখবেনঃ
একটি অ্যান্ড্রয়েড অ্যাপ তৈরি করার জন্য যে কয়েকটি কমান্ড লাগে, সব গুলো এক সাথেঃ
1
2
3
4
5
ionic start myApp blank
cd myApp
ionic platform add android
ionic build android
ionic emulate android
একটি iOS অ্যাপ তৈরি করার জন্য যে কয়েকটি কমান্ড লাগে, সব গুলো এক সাথেঃ
1
2
3
4
5
ionic start myApp blank
cd myApp
ionic platform add ios
ionic build ios
ionic emulate ios
ionic-angular-opti
ionic ফ্রেমওয়ার্কে অ্যাপ তৈরি করার জন্য মূলত AngularJS ব্যবহার করা হয়। AngularJS সম্পর্কে জানলে ionic নিয়ে কাজ করতে অনেক সহজ হবে। এবং সুন্দর সুন্দর সব অ্যাপ তৈরি করা যাবে।