CodeGym/Java Blog/এলোমেলো/IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং
John Squirrels
লেভেল 41
San Francisco

IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং

এলোমেলো দলে প্রকাশিত
সদস্যগণ
একটি প্রোগ্রামিং ভাষা একটি কথ্য ভাষার সাথে খুব মিল। শুধুমাত্র পার্থক্য হল এটি একটি বিশেষ ভাষা যার মূল উদ্দেশ্য হল কম্পিউটারের সাথে যোগাযোগ সহজতর করার জন্য কম্পিউটারকে ব্যাখ্যা করা যে আমরা এটি করতে চাই। কিন্তু আপনি কম্পিউটারের সাথে ব্যক্তিগত কথোপকথন করতে পারবেন না। আপনি যখন একটি প্রোগ্রামিং ভাষা শেখা শুরু করেছিলেন, তখন আপনি বই বা কোডজিমের মতো কিছু শিক্ষামূলক সংস্থান দেখেছিলেন। এবং এই সম্পদ আপনাকে কোড দেখিয়েছে যে কম্পিউটার বুঝতে পারে. কিন্তু আপনি জাভা ভাষা সম্পর্কে শেখার সাথে সাথে আপনারও এটি বোঝা উচিত। যেকোনো ভাষার মতোই, প্রোগ্রামিং-এ কিছু বিন্যাস পদ্ধতি গ্রহণ করা হয়েছে। উদাহরণ স্বরূপ, ভদ্র সমাজে, wRiTiNg LiKe এইগুলিকে খারাপ আচরণ হিসাবে বিবেচনা করা হবে। এবং জাভাতে, একটি পদ্ধতির নাম একটি বড় অক্ষর দিয়ে শুরু করা কোডিং প্রথার চরম লঙ্ঘন। IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 1জাভা কোডের নিয়ম জাভা প্রোগ্রামিং ভাষার জন্য কোড কনভেনশন নথিতে দেওয়া আছে । কোডিং কনভেনশনগুলি ছোট বিবরণকেও নিয়ন্ত্রণ করতে পারে, যেমন ইন্ডেন্টেশন। সম্পূর্ণ দুঃস্বপ্ন কল্পনা করুন যে সংস্করণ নিয়ন্ত্রণ হয়ে যাবে যদি ইন্ডেন্টেশন অসামঞ্জস্যপূর্ণ হয়, কিছু লোক ট্যাব ব্যবহার করে এবং অন্যরা স্পেস ব্যবহার করে। এমন একজনের জন্য কেমন হবে যাকে শুধুমাত্র একটি পদ্ধতিতে একটি ফিক্স চেক করতে হবে, কিন্তু স্পেস এবং ট্যাবের পার্থক্যের কারণে পুরো ফাইলটি পরিবর্তিত হয়েছে? অবশ্যই, সাধারণ ভাষার মতো, একটি ভাষা কোথায় ব্যবহার করা হয় তার উপর নির্ভর করে নিয়মগুলি পরিবর্তিত হতে পারে। উদাহরণস্বরূপ, ওয়েবের বিস্তৃত বিস্তৃতিতে, আপনি গুগল জাভা স্টাইল গাইড এবং টুইটার জাভা স্টাইল গাইড খুঁজে পেতে পারেন. এই পর্যালোচনার জন্য, আমাদের একটি পরীক্ষার বিষয় প্রয়োজন। আমরা Gradle বিল্ড অটোমেশন সিস্টেম ব্যবহার করব। এটি আমাদের একটি টেমপ্লেট থেকে একটি নতুন প্রকল্প তৈরি করে দ্রুত শুরু করতে দেবে। গ্রেডলের একটি দুর্দান্ত প্লাগইন রয়েছে: বিল্ড ইনিট প্লাগইন । একটি নতুন ডিরেক্টরিতে যান এবং সেখানে নিম্নলিখিত কমান্ডটি চালান: gradle init --type java-application এর পরে, IntelliJ IDEA শুরু করুন। যদি আপনি একটি খোলা প্রকল্পের সাথে একটি উইন্ডো দেখতে পান (অর্থাৎ আপনি কোড সম্পাদক এবং প্রকল্প গাছ দেখতে পান), ব্যবহার করে এই প্রকল্পটি বন্ধ করুন File -> Close Project। এখন স্বাগতম উইন্ডোতে, " Import Project" চালান এবং আমাদের নতুন প্রকল্প আমদানি করুন। আমদানি করার সময়, " Use autoimport" চেকবক্স সেট করুন। আসুন আমরা জীবনকে কোনোভাবে সহজ করার জন্য অত্যাধুনিক উন্নয়ন সরঞ্জাম ব্যবহার করতে পারি কিনা তা খুঁজে বের করা যাক।

IDEA-তে কোড ফরম্যাটিং

