Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. HTML & CSS
Code

সুপার রিডেবল কোড লেখার ১৫টিরও বেশি সেরা উপায়

by
Difficulty:IntermediateLength:LongLanguages:

Bengali (বাংলা) translation by Syeda Nur-E-Royhan (you can also view the original English article)

মাসে দুইবার আমরা নেটটুটসপ্লাসে ইতিহাসে পাঠকদের প্রিয় কিছু পোস্ট ফিরে দেখি।

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


১ – কমেন্টিং এবং ডকুমেন্টেশন

গত কয়েক বছরে আইডিই (ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট) অনেকটা পথ এগিয়ে গিয়েছে। ফলে আপনার কোড কমেন্টিং করার প্রয়োজনীয়তা আরও বেড়ে গিয়েছে। আপনার কমেন্টে কিছু নির্দিষ্ট মানদণ্ড অনুসরণ করলে আইডিই এবং অন্যান্য টুলের পক্ষে সেগুলো বিভিন্ন পদ্ধতিতে ব্যবহার করা সম্ভব হয়।

এই উদাহরণটি দেখুন:

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

এখানে আরেকটি উদাহরণ দিচ্ছি যেখানে আমি একটি থার্ড পার্টি লাইব্রেরী থেকে একটি ফাংশন কল করেছি।

বিশেষত এই উদাহরণগুলোতে যে ধরণের কমেন্টিং ব্যবহার করা হয় সেগুলো পিএইচপিডকের উপর ভিত্তি করে তৈরি এবং এগুলোর আইডিই হচ্ছে আপটানা


২ – সামঞ্জস্যপূর্ণ ইনডেন্টেশন

আমি ধরে নিচ্ছি যে আপনি ইতোমধ্যে জানেন যে আপনার কোড ইনডেন্ট করে নিতে হবে। যাই হোক, এটাও বলে নেওয়া ভালো যে আপনার ইনডেন্টেশন স্টাইল সামঞ্জস্যপূর্ণ রাখা ভালো।

কোড ইনডেন্টিং করার একটিরও বেশি উপায় রয়েছে।

স্টাইল ১:
স্টাইল ২:
স্টাইল ৩:

আমি আগে দ্বিতীয় স্টাইলে কোড তৈরি করতাম। কিন্তু এখন প্রথম স্টাইলে তৈরি করি। তবে এটা শুধুই আপনার নিজস্ব পছন্দের ব্যাপার। কোন স্টাইলই আলাদাভাবে “সেরা” নয় যে সবাইকেই তা অনুসরণ করতে হবে। মূলত, সেরা স্টাইল সেটিই যেটি সামঞ্জস্য বজায় রাখে। আপনি যদি একটি দলের সদস্য হয়ে থাকেন বা কোন প্রজেক্টে কোড তৈরিতে সাহায্য করে থাকেন তাহলে ওই প্রজেক্টে যেই স্টাইলটি ব্যবহার করা হচ্ছে সেটি অনুসরণ করতে হবে।

