CodeGym /Java Blog /यादृच्छिक /IntelliJ IDEA: कोडिंग शैली आणि कोड स्वरूपन
John Squirrels
पातळी 41
San Francisco

IntelliJ IDEA: कोडिंग शैली आणि कोड स्वरूपन

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
प्रोग्रामिंग भाषा बोलल्या जाणार्‍या भाषेसारखी असते. फरक एवढाच आहे की ही एक विशेष भाषा आहे ज्याचा मुख्य उद्देश संगणकाशी संवाद साधणे हा आहे जेणेकरून संगणकाला आपल्याला काय करायचे आहे हे समजावून सांगावे. परंतु आपण संगणकासह वैयक्तिक संभाषण करू शकत नाही. जेव्हा तुम्ही प्रोग्रामिंग भाषा शिकण्यास सुरुवात केली तेव्हा तुम्ही पुस्तके किंवा कोडजिम सारख्या काही शैक्षणिक संसाधनांकडे पाहिले. आणि या संसाधनाने तुम्हाला कोड दाखवला जो संगणकाला समजतो. पण तुम्ही जावा भाषा शिकत असताना तुम्हालाही ते समजले पाहिजे. कोणत्याही भाषेप्रमाणे, प्रोग्रामिंगमध्ये काही स्वरूपन पद्धती स्वीकारल्या गेल्या आहेत. उदाहरणार्थ, सभ्य समाजात, wRiTiNg LiKe हे वाईट शिष्टाचार मानले जाईल. आणि Java मध्ये, पद्धतीचे नाव मोठ्या अक्षराने सुरू करणे हे कोडिंग नियमांचे घोर उल्लंघन आहे. IntelliJ IDEA: कोडिंग शैली आणि कोड स्वरूपन - 1जावा कोडचे नियम जावा प्रोग्रामिंग लँग्वेजसाठी कोड कन्व्हेन्शन्स या दस्तऐवजात दिलेले आहेत . कोडिंग कन्व्हेन्शन लहान तपशीलांचे नियमन करू शकतात, जसे की इंडेंटेशन. इंडेंटेशन विसंगत असल्यास, काही लोक टॅब वापरत असल्यास आणि इतर लोक मोकळी जागा वापरत असल्यास आवृत्ती नियंत्रण होईल हे भयानक स्वप्न आहे. ज्याला फक्त एका पद्धतीत निराकरण तपासण्याची आवश्यकता आहे, परंतु रिक्त स्थान आणि टॅबमधील फरकांमुळे संपूर्ण फाईल बदललेली आढळते अशा व्यक्तीसाठी ते काय असेल? अर्थात, सामान्य भाषेप्रमाणे, भाषा कोठे वापरली जाते त्यानुसार अधिवेशने बदलू शकतात. उदाहरणार्थ, वेबच्या विशाल विस्तारामध्ये, तुम्ही Google Java Style Guide आणि Twitter Java Style Guide शोधू शकता.. या पुनरावलोकनासाठी, आम्हाला चाचणी विषय आवश्यक आहे. आम्ही Gradle बिल्ड ऑटोमेशन सिस्टम वापरू. हे आम्हाला एका टेम्प्लेटमधून नवीन प्रकल्प तयार करून त्वरीत प्रारंभ करू देईल. Gradle कडे उत्तम प्लगइन आहे: Init प्लगइन तयार करा . चला नवीन डिरेक्टरी वर जाऊ आणि तिथे खालील कमांड रन करू: 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;
जसे आपण पाहू शकता, प्रवाहावरील ऑपरेशन एका ओळीवर आहे. परंतु प्रत्येक पीरियड ऑपरेटरवर साखळीबद्ध पद्धतीचे कॉल नेहमी नवीन ओळींमध्ये विभागले जातील याची खात्री करायची असल्यास काय? आम्ही हे मॅन्युअली करू शकतो. पण लक्षात ठेवा की सर्वकाही आपोआप घडावे अशी आमची इच्छा आहे. खरंच, आम्ही वेळोवेळी मॅन्युअल स्टेप विसरून जाऊ, आणि नंतर आम्ही सर्वत्र भिन्न स्वरूपनासह समाप्त करू, आणि ते काही चांगले नाही. म्हणून आम्हाला IDEA फॉरमॅटिंगसाठी वापरत असलेला नियम संपादित करणे आवश्यक आहे. निवडाFile -> SettingsIDEA मेनूमध्ये (किंवा Ctrl+Alt+S दाबा). सेटिंग्ज विंडोमध्ये शोध फील्डमध्ये "कोड शैली" प्रविष्ट करा. "कोड शैली" विभागात, तुम्ही फक्त Java पेक्षा अधिक भाषांसाठी सेटिंग्ज निर्दिष्ट करू शकता. पण जावा आपल्याला आत्ता ज्यामध्ये स्वारस्य आहे. जसे आपण पाहू शकता, सेटिंग्ज अनेक टॅबमध्ये विभागल्या आहेत. एक अतिशय उपयुक्त वैशिष्ट्य म्हणजे ऑपरेशनचे उदाहरण विंडोच्या उजव्या भागात दर्शविले गेले आहे: 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
 }