প্রকল্পটি আমদানি করার পরে, Ctrl+N টিপুন এবং ক্লাসে যান AppTest। এটি ডিফল্ট পরীক্ষার ক্লাস। এটি এই মত দেখায়:
import org.junit.Test;
import static org.junit.Assert.*;

public class AppTest {
    @Test public void testAppHasAGreeting() {
        App classUnderTest = new App();
        assertNotNull("app should have a greeting", classUnderTest.getGreeting());
    }
}
কি অবিলম্বে আপনার চোখ ক্যাচ? একটি পদ্ধতি ঘোষণা হিসাবে একই লাইনে একটি টীকা, যা কুশ্রী দেখায়, তাই না? এটা কিভাবে ঠিক করবেন? IntelliJ IDEA-তে Codeবিভিন্ন কোড ম্যানিপুলেশনের জন্য একটি " " মেনু এন্ট্রি রয়েছে। এরকম একটি ম্যানিপুলেশন হল " Reformat Code", যা আপনি Ctrl+L ব্যবহার করে প্রয়োগ করতে পারেন। আপনি এটি করার পরে, টীকাটি এক লাইনে থাকবে এবং অন্যটিতে পদ্ধতি ঘোষণা হবে। এটি এখনই লক্ষ্য করার মতো যে এই অপারেশনটি বর্তমানে নির্বাচিত কোডে সঞ্চালিত হয় । যদি কোন নির্বাচন না হয়, তাহলে বিন্যাস অপারেশন সবকিছুতে সঞ্চালিত হয়। এখন একটি নতুন পরীক্ষা পদ্ধতি যোগ করা যাক:
@Test
public void testSumOfOddNumbers() {
	List<Integer> data = Arrays.asList(1, 4, 2, 3, 6, 7, 9);
	Integer result = data.stream().filter(number -> number % 2 == 0).reduce((n1, n2) -> n1 + n2).get();
	assertThat(result, is(12));
}
এবং দুটি আমদানি:
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
আপনি দেখতে পাচ্ছেন, স্ট্রীমের অপারেশন এক লাইনে। কিন্তু আমরা যদি নিশ্চিত করতে চাই যে প্রতিটি পিরিয়ড অপারেটরে শৃঙ্খলিত পদ্ধতি কলগুলি সর্বদা নতুন লাইনে বিভক্ত হয়? আমরা ম্যানুয়ালি এটা করতে পারে. কিন্তু মনে রাখবেন যে আমরা সবকিছু স্বয়ংক্রিয়ভাবে ঘটতে চাই। প্রকৃতপক্ষে, আমরা অবশ্যই সময়ে সময়ে ম্যানুয়াল পদক্ষেপটি ভুলে যাব, এবং তারপরে আমরা সর্বত্র বিভিন্ন বিন্যাস নিয়ে শেষ করব, এবং এটি কোনও ভাল নয়। সুতরাং আমাদের আইডিইএ বিন্যাস করার জন্য যে নিয়মটি ব্যবহার করে তা সম্পাদনা করতে হবে। পছন্দ করাFile -> SettingsIDEA মেনুতে (বা Ctrl+Alt+S টিপুন)। সেটিংস উইন্ডোতে অনুসন্ধান ক্ষেত্রে "কোড শৈলী" লিখুন। "কোড শৈলী" বিভাগে, আপনি জাভা ছাড়া আরও ভাষার জন্য সেটিংস নির্দিষ্ট করতে পারেন। কিন্তু জাভা আমরা এই মুহূর্তে আগ্রহী কি. আপনি দেখতে পাচ্ছেন, সেটিংস বিভিন্ন ট্যাবে বিভক্ত। একটি অতি দরকারী বৈশিষ্ট্য হল যে অপারেশনের একটি উদাহরণ উইন্ডোর ডান অংশে দেখানো হয়েছে: IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 2স্ক্রিনশটটি দেখায় যে আমরা "শৃঙ্খলিত পদ্ধতি কল" সেট করতে পারি "সর্বদা মোড়ানো", অর্থাৎ সর্বদা শৃঙ্খলিত পদ্ধতি কলগুলিকে পৃথক লাইনে বিভক্ত করতে পারি। এখন পরীক্ষার ক্লাসে আবার ফর্ম্যাটিং বোতামে ক্লিক করুন এবং আমরা দেখতে পাই যে এটি সত্যিই কাজ করে! কিন্তু কখনও কখনও আপনাকে স্ট্যান্ডার্ড ফর্ম্যাটিং নিয়মের বাইরে কিছু কোড ফর্ম্যাট করতে হবে। নিম্নরূপ বিন্যাস সেট আপ করুন: IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 3বিন্যাস প্রতিরোধ করার জন্য, "কোড স্টাইল" বিভাগে, ফরম্যাটার মার্কারগুলি সক্ষম করুন: IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 4এখন আমরা আমাদের পরীক্ষার ক্লাস পরিবর্তন করতে পারি যাতে এর কোড পুনরায় ফর্ম্যাট না হয়:
@Test
public void testSumOfOddNumbers() {
	List<Integer> data = Arrays.asList(1, 4, 2, 3, 6, 7, 9);
	// @formatter:off
	Integer result = data.stream().filter(number -> number % 2 == 0)
                             .reduce((n1, n2) -> n1 + n2)
                             .get();
	assertThat(result, is(12));
	// @formatter:on
}
আপনি হয়তো লক্ষ্য করেছেন যে আপনি যখন ট্যাব টিপুন, তখন IDEA এটিকে একটি স্থান হিসাবে ব্যাখ্যা করে (এটি ডিফল্ট আচরণ)। কিন্তু আপনি " Code Style" বিভাগে এটি পরিবর্তন করতে পারেন: IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 5আপনি দেখতে পাচ্ছেন, সেখানে অনেকগুলি সেটিংস রয়েছে৷ আপনি এখানে " " সেটিংস সম্পর্কে আরও বিশদ পড়তে পারেন Code style: " IDEA সহায়তা: কোড শৈলী "। আরেকটি গুরুত্বপূর্ণ ফর্ম্যাটিং বৈশিষ্ট্য আছে: ফরম্যাটিং আমদানি। এই অপারেশনটি আলাদাভাবে চালানো হয় এবং একে " Optimize Imports" বলা হয়। Code -> Optimize Importsএটি (Ctrl+Alt+O) এর অধীনে অবস্থিত । আমদানি অপ্টিমাইজ করা অপ্রয়োজনীয় আমদানি অপসারণ করে এবং জাভার জন্য " Imports" সেটিংসের " " ট্যাবে সেটিংস অনুসারে সঠিক ক্রমে আমদানির ব্যবস্থা করে। Code Styleআরও কি, আপনি যদি চান যে এই বিন্যাসটি স্বয়ংক্রিয়ভাবে ঘটতে পারে, তাহলে ভাল খবর আছে:সেভ অ্যাকশন প্লাগইন।

