Node.js – কলব্যাক এর ধারণা। কলব্যাক কি? (Callbacks Concept)

মোহাম্মদ আব্দুল্লাহ

 

Callback কি ?

Callback একটি ফাংশনের জন্য একটি asynchronous সমতূল্য । একটি কলব্যাক ফাংশন একটি নির্দিষ্ট কাজের শেষে সাধারনত কল করা হয়ে থাকে । Node.js এ callback ফাংশন প্রচুর পরিমানে ব্যবহার হয়ে থাকে । Node.js এর সকল API গুলি এমনাভাবে তৈরী করা হয়েছে যাতে করে তারা callbacks সমর্থন করে ।

উদাহরণস্বরূপ, একটি ফাইল পড়ার ফাংশন ফাইল পড়ার পর আবার আগের জায়গায় ফিরে আসে যাতে করে পরবর্তী নির্দেশ execute করতে পারে । ফাইলটি পড়ার পর ফাইলের কন্টেন্ট প্যারামিটার হিসেবে callback ফাংশন এ আসবে । এই কারনেই Node.js এত জনপ্রিয় কারন এটি কোন ধরনের ফাংশন call ছাড়াই অনেক request প্রক্রিয়া করতে পারে ।

 

উদাহরণ (Blocking Code)

input.txt নামে একটি ফাইল তৈরী করুন এবং তাতে নিম্নের text টি copy/paste করে দিন ।


Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!


একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


 var fs = require("fs");

 var data = fs.readFileSync('input.txt');

 console.log(data.toString());
 console.log("Program Ended");

এখন main.js ফাইলটি রান করান


$ node main.js


নিম্নের আউটপুট দেখুন


Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
Program Ended


 

 

উদাহরণ (Non-Blocking Code)

.txt নামে একটি ফাইল তৈরী করুন এবং তাতে নিম্নের text টি copy/paste করে দিন ।


Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!


 

 

main.js এ নিম্নের কোড copy/paste করে দিন


var fs = require("fs");

 fs.readFile('input.txt', function (err, data) {
        if (err) return console.error(err);
        console.log(data.toString());
 });
console.log("Program Ended");

 

 

এখন main.js ফাইলটি রান করান


$ node main.js


নিম্নের আউটপুট দেখুন


Program Ended
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!


 

 

এই দুটি উদাহরণ Blocking এবং Non-Blocking Code ধারণার ব্যাখ্যা করে । প্রথম উদাহারনে, প্রথমে ফাইল পড়ে এবং ফাইল পড়া শেষ হলে বাকি কোড execute করে । অন্যদিকে দ্বিতীয় উদাহারনে ফাইল পড়া শেষ হওয়ার আগেই অন্যান্য কোড execute করে ফেলে । এইভাবেই Blocking কোড sequencely program রান করে থাকে অন্যদিকে Non-Blocking Code sequencely program রান করে না ।

http://www.tutorialspoint.com/nodejs/nodejs_callbacks_concept.htm

এজাইলের বৈশিষ্ট্য (Features of Agile)

রিদওয়ান বিন শামীম

 

বেশিরভাগ এজাইল ডেভলাপমেন্ট পদ্ধতি কোনও সমস্যা সমাধানের সময় এটিকে ছোট ছোট টাস্কে ভাগ করে নেয়।

কোনও প্রকল্পের জন্যই সরাসরি কোনও দীর্ঘমেয়াদী পরিকল্পনা থাকে না।

পুনরাবৃত্তিমূলক বিষয়গুলো স্বল্পমেয়াদী যেমন ১ থেকে ৪ সপ্তাহের মেয়াদে পরিকল্পনা করা হয়।

প্রতিটা পুনরাবৃত্তিমূলক বিষয়ের জন্য একটি করে ক্রস ফাংশনাল টিম তৈরি করা হয় যা সফটওয়ার ডেভলাপমেন্টের সকল ধাপ যেমন পরিকল্পনা, রিকোয়ারমেন্ট বিশ্লেষণ, ডিজাইন, কোডিং, ইউনিট টেস্টিং এবং এক্সেপটেন্স টেস্টিং করে থাকে।

তাই প্রতিটা পুনরাবৃত্তিমূলক বিষয়ের ফলাফল হয় ওয়ার্কিং প্রোডাক্ট, এবং প্রতিটা পুনরাবৃত্তিমূলক ধাপের পর অংশীদারদের এর অবস্থান বুঝিয়ে দেয়া হয়।

এর পরে রিভিউ কমেন্ট গ্রহণ করা হয় এবং কর্মক্ষম সফটওয়ারের জন্য এর সংশ্লিষ্টতা যাচাই করে দেখা হয়।

 

মুখোমুখি যোগাযোগ

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

একটি ইনফরমেশন রেডিয়েটর যা কিনা একটি ফিজিকাল ডিসপ্লে, অফিসে সুস্থিতভাবে বসানো থাকে, যার মাধ্যমে যে কেউ এজাইল টিমের অগ্রগতি সম্পর্কে জানতে পারে। এই ইনফরমেশন রেডিয়েটর প্রকল্পের সর্বশেষ অবস্থা নির্দেশ করে থাকে।

 

ফিডব্যাক লুপ

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

 

এজাইলঃ ডেইলি স্ট্যান্ডআপ । Agile Daily Stand Up

রিদওয়ান বিন শামীম

 

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

 

ডেইলি স্ট্যান্ডআপ আসলে কী

এটি মূলত এজাইল টিমের সকল সদস্যদের মধ্যে দৈনিক স্ট্যাটাস মীটিং আর সাধারণত ১৫ মিনিট স্থায়ী হয়। প্রত্যেক সদস্যকে তিনটি গুরুত্বপূর্ণ প্রশ্নের উত্তর দিতে হয়,

  • আমি গতকাল কী করেছি?
  • আগামীকাল কী করছি?
  • কোনও বাধা বিপত্তি আছে কিনা

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

 

ডেইলি স্ট্যান্ডআপ কেন গুরুত্বপূর্ণ

এজাইল ডেইলি স্ট্যান্ডআপের কিছু সুবিধা আছে,সেগুলো হল,

  • টিম দৈনন্দিন অগ্রযাত্রা সম্পর্কে অবহিত থাকে, পর্যায়বৃত্তিক ধাপের প্ল্যানমত কাজ এগুচ্ছে কিনা তা জানা যায়
  • প্রত্যেক সদস্য তার লক্ষ্য সম্পর্কে বাকিদের জানায়
  • কোনও বিলম্ব বা বাধা থাকলে তা দৃশ্যমান হয়

 

ডেইলি স্ট্যান্ডআপে কে কে থাকেন

  • স্কাম মাস্টার, প্রোডাক্ট ওনার, ডেলিভারি টিম দৈনিক ভিত্তিতে উপস্থিত থাকেন
  • অংশীদার ও গ্রাহকদের উপস্থিত থাকতে উৎসাহিত করা হয়
  • প্রত্যেক সদস্যের অনুসন্ধান ও সমস্যার বিষয়ে নোট নেয়ার দায়িত্ব স্কাম মাস্টারের

 

ভৌগলিকভাবে বিচ্ছুরিত টিমের ক্ষেত্রে

ডেইলি স্ট্যান্ডআপ বিভিন্নভাবে হতে পারে, ভিন্ন টাইম জোনে অবস্থিত সদস্যদের জন্য যা করনীয়ঃ

  • রোটেশনভিত্তিক একজন সদস্য নির্বাচন করতে হবে যে ভিন্ন টাইম জোনে অবস্থিত সদস্যদের নিয়ে মীটিং করতে পারবে
  • প্রতি টিমের জন্য ভিন্ন স্ট্যান্ডআপ মীটিঙের আয়োজন করা এবং রেলি, শেয়ার পয়েন্ট বা উইকির মত মাধ্যমে স্ট্যাটাস আপডেট রাখা,
  • অনেক ধরনের কমুনিকেশন টুল প্রস্তুত রাখা ইত্যাদি।

 