तुमच्या लक्षात आले असेल की जेव्हा तुम्ही Tab दाबता तेव्हा IDEA त्याचा स्पेस म्हणून अर्थ लावते (हे डीफॉल्ट वर्तन आहे). परंतु तुम्ही हे " " विभागात बदलू शकता Code Style: IntelliJ IDEA: कोडिंग शैली आणि कोड स्वरूपन - 5तुम्ही बघू शकता, तेथे बरीच सेटिंग्ज आहेत. तुम्ही येथे " " सेटिंग्जबद्दल अधिक तपशील वाचू शकता Code style: " IDEA मदत: कोड शैली ". आणखी एक महत्त्वाचे स्वरूपण वैशिष्ट्य आहे: स्वरूपण आयात. हे ऑपरेशन स्वतंत्रपणे चालवले जाते आणि त्याला " " म्हणतात Optimize Imports. Code -> Optimize Importsहे (Ctrl+Alt+O) अंतर्गत स्थित आहे . आयात ऑप्टिमाइझ करणे अनावश्यक आयात काढून टाकते आणि Java साठी सेटिंग्जच्या " " 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नंतर शोध विंडोमध्ये ग्रहण कोड फॉरमॅटर प्लगइन शोधा. IntelliJ IDEA: कोडिंग शैली आणि कोड स्वरूपन - 9ते स्थापित केल्यानंतर, तुम्हाला IDEA रीस्टार्ट करावे लागेल — ही एक मानक प्रक्रिया आहे. आता सर्वकाही पूर्ण झाले आहे. IDEA सेटिंग्जमध्ये एक नवीन विभाग आहे: "Eclipse Code Formatter".. हे असे काहीतरी दिसेल: IntelliJ IDEA: कोडिंग शैली आणि कोड स्वरूपन - 10

कडक आवश्यकता

IDEA साधनांव्यतिरिक्त, तुम्ही आवश्यकता घट्ट करण्यासाठी बिल्ड ऑटोमेशन प्लगइन देखील वापरू शकता. कोणीतरी योग्य स्वरूपन वापरले आहे हे तुम्ही व्यक्तिचलितपणे तपासण्याचा कोणताही मार्ग नाही. कदाचित तुम्ही एका संघात 5 लोकांसह करू शकता. परंतु एका कंपनीत 100 लोकांसह, ते वास्तववादी नाही. आणि पाच देखील ट्रॅक करणे कठीण होईल. आणि यापैकी कशासाठी आपला वेळ वाया घालवायचा? नियमांचे उल्लंघन झाल्यास प्रकल्प उभारण्यापासून रोखणे खूप सोपे होईल. खरं तर, हा "इन्स्पेक्ट कोड" नावाचा संपूर्ण स्वतंत्र विषय आहे. या लेखात, मी तुम्हाला ते कसे कार्य करते हे दर्शवू इच्छितो. सर्वात लोकप्रिय ग्रॅडल प्लगइनपैकी एक (कारण ते आमचा प्रकल्प तयार करते, तुम्हाला आठवत असेल) pmd आहे. ते सक्षम करण्यासाठी, फक्त आमच्या Gradle प्रोजेक्टच्या बिल्ड स्क्रिप्टवर जा (आमच्या प्रोजेक्टच्या रूटवर 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 मध्ये बदलू शकतो आणि नवीन बिल्डमध्ये त्रुटी दूर झाल्याचे पाहू शकतो.

तळ ओळ

प्रकल्पाची उत्पादकता वाढवण्यासाठी कोड शैली महत्त्वाची आहे. सामायिक केलेल्या नियमांनुसार लिहिलेला सुंदर कोड हमी देतो की तुमचे सहकारी ते अधिक सहज आणि पटकन समजतील आणि तुमच्यावर टीका करणार नाहीत. आधुनिक विकास साधनांसह, शैली नियमांचे पालन करणे इतके कठीण नाही. मला आशा आहे की या पुनरावलोकनाने तुम्हाला सिद्ध केले आहे की हे खरे आहे. परंपरेचे अनुसरण करून, येथे या विषयावरील थोडे अतिरिक्त साहित्य आहे:
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION