Coding Standard কি? বা এটার Best Practice আমাদের কেমন হওয়া উচিত? সে নিয়ে আমাদের যত confusion আছে তা নিয়ে আজ বিস্তারিত আলোচনা করব।আশা করি আপনাদের অনেক উপকার হবে।তাহলে দেরি না করে শুরু করা যাক।
আমরা সর্বপ্রথম উদাহরণ এর মাধ্যমে বোঝার চেষ্টা করব।ধরুন, আমরা লিখিত পরীক্ষায় পৃষ্টার মধ্যে সর্বপ্রথম সুন্দর করে মার্জিন করি,এবং লেখার সময় এক আঙ্গুল ফাঁকা রেখে লেখাগুলো লেখার চেষ্টা করি যাতে পরীক্ষক লেখাগুলো ভালোভাবে বুঝতে পারে এবং স্পষ্ট দেখতে পারে।
অনুরূপ,আমরা যখন coding করব তখন এমনভাবে coding গুলোকে লেখব, যাতে একজন প্রোগ্রামার বা user দেখে মাত্রই বুঝতে পারে যে,এখানে কি লেখা হয়েছে।
Best Practice Of Coding :
1. Naming convention :
আমারা যখন কোন variable এর নাম স্টোর করব তখন আমাদের মনে রাখতে হবে যে আমরা জাভাস্ক্রিপ্ট এর reserved keyword গুলো যাতে এড়িয়ে চলি।এবং variableএর মধ্যে যে নাম স্টোর করব সেটা যাতে অর্থপূর্ন হয়। এবং variable এর নাম যদি একাধিক হয়,তাহলে আমারা camel case(fruitName) ব্যবহার করব।
Example :
2. Naming consistency :
আমরা যখন কোন variable স্টোর করব তখন প্রথম variable টা যে টাইপের স্টোর করেছি সেভাবে পরেরটা স্টোর করব,কারণ এটা একটা ভালো অভ্যাস।এবং প্রথমটার শেষে সেমিকোলন দিলাম,আবার পরেরটাতে দিলাম না এইরকম যাতে না হয়।কারণ এটা ভালো অভ্যাস না। উদাহরণ দিয়ে বুঝালে conceptগুলো আসাকরি ভালোভাবে ক্লিয়ার হবে
Example — 1 Bad Practice :
উপরের এই উদাহরণটি Best practice এর মধ্যে পরে না,কারণ একবার underscored ব্যবহার করছি, পরেরবার ব্যবহার করেছি Camel case.এবং একটাতে সেমিকোলন,পরেরটাতে কোন সেমিকোলন নাই,সুতরাং এগুলো Best practice নয়।
Example — 2 Good Practice:
3. Indentation:
Indentation মানেই হলো কোডগুলোকে ফরম্যাট আকারে সাজানো।এবং একটু গ্যাপ দিয়ে লেখা।
উদাহরণ দিয়ে বুঝালে concept টা ভালোভাবে বুঝাতে পারব।এবং আপনারাও ভালোভাবে বুঝতে পারবেন।
Example : 1 Bad Practice
এখন এই উদাহরণ থেকে আমরা স্পষ্ট দেখতে পাচ্ছি যে,কোড গুলো কেমন জানি হিজিবিজি দেখাচ্ছে,এবং কোন ফরম্যাট নেই,এমনকি দুটি ফাংশনের মধ্যে কোন গ্যাপ দেখতে পাচ্ছি না।একজন user হিসেবে আমি যদি এই কোডটি পড়তে যাই,বুঝতে একটু কষ্ট না হলেও কেমন জানি খারাপ দেখাচ্ছে।
সুতরাং আমরা, এভাবে কোড না লিখে indentation আকারে লিখতে পারি,যেটা Best practice এর মধ্যে পরে। এবং এতে দেখতে অনেক সুন্দর লাগবে।এবং অনেক ক্লিন মনে হবে।
Example : 2 Good Practice
4. Comment & Documentation:
ধরুন,কোন একটা ফাংশন ডিক্লেয়ার করার পর, ঐ ফাংশন কেন ব্যবহার করছি,বা কি জন্য ব্যবহার করছি,এটার কাজ ও উদ্দেশ্য কি, অথবা আমরা ফংশনের প্যারামিটার হিসেবে নাম্বার পাঠাবো,নাকি স্ট্রিং পাঠাবো, ইত্যাদি সবকিছু আমরা যেটার মাধ্যমে বলে দিতে পারি তার নামই হলো comment.তবে সবখানে comment ব্যবহার করার প্রয়োজন নাই,কমেন্ট আমরা সেখানেই ব্যবহার করব, যেখানে কোন ফাংশন কেন ব্যবহার করেছি সেটা ভূলে য়াওয়ার সম্ভাবনা রয়েছে।
comment এর কিছু সুবিধা নিচে দেওয়া হলো। যেমন:
১. এক বছর পর কোড গুলো দেখামাত্রয় বুঝতে পারব।
২.কোন একজন প্রোগ্রামার বা user দেখামাত্রয় বুঝতে পারবে।
৩.কোন কমিউনিটিতে কাজ করলে অন্যান্য প্রোগ্রামাররা খুব সহজেই কোডগুলো বুঝতে পারবে।
কিভাবে কমেন্ট করব সে নিয়ে একটা সিম্পল উদাহরন দিলে আশা করি ভালোভাবে ক্লিয়ার হবে।
5.DRY(Don’t Repeat Yourself):
DRY মানেই হলো একই কোড বার বার না লেখা,আমরা অনেকেই ফাংশন সম্পর্কে জানি,আমরা চাইলে ফাংশনের মাধ্যমে এই সমস্যার সমাধান করতে পারি।কারণ ফাংশনের মাধ্যমে একই কোড বার বার ব্যবহার না করে একবার ব্যবহার করে সমাধান করা সম্ভব।এবং এটা Best practice এর মধ্যে পড়ে।
নিচে একটা উদাহরন দিয়ে বললে খুব ইজিয়ার হবে যাবে।
Bad Practice :
Best Practice :
Bad practice এর মধ্যে দেখা যাচ্ছে,একই কোড বার বার লিখতে হচ্ছে,সময় বেশি লাগছে,জায়গা বেশি নিচ্ছে।
অপরদিকে,
Best practice এর মধ্যে দেখতে পাচ্ছি Bad practice এর সম্পূর্ণ বিপরীত।কারণ,এখানে একই কোড বার বার লিখতে হচ্ছে না,সময় বেশি লাগছে না,জায়গা বেশি নিচ্ছে না।সুতরাং এটা দ্বারা বোঝা গেল আমরা কোন পদ্ধতিতে কোড লিখব।
6.Avoid Nesting
Nesting মানে হলো:
- একই ফাংশন এর মধ্যে বার বার ফাংশন ব্যবহার করা
- একই অবজেক্টের মধ্যে বার বার অবজেক্ট ব্যবহার করা।
- একই কন্ডিশন এর মধ্যে বার বার কন্ডিশন ব্যবহার করা।
সুতরাং এখন আমরা বুঝতে পারছি Nesting টা আসলে কি,প্রোগ্রামিং এর জগতে যতটা সম্ভব এটাকে এড়িয়ে চলা,কারণ তা না হলে একটা কন্ডিশন এর মধ্যে আরেকটা কন্ডিশন,তার ভিতরে আরো একটা কন্ডিশন,এভাবে কোড লিখলে ব্যবহারকারী ও প্রোগ্রামারদের জন্য বুঝা কঠিন হয়ে দাড়াবে।বুঝতে পারলেও,কিন্তু অনেক সময় লেগে যাবে।
অতএব Avoid deep nesting as much as possible.
নিচে Nesting এর একটা উদাহরন দেওয়া যাক :
আশা করি বুঝতে পেরেছেন।
7.File and Folder structure:
এটাত আপনারা নাম দেখেই বুঝতে পেরেছেন যে, আমি কি লিখতে চাচ্ছি।আমরা যখন বিশাল কোন প্রজেক্ট করব তখন আমরা যেন প্রত্যেকটা কাজ folder and file ভিত্তিক করি,যেমন Navbar, Header, Homepage, contact, about us এগুলোর প্রত্যেকের জন্য এক একটা folder and file তৈরী করা।এতে খুব সহজেই বুঝতে পারব কোথায় কি কোড রয়েছে। এতে সময় বেছে যাবে এবং কষ্ট কম হবে।
পরিশেষে আমি দুই একটি কথা লিখে শেষ করছি।প্রোগ্রামিং শুরু করেছি মাত্র ১০ মাস রানিং চলতেছে।আমি তার মধ্যে এই টপিকটা সম্পর্কে য়তটুকু বুঝেছি এবং অনুধাবন করছি,তার ছোট্র অবিজ্ঞতা ও নলেজ থেকে আমি আপনাদের সাথে শিয়ার করছি।এখানে আমি যা লিখেছি তা যে একদম পুরাপুরি সঠিক হবে সেটা আমি আশা করছি না,কারণ প্রোগ্রামিং নিয়ে এটাই আমার প্রথম ব্লগ। অনেক কিছু ভূল হতে পারে,অবশ্যই ক্ষমার দৃষ্টিতে দেখবেন।এবং যদি লেখাই(ব্লগ) কোন ভুল-ত্রুটি থাকে, তাহলে দয়া করে ভুলগুলো ধরিয়ে দিবেন।
সবাইকে আমার এই প্রথম ব্লগটি পড়ার জন্য অসংখ্য ধন্যবাদ।