jQuery শুরু করা

আপনার ওয়েব পেজ এ jQuery যোগ করা

আপনার ওয়েব পেজ এ jQuery শুরু করার জন্য বেশ কিছু উপায় রয়েছে:

  • jQuery.com ওয়েব পেজ থেকে jQuery লাইব্রেরি ডাউনলোড করে
  • CDN যেমন-Google থেকে jQuery অন্তর্ভুক্ত করে।

 

jQuery ডাউনলোড করা

ডাউনলোড করার জন্য jQuery এর দুটি ভার্সন রয়েছে:

  • উৎপাদন সংস্করণ – এটি আপনার লাইভ (ওয়েবে সচল) ওয়েব সাইটের জন্য ছোট (সংক্ষিপ্ত) এবং সংকুচিত (compressed)
  • উন্নয়ন সংস্করণ এটি ওয়েব সাইট পরীক্ষা এবং উন্নয়ন করার জন্য (সংকুচিত নয় এবং পাঠযোগ্য কোড)।

দুটি ভার্সনই jQuery.com থেকে ডাউনলোড করা যাবে।

JQuery লাইব্রেরি একটি একক জাভাস্ক্রিপ্ট ফাইল এবং আপনি এটি HTML <script> ট্যাগ দ্বারা প্রকাশ করতে পারবেন। (<script> ট্যাগ <head> এর ধারা ভিতরে হওয়া উচিত)


<head>
<script src="jquery-1.11.3.min.js"></script>
</head>

 

টিপস: ডাউনলোড করা ফাইলটি আপনার পেজের একই ডাইরেকটরি (ফোল্ডার) এ রাখুন।

 

আপনি কি ভয় পাচ্ছেন যে কেন <script> ট্যাগ এর ভিতরে type=”text/javascript” টাইপ করি না!

HTML5 এ এর কোন প্রয়োজন নেই। HTML5 এ জাভাস্ক্রিপ্ট ডিফল্ট স্ক্রিপ্টিং ল্যাঙ্গুয়েজ এবং সকল আধুনিক ব্রাউজারে।

 

jQuery CDN

যদি আপনি JQuery ডাউনলোড এবং হোস্ট করতে না চান, তাহলে আপনি CDN (কনটেন্ট ডেলিভারি নেটওয়ার্ক) jQuery অন্তর্ভুক্ত করে দিতে পারেন।

Google এবং Microsoft উভয়ই jQuery হোস্ট করে।

Google অথবা Microsoft থেকে হোস্ট করতে চাইলে নিচের যেকোন একটি প্রয়োগ করুন :

Google CDN:


<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">
</script>
</head>

 

Microsoft CDN:


<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.min.js"></script>
</head>

 

 

Google অথবা Microsoft এ হোস্ট করার একটি বড় সুবিধা হচ্ছে:

এতোমধ্যে প্রচুর সংখ্যক ব্যবহারকারী Google অথবা Microsoft থেকে jQuery ডাউনলোড করেছে। ফলে আপনার সাইট দেখার সময় এটি এটা ক্যাশ থেকে লোড হবে, যা দ্রুত লোড হওয়ার সময় এর উপর প্রভাব ফেলে। অধিকাংশ CDN নিশ্চিত করে যে, যখন কোন ব্যবহারকারী কোন ফাইল এর জন্য অনুরোধ করবে তখন তা সবচেয়ে কাছের সার্ভার থেকে লোড হবে, যা দ্রুত লোড হওয়ার সময় এর উপর প্রভাব ফেলে।

এজাইল পদ্দতিতে সম্পাদিত (done) এর সংজ্ঞাঃ The definition of done for User Story, Iteration, and Release

রিদওয়ান বিন শামীম

 

ইউজার স্টোরি, পুনরাবৃত্তিক ধাপ ও রিলিজের ক্ষেত্রে সম্পাদিত (done) এর সংজ্ঞা নিচে দেয়া হল,

ইউজার স্টোরি

ইউজার স্টোরি হল এক ধরনের রিকোয়ারমেন্ট যা ব্যবহারকারীর সহজাত বর্ণনায় কয়েক লাইনে বিবৃত হয় ও একটি পুনরাবৃত্তিক ধাপে সম্পন্ন হয়। একটি ইউজার স্টোরি তখনই সম্পন্ন বা ডান(done) হবে যখন

  • সংশ্লিষ্ট সব কোড অন্তর্ভুক্ত হয়েছে,
  • সব ইউনিট টেস্ট কেস পার হয়েছে,
  • সব এক্সেপ্টেন্স টেস্ট কেস পার হয়েছে,
  • হেল্প টেক্সট লেখা হয়েছে,
  • প্রোডাক্ট ওনার স্টোরিটাকে গ্রহণ করেছে।

পুনরাবৃত্তিক ধাপ

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

  • প্রোডাক্ট ব্যাকআপ সম্পন্ন
  • পারফর্মেন্স পরীক্ষিত
  • ইউজার স্টোরিগুলো গৃহীত ও পরবর্তী ধাপে পাঠানো হয়ে গেছে
  • ত্রুটি  সারানো হয়ে গেছে অথবা পরবর্তী ধাপের জন্য স্থগিত করা হয়েছে

রিলিজ

রিলিজ একটি বড় মাইলস্টোন যা প্রকল্পের আভ্যন্তরীণ বা বাইরে উৎপাদন, টেস্টকৃত ভার্সন ইত্যাদি বোঝায়। একটি রিলিজ তখনি সম্পন্ন হবে যখন,

  • সিস্টেমে স্ট্রেস টেস্ট করা হয়ে গেছে,
  • পারফর্মেন্স যাচাই করা হয়েছে,
  • সিকিউরিটি ভ্যালিডেশন হয়ে গেছে,
  • দুর্যোগ ব্যবস্থাপনা পরিকল্পনা যাচাই করা হয়েছে।

 

ডিএনএন ৮.০ ডেভলপার কুইক স্টার্ট

রিদওয়ান বিন শামীম

 

ডিএনএন ৮.০ ডেভলপার একটি প্রক্রিয়াধীন বিষয় যেহেতু ৮.০.০ ভার্সনটি ২০১৫ এর নভেম্বরের আগে বাজারে আসছে না।

 

পরিকল্পনার অন্তর্ভুক্ত বিষয়

 

প্রধান সংস্করণ, এমভিসি মডিউলের উন্নতি, এইচটিএমএল সিঙ্গেল পেজ এপ্লিকেশন মডিউল(এসপিএ), ডাইনামিক কন্টেন্ট ক্রিয়েটর, ডট নেট ৪.৫ রিকোয়ারমেন্ট, প্লাটফর্ম ও ইউআই সেপারেশন।

 

ইস্যু লিঙ্ক

আলোচ্য ইস্যুর তালিকার লিঙ্ক নিচে দিয়ে দেয়া হল।

https://dnntracker.atlassian.net/browse/DNN-7725?jql=project%20%3D%20DNN%20AND%20fixVersion%20%3D%20%22Platform%208.0.0%22%20ORDER%20BY%20updated%20DESC%2C%20priority%20DESC%2C%20created%20ASC

 

অপরিহার্য যে বিষয়গুলোয় পরিবর্তন থাকতে পারে,

