এই গো ফরম্যাটারটি আপনার জন্য কী করে
- অফিসিয়াল গো ফরম্যাটিং নিয়ম প্রয়োগ করতে `গোফম্ট` ব্যবহার করে (ট্যাবস, স্পেসিং, লেআউট) — আপনার লোকাল গো টুলচেইনের মতোই
- জেনেরিক্স, ইন্টারফেস, কম্পোজিট লিটারেল এবং গোরুটিন সহ আধুনিক গো ফিচার হ্যান্ডেল করে
- গোফম্ট বিহেভিয়ারের সাথে সামঞ্জস্যপূর্ণভাবে স্ট্রাক্ট ডেফিনিশন এবং ট্যাগগুলি রিডেবল এবং ধারাবাহিকভাবে ফরম্যাটেড রাখে
- ক্লিয়ারিটি এবং ডিফ-ফ্রেন্ডলি আউটপুটের জন্য লং এক্সপ্রেশন, ফাংশন সিগনেচার এবং কন্ট্রোল-ফ্লো ব্লক ফরম্যাট করে
- সিঙ্গেল ফাইল, স্নিপেট, উদাহরণ এবং দ্রুত কোড রিভিউ ক্লিনআপের জন্য দুর্দান্ত কাজ করে
- একটি ক্যানোনিকাল স্টাইল প্রয়োগ করে যাতে `git diff` লজিক পরিবর্তনে ফোকাস করে, হোয়াইটস্পেস নয়েজে নয়
- আপনার গো কোড কম্পাইল না হলে পার্সিং/ফরম্যাটিং এরর সারফেস করে, নীরবে ম্যাঙ্গল করার পরিবর্তে
🔧 কিভাবে অনলাইনে আপনার গো কোড ফরম্যাট করবেন for go-formatter
১. আপনার গো কোড পেস্ট বা ড্রপ করুন
আপনার গো কোড এডিটরে পেস্ট করুন অথবা একটি `.go` ফাইল ড্রপ করুন। এই টুল সাধারণ গো সোর্স ফাইল গ্রহণ করে, যেখানে জেনেরিকস, ইন্টারফেস, গোরুটিন এবং কম্পোজিট লিটারেল ব্যবহার করা হয়েছে এমন ফাইলও অন্তর্ভুক্ত।
২. "ফরম্যাট" ক্লিক করুন
ফরম্যাট বাটনে ক্লিক করে আপনার কোড gofmt চালিত একটি সুরক্ষিত ব্যাকএন্ডে প্রেরণ করুন। যদি সিনট্যাক্স ত্রুটি থাকে, আপনি আংশিক ফরম্যাটেড আউটপুটের পরিবর্তে একটি স্পষ্ট ত্রুটি বার্তা দেখতে পাবেন।
৩. ফলাফল পর্যালোচনা ও কপি করুন
প্রামাণিক গো আউটপুট পরীক্ষা করুন, তারপর এটিকে আপনার এডিটরে কপি করুন অথবা পরিষ্কার ফাইলটি ডাউনলোড করুন। ফরম্যাট করা সংস্করণ কমিট করে আপনার রিপোজিটরি স্টাইল সামঞ্জস্যপূর্ণ রাখুন।
প্রযুক্তিগত বিবরণ
ফরম্যাটিং ইঞ্জিন
এই টুলটি আপনার কোড প্রক্রিয়া করতে একটি ব্যাকএন্ড সার্ভিসে গো-এর স্ট্যান্ডার্ড `gofmt` ফরম্যাটার ব্যবহার করে, গো টুলচেইনের সাথে স্থানীয়ভাবে আপনি যে একই নিয়ম পাবেন তা প্রয়োগ করে (জেনেরিকসের মতো আধুনিক গো বৈশিষ্ট্যসহ)।
সমর্থিত ফাইলসমূহ
| ধরন | প্যাটার্ন | মন্তব্য |
|---|---|---|
| গো সোর্স ফাইল | *.go | সাধারণ গো কোড (প্যাকেজ, টেস্ট, উদাহরণ, জেনেরিকস, গোরুটিন) |
| স্নিপেট | ইনলাইন টেক্সট | ছোট ফাংশন, উদাহরণ, ব্লগ স্নিপেট এবং রিভিউ ফ্র্যাগমেন্ট |
স্টাইল নিয়ম (gofmt থেকে)
| দিক | আচরণ | মন্তব্য |
|---|---|---|
| ইন্ডেন্টেশন | ইন্ডেন্টেশনের জন্য হার্ড ট্যাব | ইন্ডেন্টেশনের জন্য স্পেস ব্যবহার করা হয় না; এটি গো-তে ডিজাইন দ্বারা |
| ইম্পোর্ট | সাজানো এবং গ্রুপ করা | gofmt ইম্পোর্ট ব্লক ক্যানোনিকালাইজ করে; এই টুল goimports-এর মতো ইম্পোর্ট যোগ বা সরায় না |
| স্পেসিং | অপারেটর এবং কীওয়ার্ডের চারপাশে নির্দিষ্ট স্পেসিং | অসামঞ্জস্যপূর্ণ স্পেসিং এবং ম্যানুয়াল অ্যালাইনমেন্ট হ্যাক সরায় |
| লাইন র্যাপিং | প্রয়োজন হলে দীর্ঘ লাইন র্যাপ করে | বিশেষ করে ফাংশন কল, লিটারেল এবং জটিল এক্সপ্রেশনে |
| স্ট্রাক্ট ও ট্যাগ | ফিল্ড লেআউট স্বাভাবিককৃত; ট্যাগ সংরক্ষিত | ব্যাকটিক ট্যাগগুলি অক্ষত থাকে যখন আশেপাশের কোড ফরম্যাট করা হয় |
সীমা ও কর্মক্ষমতা
ফর্ম্যাটারটি বাস্তব-বিশ্বের গো ফাইলের জন্য টিউন করা হয়েছে। যদি একটি ফাইল অত্যন্ত বড় বা জটিল হয় এবং পার্সিং অভ্যন্তরীণ টাইমআউট অতিক্রম করে, তাহলে ব্যাকএন্ড টাইমআউট বা ত্রুটি ফেরত দিতে পারে আপনার ব্রাউজার হ্যাং না করে।
নিরাপত্তা
শুধুমাত্র টেক্সচুয়াল গো সোর্স ফর্ম্যাটার ব্যাকএন্ডে পাঠানো হয়। কোডটি কম্পাইল বা এক্সিকিউট করা হয় না। অত্যন্ত সংবেদনশীল বা মালিকানাধীন প্রকল্পগুলির জন্য, সবচেয়ে নিরাপদ পদ্ধতি এখনও আপনার নিজস্ব পরিবেশে স্থানীয়ভাবে `gofmt` চালানো।
কমান্ড লাইনে gofmt ব্যবহার করা
দৈনন্দিন গো ডেভেলপমেন্টের জন্য, আপনি সাধারণত সরাসরি gofmt চালাবেন বা এটি আপনার এডিটর এবং CI পাইপলাইনে হুক করবেন।
সমস্ত প্ল্যাটফর্ম (গো টুলচেইন ইনস্টল করা)
একটি ফাইল ইন-প্লেস ফরম্যাট করুন
gofmt -w main.go`main.go` কে ক্যানোনিক্যাল গো স্টাইলে পুনরায় লিখে।
বর্তমান মডিউল ট্রিতে সমস্ত গো ফাইল ফরম্যাট করুন
gofmt -w .বর্তমান ডিরেক্টরি ট্রি পরিদর্শন করে এবং সমস্ত `.go` ফাইল ইন-প্লেস ফরম্যাট করে।
এডিটর / গিট হুকস
উদাহরণ গিট প্রি-কমিট হুক স্নিপেট
gofmt -w $(git diff --cached --name-only -- '*.go')কমিট করার আগে স্টেজড গো ফাইলগুলি ফরম্যাট করে (সরলীকৃত উদাহরণ — আপনার ওয়ার্কফ্লোর জন্য মানিয়ে নিন)।
বিকল্প: goimports (এই টুল দ্বারা ব্যবহৃত নয়)
goimports দিয়ে ফরম্যাট এবং ইম্পোর্ট ঠিক করুন
go install golang.org/x/tools/cmd/goimports@latest
$(go env GOPATH)/bin/goimports -w .`goimports` gofmt-স্টাইল ফরম্যাটিংয়ের সাথে স্বয়ংক্রিয় ইম্পোর্ট প্রুনিং এবং ইনসার্শন একত্রিত করে। এখানে অনলাইন ফর্ম্যাটার খাঁটি gofmt আউটপুটে আটকে থাকে।
কখন অনলাইন গো ফর্ম্যাটার ব্যবহার করবেন
দৈনন্দিন গো ডেভেলপমেন্ট
- ডক্স, ইস্যু বা কোড রিভিউতে পেস্ট করার আগে স্নিপেটগুলি পরিষ্কার করুন
- দ্রুত গো কোড রিফরম্যাট করুন যখন আপনি আপনার স্বাভাবিক গো টুলিং থেকে দূরে থাকেন
- জেনেরিক্স বা ইন্টারফেস নিয়ে পরীক্ষা করুন এবং অবিলম্বে ইডিওম্যাটিক লেআউট দেখুন
// আগে
func add(a int,b int)int{ return a+b }
// পরে (gofmt)
func add(a int, b int) int {
return a + b
}শিক্ষাদান ও ডকুমেন্টেশন
- ব্লগ, স্লাইড বা টিউটোরিয়ালে গো উদাহরণগুলি কঠোরভাবে ইডিওম্যাটিক স্টাইল অনুসরণ করে তা নিশ্চিত করুন
- শিক্ষানবিসদের দেখতে সাহায্য করুন কিভাবে gofmt পাঠযোগ্যতা এবং সামঞ্জস্যের জন্য কোড পুনর্গঠন করে
কোড রিভিউ ও PR পরিচ্ছন্নতা
- পুল রিকোয়েস্ট খোলার আগে ফরম্যাটিং স্বাভাবিক করুন যাতে রিভিউয়াররা শুধুমাত্র লজিক্যাল পরিবর্তন দেখেন
- একক, ক্যানোনিক্যাল ফর্ম্যাটারে (gofmt) অর্পণ করে এডিটর-নির্দিষ্ট সেটিংস থেকে শব্দ হ্রাস করুন
❓ Frequently Asked Questions
এই গো ফর্ম্যাটারটি হুডের নিচে কী ব্যবহার করে?
এটি goimports থেকে কীভাবে আলাদা?
gofmt কেন ইন্ডেন্টেশনের জন্য ট্যাব ব্যবহারে জোর দেয়?
আমার কোড ফরম্যাট হয় না; সমস্যাটি কী?
আমার Go কোড কি এক্সিকিউট হয়?
এটি মালিকানাধীন কোডের জন্য নিরাপদ কি?
Pro Tips
gofmt কে আপনার এডিটরের সেভ হুকের সাথে সংযুক্ত করুন যাতে আপনাকে আর কখনও ফরম্যাটিং নিয়ে ভাবতে না হয়—তারপর অনলাইন টুলগুলি দ্রুত এক-অফ স্নিপেট এবং রিভিউগুলির জন্য নিখুঁত হয়ে ওঠে।
পুল রিকোয়েস্ট খোলার আগে gofmt চালান; এটি ডিফস পরিষ্কার রাখে এবং রিভিউয়ারদের স্টাইলের পরিবর্তে আচরণে ফোকাস করতে দেয়।
আপনার দলের জন্য কোড স্টাইলের একক সত্যের উৎস হিসাবে gofmt আউটপুট ব্যবহার করুন; এটির বিরুদ্ধে লড়াই করা কাস্টম লিন্টারগুলি এড়িয়ে চলুন।
Go শেখানোর সময়, শিক্ষার্থীদের তাদের মূল কোড gofmt আউটপুটের পাশাপাশি দেখান যাতে ইডিওম্যাটিক প্যাটার্ন এবং সাধারণ স্টাইল ফিক্সগুলি হাইলাইট করা যায়।
Additional Resources
Other Tools
- সিএসএস সৌন্দর্যবর্ধক
- এইচটিএমএল সৌন্দর্যবর্ধক
- জাভাস্ক্রিপ্ট সৌন্দর্যবর্ধক
- পিএইচপি সৌন্দর্যবর্ধক
- রং নির্বাচক
- স্প্রাইট এক্সট্র্যাক্টর
- বেস৬৪ ডিকোডার
- বেস৬৪ এনকোডার
- সি-শার্প ফরম্যাটার
- সিএসভি ফরম্যাটার
- Dockerfile Formatter
- এলম ফরম্যাটার
- ইএনভি ফরম্যাটার
- গ্রাফকিউএল ফরম্যাটার
- এইচসিএল ফরম্যাটার
- আইএনআই ফরম্যাটার
- জেসন ফরম্যাটার
- ল্যাটেক ফরম্যাটার
- মার্কডাউন ফরম্যাটার
- অবজেক্টিভসি ফরম্যাটার
- Php Formatter
- প্রোটো ফরম্যাটার
- পাইথন ফরম্যাটার
- রুবি ফরম্যাটার
- রাস্ট ফরম্যাটার
- স্কালা ফরম্যাটার
- শেল স্ক্রিপ্ট ফরম্যাটার
- এসকিউএল ফরম্যাটার
- SVG ফরম্যাটার
- Swift ফরম্যাটার
- TOML ফরম্যাটার
- Typescript Formatter
- XML ফরম্যাটার
- YAML ফরম্যাটার
- Yarn ফরম্যাটার
- সিএসএস মিনিফায়ার
- Html Minifier
- Javascript Minifier
- জেসন মিনিফায়ার
- XML মিনিফায়ার
- এইচটিটিপি হেডার ভিউয়ার
- পিডিএফ থেকে টেক্সট
- রেজেক্স টেস্টার
- সার্প র্যাংক চেকার
- Whois লুকআপ