What do backend developers need to know? ⇾ Explain Backend Series
ব্যাকএন্ড ডেভেলপার হতে যে বিষয় গুলো জানা জরুরি।

♗ Love To Play With → JavaScript & NodeJS.
✢ Interested → Web & Backend Development.
↯ Current Stack → MERN Stack
একজন হ্যান্ডঅন ব্যাকএন্ড ডেভেলপার হতে গেলে আমাদের কিছু বিষয় এর উপর নজর রাখাটা জরুরি। এর মধ্যে কিছু টপিক আছে যা না জানলেই নয় আবার কিছু বিষয় আছে যেগুলোকে অ্যাডভান্স টপিক ও বলা চলে। নিচে আমি প্রত্যেকটা টপিকের কিছু ওভার ভিউ দিয়ে এক্সপ্লেইন করার চেষ্টা করছি, আশা করি এটা আমাদের ব্যাকএন্ড জার্নিকে আরো স্মুদ ও সুন্দর করবে।
ব্যাকএন্ড ডেভেলপমেন্ট কি?
ব্যাকএন্ড ডেভেলপমেন্ট বলতে আমরা সহজ ভাবে বলতে পারি সার্ভার-সাইট সফটওয়্যার এর সাথে কাজ করাকে। সার্ভার সাইট এর এই কাজ ওয়েবসাইট এ দেখানো হয় না , মূলত একটি ওয়েবসাইট এর পারফর্মেন্স এনসিওর করা ,ডাটাবেস মেইনটেইন করা,ব্যাকএন্ড বিজনেস লজিক লেখা এবং API তৈরী করাটাই ব্যাকএন্ড ডেভেলপমেন্ট এর মূল রেস্পন্সিবিলিটি বলাহয়ে থাকে। এছাড়া আরো কতগুলো বিষয় সঙ্গবদ্ধ হয়ে ব্যাকএন্ড সংযুক্ত করেছে যা নিচে পর্যাক্রমে আলোচনা করা হবে।
প্রধান ভিত্তি সমূহ ব্যাকএন্ড ডেভেলপমেন্ট-
আমরা সবাই API (এপ্লিকেশন প্রোগ্রামিং ইন্টারফেস ) এর নাম শুনেছি। এখনকার ব্যাকএন্ড কে যেন এই API ছাড়া ভাবাই যায় না । আর তাই ধরা যায় চারটি মূল API স্তম্ভের উপর মর্ডান ব্যাকএন্ড এপ্লিকেশন দাঁড়িয়ে আছে। তবে চার স্তম্ভকে স্ট্রং করতে এবং এর কনসেপ এর উপর ভিত্তি করে স্তম্ভ গুলোকে আরো কিছু সাবসেকশনে ভাগ করা হয়েছে ।
ব্যাকএন্ড ৪ স্তম্ভ-
- API DESIGN
- API SECURITY
- API TESTING
- API DOCUMENTATION
এছাড়াও একজন ব্যাকএন্ড ডেভেলপার এর Database ,Linux Server ,Cloud Computing এবং DevOps এর মতো বিষয় গুলো সম্পর্কে বেসিক ধারণা রাখতে হয়। আমাদের টেকনোলজি খুব দ্রুতই সামনে আগাচ্ছে, আর তাই একজন ব্যাকএন্ড ডেভেলপার হিসেবে আমাদের এই বিষয়গুলোর উপরে ভালো ধারণা থাকাটা খুবই জরুরি।যাতেকরে অন্য ১০ জন ডেভেলপার এর টিমে নিজেকে খুব সহজে মানিয়ে নিতে সমস্যা না হয় । নিম্নে api এর মূল বিষয়সমূহ ও সাবসেকশন গুলো নিয়ে ধারণা দেয়া হবে ।
API DESIGN: API ডিজাইন বলতে অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (APIs) তৈরি করার প্রক্রিয়া বোঝায়। যা ডেভেলপার এবং user এর ডাটা ব্যবহার ও এপ্লিকেশন ফাঙ্কশনালিটি প্রকাশ করে।APIs মর্ডান অর্গানাইজেশন এর জন্য খুবই গুরুত্বপূর্ণ।এটা প্রোডাক্ট এবং প্রডাক্টিভিটির মধ্যে নতুন সম্পর্ক স্থাপন করে । API design কে আবার কয়েকটা ভাগে ভাগ করা যায় । নিচে api ডিসাইন এর ভাগসমূহ উল্লেখ করা হল।
- REST API
- GRAPHQL
- GRPC
- SOAP
- WEB SOCKET
- MESSAGE BROKER -ইত্যাদি -
API SECURITY: অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (API) security বলতে বুঝান হয় ওই পক্রিয়া কে যার মাধ্যমে api গুলো ও তার ডাটা সমূহ সাইবার আক্রমণ থেকে প্রতিরোধ করে । APIs মোবাইল এবং ওয়েব অ্যাপ্লিকেশনের জন্য ব্যাকএন্ড ফ্রেমওয়ার্ক হিসাবে কাজ করে। আর তাই এর রক্ষনাবেক্ষন ওই api প্রোভাইট করা প্রতিষ্ঠানের জন্য খুবই গুরুত্বপূর্ণ।আজকের বিশ্বে api সিকিউরিটির জন্য কিছু জনপ্রিয় সার্ভিস ব্যবহার করা হয় এর কিছু সংখক সার্ভিসেস নাম নিচে উল্লেখ করা হল ।
- JWT TOKEN
- REFRESH TOKEN
- OAUTH2
- SAML
- IDENTITY PROVIDER(Cognito,Auth0,Firebase,Okta)
- ROLE-BASED AUTHORIZATION
API TESTING: Testing অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (API) হলো এক ধরণের সফটওয়্যার অটোমেশন টেস্টিং যা api এর ভুলত্রুটি গুলোকে যাচাই করে ও ডেভেলপারকে প্রোডাক্টিভিটি তে দ্রুততা এনে দেয় । সাধারণত api টেস্টিং চেক করে functionality, reliability, performance, এবং security api টেস্টিং এর ক্ষেত্রে খুবই জনপ্রিয় টেস্টিং অটোমেশন সফটওয়্যার বা প্রসেস ব্যবহার করে থাকি ,তা থেকে উল্লেখযোগ্য কয়েকটার নাম নিচে দেয়া হল।
- UNIT TESTING
- ACCEPTANCE TESTING
- LOAD TESTING
API DOCUMENTATION: কিভাবে খুব এফিসিয়েন্ট ভাবে api কে ব্যবহার করতে পারি তার বিশদ বিবৃতি দেয়াহয় মূলত api ডকুমেন্টেশন এ । খুব বেশি ডকুমেন্টেশন সার্ভিস ব্যবহার করার দরকার হয় না একজন ব্যাকএন্ড ডেভেলপারকে, তবে পপুলার দুটির নাম উল্লেখ করা যেতেই পারে ।
- SWAGGER
- POSTMAN
এর বাইরেও ব্যাকএন্ড ডেভেলপমেন্ট এ টুলস ও সার্ভিস আছে তবে তা তুলনামূলক কম জনপ্রিয় ।
আগেই উল্লেখ করেছি ব্যাকএন্ড ডেভেলপমেন্ট ও তার ডেভেলপারদের সাধারণত কয়েকটি বিষয় জানা তা খুব জরুরি যেমন Database,Linux Server,Cloud Computing এবং devops এই টপিক গুলোর মধ্যে আবার কিছু ভাগ রয়েছে যা ব্যবহার ও প্রয়োজনীয়তা ভেদে আলাদা আলাদা নিচে এর কিছু যমুনা দেয়া হল।
- Database : ডাটা বলতে আমরা সবাই বুঝি কালেকশন অফ ইনফরমেশন । ধরাযাক কোন একটা ওয়েবসাইট এর ব্যাবহারকারী তো সেই ওয়েবসাইট এর ক্ষেত্রে ওই user কারীর name ,email বা password কে user এর ডাটা বলা হয়েথাকে ।আর এই সকল ডাটা গুলোকে যে প্রসেসে বা যে নিদৃষ্ট জায়গায় সংরক্ষণ করা হয় তাকে বলাহয়েথাকে ডাটাবেস ।এই সকল ডাটাকে প্রয়োজন অনুযায়ী access করা ,তা পরিবর্তন করা এবং ডাটার পুনর্ব্যবহার করার জন্য মূলত ডাটাবেস ব্যবহার করাহয় ।
এই ডাটাবেস কে আবার কিছু category এর মধ্যে ভাগ করা হয়ে থাকে । একজন ব্যাকএন্ড ডেভেলপার হিসেবে সবগুলো জানাটা জরুরি নয় তবে তার প্রজেক্ট ভেদে ভিন্নতা দেখা যায় নিচে ৪ category এর ডাটাবেস এর উল্লেখ করা হল
- NO SQL
- SQL
- IN MEMORY
- GRAPH DATABASE
যে ৪ categories ডাটাবেস নিয়ে বলা হল সেগুলোকে আবার কিছু subsection এ ভাগ করা যায় ।যেমন ধরা যাক :
NOSQL: noSql এর কথা আসলে আমাদের মাথায় প্রথমে চলে আসে MONGODB এর কথা খুবই পপুলার এবং সময় উপযোগী NODEJS এর সাথে খুব স্মুথ কাজ করতে সক্ষম এই ডাটাবেস সার্ভিস টি । এছাড়া উল্লেখ করাযায় AWS DynamoDb এর কথা, অসংখ্যা রিকোয়েস্ট নিয়ে কাজ করতে ও cloude computing এ এই সার্ভিসের জুড়িমেলা ভার ।
SQL: SQL কে বলাহয় রিলেশনাল ডাটাবেস ।মূলত এন্টারপ্রাইজ কোম্পানিগুলো SQL ডাটাবেস ব্যবহার করতেই সাচ্ছন্দ বোধ করে ।আমরা প্রজেক্ট এর প্রকার ভেদে বিভিন্ন ডাটাবেস ব্যবহার করতে পারি তবে postgraSql ,MySql এবং MSsql /Oracle খুবই জনপ্রিয় ।
IN MEMORY : ইন মেমরি ডাটাবেস সাধারণত ক্যাশিং এর জন্য ব্যবহার করা হয়ে থাকে । সেশন গুলো কে অর্গানাইজ করে রাখার জন্য খুব ব্যবহার উপযোগী এই in memory ডাটাবেস । এই কেটাগরির ডাটাবেস কে ভেঙে আমরা দুইটি সার্ভিস কে নিয়ে আসতে পারি এর মধ্যে প্রথমেই আসে REDIS এর নাম । এছাড়াও Mem Cached খুবই বহুলব্যাবরিত in memory ডাটাবেস সার্ভিস । এছাড়াও আরো অনেক সার্ভিস রয়েছে তবে এইদুটি নিজেদের আলাদাভাবে পরিচিতি করে নিয়েছে ।
GRAPH DATABASE :
গ্রাফ ডাটাবেস গ্রাফ স্ট্রাকচার ব্যবহার করে সিমেন্টিক কুয়েরি গুলো করার জন্য । গ্রাফ ডাটাবেস মূলত টেবিলের পরিবর্তে রিলেসন বিল্ডাপ করার জন্য nodes গুলোকে ব্যবহার করে । গ্রাফ ডাটাবেস খুবই ফ্লাগসিবল ডাটাবেস মডেলিং । তবে খুব অ্যাডভান্স টপিক এই গ্রাফ ডাটাবেস । গ্রাফ ডাটাবেস এর মধ্যে খুব জনপ্রিয় হচ্ছে:
- Neo4j
পরিসমাপ্তি : উপরে উল্লেখিত বিষয় গুলো একজন ব্যাকএন্ড ডেভেলপার সব জানতে হবে এমনটা নয় ,তবে প্রত্যেকটা টপিক এ কিছু ধারণা বা বেসিক জানা থাকলে জার্নিটা সহজ হয়ে যায় । আমরা যারা Node.js নিয়ে কাজ করি তারা mongodb বা mysql নিয়ে কাজ করতে পছন্দ করি ।হতেপারে অন্যদিকে php ডেভেলপমেন্ট এর জন্য sql এর postgrasql টা যুৎসই হবে এমন হাজারো use কেসের উপর ভিত্তি করে টেকনোলজি ও সার্ভিস নির্বাচন করা হয় । তাই বিষয়গুলোতে ধারণা থাকলে moveon ও লার্নিং প্রসেস টা সহজ হয়ে যাবে ।
নোট আমি নিজে এখনো শিখছি । টেকনোলজির এই বিশাল সমুদ্রভাণ্ডার থেকে বিন্দুবিন্দু ফোঁটা আহরণ করছি আর কিছুটা ছড়ানোর চেষ্টা করছি সবার মাঝে । আমার ভুল হতেই পারে সবার কাছে অনুরোধ থাকবে আমার ভুল গুলোকে ধরিয়ে দিবেন । যেন ভুল থেকে শিক্ষা নিয়ে পরবর্তী জার্নিকে স্মুথ করতে পারি ।
ধন্যবাদ *