ডিএনএন ৮.০ এর জন্য ডট নেট ৪.৫ বা এরচেয়ে আধুনিক কোনও সংস্করণ লাগবে, কারণ এএসপি ডটনেট ওয়েব এপিআই ২.১.১ লাগবে এবং এমভিসি ৫.১.১ লাগবে কিছু ওয়েব এপিআই ভিত্তিক কাজের জন্য। মনে রাখতে হবে, newtownsoft.dll (json.net) ও ৪.৫.১১ তে উন্নীত হয়েছে।

 

ডিএনএন ৮.০ এর ব্রেকিং চেঞ্জ গুলো হলঃ

  • নিষ্কাশিত ও মুছে ফেলা মডিউল,
  • ন্যাভিগেশন প্রভাইডার
  • ইউআরএল রাউটিং মডিউল
  • সাইটকে ডব্লিওএসপি থেকে ডব্লিওএপিতে পরিবর্তন
  • লেগাসি এপসেটিং কানেকশন স্ট্রিং মুছে ফেলা

 

কমিউনিটি টেকনোলজি প্রিভিউ

সিটিপি ওয়ান ব্লগঃ http://www.dnnsoftware.com/community-blog/cid/155181/two-great-frameworks-that-work-great-together

সিটিপি থ্রী ব্লগঃ http://www.dnnsoftware.com/community-blog/cid/155256/dnn-800-ctp-3

সিটিপি ওয়ান ব্লগঃ http://www.dnnsoftware.com/community-blog/cid/155262/dnn-800-ctp-4

 

 

এসপিএ মডিউল

এসপিএ

এসপিএ বা সিঙ্গেল পেজ এপ্লিকেশন হল ওয়েব দুনিয়ার একটি অভিজাত বিষয়। এবিষয়ে জানতে পারেন এখান থেকে, http://www.dnnsoftware.com/community-blog/cid/155223/spa-a-dnn-first-class-citizen

ডিএনএন ৮.০ এ মডিউল ডেভলাপমেন্ট

১) এমভিসি মডিউলের সূচনাঃ ডিএনএন ৮.০ সিটিপি ব্যবহার করে। সিটিপি এএসপি ডট নেট এমভিসি ফ্রেমওয়ার্ক ব্যবহার করে তৈরিকৃত মডিউলের জন্য আপডেটকৃত সাপোর্ট ধারণ করে, যা এইচটিএমএল ৫ ভিত্তিক মডিউলের জন্যও সাপোর্ট হিসেবে ব্যবহৃত হয়। আরও বিস্তারিত জানতে দেখুন, http://www.dnnsoftware.com/community-blog/cid/155216/module-development-in-dnn-8-1-introduction-to-mvc-modules

ডিএনএন ৮.০ এ মডিউল ডেভলাপমেন্ট

২) প্রথম এমভিসি একশন/ ভিউ তৈরি করাঃ এমভিসি একশনে কোনও সাইটের কন্টাক্ট ম্যানেজের জন্য মডিউল তৈরি করা হয়। কোনও কন্টাক্টে পাঁচটি সাধারণ বৈশিষ্ট্য থাকে, ফার্স্ট নেম, লাস্ট নেম, ইমেইল এড্রেস, ফোন নাম্বার, টুইটার হ্যান্ডেল। এখান থেকে বিষয়টি জানা যেতে পারে, http://www.dnnsoftware.com/community-blog/cid/155219/module-development-in-dnn-8-2–creating-your-first-mvc-actionview

 

ডিএনএন ৮.০ এ মডিউল ডেভলাপমেন্ট

৩) এসপিএ মডিউলের সূচনাঃ ডিএনএন ৮.০ এএসপি ডট নেট এমভিসি মডিউলের সাথে এসপিএ বা সিঙ্গেল পেজ এপ্লিকেশন মডিউল সাপোর্ট করে,যা কিনা ওয়েব সার্ভারে এএসপি ডটনেট ওয়েব এপিআই ভিত্তিক ওয়েব সার্ভিসের সমন্বয়ে এইচটিএমএল, জাভাস্ক্রিপ্ট ও সিএসএসের মাধ্যমে ডেভলাপ করা হয়েছে।এবিষয়ে বিস্তারিত আছে এখানে, http://www.dnnsoftware.com/community-blog/cid/155221/module-development-in-dnn-8-3–introduction-to-spa-modules

 

ডিএনএন ৮.০ এ মডিউল ডেভলাপমেন্ট

৪) এমভিসি মডিউলের লোকালাইজেশন সাপোর্টঃ ডিএনএন ৮.০ এএসপি ডট নেট এমভিসি ৫.১ ভার্সন বা এর পরবর্তী ভার্সনগুলো দ্বারা মডিউল তৈরিতে সমর্থন করে।এখান থেকে বিষয়টি দেখে নেয়া যেতে পারে, http://www.dnnsoftware.com/community-blog/cid/155246/module-development-in-dnn-8-4–localization-support-for-mvc-modules

 

ডিএনএন ৮.০ এ মডিউল ডেভলাপমেন্ট

৫) পিওর এসপিএ তৈরিতে সাপোর্ট হিসেবে নিউ টোকেনঃ জাভাস্ক্রিপ্ট ও সিএসএস ফাইল রেজিস্টারের জন্য দুটি নতুন টোকেন যোগ করতে হয়েছে, যা পূর্বের টোকেন থেকে আলাদা।এখানে আরও বিস্তারিত জানার সুযোগ থাকছে, http://www.dnnsoftware.com/community-blog/cid/155247/module-development-in-dnn-8-5–new-tokens-to-support-building-pure-spa-modules

 

ডিএনএন ৮.০ এ মডিউল ডেভলাপমেন্ট

৬) এমভিসি ও এসপিএতে মডিউল একশন নিয়ন্ত্রণ করাঃ মডিউলএকশন এট্রিবিউট ও মডিউলএকশন আইটেমস এট্রিবিউট এদুটির সাহায্য নিয়ে এমভিসি ও এসপিএতে মডিউল একশন নিয়ন্ত্রণ করা হয়।

ডিএনএন ৮.০ এ মডিউল ডেভলাপমেন্টের ভিডিও দেখুন এখান থেকে, https://www.youtube.com/watch?v=UJ02-GTNGmI

 

এইচএমএসি

সার্ভিস ফ্রেমওয়ার্কের এগেইন্সটে রিমোটলি অথেনটিকেশনঃ সার্ভিস ফ্রেমওয়ার্কের এগেইন্সটে রিমোটলি অথেনটিকেশন সম্পর্কে বিস্তারিত দেখুন এখানে, http://dnn-connect.org/2015/all-sessions/details/mobile-authentication

 

ইনক্রিমেন্টাল আপগ্রেড

ডিএনএন প্লাটফর্ম 7.4.2 Beta ও প্লাটফর্ম 8.0 CTP 3 থেকে শুরু করে ডিএনএন ইনক্রিমেন্টাল আপগ্রেডের সক্ষমতাকে সমর্থন করে। এবিষয়ে বিস্তারিত জানতে দেখুন, http://www.dnnsoftware.com/community-blog/cid/155263/baby-steps

 

ডাইনামিক কন্টেন্ট ক্রিয়েটর

এক্ষেত্রে কাজ করতে এডমিন মেন্যু থেকে ডাইনামিক কন্টেন্ট টাইপ ম্যানেজার এরিয়াতে যেতে হয়। এই লিঙ্ক থেকে বিষয়টি সম্পর্কে আরও ভালমত জানা যাবে। http://www.dnnsoftware.com/community-blog/cid/155270/announcing-the-dynamic-content-creator

 

Node.js – সার্বজনীন অবজেক্ট (Global Objects)

মোহাম্মদ আব্দুল্লাহ

