বিনামূল্যের কোড ফরম্যাটার: জাভাস্ক্রিপ্ট, পাইথন, HTML এবং আরও অনেক কিছু সুন্দর করুন
তাৎক্ষণিকভাবে অগোছালো কোডকে সঠিক ইন্ডেন্টেশন এবং স্পেসিংয়ের সাথে ফরম্যাট করুন। ১২+ ভাষা সমর্থন করে যার মধ্যে রয়েছে জাভাস্ক্রিপ্ট, পাইথন, HTML, CSS, এবং জাভা। ব্রাউজার-ভিত্তিক, নিরাপদ, এবং বিনামূল্যে। কোনো সাইন আপ প্রয়োজন নেই।
কোড ফরম্যাটার
একটি ক্লিকে আপনার কোড ফরম্যাট করুন। একটি ভাষা নির্বাচন করুন, আপনার কোড পেস্ট করুন এবং সঠিকভাবে ফরম্যাটকৃত কোড পান।
ব্যবহার পদ্ধতি:
- ড্রপডাউন থেকে আপনার প্রোগ্রামিং ভাষা নির্বাচন করুন।
- ইনপুট এলাকায় আপনার অ-ফরম্যাটকৃত কোড পেস্ট করুন।
- 'কোড ফরম্যাট করুন' বাটনে ক্লিক করুন।
- আউটপুট এলাকা থেকে ফরম্যাটকৃত ফলাফল কপি করুন।
ডকুমেন্টেশন
কেন কোড ফরমেটিং আপনি যা ভাবেন তার চেয়ে বেশি গুরুত্বপূর্ণ
কখনো কি একটি ফাইল খুলে মিনিট খরচ করেছেন শুধুই বের করতে যে একটি ফাংশন কোথায় শেষ হয়? অথবা কোন সহকর্মীর কোড মার্জ করেছেন যা আপনার কোডবেসের অন্য অংশের মতো দেখতে বিল্কুল মিলেনি? আপনি একা নন।
এই কোড ফরমেটার অগোছালো, অবিন্যস্ত কোডকে পরিষ্কার, সঠিকভাবে ইন্ডেন্ট করা এবং সাবেকভাবে স্টাইল করা কোডে রূপান্তরিত করে মাত্র একটি ক্লিকে। যে কারণে সঠিক ফরমেটিং অত্যন্ত জরুরি তা সৌন্দর্যের বাইরে—যখন রাত ২টায় ডিবাগ করছেন, পরিষ্কার ইন্ডেন্টেশন এবং ধারাবাহিক স্পেসিং কয়েক সেকেন্ডে বাগ খুঁজে পাওয়ার বনাম ঘন্টার পার্থক্য হতে পারে।
বাস্তবতা হল যে ডেভেলপাররা কোড লেখার চেয়ে বেশি সময় কোড পড়ে। সফটওয়্যার ইঞ্জিনিয়ারিং ইনস্টিটিউটের অধ্যয়ন দেখায় আমরা কোড লেখার চেয়ে ১০ গুণ বেশি পড়ি। তাই ফরমেটিং বাছাই করা নয়—এটি সরাসরি আপনার উৎপাদনশীলতা এবং আপনার দলের গতিশীলতাকে প্রভাবিত করে। এই টুলটি বিভিন্ন প্রোগ্রামিং ভাষাকে সমর্থন করে এবং শিল্প-মানসম্মত স্টাইল নির্দেশিকাগুলি অনুসরণ করে, স্বয়ংক্রিয়ভাবে ক্লান্তিকর কাজ পরিচালনা করে যাতে আপনি আসল সমস্যা সমাধানে মনোনিবেশ করতে পারেন।
কোড ফরম্যাটিং কীভাবে পিছনে কাজ করে
ফরম্যাটার কীভাবে কাজ করে তা বোঝা আপনাকে সেগুলিকে আরও কার্যকরভাবে ব্যবহার করতে সাহায্য করে। এখানে দেখুন যখন আপনি কোড ফরম্যাট করেন তখন কী ঘটে:
-
পার্সিং: ফরম্যাটার আপনার কোডের সিনট্যাক্স বৈধতা যাচাই করে। এই কারণেই ফরম্যাটাররা সিনট্যাক্স ত্রুটি ধরে ফেলে—তাদের পুনর্বিন্যাস করার আগে আপনার কোডের কাঠামো বুঝতে হবে।
-
AST তৈরি: এটি আপনার কোডের যৌক্তিক কাঠামো প্রতিনিধিত্বকারী একটি অ্যাবস্ট্রাক্ট সিনট্যাক্স ট্রি (AST) তৈরি করে। AST-কে আপনার কোডের উপাদানগুলির (ফাংশন, লুপ, কন্ডিশনাল) একটি ট্রি ডায়াগ্রাম হিসাবে ভাবুন—ফরম্যাটিং বিশদে মুক্ত।
-
স্টাইল প্রয়োগ: ভাষা-নির্দিষ্ট স্টাইল নিয়ম AST-এ প্রয়োগ করা হয়। জাভাস্ক্রিপ্টের জন্য, এটি Prettier-এর ডিজাইন দর্শন বা Airbnb-এর স্টাইল গাইড অনুসরণ করে। পাইথনের জন্য, এটি PEP 8 মানদণ্ড মেনে চলে।
-
কোড জেনারেশন: ফরম্যাটার স্টাইলড AST থেকে নতুন কোড তৈরি করে, সমস্ত কার্যকারিতা সংরক্ষণ করে যখন কাঠামো উন্নত করে।
এখানে গুরুত্বপূর্ণ: ফরম্যাটার কখনই আপনার কোডের কাজ পরিবর্তন করে না, শুধুমাত্র তার দেখতে কেমন হয়। AST পদ্ধতি এটি নিশ্চিত করে কারণ এটি পাঠ্য স্তরের পরিবর্তে সেমান্টিক স্তরে কাজ করে। এই কারণেই আধুনিক ফরম্যাটাররা পুরানো খুঁজে-বদলে পদ্ধতির তুলনায় অনেক নির্ভরযোগ্য।
টিউল ম্যানুয়ালি ঘণ্টার পর ঘণ্টা সময় নেওয়ার মতো ফরম্যাটিং দিকগুলি পরিচালনা করে:
- ধারাবাহিক ইন্ডেন্টেশন (সাধারণত 2 বা 4 স্পেস, ভাষা প্রচলিত অনুসারে)
- কৌশলগত লাইন ব্রেক যা পঠনযোগ্যতা উন্নত করে কিন্তু যুক্তি ভাঙে না
- ভাষা-নির্দিষ্ট প্রচলন অনুসারে বন্ধনী স্থাপন
- সন্দর্ভ বজায় রাখে এমন মন্তব্য সারণ
- আরও ভাল দৃশ্য পার্সিংয়ের জন্য অপারেটর স্পেসিং
সমর্থিত প্রোগ্রামিং ভাষাগুলি কোড ফরম্যাটিংয়ের জন্য
এই কোড ফরম্যাটার ওয়েব ডেভেলপমেন্ট থেকে সিস্টেম প্রোগ্রামিংয়ের মধ্যে বিভিন্ন ডোমেইনে প্রোগ্রামিং ভাষাগুলির একটি বিস্তৃত পরিসরকে সমর্থন করে:
| ভাষা | ফাইল এক্সটেনশন | মূল ফরম্যাটিং বৈশিষ্ট্যসমূহ |
|---|---|---|
| জাভাস্ক্রিপ্ট | .js, .jsx | সঠিক ইন্ডেন্টেশন, সেমিকোলন প্লেসমেন্ট, ব্রাকেট শৈলী |
| টাইপস্ক্রিপ্ট | .ts, .tsx | টাইপ অ্যানোটেশন, ইন্টারফেস ফরম্যাটিং, জেনেরিক সারিবদ্ধকরণ |
| HTML | .html, .htm | ট্যাগ ইন্ডেন্টেশন, অ্যাট্রিবিউট সারিবদ্ধকরণ, স্ব-বন্ধ ট্যাগ |
| CSS | .css, .scss, .less | সম্পত্তি সারিবদ্ধকরণ, সিলেক্টর ফরম্যাটিং, নেস্টিং কাঠামো |
| পাইথন | .py | PEP 8 সামঞ্জস্য, সঠিক ইন্ডেন্টেশন, আমদানি সংগঠন |
| জাভা | .java | ব্রাকেট প্লেসমেন্ট, মেথড স্পেসিং, অ্যানোটেশন ফরম্যাটিং |
| C/C++ | .c, .cpp, .h | পয়েন্টার সারিবদ্ধকরণ, প্রিপ্রসেসর নির্দেশিকা, টেমপ্লেট ফরম্যাটিং |
| C# | .cs | লাম্বডা এক্সপ্রেশন, LINQ কোয়েরি, অ্যানোটেশন ফরম্যাটিং |
| SQL | .sql | কীওয়ার্ড বড় অক্ষরে, কোয়েরি ইন্ডেন্টেশন, জয়েন সারিবদ্ধকরণ |
| JSON | .json | সম্পত্তি সারিবদ্ধকরণ, অ্যারে ফরম্যাটিং, নেস্টেড কাঠামো |
| XML | .xml | ট্যাগ ইন্ডেন্টেশন, অ্যাট্রিবিউট সারিবদ্ধকরণ, নেমস্পেস ফরম্যাটিং |
| PHP | .php | PHP ট্যাগ স্পেসিং, ফাংশন ঘোষণা, অ্যারে সিনট্যাক্স |
প্রত্যেক ভাষা ফরম্যাটার সেই নির্দিষ্ট ভাষার জন্য প্রতিষ্ঠিত স্টাইল গাইডলাইন এবং সর্বোত্তম অনুশীলনগুলি অনুসরণ করে, যা নিশ্চিত করে যে আপনার কোড শুধুমাত্র সুন্দর দেখতে দেখে নয়, বরং সম্প্রদায়ের মানদণ্ডগুলিও মেনে চলে।
কোড ফর্মেটার কীভাবে ব্যবহার করবেন
আমাদের কোড ফর্মেটার টুল ব্যবহার করা সহজ এবং শুধুমাত্র কয়েকটি সহজ ধাপ প্রয়োজন:
ধাপ ১: আপনার প্রোগ্রামিং ভাষা নির্বাচন করুন
ড্রপডাউন মেনু থেকে, আপনার কোডের প্রোগ্রামিং ভাষা নির্বাচন করুন। এটি নিশ্চিত করে যে ফর্মেটার সেই ভাষার জন্য সঠিক সিনট্যাক্স নিয়ম এবং স্টাইল গাইডলাইন প্রয়োগ করবে।
ধাপ ২: আপনার কোড ইনপুট করুন
আপনার অফর্মেটেড কোডটি ইনপুট টেক্সট এলাকায় পেস্ট করুন। আপনি যেকোনো দৈর্ঘ্যের কোড ইনপুট করতে পারেন, যদিও অত্যন্ত বড় ফাইলগুলি প্রক্রিয়া করতে আরো সময় নিতে পারে।
ধাপ ৩: "কোড ফর্ম্যাট করুন" এ ক্লিক করুন
ফর্মেটিং প্রক্রিয়া শুরু করতে "কোড ফর্ম্যাট করুন" বাটনে ক্লিক করুন। টুলটি আপনার কোড বিশ্লেষণ করবে এবং উপযুক্ত ফর্মেটিং নিয়ম প্রয়োগ করবে।
ধাপ ৪: ফর্মেটেড কোড পর্যালোচনা এবং কপি করুন
ফর্মেটেড কোড আউটপুট এলাকায় দেখা যাবে। আপনার প্রত্যাশা পূরণ করে কিনা তা নিশ্চিত করতে পরিবর্তনগুলি পর্যালোচনা করুন, তারপর আপনার প্রকল্পে ব্যবহার করার জন্য ক্লিপবোর্ডে ফর্মেটেড কোড কপি করতে "কপি" বাটনটি ব্যবহার করুন।
কোড ফরম্যাটিং উদাহরণ
জাভাস্ক্রিপ্ট আগে এবং পরে
আগে ফরম্যাটিং:
1function calculateSum(a,b){
2if(typeof a!=='number'||typeof b!=='number'){return null;}
3var result=a+b;
4return result;
5}
6const numbers=[1,2,3,4,5];
7const doubled=numbers.map(function(num){return num*2;});
8console.log(doubled);
9পরে ফরম্যাটিং:
1function calculateSum(a, b) {
2 if (typeof a !== 'number' || typeof b !== 'number') {
3 return null;
4 }
5 var result = a + b;
6 return result;
7}
8
9const numbers = [1, 2, 3, 4, 5];
10const doubled = numbers.map(function(num) {
11 return num * 2;
12});
13console.log(doubled);
14পাইথন আগে এবং পরে
আগে ফরম্যাটিং:
1def calculate_average(numbers):
2 if len(numbers)==0:return 0
3 total=sum(numbers)
4 average=total/len(numbers)
5 return average
6# ফাংশন পরীক্ষা করুন
7test_scores=[85,90,78,92,88]
8avg=calculate_average(test_scores)
9print(f"গড় স্কোর হল: {avg}")
10পরে ফরম্যাটিং:
1def calculate_average(numbers):
2 if len(numbers) == 0:
3 return 0
4 total = sum(numbers)
5 average = total / len(numbers)
6 return average
7
8# ফাংশন পরীক্ষা করুন
9test_scores = [85, 90, 78, 92, 88]
10avg = calculate_average(test_scores)
11print(f"গড় স্কোর হল: {avg}")
12HTML আগে এবং পরে
আগে ফরম্যাটিং:
পরে ফরম্যাটিং:
1<!DOCTYPE html>
2<html>
3 <head>
4 <title>আমার পৃষ্ঠা</title>
5 <style>
6 body {
7 font-family: Arial;
8 margin: 0;
9 padding: 20px;
10 }
11 </style>
12 </head>
13 <body>
14 <div class="container">
15 <h1>স্বাগতম</h1>
16 <p>এটি একটি অনুচ্ছেদ <a href="https://example.com">একটি লিঙ্ক</a> এর সাথে।</p>
17 <ul>
18 <li>আইটেম ১</li>
19 <li>আইটেম ২</li>
20 <li>আইটেম ৩</li>
21 </ul>
22 </div>
23 </body>
24</html>
25আসল সুবিধা যা আপনি তাৎক্ষণিকভাবে লক্ষ করবেন
স্টাইল তর্কে সময় নষ্ট করা বন্ধ করে
এটি একটি সাধারণ পরিস্থিতি: কোড পর্যালোচনার সময়, কেউ লজিকের পরিবর্তে ব্রাকেটের অবস্থান বা ইন্ডেন্টেশন সম্পর্কে মন্তব্য করে। এই আলোচনাগুলি একটি স্প্রিন্টে ঘণ্টা ব্যয় করতে পারে। স্বয়ংক্রিয় কোড ফরম্যাটিং এই তর্কগুলিকে সম্পূর্ণরূপে বাতিল করে। যখন সবার কোড ফরম্যাটিংয়ের পরে একই দেখতে, পর্যালোচনা মূল বিষয়ে মনোনিবেশ করে—আর্কিটেকচার, বাগ এবং কর্মক্ষমতা।
ডিবাগিংকে অনেক দ্রুত করে
সংক্ষিপ্ত কোড বনাম ফরম্যাটকৃত কোডে বাগ খুঁজুন—পার্থক্যটি নাটকীয়। জাভাস্ক্রিপ্টের কলব্যাক চেইন বা পাইথনের নেস্টেড কন্ডিশনালে কাজ করার সময়, সঠিক ফরম্যাটিং নিয়ন্ত্রণ প্রবাহকে দৃশ্যত স্পষ্ট করে। আমি বিকাশকারীদের দেখেছি যারা খারাপ ফরম্যাটকৃত কোডে ঘণ্টা ব্যয় করার পরিবর্তে মিনিটে বাগ খুঁজে পেয়েছে, কেবল কাঠামোটি তাৎক্ষণিকভাবে স্পষ্ট ছিল বলে।
অনবোর্ডিংয়ের ঘর্ষণ কমায়
নতুন দল সদস্যরা যেকোনো ফাইলে বিভিন্ন কোডিং স্টাইলে সামঞ্জস্য করতে বাধ্য হয় না। যখন সম্পূর্ণ কোডবেস একই ফরম্যাটিংকে অনুসরণ করে, বিভিন্ন বিকাশকারী দ্বারা লিখিত ফাইলগুলির মধ্যে পরিবর্তন করার সময় কোনও জ্ঞানগত ওভারহেড থাকে না। এই ধারাবাহিকতা অনবোর্ডিংয়ের সময়কে পরিমাপযোগ্যভাবে কমায়।
ফরম্যাটিংয়ের কারণে মার্জ কনফ্লিক্ট প্রতিরোধ করে
একটি ঘন ব্যথার বিন্দু: কেউ একটি সম্পূর্ণ ফাইল পুনরায় ফরম্যাট করে, বাস্তব কোড পরিবর্তনগুলিকে প্রতিফলিত করে না এমন বিশাল মার্জ কনফ্লিক্ট তৈরি করে। যখন সবাই কমিট করার আগে একই ফরম্যাটার চালায়, ফরম্যাটিং পরিবর্তনগুলি ডিফগুলিকে দূষিত করে না। এটি কোড পর্যালোচনাগুলিকে পরিষ্কার এবং মার্জগুলিকে মসৃণ করে।
সিনট্যাক্স ত্রুটিগুলিকে শীঘ্র ধরে
যেহেতু ফরম্যাটাররা কোডকে AST তৈরি করতে পার্স করে, তারা সিনট্যাক্স ত্রুটিগুলিকে তাৎক্ষণিকভাবে ধরে ফেলে। আপনি পরীক্ষা চালানোর আগে অনুপস্থিত ব্রাকেট, বন্ধ হয়নি এমন স্ট্রিংস বা বিকৃত অভিব্যক্তিগুলি সম্পর্কে জানবেন। এই সংক্ষিপ্ত প্রতিক্রিয়া লুপ বিকাশকে যথেষ্ট দ্রুত করে।
আপনি কখন এই কোড ফর্মেটার ব্যবহার করবেন
কপি করা কোডের পরিষ্কার করা
আপনি Stack Overflow বা ডকুমেন্টেশন থেকে একটি কোড স্নিপেট নিয়েছেন যার ইন্ডেন্টেশন অস্বাভাবিক। ম্যানুয়ালি স্পেসিং এবং ট্যাব ঠিক করার পরিবর্তে, তাৎক্ষণিক পরিষ্কার করার জন্য এটিতে পেস্ট করুন। এটি বিশেষভাবে দরকারি যখন বিভিন্ন উৎস থেকে উদাহরণ সংযুক্ত করা হয় যারা ভিন্ন ফরম্যাটিং কনভেনশন ব্যবহার করে।
মিনিফাইড প্রোডাকশন কোড ডিবাগ করা
প্রোডাকশন জাভাস্ক্রিপ্ট বা CSS ফাইলগুলি প্রায়ই মিনিফাইড হয়—হাজার হাজার অক্ষরের একটি লাইন। প্রোডাকশন সমস্যা সমাধানের সময়, আপনার পঠনযোগ্য কোড দরকার। এই ফর্মেটার সঠিক কাঠামো পুনরুদ্ধার করে, যা ব্রেকপয়েন্ট সেট করা এবং কার্যসম্পাদনা প্রবাহ অনুসরণ করা সম্ভব করে।
ডকুমেন্টেশনের জন্য কোড প্রস্তুত করা
টিউটোরিয়াল, README উদাহরণ, বা কাচিক ব্লগ পোস্ট তৈরি করতে পরিষ্কার, পঠনযোগ্য কোড প্রয়োজন। ফরম্যাটিং নিশ্চিত করে যে আপনার উদাহরণগুলি পেশাদার এবং অনুসরণ করা সহজ। পাঠকরা আংশিকভাবে ফরম্যাটিংয়ের মাধ্যমে কোডের গুণমান বিচার করে, তাই এই ধাপটি আপনি যা ভাবতে পারেন তার চেয়ে বেশি গুরুত্বপূর্ণ।
লিগাসি কোডবেস স্ট্যান্ডার্ডাইজ করা
কোডবেস উত্তরাধিকার পেয়েছেন যেখানে প্রত্যেক ফাইল ভিন্ন ইন্ডেন্টেশন ব্যবহার করে? কেউ ট্যাব ব্যবহার করে, অন্যরা ২ স্পেস, আবার অন্যরা ৪? রিফ্যাক্টরিং বা বৈশিষ্ট্য যোগ করার আগে, ফরম্যাটিং স্ট্যান্ডার্ডাইজ করা কোডটিকে নেভিগেট করা অনেক সহজ করে। এটি প্রায়ই কাচিক ঋণ হ্রাসের প্রথম ধাপ।
IDE সেটআপ ছাড়া দ্রুত ফরম্যাটিং
এমন মেশিনে কাজ করছেন যেখানে আপনার সাধারণ ডেভেলপমেন্ট পরিবেশ নেই? বেসিক টেক্সট এডিটরে কোড পরীক্ষা করছেন? এই ব্রাউজার-ভিত্তিক ফর্মেটারের কোন ইনস্টলেশন বা কনফিগারেশন প্রয়োজন হয় না। এটি দূরবর্তী সার্ভার বা ভাগ করা মেশিনগুলিতে দ্রুত সমাধানের জন্য বিশেষভাবে দরকারি।
কোড কাঠামো শিক্ষা এবং শেখা
শিক্ষকদের জন্য কাজ মূল্যায়ন করা বা শিক্ষার্থীদের জন্য শৈলী কনভেনশন শেখার ক্ষেত্রে, সঠিকভাবে ফরম্যাটকৃত কোড দেখা সর্বোত্তম অনুশীলনগুলি অন্তর্নিহিত করতে সাহায্য করে। আগে-পরে তুলনাটি প্রত্যেক ভাষার জন্য ভাল ফরম্যাটিংটি সঠিকভাবে দেখায়।
সীমাবদ্ধতা এবং জেনে রাখা উচিত এজ কেসগুলি
যখন ফর্মাটার কঠিন হয়ে পড়ে
আপনাকে পরে বলা হবে: ফর্মাটার সাধারণত সিনট্যাক্টিকভাবে সঠিক কোডের সাথে সবচেয়ে ভাল কাজ করে। যদি আপনার কোডে সিনট্যাক্স ত্রুটি থাকে—যেমন অসম্পূর্ণ বন্ধনী, বন্ধ হয়নি এমন স্ট্রিংস, অবৈধ টোকেন—তাহলে ফর্মাটার সম্ভবত ব্যর্থ হবে বা অপ্রত্যাশিত ফলাফল দিবে। প্রথমে সিনট্যাক্স ত্রুটিগুলি সংশোধন করুন, তারপর ফর্ম্যাট করুন।
বড় ফাইলগুলির জন্য আলাদা পদ্ধতি প্রয়োজন
ব্রাউজার-ভিত্তিক ফর্মাটার বেশিরভাগ কোড স্নিপেটগুলি ভাল হ্যান্ডেল করে, কিন্তু ৫০,০০০ লাইনের বেশি ফাইলগুলি ব্রাউজার মেমোরি সীমা বা টাইমআউট হিট করতে পারে। সম্পূর্ণ মডিউল বা বড় জেনারেটেড ফাইলগুলির জন্য, আপনি কমান্ড-লাইন টুলস যেমন Prettier বা Black ব্যবহার করা ভাল যেগুলি আরও সিস্টেম সংস্থান ব্যবহার করতে পারে। এটি কোন দোষ নয়—এটি সুবিধা এবং শূন্য-ইনস্টলেশন অ্যাক্সেসের জন্য একটি ট্রেডঅফ।
ফ্রেমওয়ার্ক-নির্দিষ্ট সিনট্যাক্স এক্সটেনশন
কিছু ফ্রেমওয়ার্ক অ-মানক সিনট্যাক্স ব্যবহার করে। Vue সিঙ্গেল-ফাইল কম্পোনেন্ট, Svelte টেমপ্লেট, বা অস্বাভাবিক প্লাগিন সহ JSX সম্পূর্ণভাবে ফর্ম্যাট হতে পারে না। ফর্মাটার মানক ভাষা বৈশিষ্ট্যগুলি নির্ভরযোগ্যভাবে হ্যান্ডেল করে, কিন্তু প্রিপ্রসেসিং নির্দেশিকা বা ম্যাক্রো সিস্টেমের সাথে এজ কেসগুলি পরবর্তীতে ম্যানুয়াল সমন্বয় প্রয়োজন হতে পারে। সর্বদা আউটপুট পর্যালোচনা করুন।
মন্তব্য প্লেসমেন্ট জটিল হয়ে পড়ে
যদিও ফর্মাটাররা মন্তব্যগুলি সংরক্ষণ করে, তারা কখনও কখনও তাদের অপ্রত্যাশিত উপায়ে সরিয়ে দেয়। ইনলাইন মন্তব্যগুলি তাদের নিজস্ব লাইনে সরে যেতে পারে, বা ব্লক মন্তব্যগুলি তাদের বর্ণনা করা কোড থেকে আলাদা হতে পারে। এটি ঘটে কারণ AST সম্পূর্ণভাবে মন্তব্যের উদ্দেশ্য ধরতে পারে না। ফর্ম্যাটিংয়ের পরে, দ্রুত স্ক্যান করুন যে মন্তব্যগুলি প্রসঙ্গে এখনও অর্থবহ।
বিভিন্ন টুল, বিভিন্ন ফলাফল
Prettier, Black, এবং অন্যান্য ফর্মাটাররা বিভিন্ন মতাদর্শগত পছন্দ করে। এই টুলের সাথে ফর্ম্যাট করা কোড আপনার IDE যা আলাদা নিয়ম ব্যবহার করে তার থেকে সামান্য আলাদা হতে পারে। দলের সামঞ্জস্যতার জন্য, সবাইকে একই ফর্মাটার একই কনফিগারেশন সহ ব্যবহার করা উচিত। এই টুল সাধারণ ডিফল্ট অনুসরণ করে, কিন্তু স্থানীয় টুলগুলি আরও কাস্টমাইজেশন অফার করে।
ডেভেলপমেন্ট ওয়ার্কফ্লোর জন্য কোড ফরমেটার বিকল্পসমূহ
দ্রুত এক-বারের ফরমেটিংয়ের জন্য, এই ব্রাউজার টুল খুব ভাল কাজ করে। কিন্তু যদি আপনি নিয়মিত কোড ফরমেট করেন, তাহলে ডেভেলপমেন্ট ওয়ার্কফ্লোতে ফরমেটার সংযুক্ত করা আরও যুক্তিসঙ্গত:
আইডিই এক্সটেনশন এবং প্লাগইন
বেশিরভাগ আইডিই নেটিভ বা প্লাগইন-ভিত্তিক ফরমেটিং অফার করে। এগুলি ব্রাউজার টুলের চেয়ে দ্রুত চলে এবং আপনার এডিটরের সংরক্ষণ কমান্ডের সাথে সংযুক্ত হয়:
- Prettier – সবচেয়ে জনপ্রিয় জাভাস্ক্রিপ্ট/টাইপস্ক্রিপ্ট ফরমেটার, VS Code, WebStorm, Sublime এবং অন্যান্যের জন্য উপলব্ধ। ফরম্যাট-অন-সেভ সমর্থন করে।
- Black – "আপোষহীন" পাইথন ফরমেটার। ন্যূনতম কনফিগারেশন, সর্বাধিক সামঞ্জস্যতা।
- ESLint ফরমেটিং নিয়মসহ – জাভাস্ক্রিপ্টের জন্য লিন্টিং এবং ফরমেটিং সংযুক্ত করে। Prettier এর চেয়ে আরও কনফিগারেযোগ্য কিন্তু সেটআপ প্রয়োজন।
- ClangFormat – C/C++/Java-এর জন্য শিল্প মান। Google, Mozilla এবং LLVM প্রকল্পগুলি ব্যবহার করে।
স্বয়ংক্রিয়করণের জন্য কমান্ড-লাইন টুলস
কমান্ড-লাইন ফরমেটার বিল্ড স্ক্রিপ্ট, CI/CD পাইপলাইন এবং গিট হুকের মাধ্যমে স্বয়ংক্রিয়করণ সক্ষম করে:
- Prettier (জাভাস্ক্রিপ্ট, টাইপস্ক্রিপ্ট, CSS, HTML, মার্কডাউন)
- Black (পাইথন) – Django এবং pytest মতো বড় প্রকল্পগুলি ব্যবহার করে
- gofmt (Go) – Go-এর সাথেই আসে; Go কোডবেসে প্রায় সর্বত্র ব্যবহৃত
- rustfmt (Rust) – অফিসিয়াল Rust ফরমেটার,
rustfmt.toml-এর মাধ্যমে কনফিগার করা হয় - clang-format (C/C++/Java/Objective-C)
বাস্তবায়নের জন্য গিট হুকস
প্রি-কমিট হুকস স্বয়ংক্রিয়ভাবে কমিট করার আগে কোড ফরম্যাট করে, অবিন্যস্ত কোডকে আপনার রিপোজিটরিতে প্রবেশ করতে বাধা দেয়। Husky (জাভাস্ক্রিপ্ট) বা pre-commit (ভাষা-অ-নির্ভর) মতো টুলস এটি সহজ করে তোলে। এই পদ্ধতি ডেভেলপার শৃঙ্খলার উপর নির্ভর না করে সাংগঠনিকতা নিশ্চিত করে।
কোড ফরম্যাটিংয়ের সম্পর্কে ঘন ঘন জিজ্ঞাসিত প্রশ্নাবলী
কি ফরম্যাটিং আমার কোড ভেঙ্গে দেবে?
না। ফরম্যাটার Abstract Syntax Tree স্তরে কাজ করে, যার অর্থ তারা আপনার কোডের কাঠামো বুঝতে পারে এবং এর যুক্তি সংরক্ষণ করে। ফরম্যাটার শুধুমাত্র হোয়াইটস্পেস, ইন্ডেন্টেশন এবং লাইন ব্রেক পরিবর্তন করে—কোনো বাস্তব স্টেটমেন্ট, এক্সপ্রেশন বা যুক্তি নয়। যাইহোক, যদি আপনার কোডে সিনট্যাক্স ত্রুটি থাকে, তাহলে ফরম্যাটার ব্যর্থ হতে পারে বা অপ্রত্যাশিত আউটপুট দিতে পারে।
কি এই টুল আমার কোড সার্ভারে পাঠায়?
না, সমস্ত ফরম্যাটিং আপনার ব্রাউজারে JavaScript ব্যবহার করে সম্পন্ন হয়। আপনার কোড কোনোখানেই যায় না, আপলোড হয় না এবং সংরক্ষিত হয় না। এটি মালিকানা বা সংবেদনশীল কোড ফরম্যাট করার জন্য নিরাপদ।
আমার IDE কেন কোড অন্যভাবে ফরম্যাট করে?
বিভিন্ন ফরম্যাটার বিভিন্ন স্টাইল নিয়ম ব্যবহার করে। আপনার IDE হয়তো কাস্টম কনফিগারেশন সহ Prettier ব্যবহার করে, যেখানে এই টুল ডিফল্ট নিয়ম ব্যবহার করে। সামঞ্জস্যতার জন্য, দলগুলিকে একটি ফরম্যাটার সম্পর্কে সম্মত হতে হবে এবং সর্বত্র একই কনফিগারেশন ব্যবহার করতে হবে। নির্দিষ্ট নিয়মগুলি কম গুরুত্বপূর্ণ, সবাই যেন একই নিয়ম ব্যবহার করে।
আমি কি ফাইলের শুধু একটি অংশ ফরম্যাট করতে পারি?
এই টুল সম্পূর্ণ কোড ব্লক ফরম্যাট করে। বেশিরভাগ IDE-ভিত্তিক ফরম্যাটার নির্বাচন-ভিত্তিক ফরম্যাটিংকে সমর্থন করে, যা বাকি অংশ স্পর্শ না করে নির্দিষ্ট ফাংশনগুলি ফরম্যাট করার জন্য দরকারী। আংশিক ফরম্যাটিংয়ের জন্য, শুধুমাত্র সেই অংশটি কপি করুন, এখানে ফরম্যাট করুন, তারপর আবার পেস্ট করুন।
ট্যাব বনাম স্পেস সম্পর্কে কী হয়?
ফরম্যাটার সাধারণত সবকিছুকে স্পেসে রূপান্তর করে (ভাষার প্রচলন অনুসারে ২ বা ৪) কারণ স্পেস সমস্ত সম্পাদকে এবং প্ল্যাটফর্মে একইভাবে রেন্ডার হয়। ট্যাবগুলি সম্পাদক সেটিংস অনুসারে আলাদাভাবে প্রদর্শিত হতে পারে, যা "আমার মেশিনে ঠিক দেখায়" সমস্যা তৈরি করে।
কেন ফরম্যাটার আমার কোডে ব্যর্থ হল?
সবচেয়ে বেশি সময়, এটি একটি সিনট্যাক্স ত্রুটি—অনুপস্থিত বন্ধনী, অবন্ধ স্ট্রিং, বা অবৈধ টোকেন। প্রথমে আপনার কোডে স্পষ্ট সিনট্যাক্স সমস্যাগুলি পরীক্ষা করুন। যদি কোডটি আপনার পরিবেশে সঠিকভাবে চলে কিন্তু ফরম্যাট করতে পারে না, তাহলে আপনি হয়তো এমন নন-স্ট্যান্ডার্ড সিনট্যাক্স এক্সটেনশন ব্যবহার করছেন যা ফরম্যাটার স্বীকার করে না।
আমি কিভাবে আমার দলে ফরম্যাটকৃত কোড প্রয়োগ করব?
সবচেয়ে কার্যকর পদ্ধতি: কমিট করার আগে গিট হুকস যা স্বয়ংক্রিয়ভাবে কমিট করার আগে কোড ফরম্যাট করে। এটি অফরম্যাটকৃত কোডকে রিপোজিটোরিতে প্রবেশ করতে বাধা দেয়। Husky (JavaScript) বা pre-commit (Python) এর মতো টুলস এটি সহজ করে তোলে। কিছু দল CI পাইপলাইনে ফরম্যাটার চালায় এবং কোড ফরম্যাট করা না থাকলে বিল্ড ব্যর্থ করে।
আমি কোড লিখার আগে বা পরে ফরম্যাট করব?
উভয়। পাঠ্য পাঠযোগ্য রাখতে যেমন লিখছেন তেমন ফরম্যাট করুন (আপনার IDE-তে সংরক্ষণের সময় ফরম্যাট করুন)। তারপর সামঞ্জস্যতা নিশ্চিত করতে কমিট করার আগে ফরম্যাট করুন। কিছু ডেভেলপার দ্রুত অগোছালো কোড লিখে, তারপর সম্পন্ন হলে ফরম্যাট করে—যে কাজপ্রবাহ আপনাকে উৎপাদনশীল রাখে।
ফরম্যাটিং কি কোড অবজেক্টিভভাবে ভাল করে?
ফরম্যাটকৃত কোড পড়তে সহজ, যা এটিকে রক্ষণাবেক্ষণ, পর্যালোচনা এবং ডিবাগ করতে সহজ করে তোলে। যাইহোক, ফরম্যাটিং খারাপ আর্কিটেকচার, অদক্ষ অ্যালগরিদম বা যুক্তি ত্রুটি ঠিক করে না। এটিকে পরিষ্কার হিসাবে ভাবুন—প্রয়োজনীয় কিন্তু কোড গুণমানের জন্য পর্যাপ্ত নয়।
কি এটি কোড লিন্টারের পরিবর্তে ব্যবহার করা যায়?
না। ফরম্যাটার স্টাইল পরিচালনা করে (ইন্ডেন্টেশন, স্পেসিং, লাইন ব্রেক)। লিন্টার বাগগুলি ধরে, সর্বোত্তম অনুশীলন বাস্তবায়ন করে এবং সমস্যাপূর্ণ প্যাটার্ন চিহ্নিত করে। উভয়টি ব্যবহার করুন: সামঞ্জস্যতার জন্য ফরম্যাটার, সঠিকতার জন্য লিন্টার। বেশিরভাগ প্রকল্পে ESLint বা Pylint লিন্টিংয়ের জন্য এবং Prettier বা Black ফরম্যাটিংয়ের জন্য ব্যবহার করে।
অভিজ্ঞতা থেকে কোড ফরম্যাটিংয়ের সর্বোত্তম অনুশীলন
এটিকে স্বয়ংক্রিয় করুন, মেমোরিতে নির্ভর করবেন না
ম্যানুয়াল ফরম্যাটিং বড় হতে পারে না। আপনার IDE-তে ফরম্যাট-অন-সেভ সেট করুন যাতে কাজ করার সময় ফরম্যাটিং স্বয়ংক্রিয়ভাবে হয়। এটি কমিট করার আগে ফরম্যাট করার কথা মনে রাখার জ্ঞানগত বোঝা দূর করে। দলের জন্য, প্রি-কমিট হুকস সর্বত্র ফরম্যাটিং নিশ্চিত করে—যদি কোড ফরম্যাট করা না হয়, তাহলে কমিট হবে না।
একটি ফরম্যাটার নির্বাচন করুন, তারপর এটি নিয়ে আলোচনা বন্ধ করুন
২ স্পেস বনাম ৪, বা ব্রাকেট কোথায় যাবে, সে নিয়ে অনন্ত বিতর্ক সময় নষ্ট করে। একটি ব্যাপকভাবে ব্যবহৃত ফরম্যাটার (জাভাস্ক্রিপ্টের জন্য Prettier, পাইথনের জন্য Black) বেছে নিন, এর ডিফল্ট সেটিংস ব্যবহার করুন, এবং এগিয়ে যান। নির্দিষ্ট নিয়মগুলি তার চেয়ে অনেক কম গুরুত্বপূর্ণ যে সবাই একই নিয়ম সঠিকভাবে ব্যবহার করছে।
সম্পূর্ণ ফাইল ফরম্যাট করুন, শুধু পরিবর্তনগুলি নয়
আংশিক ফরম্যাটকৃত ফাইল জ্ঞানগত ঘর্ষণ তৈরি করে। যখন কোনও ফাইল খুলবেন, ডেভেলপাররা ফরম্যাটিংয়ের অসঙ্গতিগুলি লক্ষ্য করবেন এবং তাদের হয় ঠিক করবেন (যা কলঙ্কিত ডিফ তৈরি করে) বা উপেক্ষা করবেন (সমস্যাটি বজায় রাখে)। সম্পূর্ণ ফাইল ফরম্যাট করুন বা একটিও নয়।
জেনারেটেড কোডকে ফরম্যাট করবেন না
বিল্ড আউটপুট, নির্ভরতা ফাইল এবং জেনারেটেড কোড ফরম্যাট করা উচিত নয়। .prettierignore বা সমতুল্যে যোগ করুন। জেনারেটেড কোড ফরম্যাট করলে বড় এবং অর্থহীন ডিফ তৈরি হয় এবং সরঞ্জাম যা নির্দিষ্ট ফরম্যাটিংয়ের প্রত্যাশা করে তা ভেঙ্গে যেতে পারে।
ফরম্যাটিং কমিটকে লজিক পরিবর্তন থেকে আলাদা করুন
যখন একটি বিদ্যমান কোডবেসে ফরম্যাটিং যোগ করবেন, তখন একটি নির্দিষ্ট কমিটে করুন যার বার্তা পরিষ্কার হবে যেমন "chore: Prettier দিয়ে সমস্ত ফাইল ফরম্যাট করুন।" এটি গিট ব্লেমকে ব্যবহারযোগ্য রাখে এবং কোড পর্যালোচনাগুলিকে ব্যবস্থাপনাযোগ্য করে। ফরম্যাটিংকে লজিক পরিবর্তনের সাথে মিশিয়ে দিলে অপঠিত ডিফ তৈরি হয়।
কর্তৃত্বসম্পন্ন রেফারেন্স এবং স্টাইল গাইডস
গভীর বোঝার জন্য ফরম্যাটিং কনভেনশন এবং তাদের পিছনের নীতিগুলি:
- PEP 8 – পাইথন কোডের জন্য স্টাইল গাইড – পাইথন সফটওয়্যার ফাউন্ডেশন দ্বারা রক্ষিত আনুষ্ঠানিক পাইথন স্টাইল গাইড
- গুগল স্টাইল গাইডস – C++, Java, Python, JavaScript এবং আরও অনেক ভাষার জন্য সম্পূর্ণ স্টাইল গাইডস
- Prettier রেশনাল – কোড ফরম্যাটিংয়ের পিছনের দর্শন ব্যাখ্যা করে
- Airbnb JavaScript স্টাইল গাইড – সবচেয়ে ব্যাপকভাবে গৃহীত JavaScript স্টাইল গাইড
- মাইক্রোসফট C# কোডিং কনভেনশন – আনুষ্ঠানিক C# ফরম্যাটিং এবং নামকরণ কনভেনশন
- MDN JavaScript ডকুমেন্টেশন – ফরম্যাটিং উদাহরণসহ কর্তৃত্বসম্পন্ন JavaScript রেফারেন্স
- LLVM কোডিং স্ট্যান্ডার্ডস – বড় প্রকল্পগুলিতে ব্যবহৃত C++ ফরম্যাটিং মানদণ্ড
কোড ফরম্যাটিং শুরু করুন
অগোছালো কোড যা পরিষ্কার করতে চান? উপরের ফরম্যাটারে কোড পেস্ট করুন, আপনার ভাষা নির্বাচন করুন, এবং "কোড ফরম্যাট করুন" বাটনে ক্লিক করুন। রূপান্তর তৎক্ষণাৎ আপনার ব্রাউজারে সংঘটিত হয়—কোনো সাইন আপ নয়, কোনো ইনস্টলেশন নয়, কোনো সার্ভারে তথ্য পাঠানো হয় নি। আপনি যদি মিনিফাইড জাভাস্ক্রিপ্ট ডিবাগ করছেন, একটি পুরোনো কোডবেস মানসম্মত করছেন, অথবা শুধুমাত্র কপি করা কোড পরিষ্কার করছেন, সঠিকভাবে ফরম্যাটকৃত কোড মাত্র একটি ক্লিকে পাওয়া যাবে।