কেন আমাদের স্কালা ফরম্যাটার ব্যবহার করবেন
- মুহূর্তেই আনস্ট্রাকচার্ড বা মিস্যালাইনড স্কালা কোড ফরম্যাট করুন
- টাইপ, প্যারামিটার এবং অপারেটরগুলির চারপাশের স্পেসিং ঠিক করুন
- ক্লাস, অবজেক্ট, ট্রেইট এবং মেথডগুলির জন্য ব্রেস স্টাইল নরমালাইজ করুন
- দীর্ঘ এক্সপ্রেশন এবং মেথড চেইনগুলির জন্য স্কালাফম্ট-স্টাইল লাইন র্যাপিং প্রয়োগ করুন
- `.scala`, `.sc` স্ক্রিপ্ট এবং `.sbt` বিল্ড ফাইল সমর্থন করে
- কোড একটি সুরক্ষিত ব্যাকএন্ডের মাধ্যমে ফরম্যাট করা হয় – শেয়ার বা ইনডেক্সড হয় না
- রেসপন্সিভ এডিটর UI যা ল্যাপটপ, ডেস্কটপ এবং ট্যাবলেটে কাজ করে
🛠️ কিভাবে অনলাইনে Scala কোড ফরম্যাট করবেন for scala-formatter
1. আপনার Scala কোড পেস্ট বা লোড করুন
📥 আপনার Scala কোড এডিটরে পেস্ট করুন অথবা একটি `.scala`, `.sc`, বা `.sbt` ফাইল ড্র্যাগ-এন্ড-ড্রপ করুন। এডিটর Scala সিনট্যাক্স হাইলাইটিং প্রয়োগ করে যাতে আপনি দ্রুত আপনার কোড স্ক্যান করতে পারেন।
2. "ফরম্যাট" ক্লিক করুন
⚙️ **ফরম্যাট** বাটনে ক্লিক করুন। আপনার কোড HTTPS-এর মাধ্যমে একটি scalafmt-স্টাইল ফরম্যাটারে পাঠানো হয় যা সেমান্টিক্স পরিবর্তন না করে হোয়াইটস্পেস, ইন্ডেন্টেশন এবং লাইন ব্রেক পুনর্বিন্যাস করে।
3. ফলাফল পর্যালোচনা করুন
🔍 পরিষ্কার করা সংস্করণটি আপনার মূলের সাথে তুলনা করুন। ব্রেস, স্পেসিং এবং ব্ল্যাংক লাইন স্বাভাবিক করা হয় যাতে আপনার কোডের গঠন অনুসরণ করা সহজ হয়।
4. কপি বা ডাউনলোড করুন
📤 ফরম্যাট করা Scala কোড আপনার IDE-তে ফিরে কপি করুন, অথবা কমিট, কোড রিভিউ বা ডেপ্লয়মেন্টের জন্য প্রস্তুত একটি `.scala` ফাইল হিসেবে ডাউনলোড করুন।
প্রযুক্তিগত বিবরণ
স্টাইলিং আচরণ (Scalafmt-স্টাইল)
ফরম্যাটার সাধারণ scalafmt কনভেনশন প্রতিফলিত করার লক্ষ্য রাখে যাতে আপনার কোড আধুনিক Scala প্রকল্পগুলিতে স্বাভাবিক দেখায়।
| দিক | আচরণ | নোট |
|---|---|---|
| ইন্ডেন্টেশন ও ব্রেস | `class`, `object`, `trait`, `def`, `if`, `match`, এবং `for`-এর জন্য সামঞ্জস্যপূর্ণ ইন্ডেন্টেশন | নেস্টেড কন্ট্রোল ফ্লো এবং প্যাটার্ন ম্যাচ পড়া সহজ করে। |
| টাইপ ও প্যারামিটার স্পেসিং | কোলন, অ্যারো এবং প্যারামিটার লিস্টের চারপাশের স্পেস স্বাভাবিক করে | উদাহরণস্বরূপ: `def f(x: Int): String` এর পরিবর্তে `def f(x:Int):String`। |
| ইম্পোর্ট ও প্যাকেজ | প্যাকেজ এবং ইম্পোর্ট ব্লক গঠিত এবং সংজ্ঞা থেকে পৃথক রাখে | ফাইল জুড়ে নেভিগেশন এবং সামঞ্জস্য উন্নত করে। |
| খালি লাইন | টপ-লেভেল সংজ্ঞার চারপাশের খালি লাইন মানসম্মত করে | মডেল, সার্ভিস এবং হেল্পারের মতো যৌক্তিক বিভাগ আলাদা করে। |
| ইডেমপোটেন্সি | একাধিকবার ফরম্যাটিং চালালে একই ফলাফল পাওয়া যায় | স্টাইল ড্রিফট ছাড়াই যতবার ইচ্ছা রিফরম্যাট করা নিরাপদ। |
স্কালা ভার্সন সামঞ্জস্যতা
ফর্ম্যাটারটি স্কালা ২ এবং স্কালা ৩ সিনট্যাক্স উভয়ের জন্যই ডিজাইন করা হয়েছে।
| ফিচার | সাপোর্ট | নোটস |
|---|---|---|
| স্কালা ২.x | ✅ হ্যাঁ | ইমপ্লিসিট, কম্প্যানিয়ন অবজেক্ট এবং ক্লাসিক ফর-কম্প্রিহেনশনের মতো সাধারণ প্যাটার্নগুলির সাথে কাজ করে। |
| স্কালা ৩ (ডট্টি) | ✅ হ্যাঁ | গিভেন/ইউজিং, এক্সটেনশন মেথড, এনাম এবং অন্যান্য স্কালা ৩ কনস্ট্রাক্ট বুঝতে পারে। |
| এসবিটি বিল্ড ফাইল | ✅ হ্যাঁ | বিল্ড এবং ডিপেন্ডেন্সি ডেফিনিশনে ব্যবহৃত `.sbt` ফাইল ফর্ম্যাট করে। |
সমর্থিত ইনপুট ও সীমাবদ্ধতা
শুধুমাত্র ছোট স্নিপেট নয়, বাস্তব-বিশ্বের প্রজেক্ট ফাইলের জন্য অপ্টিমাইজড।
| প্যারামিটার | সীমা / আচরণ | নোটস |
|---|---|---|
| ফাইল এক্সটেনশন | .scala, .sc, .sbt | সোর্স ফাইল, স্ক্রিপ্ট এবং বিল্ড ডেফিনিশন। |
| MIME টাইপ | text/x-scala | সিনট্যাক্স হাইলাইটিংয়ের জন্য অভ্যন্তরীণভাবে ব্যবহৃত। |
| সর্বোচ্চ ইনপুট সাইজ | ≈ ২ MB সোর্স কোড | অত্যন্ত বড় জেনারেটেড কোড স্থানীয় স্কালাফমটের মাধ্যমে ফর্ম্যাট করা ভাল। |
| এনকোডিং | UTF-8 সুপারিশকৃত | নন-UTF-8 কনটেন্ট ফর্ম্যাট করার আগে কনভার্ট করা উচিত। |
এক্সিকিউশন ও নিরাপত্তা
ফর্ম্যাটিং পাবলিক, থার্ড-পার্টি সার্ভিসের পরিবর্তে একটি প্রাইভেট, সুরক্ষিত ব্যাকএন্ডের মাধ্যমে সম্পাদিত হয়।
| দিক | আচরণ | নোটস |
|---|---|---|
| ট্রান্সপোর্ট | স্কালা ফর্ম্যাটিং API-তে HTTPS কল | আপনার কোড নিরাপদে ট্রান্সমিট হয় এবং পাবলিকলি এক্সপোজড হয় না। |
| টাইমআউট | প্রতি অনুরোধে ~২৫ সেকেন্ড | প্যাথলজিকাল ইনপুটগুলিতে দীর্ঘস্থায়ী বা আটকে থাকা ফরম্যাটিং কাজগুলি প্রতিরোধ করে। |
| সেমান্টিক্স | শুধুমাত্র লেআউট রূপান্তর | ফরম্যাটারটি শ্বেতস্থান এবং লেআউট পরিবর্তন করে, আপনার প্রোগ্রাম লজিক নয়। |
আপনার স্থানীয় ওয়ার্কফ্লোতে Scalafmt ব্যবহার করুন
সম্পূর্ণ নিয়ন্ত্রণ এবং রিপোজিটরি-ব্যাপী ফরম্যাটিংয়ের জন্য, scalafmt ইনস্টল করুন এবং এটি আপনার বিল্ড বা CI পাইপলাইনে সংহত করুন:
সার্বজনীন (sbt এর মাধ্যমে)
আপনার প্রকল্পে scalafmt যোগ করুন
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2")sbt প্লাগইন যোগ করে যাতে আপনি sbt শেল থেকে scalafmt চালাতে পারেন।
সমস্ত সোর্স ফরম্যাট করুন
sbt scalafmtAll`.scalafmt.conf` ব্যবহার করে আপনার প্রকল্পের সমস্ত Scala এবং sbt ফাইল ফরম্যাট করে।
CI-তে ফরম্যাটিং পরীক্ষা করুন
sbt scalafmtCheckAllফাইলগুলি সঠিকভাবে ফরম্যাট না হলে বিল্ড ব্যর্থ হবে।
সাধারণ ব্যবহারের ক্ষেত্র
ব্যাকএন্ড এবং FP পরিষেবা
বৃহৎ Scala ব্যাকএন্ড এবং FP কোডবেসগুলি সামঞ্জস্যপূর্ণ এবং পর্যালোচনা করা সহজ রাখুন।
- Akka, ZIO, Cats Effect, বা Play প্রকল্প জুড়ে স্টাইল মানসম্মত করুন।
- পুল অনুরোধ খোলার আগে বা উদাহরণ শেয়ার করার আগে কোড পরিষ্কার করুন।
- বড় রিফ্যাক্টর বা লাইব্রেরি মাইগ্রেশনের পরে ফরম্যাট স্বাভাবিক করুন।
object A{def main(args:Array[String]){println("hi")}}
object A {
def main(args: Array[String]): Unit = {
println("hi")
}
}
Scala শেখা এবং শিক্ষাদান
স্পেসিং যুদ্ধের পরিবর্তে কার্যকরী ধারণা এবং প্রকারগুলিতে ফোকাস করুন।
- লজিক এবং প্যাটার্ন পর্যালোচনা করার আগে ছাত্র জমাগুলি স্বয়ংক্রিয়ভাবে ফরম্যাট করুন।
- Scala স্টাইল শেখানোর সময় ফরম্যাটিংয়ের আগে/পরের উদাহরণ দেখান।
- স্লাইড, ডক্স এবং ব্লগ পোস্টের জন্য পরিষ্কার কোড স্নিপেট প্রস্তুত করুন。
বিল্ড এবং টুলিং স্ক্রিপ্ট
`.sbt` বিল্ড ফাইল এবং ছোট Scala স্ক্রিপ্টগুলি পরিপাটি রাখুন।
- সহজ রক্ষণাবেক্ষণের জন্য sbt সেটিংস এবং নির্ভরতা ব্লক ফরম্যাট করুন।
- মাইগ্রেশন বা অভ্যন্তরীণ টুলের জন্য ব্যবহৃত হেল্পার স্ক্রিপ্ট পরিষ্কার করুন।
❓ Frequently Asked Questions
❓Scalafmt কি এবং এই টুলটি এর সাথে কীভাবে সম্পর্কিত?
🔧আমি কি এখানে সব স্কালাফম্ট নিয়ম কাস্টমাইজ করতে পারি?
🌐এটি কি স্কালা ৩ সিনট্যাক্স সাপোর্ট করে?
🔒আমার স্কালা কোড কি একটি পাবলিক সার্ভারে পাঠানো হয়?
HTTPS এর মাধ্যমে এই টুলের জন্য নিবেদিত একটি প্রাইভেট ফরম্যাটিং ব্যাকএন্ডে পাঠানো হয় এবং শেয়ার বা ইনডেক্স করা হয় না। অত্যন্ত গোপনীয় বা মালিকানাধীন কোডের জন্য, আপনি স্থানীয়ভাবে স্কালাফম্ট চালাতে পারেন।⚙️ফরম্যাটিং কি আমার স্কালা প্রোগ্রামের আচরণ পরিবর্তন করবে?
Pro Tips
আপনার রিপোতে একটি `.scalafmt.conf` ফাইল রাখুন যাতে আপনার এডিটর, CI এবং `sbt scalafmt` সব একই স্টাইল ব্যবহার করে।
রিফ্যাক্টরের আগে একটি আলাদা "ফরম্যাট শুধুমাত্র" কমিট চালান যাতে পরবর্তী ডিফগুলি হোয়াইটস্পেস নয়, বাস্তব কোড পরিবর্তনে ফোকাস করে।
আপনার টিম জুড়ে একটি সামঞ্জস্যপূর্ণ সর্বোচ্চ লাইন প্রস্থ ব্যবহার করুন যাতে কোলাহলপূর্ণ ডিফ এবং দ্বন্দ্বমূলক স্টাইল এড়ানো যায়।
শিক্ষাদানের সময়, প্রথমে অগোছালো স্কালা দেখান, তারপর ফরম্যাট করা সংস্করণ দেখান যাতে হাইলাইট করা যায় কিভাবে লেআউট পাঠযোগ্যতা উন্নত করে।
Additional Resources
Other Tools
- সিএসএস সৌন্দর্যবর্ধক
- এইচটিএমএল সৌন্দর্যবর্ধক
- জাভাস্ক্রিপ্ট সৌন্দর্যবর্ধক
- পিএইচপি সৌন্দর্যবর্ধক
- রং নির্বাচক
- স্প্রাইট এক্সট্র্যাক্টর
- বেস৬৪ ডিকোডার
- বেস৬৪ এনকোডার
- সি-শার্প ফরম্যাটার
- সিএসভি ফরম্যাটার
- Dockerfile Formatter
- এলম ফরম্যাটার
- ইএনভি ফরম্যাটার
- গো ফরম্যাটার
- গ্রাফকিউএল ফরম্যাটার
- এইচসিএল ফরম্যাটার
- আইএনআই ফরম্যাটার
- জেসন ফরম্যাটার
- ল্যাটেক ফরম্যাটার
- মার্কডাউন ফরম্যাটার
- অবজেক্টিভসি ফরম্যাটার
- Php Formatter
- প্রোটো ফরম্যাটার
- পাইথন ফরম্যাটার
- রুবি ফরম্যাটার
- রাস্ট ফরম্যাটার
- শেল স্ক্রিপ্ট ফরম্যাটার
- এসকিউএল ফরম্যাটার
- SVG ফরম্যাটার
- Swift ফরম্যাটার
- TOML ফরম্যাটার
- Typescript Formatter
- XML ফরম্যাটার
- YAML ফরম্যাটার
- Yarn ফরম্যাটার
- সিএসএস মিনিফায়ার
- Html Minifier
- Javascript Minifier
- জেসন মিনিফায়ার
- XML মিনিফায়ার
- এইচটিটিপি হেডার ভিউয়ার
- পিডিএফ থেকে টেক্সট
- রেজেক্স টেস্টার
- সার্প র্যাংক চেকার
- Whois লুকআপ