Node.js এর গ্লোবাল অবজেক্টগুলো সাধারনত সকল মোডিউল থেকে সরাসরি একসেস করা যায় । তাই এই গ্লোবাল অবজেক্টগুলোকে কোন অ্যাপ থেকে অন্তর্ভূক্ত করতে হয় না । এই গ্লোবাল অবজেক্টগুলো সাধারনত মোডিউল, ফাংশন, স্ট্রীং অথবা অবজেক্টও হয়ে থাকে যা নিম্নে ব্যাখ্যা করা হয়েছে ।

__filename

__filename, যেই ফাইল থেকে কোড রান করা হচ্ছে সেই ফাইলের নাম প্রকাশ করে থাকে । এটি কোড ফাইলের সম্পূর্ণ পথ প্রিন্ট করে থাকে ।

উদাহরণ
একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


console.log( __filename );

 

এখন main.js ফাইলটি রান করান


$ node main.js

 

আপনার প্রোগ্রামের সঠিক অবস্থান অনুযায়ী নিম্নের ফাইল নাম প্রকাশ করবেঃ


/web/com/1427091028_21099/main.js

 

__dirname

__dirname সাধারনত যেই ডিরেক্টরী থেকে স্ক্রীপ্ট রান করা হচ্ছে ওই ডিরেক্টরীর নাম প্রকাশ করে থাকে ।

উদাহরণ
একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


console.log( __dirname );

 

এখন main.js ফাইলটি রান করান


$ node main.js

 

আপনার প্রোগ্রামের সঠিক অবস্থান অনুযায়ী নিম্নের ডিরেক্টরীর নাম প্রকাশ করবেঃ


/web/com/1427091028_21099

 

 

setTimeout(cb, ms)

setTimeout(cb, ms) গ্লোবাল ফাংশন দিয়ে অন্তত ‘ ms ‘ মিলিসেকেন্ড বিলম্বে কলব্যাক ফাংশন ‘ cb ‘ কে কল করা হয়ে থাকে । এই বিলম্ব কিছু বাহ্যিক ফাক্টর এর উপর নির্ভরশীল উদাহারন স্বরুপ OS timer granularity এবং system load । একটি টাইমারের ব্যাপ্তি ২৪.৮ দিনের বেশী হতে পারবে না ।

উদাহরণ
একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


function printHello(){
     console.log( "Hello, World!");
 }
 // Now call above function after 2 seconds
 setTimeout(printHello, 2000);

 

এখন main.js ফাইলটি রান করান


$ node main.js

 

যাচাই করে দেখুন আউটপুট কিছুটা বিলম্বে আসছে কিনা


Hello, World!

 

clearTimeout(t)

clearTimeout( t ) গ্লোবাল ফাংশন দিয়ে পূর্বে setTimeout(cb, ms) দিয়ে যেই টাইমার সেট করা হয়েছে তা বন্ধ করতে ব্যবহার করা হয় ।

উদাহরণ
একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


function printHello(){
       console.log( "Hello, World!");
 }
 // Now call above function after 2 seconds
 var t = setTimeout(printHello, 2000);
 // Now clear the timer

 

clearTimeout(t)

এখন main.js ফাইলটি রান করান


$ node main.js

যাচাই করে দেখুন আউটপুটে কিছু প্রিন্ট করছে কিনা

 

setInterval(cb, ms)

setInterval(cb, ms) দিয়ে অন্তত ‘ ms ‘ মিলিসেকেন্ড বিলম্বে বারবার কলব্যাক ফাংশন ‘ cb ‘ কে কল করতে থাকে । এই বিলম্ব কিছু বাহ্যিক ফাক্টর এর উপর নির্ভরশীল উদাহারন স্বরুপ OS timer granularity এবং system load । একটি টাইমারের ব্যাপ্তি ২৪.৮ দিনের বেশী হতে পারবে না ।

একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


function printHello(){
     console.log( "Hello, World!");
 }
 // Now call above function after 2 seconds
 setInterval(printHello, 2000);

 

এখন main.js ফাইলটি রান করান


$ node main.js


উপরের প্রোগ্রামটি প্রতি ২ সেকেন্ড পরপর printHello() ফাংশন কে কল করতে থাকবে ।

 

পিএইচপিঃ ইন্টারভিউয়ের প্রশ্নাবলী এবং উত্তরসমূহ। PHP Interview Questions and Answers

রিদওয়ান বিন শামীম

 

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

যে প্রশ্নগুলো সাধারণত আলোচনায় এসে থাকে সেগুলো হল,

পিএইচপি কী?

পিএইচপির মাধ্যমে হাইপারটেক্সট প্রিপ্রসেসর বোঝায়, এটি একটি সার্ভারসাইড স্ক্রিপ্টিং ল্যাঙ্গুয়েজ যা এইচটিএমএলের সাথে কাজ করে। ডাইনামিক কন্টেন্ট, ডাটাবেস, সেশন ট্র্যাকিং এমনকি সম্পূর্ণ ইকমার্স সাইট তৈরিতে এটি ব্যবহার হতে পারে।

 

পিএইচপির সাধারণ ব্যবহারগুলি কি কি?

পিএইচপি যে ধরনের কাজ সাধারণত করে থাকে সেগুলো হল,

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

 

কতগুলো উপায়ে আপনি এইচটিএমএল পেজে পিএইচপি কোড এমবেড করতে পারেন?

তিনটি মার্কআপ ট্যাগ আছে যা পিএইচপি পারসার অনুমোদিত, সমস্ত পিএইচপি কোড অবশ্যই এদের যেকোন একটির মাধ্যমে অন্তর্ভুক্ত হবে।


<?php PHP code goes here ?>
<?    PHP code goes here ?>
<script language="php"> PHP code goes here </script>
Most common tag is the <?php...?>

সবচেয়ে কমন ট্যাগ হল<?php…?>।

 

php.ini  ফাইলের উদ্দেশ্য কী?

এটি  পিএইচপি কনফিগারেশন ফাইল, পিএইচপির ফাংশনালিটিতে প্রভাব বিস্তারের চূড়ান্ত ও সবচেয়ে কার্যকর পদ্ধতি। অন্য ওয়ার্ডে পিএইচপি শুরু হওয়ার সময়, মডিউল ভার্সনের জন্য httpd রিস্টার্টের সময়, অথবা CGI ভার্সনের জন্য স্ক্রিপ্ট সম্পাদনের সময় php.ini ফাইল পড়া হয়। কাঙ্খিত পরিবর্তন দৃশ্যমান না হলে থেমে আবার httpd  রিস্টার্ট করতে হয়। এরপরও কাঙ্খিত পরিবর্তন দৃশ্যমান না হলে phpinfo() দ্বারা php.ini এর পাথ চেক করতে হবে।

 

এস্কেপিং টু পিএইচপি কী?

কোনও পেজের অন্যসব উপাদান থেকে পিএইচপি কোডকে আলাদা করার ক্ষেত্রে পিএইচপি পারসিং এঞ্জিনের একটি উপায় দরকার হয়। সেই কৌশলকে ‘এস্কেপিং টু পিএইচপি’ বলা হয়।

 

পিএইচপিকে হোয়াইটস্পেস ইনসেনসিটিভ বলা হয়, এবিষয়ে কি জানেন?

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

 

পিএইচপি কি কেস সেনসিটিভ ভাষা?

হ্যাঁ।

 

পিএইচপি ভেরিয়েবলের গুরুত্বপূর্ণ বৈশিষ্ট্য কী?

পিএইচপি ভেরিয়েবলকে লিডিং ডলার সাইন ($) দ্বারা প্রকাশ করা হয়, ভেরিয়েবলের মান হল সর্বশেষ এসাইনমেন্টের মান। ভেরিয়েবল = অপারেটর দ্বারা এসাইন থাকে।

 

