Loading…

সম্পর্কে অনলাইন গো ফরম্যাটার (গোফম্ট)

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

এই গো ফরম্যাটারটি আপনার জন্য কী করে

  • অফিসিয়াল গো ফরম্যাটিং নিয়ম প্রয়োগ করতে `গোফম্ট` ব্যবহার করে (ট্যাবস, স্পেসিং, লেআউট) — আপনার লোকাল গো টুলচেইনের মতোই
  • জেনেরিক্স, ইন্টারফেস, কম্পোজিট লিটারেল এবং গোরুটিন সহ আধুনিক গো ফিচার হ্যান্ডেল করে
  • গোফম্ট বিহেভিয়ারের সাথে সামঞ্জস্যপূর্ণভাবে স্ট্রাক্ট ডেফিনিশন এবং ট্যাগগুলি রিডেবল এবং ধারাবাহিকভাবে ফরম্যাটেড রাখে
  • ক্লিয়ারিটি এবং ডিফ-ফ্রেন্ডলি আউটপুটের জন্য লং এক্সপ্রেশন, ফাংশন সিগনেচার এবং কন্ট্রোল-ফ্লো ব্লক ফরম্যাট করে
  • সিঙ্গেল ফাইল, স্নিপেট, উদাহরণ এবং দ্রুত কোড রিভিউ ক্লিনআপের জন্য দুর্দান্ত কাজ করে
  • একটি ক্যানোনিকাল স্টাইল প্রয়োগ করে যাতে `git diff` লজিক পরিবর্তনে ফোকাস করে, হোয়াইটস্পেস নয়েজে নয়
  • আপনার গো কোড কম্পাইল না হলে পার্সিং/ফরম্যাটিং এরর সারফেস করে, নীরবে ম্যাঙ্গল করার পরিবর্তে

🔧 কিভাবে অনলাইনে আপনার গো কোড ফরম্যাট করবেন for go-formatter

1

১. আপনার গো কোড পেস্ট বা ড্রপ করুন

আপনার গো কোড এডিটরে পেস্ট করুন অথবা একটি `.go` ফাইল ড্রপ করুন। এই টুল সাধারণ গো সোর্স ফাইল গ্রহণ করে, যেখানে জেনেরিকস, ইন্টারফেস, গোরুটিন এবং কম্পোজিট লিটারেল ব্যবহার করা হয়েছে এমন ফাইলও অন্তর্ভুক্ত।

2

২. "ফরম্যাট" ক্লিক করুন

ফরম্যাট বাটনে ক্লিক করে আপনার কোড gofmt চালিত একটি সুরক্ষিত ব্যাকএন্ডে প্রেরণ করুন। যদি সিনট্যাক্স ত্রুটি থাকে, আপনি আংশিক ফরম্যাটেড আউটপুটের পরিবর্তে একটি স্পষ্ট ত্রুটি বার্তা দেখতে পাবেন।

3

৩. ফলাফল পর্যালোচনা ও কপি করুন

প্রামাণিক গো আউটপুট পরীক্ষা করুন, তারপর এটিকে আপনার এডিটরে কপি করুন অথবা পরিষ্কার ফাইলটি ডাউনলোড করুন। ফরম্যাট করা সংস্করণ কমিট করে আপনার রিপোজিটরি স্টাইল সামঞ্জস্যপূর্ণ রাখুন।

প্রযুক্তিগত বিবরণ

ফরম্যাটিং ইঞ্জিন