একটি কমান্ডে সেটিংস বিতরণ করা হচ্ছে

আমরা উপরে দেখেছি যে আপনি আপনার বিন্যাস শৈলী কাস্টমাইজ করতে পারেন যেভাবে আপনি চান। কিন্তু আপনি কিভাবে একটি দলের মধ্যে এই শৈলী ব্যবহার করবেন? খুব সহজভাবে. বেশ কিছু অপশন আছে। সবচেয়ে সহজ একটি কোড শৈলী স্কিম সংরক্ষণ করা হয়. ব্যবহার করে IDEA সেটিংস খুলুন File -> Settings(বা Ctrl+Alt+S টিপুন)। " Code Style" বিভাগে, আমরা "স্কিম" দেখতে পারি। এটি আমাদের ফর্ম্যাটিং স্কিম। ডিফল্টরূপে, "ডিফল্ট" স্কিমটি ব্যবহার করা হয় এবং "IDE" লেবেল করা হয়, যার মানে এই সেটিংটি শুধুমাত্র আমাদের IDE-তে প্রযোজ্য — এটি অন্য কাউকে প্রভাবিত করে না। একটি "কাস্টম" স্কিম তৈরি করতে, একটি অনুলিপি তৈরি করতে ডানদিকের বোতামটি ব্যবহার করুন এবং এটিকে একটি নাম দিন, উদাহরণস্বরূপ: CodeGym IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 6তারপরে আমরা সেটিংস আমদানি বা রপ্তানি করতে পারি: IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 7 আরেকটি বিকল্প হল IDEA সেটিংস আমদানি করা: IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 8একটি তৃতীয় বিকল্প হল সেটিংস সংগ্রহস্থল। সেটিংস রিপোজিটরি ব্যবহার করার জন্য, নিচের লিঙ্কে আরও বিশদ বিবরণের জন্য IntelliJ IDEA সহায়তা ডকুমেন্টেশন দেখুন: সেটিংস রিপোজিটরি "। একটি দলে ইউনিফাইড স্টাইল পুশ করার কথা বললে, আমি Eclipse থেকে শৈলীগুলির জন্য ভাল সমর্থন উল্লেখ করতেও সাহায্য করতে পারি না IDE। এটি করার জন্য, আপনাকে একটি পৃথক প্লাগইন ইনস্টল করতে হবে: ফাইল -> সেটিংস (Ctrl+Alt+S) এর মাধ্যমে IDEA সেটিংস খুলুন এবং "প্লাগইনস" বিভাগে যান। নতুন প্লাগইন খুঁজতে, " " বোতামে ক্লিক করুন। Browse Repositoriesতারপর অনুসন্ধান উইন্ডোতে Eclipse Code Formatter প্লাগইনটি খুঁজুন। IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 9এটি ইনস্টল করার পর, আপনাকে IDEA পুনরায় চালু করতে হবে — এটি একটি আদর্শ পদ্ধতি। এখন সবকিছু হয়ে গেছে। IDEA সেটিংসে একটি নতুন বিভাগ রয়েছে: "Eclipse Code Formatter"।. এটি এই মত কিছু দেখাবে: IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 10