বিভিন্ন ধরনের পিএইচপি ভেরিয়েবলগুলো কী কী?

পিএইচপিতে আট ধরনের ডাটা টাইপ আছে যাদের আমরা ভেরিয়েবল হিসেবে ব্যবহার করতে পারি। এরা হল ইন্টেজার,ডাবলস, বুলিয়ান, নাল, স্ট্রিং , অ্যারি, অবজেক্ট, রিসোর্স।

 

পিএইচপি ভেরিয়েবলের নামকরণের নিয়ম কী?

ভেরিয়েবলের নাম লেটার বা আন্ডারস্কোর দিয়ে শুরু হবে, ভেরিয়েবলের নামের মধ্যে লেটার, আন্ডারস্কোর বা নাম্বার থাকতে পারে কিন্তু + , – , % , ( , ) . &, এসব চিহ্ন থাকতে পারবে না।

 

কোনও ভেরিয়েবল বুলিয়ান টাইপের না- এর সত্যতা  নিশ্চিত হতে কী নিয়ম আছে?

যদি এর মান সংখ্যা হয় তবে শূন্যের সমান  হলে মিথ্যা, অন্য আরকিছু হলে সত্য হবে। এর মান স্ট্রিং হয় তবে এটি খালি হলে অর্থাৎ স্ট্রিং “0” হলে মিথ্যা, অন্য আরকিছু হলে সত্য হবে। নাল টাইপের ভ্যালু সব সময় মিথ্যা। যদি এর মান অ্যারি হয় তবে অন্য কোনও মান বহন না করলে মিথ্যা, নতুবা সত্য হবে। অবজেক্টের ক্ষেত্রে তবে অন্য কোনও মান বহন করা মানে সদস্য ভেরিয়েবল থাকা যা কিনা কোনও মান বিবৃত করে। ভ্যালিড রিসোর্স সত্য। ডাবলসকে বুলিয়ান হিসেবে ব্যবহার করা যাবে না।

 

নাল কী?

নাল একটি বিশেষ শ্রেণীর ভেরিয়েবল যার মাত্র একটি মান থাকে।

 

পিএইচপিতে  ধ্রুবককে কীভাবে বিবৃত করবেন?

define() ফাংশন ব্যবহার করে পিএইচপিতে  কোনও ধ্রুবককে বিবৃত করা যায়, পুনরায় কোনও মানকে ফিরিয়ে আনতে এর নাম স্পেসিফাই করতে হয়।

 

constant() ফাংশনের কাজ কী?

এটি ধ্রুবকের মান ফিরিয়ে আনে। পুনরায় কোনও মানকে ফিরিয়ে আনার ক্ষেত্রে নাম না জানা থাকলে এই ফাংশন কাজে লাগে।

 

constant() ফাংশনের উদাহরণ দিন।


<?php
define(“MINSIZE”, 50);
echo MINSIZE;
echo constant(“MINSIZE”); // same thing as the previous line
?>


ধ্রুবকে কেবল স্কেলার ডাটা থাকতে পারে।

 

পিএইচপি ধ্রুবক ও চলকের মধ্যে পার্থক্য কী?

ধ্রুবকের আগে ডলার সাইন($)লেখার দরকার আছে, কিন্তু চলকের আগে দরকার নাই।ধ্রুবক  define() ফাংশন ছাড়া বিবৃত হতে পারে না, এটি যেকোনো স্থানে চলক সংক্রান্ত নিয়ম ছাড়াই বিবৃত ও অন্তর্ভুক্ত হতে পারে।

 

পিএইচপি ম্যাজিক কন্সটেন্ট কী?

পিএইচপি যেকোনো স্ক্রিপ্টে পূর্বনির্ধারিত অনেক ধ্রুবক ব্যবহার করে। এদের পিএইচপি ম্যাজিক কন্সটেন্ট বলে।

 

_LINE_ কন্সটেন্টের কাজ কী?

এটি ফাইলের বর্তমান লাইনের অবস্থান নির্দেশ করে।

 

_FILE_ কন্সটেন্টের কাজ কী?

এটি ফাইলের ফুল পাথ ও ফাইলনেম নির্দেশ করে।

 

_FUNCTION_ কন্সটেন্টের কাজ কী?

এটি ফাইলের ফাংশন নেম নির্দেশ করে।

 

_CLASS_ কন্সটেন্টের কাজ কী?

এটি ফাইলের ক্লাস নেম নির্দেশ করে।

 

_METHOD_ কন্সটেন্টের কাজ কী?

এটি ফাইলের ক্লাস মেথডের  নেম নির্দেশ করে।

 

ব্রেক স্টেটমেন্টের কাজ কী?

ব্রেক ‘ফর লুপ’ ও সুইচ স্টেটমেন্টকেকে টারমিনেট করে।

 

কন্টিনিউ স্টেটমেন্টের কাজ কী?

কন্টিনিউ রিমাইন্ডার স্কিপ করার জন্য লুপ তৈরি করে এবং পুনরাবৃত্তির প্রেক্ষিতে এর কন্ডিশন নিরীক্ষণ করে।

 

‘foreach’ লুপের জন্য সিনট্যাক্স ব্যাখ্যা করুন?

‘foreach’ স্টেটমেন্ট অ্যারির মাধ্যমে লুপ তৈরি করে সহায়তা করে। এর সিনট্যাক্স হল,


foreach (array as value)
{
    code to be executed;
}

 

নিউমেরিক অ্যারি কী?

নিউমেরিক অ্যারি একধরনের অ্যারি যাতে নিউমেরিক ইনডেক্স আছে। লিনিয়ার ফ্যাশনে মান সংরক্ষণ ও এতে প্রবেশ করা যায়।

 

এসোসিয়েট অ্যারি কী?

এসোসিয়েট অ্যারি একধরনের অ্যারি যাতে ইনডেক্স হিসেবে স্ট্রিং ব্যবহৃত হয়। এটি মান সংশ্লিষ্ট উপাদানকে লিনিয়ার ইনডেক্স অর্ডারের পরিবর্তে কী-ভ্যালুর সমন্বয়ে সংরক্ষণ করে।

 

মাল্টিডাইমেন্সনাল অ্যারি কী?

এই অ্যারি একধরনের অ্যারি যাতে মাল্টিপল ইনডাইস ব্যবহার করে এক বা একাধিক অ্যারি ও মান অন্তর্ভুক্ত করা হয়।

 

পিএইচপিতে দুটি স্ট্রিংকে কীভাবে পরপর সমন্বয় করা যায়?

ডট অপারেটর (.) ব্যবহার করে এটি করা যায়,


<?php
$string1="Hello World";
$string2="1234";
echo $string1 . " " . $string2;
?>

যা থেকে আমরা এই ফলাফল পাব,

Hello World 1234

 

পিএইচপিতে কোনও স্ট্রিংএর লেন্থ বের করা যায় কীভাবে?

strlen() ফাংশন ব্যবহার করে আমরা এটি করতে পারি। যেমন “Hello world!” স্ট্রিংএর লেন্থ বের করা যাক,


<?php
echo strlen("Hello world!");
?>

যার ফলাফল পাব ১২।

 

পিএইচপিতে কোনও স্ট্রিংএর ভেতর অন্য কোনও স্ট্রিংএর অবস্থান কীভাবে সনাক্ত করা যাবে?

স্ট্রিংএর ভেতর অন্য কোনও স্ট্রিং বা ক্যারেক্টার খুঁজতে strpos() ফাংশন ব্যবহার করা হয়।


<?php
echo strpos("Hello world!","world");
?>