এই টুলটি আপনার কোড প্রক্রিয়া করতে একটি ব্যাকএন্ড সার্ভিসে গো-এর স্ট্যান্ডার্ড `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

এই গো ফর্ম্যাটারটি হুডের নিচে কী ব্যবহার করে?

এটি `gofmt` ব্যবহার করে, স্ট্যান্ডার্ড ফর্ম্যাটার যা গো টুলচেইনের সাথে শিপ হয়। নিয়মগুলি আপনার মেশিনে স্থানীয়ভাবে `gofmt` চালানোর মতো ঠিক একই।

এটি goimports থেকে কীভাবে আলাদা?

`goimports` gofmt চালায় এবং ব্যবহার বিশ্লেষণের ভিত্তিতে আমদানি যোগ, সরায় বা সাজায়। এই অনলাইন টুলটি খাঁটি gofmt-স্টাইল ফরম্যাটিংয়ে ফোকাস করে এবং আমদানি যোগ বা সরায় না।

gofmt কেন ইন্ডেন্টেশনের জন্য ট্যাব ব্যবহারে জোর দেয়?

Go-এর দর্শন হল একটি ক্যানোনিক্যাল স্টাইল রেখে স্টাইল যুদ্ধ এড়ানো। ইন্ডেন্টেশনের জন্য ট্যাব সেই ডিজাইনের অংশ। সারিবদ্ধতা যেখানে যুক্তিযুক্ত সেখানে লাইনের ভিতরে স্পেস এখনও ব্যবহৃত হয়।

আমার কোড ফরম্যাট হয় না; সমস্যাটি কী?

gofmt যদি অবৈধ Go সিনট্যাক্সের সম্মুখীন হয়, তবে এটি ফরম্যাট করার পরিবর্তে একটি ত্রুটি ফেরত দেয়। সাধারণ সমস্যাগুলির মধ্যে রয়েছে ব্রেসের অনুপস্থিতি, অপ্রয়োজনীয় কমা বা অসম্পূর্ণ এক্সপ্রেশন। সিনট্যাক্স ত্রুটি ঠিক করুন এবং আবার চেষ্টা করুন।

আমার Go কোড কি এক্সিকিউট হয়?

না। ফরম্যাটার শুধুমাত্র gofmt এর মাধ্যমে সোর্স টেক্সট পার্স করে এবং পুনরায় লিখে; এটি আপনার প্রোগ্রাম কম্পাইল বা চালায় না।

এটি মালিকানাধীন কোডের জন্য নিরাপদ কি?

আপনার Go সোর্স একটি ব্যাকএন্ড ফরম্যাটারে পাঠানো হয় এবং অস্থায়ীভাবে প্রক্রিয়া করা হয়; এটি এক্সিকিউট হয় না। অত্যন্ত সংবেদনশীল বা মালিকানাধীন প্রকল্পগুলির জন্য, সবচেয়ে নিরাপদ পদ্ধতি হল আপনার নিজস্ব পরিবেশ বা CI-এর ভিতরে স্থানীয়ভাবে `gofmt` চালানো।

Pro Tips

Best Practice

gofmt কে আপনার এডিটরের সেভ হুকের সাথে সংযুক্ত করুন যাতে আপনাকে আর কখনও ফরম্যাটিং নিয়ে ভাবতে না হয়—তারপর অনলাইন টুলগুলি দ্রুত এক-অফ স্নিপেট এবং রিভিউগুলির জন্য নিখুঁত হয়ে ওঠে।

Best Practice

পুল রিকোয়েস্ট খোলার আগে gofmt চালান; এটি ডিফস পরিষ্কার রাখে এবং রিভিউয়ারদের স্টাইলের পরিবর্তে আচরণে ফোকাস করতে দেয়।

Best Practice

আপনার দলের জন্য কোড স্টাইলের একক সত্যের উৎস হিসাবে gofmt আউটপুট ব্যবহার করুন; এটির বিরুদ্ধে লড়াই করা কাস্টম লিন্টারগুলি এড়িয়ে চলুন।

Best Practice

Go শেখানোর সময়, শিক্ষার্থীদের তাদের মূল কোড gofmt আউটপুটের পাশাপাশি দেখান যাতে ইডিওম্যাটিক প্যাটার্ন এবং সাধারণ স্টাইল ফিক্সগুলি হাইলাইট করা যায়।

Additional Resources

Other Tools