কড়া প্রয়োজনীয়তা

IDEA সরঞ্জামগুলি ছাড়াও, আপনি প্রয়োজনীয়তা শক্ত করতে বিল্ড অটোমেশন প্লাগইনগুলিও ব্যবহার করতে পারেন। কেউ সঠিক বিন্যাস ব্যবহার করেছে কিনা তা আপনি ম্যানুয়ালি চেক করতে পারেন এমন কোন উপায় নেই। হয়তো আপনি একটি দলে 5 জনের সাথে পারেন। কিন্তু একটি কোম্পানিতে 100 জনের সাথে, এটি বাস্তবসম্মত নয়। এবং এমনকি পাঁচটি ট্র্যাক করা কঠিন হবে। এবং কেন এই কোন আপনার সময় নষ্ট? নিয়ম লঙ্ঘন করা হলে প্রকল্পটি নির্মাণ করা প্রতিরোধ করা অনেক সহজ হবে। প্রকৃতপক্ষে, এটি "কোড পরিদর্শন" নামে একটি সম্পূর্ণ পৃথক বিষয়। এই নিবন্ধে, আমি আপনাকে দেখাতে চাই কিভাবে এটি কাজ করে। সবচেয়ে জনপ্রিয় গ্রেডল প্লাগইনগুলির মধ্যে একটি (কারণ এটি আমাদের প্রকল্প তৈরি করে, আপনি মনে রাখবেন) হল pmd. এটি সক্ষম করতে, শুধু আমাদের গ্রেডল প্রকল্পের বিল্ড স্ক্রিপ্টে যান (আমাদের প্রকল্পের রুটে build.gradle ফাইল) এবং বাকি প্লাগইনগুলির পাশে pmd যোগ করুন:
plugins {
    // Apply the java plugin to add support for Java
    id 'java'
    // Check source code
    id 'pmd'
    // Apply the application plugin to add support for building an application
    id 'application'
}
এখন আমরা একই জায়গায় আরও বিস্তারিত সেটিংস লিখতে পারি:
pmd {
    ignoreFailures = false
    pmdTest.enabled = true
    ruleSets = [
            'java-basic',
            'java-braces',
            'java-clone',
            'java-codesize',
            'java-comments',
            'java-controversial',
            'java-coupling',
            'java-design',
            'java-empty',
            'java-finalizers',
            'java-imports',
            'java-optimizations',
            'java-strictexception',
            'java-strings',
            'java-typeresolution',
            'java-unnecessary',
            'java-unusedcode'
    ]
}
এমনকি আমাদের প্রকল্প এখন ভেঙ্গে গেছে। চালান gradle buildএবং আমরা একটি ত্রুটি পেতে. চমৎকার জিনিস হল যে বিল্ড করার সময় একটি রিপোর্ট তৈরি করা হয়। এবং যদি ত্রুটি থাকে, আমরা এই মত একটি বার্তা পেতে:
BUILD FAILED in 35s
6 actionable tasks: 6 executed
7 PMD rule violations were found. See the report at: file:///C:/_study/codestyle/build/reports/pmd/main.html
রিপোর্টে গিয়ে, আমরা এরকম কিছু দেখতে পাই: IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 11তাছাড়া, " Problem" কলামটি pmd প্লাগইনের ওয়েবসাইটে সমস্যার বর্ণনার একটি লিঙ্ক প্রদান করে। উদাহরণস্বরূপ, " headerCommentRequirement Required" ত্রুটির জন্য, লিঙ্কটি এখানে যায়: pmd — CommentRequired । এই ত্রুটি একটি ইঙ্গিত যে আমাদের ক্লাস একটি JavaDoc নেই. আমরা ক্লাসের উপরে একটি JavaDoc কনফিগার করতে টেমপ্লেট ব্যবহার করতে পারি: IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 12এবং এর জন্য বিষয়বস্তু নির্দিষ্ট করতে পারি File Header: IntelliJ IDEA: কোডিং স্টাইল এবং কোড ফরম্যাটিং - 13এর পরে, আমরা অ্যাপ ক্লাসের উপরের মন্তব্যটিকে JavaDoc-এ পরিণত করতে পারি এবং দেখতে পারি যে ত্রুটিটি একটি নতুন বিল্ডে চলে গেছে।

তলদেশের সরুরেখা

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