এটি ফলাফল দেখাবে, ৬।

 

পিএইচপিতে এনভায়রনমেন্ট ভেরিয়েবল কীভাবে পাবেন?

getenv() ফাংশন ব্যবহার করে আমরা পিএইচপিতে এনভায়রনমেন্ট ভেরিয়েবলের মান পাব।

 

পিএইচপিতে ব্রাউজারের ডিটেইল কীভাবে পাওয়া যাবে?

HTTP_USER_AGENT এই এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে ব্রাউজারের ডিটেইল পাওয়া যাবে।

 

পিএইচপিতে রেনডম নাম্বার কীভাবে জেনারেট করা যায়?

rand()ফাংশন ব্যবহার করে রেনডম নাম্বার জেনারেট করা যায়।

 

$_PHP_SELF ভেরিয়েবলের কাজ কী?

এটি স্ক্রিপ্ট নেমের জন্য ব্যবহৃত হয়, এটি প্রয়োগের পর “submit” বাটনে চাপলে একই স্ক্রিপ্ট পাওয়া যাবে।

 

পিএইচপিতে কোনও পেজ রিডাইরেক্ট করতে হলে কী করতে হবে?

header() ফাংশন ব্যবহার করে এটি করা যায়, এটি ব্রাউজারে র(raw) এইচটিটিপি হিডার সাপ্লাই করে এটি করে।

 

পিএইচপি ব্যবহার করে ফাইল ডাউনলোড ডায়ালগ বক্স কীভাবে দেখাতে পারবেন?

এইচটিটিপি হিডার মূল হিডার থেকে আলাদা হবে যেখানে আমরা কন্টেন্ট টাইপ হিসেবে text/html\n\n পাঠাই। এক্ষেত্রে কন্টেন্ট টাইপ application/octet-stream ভিত্তিক হবে এবং মূল কন্টেন্ট নেম এর সাথে ক্রমানুসারে এরসাথে সংযুক্ত থাকবে। যেমন, কোনও লিঙ্ক থেকে ডাউনলোডের উপযোগী FileName নামের ফাইল তৈরি করতে চাইলে এর সিনট্যাক্স হবে,


#!/usr/bin/perl
# HTTP Header
print "Content-Type:application/octet-stream; name=\"FileName\"\r\n";
print "Content-Disposition: attachment; filename=\"FileName\"\r\n\n";
# Actual File Content
open( FILE, "<FileName" );
while(read(FILE, $buffer, 100) )
{
   print("$buffer");
}

 

পিএইচপিতে গেট মেথডে তথ্য পাওয়ার উপায় কী?

পিএইচপিতে $_GET এসোসিয়েটিভ  অ্যারি ব্যবহার করে গেট মেথডে তথ্য পাওয়া যায়।

 

পিএইচপিতে পোস্ট মেথডে তথ্য পাওয়ার উপায় কী?

পিএইচপিতে $_POST এসোসিয়েটিভ  অ্যারি ব্যবহার করে গেট মেথডে তথ্য পাওয়া যায়।

 

$_REQUEST ভেরিয়েবলের কাজ কী?

$_REQUEST ভেরিয়েবল $_GET, $_POST,ও $_COOKIE এই সবগুলি ভেরিয়েবলের উপাদান সংরক্ষণ করে।

 

অ্যারি তৈরি করতে কোন ফাংশন ব্যবহার করবেন?

array() − এর মাধ্যমে অ্যারি তৈরি করা যায়।

 

কোনও অ্যারি সর্ট করতে হলে কোন কোড ব্যবহার করতে হবে?

অ্যারি সর্ট করতে sort() ব্যবহার করতে হবে

 

সিঙ্গেল কোটেড স্ট্রিং আর ডাবল কোটেড স্ট্রিংএর মধ্যে পার্থক্য কী?

সিঙ্গেল কোটেড স্ট্রিং আক্ষরিক ভাবে প্রয়োগ হয় যেখানে ডাবল কোটেড স্ট্রিং তাদের মান দ্বারা চলককে প্রতিস্থাপিত করে। যেমন,


<?php
$variable = "name";
$literally = 'My $variable will not print!\\n';
print($literally);
print "<br />";
$literally = "My $variable will print!\\n";
print($literally);
?>

 

এটি যে ফলাফল দেখাবে তা হল,

My $variable will not print!\n

My name will print

 

দুটি স্ট্রিং কীভাবে সমন্বয় অর্থাৎ কনক্যাটেনেট করবেন?

দুটি স্ট্রিং চলককে কনক্যাটেনেট করতে ডট অপারেটর ব্যবহার করতে হবে, যেমন,


<?php
$string1="Hello World";
$string2="1234";
echo $string1 . " " . $string2;
?>

এটি যে ফলাফল দেখাবে তা হল,

Hello World 1234

 

$_REQUEST ভেরিয়েবলের ব্যবহার কী?

পিএইচপি $_REQUEST ভেরিয়েবল $_GET, $_POST, ও $_COOKIE এসবের উপাদানকে ধারণ করে।

 

একটি পিএইচপি ফাইলের কন্টেন্টকে কীভাবে অন্য একটি পিএইচপি ফাইলে অন্তর্ভুক্ত করা যাবে?

দুটি ফাংশন ব্যবহার করে একটি পিএইচপি ফাইলের কন্টেন্টকে অন্য একটি পিএইচপি ফাইলে অন্তর্ভুক্ত করা যাবে,

include() ফাংশন ও require() ফাংশন

 

include()ফাংশন ও require()ফাংশনের মধ্যে পার্থক্য কী?

কোনও ফাইল লোডের সময় সমস্যা হলে require() ফাংশন ফেটাল এরর দেখায় এবং স্ক্রিপ্ট সম্পাদন থামিয়ে দেয় কিন্তু include() ফাংশন ওয়ার্নিং দিলেও স্ক্রিপ্ট সম্পাদন চালিয়ে যায়।

 

রিড অনলি মোডে ফাইল ওপেন করতে হলে কী করতে হবে?

পিএইচপি fopen() ফাংশন ব্যবহার করে এটি করা যাবে।

 

পিএইচপিতে কোনও ফাইল পড়তে কী করতে হবে?

fopen() ফাংশন দ্বারা ওপেন করা কোনও পিএইচপি ফাইলকে fread() ফাংশন দ্বারা পড়া যাবে। এক্ষেত্রে দুটি আর্গুমেন্টের প্রয়োজন হয়, ফাইল পয়েন্টার থাকতে হয় এবং ফাইলের লেন্থ বাইটে প্রকাশ করা হতে হবে।

 

কোনও পিএইচপি ফাইলের আকার কীভাবে জানা যাবে?

filesize() ফাংশন ব্যবহার করে।

 

কোনও ফাইল আছে না নেই তা পিএইচপিতে কীভাবে জানা যাবে?

file_exist() ফাংশন ব্যবহার করে কোনও ফাইলের অস্তিত্ব সম্পর্কে নিশ্চিত হওয়া যাবে।

 

ফাংশন প্যারামিটারে কি ডিফল্ট ভ্যালু আরোপ করা যাবে?

হ্যাঁ। ডিফল্ট ভ্যালু পেতে প্যারামিটার সেট করা যাবে যদি ফাংশনের কলার এটিকে পাশ না করে।

 

পিএইচপি ব্যবহার করে কীভাবে কুকিজ সেট করা যায়?

setcookie() ফাংশন ব্যবহার করে পিএইচপিতে কুকিজ সেট করা যায়।

setcookie(name, value, expire, path, domain, security);

 

পিএইচপিতে কীভাবে কুকিজ পাওয়া যায়?