ইনডেন্টেশন স্টাইল সাধারণত সব সময় একটার থেকে আরেকটা আলাদা হয় না। কখনও কখনও এগুলোতে নানান ধরণের নিয়ম অনুসরণ করা হয়। যেমন, পিয়ার কোডিং ষ্ট্যাণ্ডার্ডে, ওপেনিং ব্র্যাকেট “{” কন্ট্রোল স্ট্রাকচারের লাইনেই থাকে। আবার ফাংশন ডেফিনিশনের পরে এগুলো পরের লাইনে চলে যায়।

পিয়ার স্টাইল:

মনে রাখবেন যে এগুলো ট্যাবের জন্য ইনডেন্টেশনের বদলে চারটি স্পেস ব্যবহার করে।

এখানে বিভিন্ন ধরণের ইনডেন্ট স্টাইলের উদাহরণসহ লেখা উইকিপিডিয়া আর্টিকেল দেওয়া হল।


৩ – অবশ্যম্ভাবী কমেন্ট এড়িয়ে চলুন

আপনার কোডে কমেন্টিং করা একটি দারুণ ব্যাপার; তবে, এটি মাত্রাতিরিক্ত হয়ে যেতে পারে বা একেবারেই অপ্রয়োজনীয় হতে পারে। এই উদাহরণটি দেখুন:

কোন টেক্সট যদি এতোটাই সুস্পষ্ট হয় তাহলে কমেন্টের মধ্যে এটার পুনরাবৃত্তি করার কোন দরকার নেই।

আপনার যদি কোডের উপর কমেন্ট করতেই হয় তাহলে আপনি শুধুমাত্র এক লাইনে এটিকে সমন্বয় করে ফেলতে পারেন:


৪ – কোড গ্রুপিং

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

এখানে একটি সরলীকৃত উদাহরণ দেওয়া হল:

প্রতিটি কোডের ব্লকের শুরুতে একটি কমেন্ট যোগ করলে দৃশ্যত একটি পৃথক অবস্থা পরিলক্ষিত হয়।


৫ – সামঞ্জস্যপূর্ণ নামকরণ পদ্ধতি

পিএইচপি নিজেই সামঞ্জস্যপূর্ণ নামকরণ পদ্ধতি অনুসরণ করে না বলে বদনাম রয়েছে:

  • strpos() vs. str_split()
  • imagetypes() vs. image_type_to_extension()

প্রথমত, নামগুলোতে শব্দের সীমারেখা থাকতে হবে। এক্ষেত্রে দুইটি জনপ্রিয় অপশন রয়েছে:

  • ক্যামেলকেস: প্রথম শব্দ বাদে প্রতিটি শব্দের প্রথম অক্ষর বড় হাতের হবে।
  • আন্ডারস্কোর: শব্দের মধ্যে মধ্যে আন্ডারস্কোর থাকবে, যেমন: mysql_real_escape_string()।

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

এগুলো একত্রে মিশিয়েও ব্যবহার করা যায়। কোন কোন ডেভেলপার প্রসিডিউরাল ফাংশন এবং ক্লাস নেমের জন্য আন্ডারস্কোর ব্যবহার করতে পছন্দ করে। আবার মেথড নেমের জন্য ক্যামেলকেস ব্যবহার করে:

কাজেই আবারও বলছি, কোন নির্দিষ্ট একটা পদ্ধতি “শ্রেষ্ঠ” হতে পারে না। শুধুমাত্র সামঞ্জস্যপূর্ণ হতে হবে।


৬ – ড্রাই প্রিন্সিপল

ড্রাই বা ডিআরওয়াই দিয়ে বুঝায় ডোন্ট রিপিট ইওরসেলফ, অর্থ্যাৎ নিজের পুনরাবৃত্তি করবেন না। টি ডিআইই নামেও পরিচিত: ডুপ্লিকেশন ইজ ইভল অর্থ্যাৎ নকল করা শয়তানের কাজ।

এই প্রিন্সিপলে বলা হয়েছে:

“জ্ঞানের প্রতিটি অংশে অবশ্যই একটি প্রক্রিয়ার মধ্যে একক, অদ্ব্যার্থক, কর্তৃত্বসম্পন্ন প্রতিনিধিত্ব থাকতে হবে”।

বেশিরভাগ অ্যাপ্লিকেশনের উদ্দেশ্য হচ্ছে স্বয়ংক্রিয়ভাবে টাস্কের পুনরাবৃত্তি ঘটানো। এই প্রিন্সিপলটি ওয়েব অ্যাপ্লিকেশনসহ সমস্ত কোডেই মেনে চলতে হবে। একই কোড বারবার পুনরাবৃত্ত করা যাবে না।

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


৭ – ডিপ নেস্টিংএড়িয়ে চলুন

খুব বেশি লেভেলের নেস্টিং থাকলে কোড পড়া এবং অনুসরণ করা কঠিন হয়ে যায়।

পাঠযোগ্যতার খাতিরে হলেও নেস্টিঙের লেভেল কমিয়ে আনার জন্য আপনার কোডে পরিবর্তন করা সম্ভব।


৮ – লাইন লেংথ সীমিত করুন

লম্বা এবং সঙ্কীর্ণ কলামের টেক্সট পড়া আমাদের চোখের জন্য বেশি আরামদায়ক। মূলত এই কারণেই সংবাদপত্রের আর্টিকেলগুলো দেখতে এমন হয়:

আনুভূমিকভাবে লম্বা লাইনের কোড লেখার অভ্যাস ট্যাগ করাই ভালো।

সেই সাথে, ভিম ব্যবহারকারীদের মতো কেউ যদি টার্মিনাল উইন্ডো থেকে কোড পড়ার চেষ্টা করে তাহলে লাইনের দৈর্ঘ্য ৮০ ক্যারেক্টারে সীমাবদ্ধ রাখাই বাঞ্ছনীয়।


৯ – ফাইল ও ফোল্ডার বিন্যস্তকরণ

বাস্তবিকভাবে বলতে গেলে, আপনি চাইলে একটি মাত্র ফাইলে একটি সম্পূর্ণ অ্যাপ্লিকেশনের কোড লিখে ফেলতে পারেন। তবে সেটা পড়া আর রক্ষণাবেক্ষণ করাটা একটা দুঃস্বপ্নে পরিণত হবে।

আমার প্রথম দিকের প্রোগ্রামিং প্রজেক্টগুলোতে, আমি “ইনক্লুড ফাইল” তৈরির বিষয়টা জানতাম। যাই হোক, আমি তখন মোটেও সুসংগঠিত ছিলাম না। আমি দুইটি ফাইলসহ একটি “inc” ফোল্ডার তৈরি করেছিলাম: db.php এবং functions.php। অ্যাপ্লিকেশনটি প্রসারিত হওয়ার সাথে সাথে ফাংশন ফাইলটিও অনেক বড় আর রক্ষণাবেক্ষণের অযোগ্য হয়ে পড়লো।

সেরা উপায়গুলোর একটা হচ্ছে হয় ফ্রেমওয়ার্ক ব্যবহার করতে হবে নইলে সেগুলোর ফোল্ডারের গঠন নকল করতে হবে। কোডইগনাইটার দেখতে কেমন জেনে নিন:


১০ – সামঞ্জস্যপূর্ণ অস্থায়ী নাম

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

আপনার একই কাজে ব্যবহৃত হয় এমন সব অস্থায়ী ভ্যারিয়েবলের জন্য সামঞ্জস্যপূর্ণ নাম ব্যবহার করার চর্চা থাকা ভালো। আমি আমার কোডে ব্যবহার করি এমন কয়েকটির উদাহরণ:


১১ – এসকিউএল বিশেষ শব্দগুলোকে বড় হাতের করে ফেলুন

বেশিরভাগ ওয়েব অ্যাপ্লিকেশনের একটা বড় অংশ হচ্ছে ডাটাবেইজ ইন্টার‍্যাকশন। আপনি যদি একদম প্রাথমিক এসকিউএল কোয়েরি লিখে থাকেন তাহলে সেগুলোকে পাঠযোগ্য করে রাখুন।

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


১২ – কোড এবং ডাটার বিচ্ছিন্নতা

এই প্রিন্সিপলটি প্রায় সব পরিবেশে সব প্রোগ্রামিং ল্যাঙ্গুয়েজে প্রয়োগ করা যায়। ওয়েব ডেভেলপমেন্টের ক্ষেত্রে, “ডাটা” বলতে সাধারণত এইচটিএমএল আউটপুটকে বুঝায়।

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

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

জনপ্রিয় পিএইচপি ফ্রেমওয়ার্ক:

জনপ্রিয় টেম্পলেট ইঞ্জিন:

জনপ্রিয় কন্টেন্ট ম্যানেজমেন্ট সিস্টেম


১৩ – টেম্পলেটের ভিতরে বিকল্প গঠনতন্ত্র

আপনি হয়তো অভিনব কোন টেম্পলেট ইঞ্জিন ব্যবহার করতে চাইবেন না, বরং আপনার টেম্পলেট ফাইলে আড়ম্বরহীন ইনলাইন পিএইচপি ব্যবহার করতে চাইবেন।  এতে করে “কোড এবং ডাটার পৃথকীকরণ” তত্ত্ব লঙ্ঘন হবে তা নয়। সেক্ষেত্রে ইনলাইন কোডটি সরাসরি আউটপুটের সাথে সম্পৃক্ত থাকতে হবে এবং পাঠযোগ্য হতে হবে। এই ক্ষেত্রে আপনার কন্ট্রোল স্ট্রাকচারের জন্য বিকল্প গঠনতন্ত্র ব্যবহার করতে হবে।

একটি উদাহরণ দেওয়া হল:

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


১৪ – অবজেক্ট কেন্দ্রিক বনাম প্রসিডিউরাল

অবজেক্ট কেন্দ্রিক প্রোগ্রামিং আপনাকে সুগঠিত কোড তৈরি করতে সাহায্য করবে। তার মানে এই না যে আপনাকে প্রসিডিউরাল প্রোগ্রামিং সম্পূর্ণ বাদ দিতে হবে।  সত্যি কথা বলতে এই দুই স্টাইলের সংমিশ্রণ করতে পারলে আরও ভালো।

ডাটার প্রতিনিধিত্ব করার জন্য, বিশেষ করে যেগুলো ডাটাবেইজে থাকে, সেগুলোর জন্য অবজেক্ট ব্যবহার করা উচিত।

স্বাধীনভাবে কাজ করা যাবে এমন সব নির্দিষ্ট কিছু টাস্কে প্রসিডিউরাল ফাংশন ব্যবহার করা যায়।

১৫ – ওপেন সোর্স কোড পড়ুন

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


১৬ – কোড রিফ্যাক্টরিং

আপনি যখন “রিফ্যাক্টর” করেন তখন আপনি কোডের কোন ধরণের কর্মক্ষমতা পরিবর্তন না করে কোডে পরিবর্তন নিয়ে আসতে পারবেন। আপনি এটাকে একটা “পরিচ্ছন্ন অভিযান” বলতে পারেন। এতে করে পাঠযোগ্যতা এবং মান উন্নত হবে।

এর মধ্যে বাগ ফিক্স করা বা নতুন কোন কর্মক্ষমতা যুক্ত করা পড়ে না। আপনি হয়তো একদিন আগেই লেখা কোডও স্মৃতিতে টাটকা থাকতে থাকতে রিফ্যাক্টর করতে চাইবেন। এতে করে আপনি যখন আরও দুই মাস পর এর দিকে ফিরে তাকাবেন তখন এটিকে  আরও পাঠযোগ্য এবং পুনঃব্যবহারযোগ্য হয়ে উঠবে। সূত্রানুযায়ী বলাই যায়: “সময় থাকতে দ্রুত এবং ঘন ঘন রিফ্যাক্টর করুন”।

আপনি রিফ্যাক্টরিং প্রক্রিয়ার সময় কোডের পাঠযোগ্যতা উন্নয়নের এই সেরা উপায়গুলোর যে কোন একটি প্রয়োগ করতে পারেন।

আশা করছি আর্টিকেলটি আপনাদের ভালো লেগেছে! কিছু কি বাদ দিয়ে গেলাম? কমেন্টের মাধ্যমে জানিয়ে দিন আমাদের।

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.