বিভিন্নভাবে পাওয়া যায়, সবচেয়ে সহজ উপায় হল $_COOKIE বা $HTTP_COOKIE_VARSচলক ব্যবহার করে।

 

কোনও কুকিজ সেট করা আছে না নেই তা পিএইচপিতে কীভাবে জানা যাবে?

isset() ফাংশন ব্যবহার করে কোনও কুকিজ সেট করা আছে না নেই তা জানা যাবে।

 

কুকিজ কীভাবে ডিলিট করবেন?

কুকিজ ডিলিট করতে নামের আর্গুমেন্ট সহ setcookie() ফাংশন কল করতে হবে।

 

পিএইচপিতে সেশন শুরু করে কীভাবে?

সেশন শুরুর জন্য session_start() ফাংশন ব্যবহার করে কল করতে হয়।

 

পিএইচপিতে সেশন চলকে প্রবেশের জন্য কী করতে হবে?

সেশন চলক $_SESSION[] নামক এসোসিয়েটিভ অ্যারিতে সঞ্চিত থাকে। কোনও সেশনের সক্রিয় কালে এই চলকে প্রবেশ করা সম্ভব।

 

সেশন চলক সেট করা আছে না নেই তা পিএইচপিতে কীভাবে জানা যাবে?

isset() ফাংশন ব্যবহার করে সেশন চলক সেট করা আছে না নেই তা জানা যাবে।

 

একক সেশন চলককে আনসেট করতে কী করতে হবে?

একক সেশন চলককে আনসেট করতে নিচের মত করে কোড ব্যবহার করতে হবে,


<?php
   unset($_SESSION['counter']);
?>

 

পিএইচপিতে সেশন ডেস্ট্রয় করতে কি করা লাগে?

session_destroy() ফাংশন ব্যবহার করে এটি করা যায়।

 

পিএইচপিতে কীভাবে ইমেইল করা যায়?

mail() ফাংশন ব্যবহার করে পিএইচপিতে ইমেইল করা যায়। উদাহরণ দেয়া যাক,


mail( to, subject, message, headers, parameters );

 

 

পিএইচপিতে $_FILES চলকের কাজ কী?

এটি একটি বৈশ্বিক চলক, এটি দ্বিমাত্রিক অ্যারি এবং আপলোডকৃত ফাইলের সব তথ্য সঞ্চিত রাখে।

 

পিএইচপিতে আপলোডকৃত ফাইলে প্রবেশ করা যায় কেমন করে?

$_FILES[‘file’][‘tmp_name’] ফাংশন ব্যবহার করে। এটি ওয়েব সার্ভারের টেম্পোরারি ডিরেক্টরিতে আপলোডকৃত ফাইলে প্রবেশের ব্যবস্থা করে দেয়।

 

পিএইচপিতে আপলোডকৃত ফাইলের প্রকৃত নামে প্রবেশ করা যায় কেমন করে?

$_FILES[‘file’][‘name’]ফাংশন ব্যবহার করে।

 

পিএইচপিতে আপলোডকৃত ফাইলের সাইজে প্রবেশ করা যায় কেমন করে?

$_FILES[‘file’][‘size’] ফাংশন ব্যবহার করে।

 

পিএইচপিতে আপলোডকৃত ফাইলের কন্টেন্ট টাইপে প্রবেশ করা যায় কেমন করে?

$_FILES[‘file’][‘type’] ফাংশন ব্যবহার করে।

 

পিএইচপিতে আপলোডকৃত ফাইলের এরর কোডে প্রবেশ করা যায় কেমন করে?

$_FILES[‘file’][‘error’] ফাংশন ব্যবহার করে।

 

পিএইচপিতে $GLOBALSচলকের কাজ কী?

এই চলক স্ক্রিপ্টের গ্লোবাল স্কোপে অবস্থিত সব চলকের রেফারেন্স নির্দেশ করে।

 

পিএইচপিতে $_SERVER চলকের কাজ কী?

এটি এমন অ্যারি যা হিডার, পাথ এবং স্ক্রিপ্ট লোকেশন সম্পর্কে তথ্য সংরক্ষণ করে। ওয়েব সার্ভার এই অ্যারির এন্ট্রিগুলো তৈরি করে থাকে।

 

পিএইচপিতে $_COOKIE চলকের কাজ কী?

এটি সেইসব চলকের এসোসিয়েটিভ অ্যারি যারা এইচটিটিপি কুকিজ হয়ে কারেন্ট স্ক্রিপ্টে আসে।

 

পিএইচপিতে $_SESSION চলকের কাজ কী?

এরা সেইসব এসোসিয়েটিভ অ্যারি যারা কারেন্ট স্ক্রিপ্টে থাকা সেশন ভেরিয়েবল ধারণ করে।

 

পিএইচপিতে $_PHP_SELF চলকের কাজ কী?

এটি একটি স্ট্রিং যা পিএইচপি স্ক্রিপ্ট ফাইল নেম ধারণ করে।

 

পিএইচপিতে $php_errormsgচলকের কাজ কী?

এটি একটি চলক যা সর্বশেষ এরর ম্যাসেজের টেক্সট ধারণ করে ।

 

ereg()ফাংশন কীভাবে কাজ করে?

ereg()ফাংশন একটি স্ট্রিং খোঁজে,যা প্যাটার্ন দ্বারা নির্ধারিত। প্যাটার্ন পাওয়া গেলে ট্রু আর অন্য কিছু হলে ফলস দেখায়।

 

eregi()ফাংশন কীভাবে কাজ করে?

eregi()ফাংশন একটি স্ট্রিং খোঁজে,যা প্যাটার্ন দ্বারা নির্ধারিত।এই সার্চ কেস সেন্সেটিভ নয়।

 

split()ফাংশন কীভাবে কাজ করে?

split()ফাংশন স্ট্রিংকে বিভিন্ন অংশে বিভক্ত করে, স্ট্রিঙে অকারেন্সের প্যাটার্নের উপর অংশগুলোর ধরণ নির্ভর করে।

 

preg_match()ফাংশন কীভাবে কাজ করে?

preg_match()ফাংশন স্ট্রিঙে প্যাটার্ন খোঁজে, কাঙ্খিত প্যাটার্ন থাকলে ট্রু আর না থাকলে ফলস দেখায়।

 

preg_split()ফাংশন কীভাবে কাজ করে?

preg_split()ফাংশন প্রায় split()ফাংশনের মতই কাজ করে,কেবল রেগুলার এক্সপ্রেশনগুলো প্যাটার্নের ইনপুট প্যারামিটার হিসেবে কাজ করে।

 

ভুল হলে এক্সেপ্সন ক্লাস ব্যবহার করে কীভাবে এরর ম্যাসেজ পুনরুদ্ধার করা যাবে?

getMessage() ব্যবহার করে।

 

ভুল হলে এক্সেপ্সন ক্লাস ব্যবহার করে কীভাবে কোড অফ এক্সেপ্সন পুনরুদ্ধার করা যাবে?

getCode()মেথড ব্যবহার করে।

 

ভুল হলে এক্সেপ্সন ক্লাস ব্যবহার করে কীভাবে সোর্স ফাইলনেম পুনরুদ্ধার করা যাবে?

getFile()মেথড ব্যবহার করে।

 

ভুল হলে এক্সেপ্সন ক্লাস ব্যবহার করে কীভাবে সোর্স লাইন পুনরুদ্ধার করা যাবে?

getLine()মেথড ব্যবহার করে।

 

ভুল হলে এক্সেপ্সন ক্লাস ব্যবহার করে কীভাবে স্টাক স্ট্রেস পুনরুদ্ধার করা যাবে?

getTrace()মেথড ব্যবহার করে।

 

ভুল হলে কীভাবে ফরম্যাটিং স্ট্রিং অফ স্ট্রেস পুনরুদ্ধার করা যাবে?

getTraceAsString()মেথড ব্যবহার করে এটি করা যাবে।

 

পিএইচপি ব্যবহার করে কীভাবে বর্তমান দিন ও সময় পাব?

time()ফাংশন ব্যবহার করে।

 

getdate() ফাংশনের কাজ কী?

এটি টাইম ষ্ট্যাম্প গ্রহণ করে তারিখ সম্পর্কিত এসসিয়েটিভ অ্যারি রিটার্ন করে।

 

date() ফাংশনের কাজ কী?

এটি ফরম্যাটিং স্ট্রিং রিটার্ন করে, যা ডেট হিসেবে পরিগনিত হয়।

 

পিএইচপি ব্যবহার করে কীভাবে মাইএসকিউএল ডাটাবেস কানেক্ট করবেন?

ডাটাবেস কানেকশন খোলার জন্য mysql_connect ফাংশন ব্যবহার করা যাবে।


connection mysql_connect(server,user,passwd,new_link,client_flag);

 

পিএইচপি ব্যবহার করে কীভাবে মাইএসকিউএল ডাটাবেস তৈরি করবেন?

mysql_queryফাংশন ব্যবহার করে। এই ফাংশন দুটি প্যারামিটার ব্যবহার করে।


bool mysql_query( sql, connection );

 

পিএইচপি ব্যবহার করে কীভাবে মাইএসকিউএল ডাটাবেস বন্ধ করবেন?

mysql_close ফাংশন ব্যবহার করে।


bool mysql_close ( resource $link_identifier );

 

পিএইচপি ব্যবহার করে কীভাবে এক্সএমএল ডকুমেন্ট বিশ্লেষণ করবেন?

পিএইচপি৫ এর নতুন SimpleXML মডিউল ব্যবহার করে এটি করা যায়।

 

পিএইচপিতে কি ক্লাস তৈরি করা সম্ভব?

হ্যাঁ!

 

পিএইচপি ক্লাসে কন্সট্রাকটর ফাংশন কীভাবে সংযুক্ত করবেন?

__construct() ফাংশন ব্যবহার করে।

 

পিএইচপি ক্লাসে ডিসট্রাকটর ফাংশন কীভাবে সংযুক্ত করবেন?

__destruct()ফাংশন ব্যবহার করে।

 

পিএইচপিতে একই অবজেক্টের ভেতরে থাকা কোনও অবজেক্টের ক্ষেত্রে সেই অবজেক্টের রেফারেন্সে প্রবেশ করবেন কীভাবে?

$thisএকটি বিশেষ চলক, এটি সেই অবজেক্ট( অবজেক্ট নিজে) বোঝায়, এর মাধ্যমে সেই অবজেক্টের রেফারেন্সে প্রবেশ  করা যাবে।

 

পিএইচপিতে অবজেক্ট তৈরি করা যাবে কীভাবে?

একবার ক্লাস তৈরি হয়ে গেলে সেই ক্লাসের অধীনে যত খুশি অবজেক্ট তৈরি করা যাবে। যেমন,


$physics = new Books;
$maths = new Books;
$chemistry = new Books;

 

পিএইচপিতে ক্লাসের মেম্বার ফাংশনকে কীভাবে ডাকা যাবে?

অবজেক্ট তৈরির পরে সেই অবজেক্ট রিলেটেড মেম্বার ফাংশনকে ডাকা যাবে। যেমন,


$physics−>setTitle( "Physics for High School" );
$chemistry−>setTitle( "Advanced Chemistry" );
$maths−>setTitle( "Algebra" );
$physics−>setPrice( 10 );
$chemistry−>setPrice( 15 );
$maths−>setPrice( 7 );

 

ফাংশন ওভাররাইডিং কী?

শিশু শ্রেণীর ফাংশন ডেফিনিশন বড়দের ক্লাসে একই নামে ফাংশন ওভাররাইডিং হয়ে থাকে।

 

পিএইচপিতে ইন্টারফেস কী?

ইন্টারফেস ইমপ্লিমেন্টরের জন্য কমন ফাংশন নেমের ব্যবস্থা করে।

 

ফাইনাল কীওয়ার্ডের কাজ কী?

এটি পিএইচপি৫ এর নতুন সংযোজন, এটি কিছু ক্ষেত্রে শিশু শ্রেণীর ফাংশন ওভাররাইডিং প্রতিহত করে।

 

এরপরে কী?

আগের সম্পন্ন করা এসাইনমেন্ট সম্পর্কে পরিষ্কার ধারণা থাকতে হবে, এগুলো নিয়ে পরিষ্কারভাবে, আত্মবিশ্বাসের সাথে কথা বলার দক্ষতা থাকতে হবে। আপনি নতুন হলে যারা সাক্ষাৎকার নিচ্ছেন তাঁরা খুব জটিল প্রশ্নের উত্তর আপনার কাছ থেকে আশা করবে না বরং আপনার নিজের বেসিক ভাল করার চেষ্টা করা উচিৎ।

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

 

এজাইল – পণ্য ব্যাকলগ (Agile Product Backlog)

পণ্য ব্যাকলগ হচ্ছে সম্পাদন করা হবেে এমন একটি তালিকা । আইটেমগুলোকে বৈশিষ্ট্য অনুযায়ী স্থান দেওয়া হয় । আদর্শ ক্ষেত্রে আইটেমগুলোকে ইউজার স্টোরি অনুযায়ী বিভাজন/Divide করা উচিত।

পণ্য ব্যকলগ গুরুত্বপূর্ণ কেন?

  • এটি তৈরি করা হয় যাতে প্রত্যেকটি এবং সকল বৈশিষ্ট্য এর আনুমানিক হিসাব করা যায় ।
  • এটি পণ্যের রোডম্যাপ পরিকল্পনায় সাহায্য করে।
  • এটা বৈশিষ্ট্যসমূহের পুণরায় প্রাধান্য নির্ধারণ করতে সাহায্য করে, যাতে পণ্যের মান আরো বাড়ানো যায়।
  • এটি কোন বৈশিষ্ট্যটি প্রথম প্রাধান্য পাবে তা নির্ণয় করতে সাহায্য করে। সকল বৈশিষ্ট্য এর একসাথে র‌্যংক নির্ণয় করে এবং এরপরে মূল্য নির্ধারণ করে।

 

পণ্য ব্যাকলগের বৈশিষ্ট্য

  • প্রত্যেক পণ্যের একটি করে পণ্য ব্যকলগ থাকা উচিত যার বড় এবং আরো বড় বৈশিষ্টের সেট থাকতে পারে ।
  • একাধিক দল একটি ব্যাকলগ এর উপর কাজ করতে পারে।
  • ব্যবসায়িক মান, প্রযুক্তিগত মান, ঝুঁকি ব্যবস্থাপনা বা কৌশলগত ফিটনেস বৈশিষ্ট্যের উপর ভিত্তি করে পণ্যের র‌্যাঙ্ক নির্ণয় করা হয়।
  • উচ্চ র‌্যাংকিং সম্পন্ন  পণ্য রিলিজ পরিকল্পনা করার সময়ের ছোট ছোট ঘটনার উপর ভিত্তি করে এই পণ্যের পুনরাবৃত্তি করা হবে কিনা তা নির্ধারণ করে।

বাংলাদেশ এ তথ্য প্রযুক্তি এর ব্যবসার সুযোগ । IT Business Opportunities in Bangladesh

Chakri Khujbo na Debo Workshop on 2nd June, 2012 from Chakri Khujbo Na Chakri Debo on Vimeo.