JavaRush /جاوا بلاگ /Random-SD /IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ
Viacheslav
سطح

IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ

گروپ ۾ شايع ٿيل
جديد اوزار ترقي جي عمل کي آسان بڻائي ٿو. خاص طور تي، توهان جي ڪوڊ جي انداز کي مانيٽر ڪرڻ آسان آهي، ان جي "غير مجاز" فارميٽنگ کي گهٽائڻ جي ڪوشش ڪندي. هن جائزي ۾، مان تجويز ڪريان ٿو پاڻ کي واقف ڪرڻ لاءِ ڪهڙن اوزارن سان IntelliJ Idea IDE ڊولپر کي مهيا ڪري ٿو ڪوڊ کي پڙهڻ لاءِ خوشگوار ۽ سمجهڻ ۾ آسان.
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 1

تعارف

هڪ پروگرامنگ ٻولي تمام گهڻي ساڳي ٻولي آهي جيڪا ماڻهو ڳالهائيندا آهن. فرق صرف اهو آهي ته هيءَ هڪ خاص ٻولي آهي، جيڪا شروع ۾ ڪمپيوٽر سان ڳالهه ٻولهه ڪرڻ لاءِ استعمال ٿيندي آهي ته جيئن اسان ان مان ڇا چاهيون. پر ڪمپيوٽر سان ڪو به ون آن ون ڪميونيڪيشن نٿو ٿي سگهي. جيتوڻيڪ جڏهن توهان هڪ پروگرامنگ ٻولي سکڻ شروع ڪيو، توهان هڪ ڪتاب يا ڪجهه تعليمي وسيلن جهڙوڪ JavaRush کي ڏٺو. ۽ هن ماخذ ۾ توهان ڪوڊ ڏٺو آهي جيڪو ڪمپيوٽر سمجهي سگهندو. پر توهان کي اهو پڻ سمجهڻ گهرجي جيئن توهان جاوا ٻولي جي ڄاڻ حاصل ڪريو. جيئن ڪنهن به ٻوليءَ ۾، پروگرامنگ ۾ ڪي ضابطا هوندا آهن ڪوڊ ٺاهڻ لاءِ. مثال طور، شائستہ سماج ۾ باهه سان لکڻ کي خراب آداب سمجهيو ويندو آهي، ۽ جاوا ۾ هڪ طريقي کي وڏي خط سان سڏڻ ڪوڊ جي طرز جي سراسر خلاف ورزي آهي. جاوا ڪوڊ فارميٽ ڪرڻ جا ضابطا جاوا ڪوڊ ڪنوينشن دستاويز ۾ ٺھيل آھن . ان کان علاوه، ڪوڊ جو انداز ننڍن تفصيلن کي منظم ڪري سگھي ٿو، جھڙوڪ indentation. ۽ جڏهن ورشن ڪنٽرول ٽولز استعمال ڪيا وڃن ٿا، تصور ڪريو سڄو خواب جڏهن هرڪو هڪ فائل محفوظ ڪري ٿو يا ته ٽيب جي طور تي انڊينٽ ٿيل يا اسپيس جي طور تي انڊينٽ ٿيل. اهو ڪنهن ماڻهو لاءِ ڇا هوندو جنهن کي صرف هڪ طريقي سان ايڊٽ ڪرڻ جي ضرورت آهي، پر ٽيب ۾ اسپيس کي درست ڪرڻ يا ان جي برعڪس پوري فائل تبديل ٿي ويندي. قدرتي طور، جيئن عام ٻولي سان، انداز مختلف ٿي سگهي ٿو ان تي منحصر ڪري ٿو جتي اهو استعمال ڪيو ويو آهي. مثال طور، انٽرنيٽ تي توهان ڳولي سگهو ٿا گوگل جاوا اسٽائل گائيڊ يا Twitter جاوا اسٽائل گائيڊ . ھن جائزي واري مضمون لاءِ، اسان کي ھڪ امتحاني مضمون جي ضرورت پوندي. اچو ته استعمال ڪريون 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 testSummOfOddNumbers() {
	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 -> Settings(يا ڪلڪ ڪريو Ctrl + Alt + S). سيٽنگون ونڊو ۾ سرچ فيلڊ ۾، "ڪوڊ انداز" لکو. ڪوڊ اسٽائل سيڪشن ۾ اهو ممڪن آهي سيٽنگون بيان ڪرڻ نه صرف جاوا لاءِ. پر هاڻي اسان جاوا ۾ دلچسپي وٺندا آهيون. جئين توهان ڏسي سگهو ٿا، سيٽنگون ڪيترن ئي ٽيب ۾ ورهايل آهن. سڀ کان وڌيڪ مفيد آهي ته تبديلي جو نتيجو ونڊو جي ساڄي پاسي هڪ مثال ۾ ڏيکاريو ويندو:
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 2
جئين توهان اسڪرين شاٽ ۾ ڏسي سگهو ٿا، اسان "زنجيرن جي طريقي واري ڪالز" جي سيٽنگ کي بيان ڪري سگھون ٿا جيئن "لفٽ هميشه"، يعني. ضم ٿيل طريقو ڪالن لاءِ هميشه ورهايو. ھاڻي اچو ته ٽيسٽ ۾ فارميٽنگ کي دٻايو ۽ ڏسو ته اھو واقعي ڪم ڪري ٿو! پر ڪڏهن ڪڏهن ائين ٿئي ٿو ته عام فارميٽنگ جي ضابطن کان ٻاهر ڪجهه ڪوڊ فارميٽ ڪرڻ جي ضرورت آهي. اچو ته هيٺ ڏنل فارميٽنگ کي ترتيب ڏيو:
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 3
فارميٽنگ کي غير فعال ڪرڻ لاءِ، غير فعال فارميٽنگ مارڪرن لاءِ سپورٽ ڪوڊ اسٽائل سيڪشن ۾ فعال ٿيڻ گھرجي:
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 4
ھاڻي اسان پنھنجي ٽيسٽ جو ڪوڊ تبديل ڪري سگھون ٿا ته جيئن ان جي فارميٽنگ ان شڪل ۾ رھي جنھن ۾ اسين ان کي لکون ٿا:
@Test
public void testSummOfOddNumbers() {
	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 ان کي توهان جي لاءِ اسپيس طور تشريح ڪري ٿو (ڊفالٽ رويي). پر توھان ھن کي اتي تبديل ڪري سگھو ٿا ڪوڊ اسٽائل ۾:
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 5
جئين توهان ڏسي سگهو ٿا، سيٽنگون جو هڪ وڏو قسم آهي. توھان وڌيڪ پڙھي سگھوٿا ڪوڊ اسٽائل سيٽنگ بابت ھتي: " Idea Help: Code Style ". هتي هڪ ٻيو اهم فارميٽنگ خاصيت آهي - درآمد فارميٽنگ. اهو الڳ الڳ عمل ڪيو ويو آهي ۽ سڏيو ويندو آهي "Optimize Imports"۽ مينيو آئٽم ۾ واقع آهي Code -> Optimize Imports(Ctrl + Alt + O). امپورٽ آپٽمائيزيشن غير ضروري امپورٽس کي ختم ڪري ٿي ۽ انهن کي درست ترتيب ۾ رکي ٿي سيٽنگون مطابق ڪوڊ اسٽائل فار جاوا سيٽنگز جي امپورٽس ٽيب ۾. انهي سان گڏ، جيڪڏهن توهان چاهيو ٿا ته فارميٽنگ خودڪار طريقي سان ٿيڻ گهرجي، سٺي خبر اها آهي ته توهان ان کي استعمال ڪندي ڪري سگهو ٿا Save Actions پلگ ان .

ھڪڙي ٽيم ڏانھن سيٽنگون ورهائڻ

عظيم، اسان مٿي ڏٺو ته اسان فارميٽنگ جي انداز کي ترتيب ڏئي سگھون ٿا اسان جي مطابق. پر اهو انداز هڪ ٽيم ۾ ڪيئن استعمال ڪري سگهجي ٿو؟ تمام سادو. اتي ڪيترائي اختيار آھن. سڀ کان آسان آهي ڊراگرام کي محفوظ ڪرڻ. فائل -> سيٽنگون ذريعي Idea سيٽنگون کوليو (يا Ctrl + Alt + S کي دٻايو). ڪوڊ اسلوب سيڪشن ۾ اسين ڏسي سگھون ٿا لکت واري اسڪيم. هي اسان جي فارميٽنگ اسڪيم آهي. ڊفالٽ طور، ھڪڙي اسڪيم جي نالي سان بيان ڪئي وئي آھي Default ۽ ان جي اڳيان تشريح IDE: ھن جو مطلب آھي ته ھي سيٽنگ صرف اسان جي IDE لاءِ آھي، ۽ اھو ڪنھن کي متاثر نٿو ڪري. ”ڪسٽم“ اسڪيم ٺاهڻ لاءِ، ساڄي پاسي واري بٽڻ کي دٻايو ”نقل“ ٺاهيو ۽ ان کي نالو ڏيو، مثال طور: JavaRush
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 6
ان کان پوء اسان سيٽنگون درآمد يا برآمد ڪرڻ جي قابل هوندا:
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 7
ٻيو اختيار آهي درآمد ڪرڻ لاءِ امپورٽ آئيڊيا سيٽنگون:
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 8
ٽيون اختيار آهي سيٽنگون مخزن. سيٽنگون مخزن استعمال ڪرڻ بابت وڌيڪ معلومات لاءِ، دستاويز ڏسو ”IntelliJ Idea Help: Settings Repository “. ٽيم ۾ هڪ واحد انداز کي ورهائڻ جي موضوع تي، مان پڻ مدد نه ٿو ڪري سگهان پر Eclipse IDE کان اسٽائلز لاءِ سٺي مدد کي نوٽ ڪريو. ائين ڪرڻ لاء، توهان کي هڪ الڳ پلگ ان انسٽال ڪرڻ جي ضرورت پوندي: فائل -> سيٽنگون (Ctrl + Alt + S) ذريعي Idea سيٽنگون کوليو ۽ پلگ ان سيڪشن ڏانهن وڃو. نوان پلگ ان ڳولڻ لاءِ، بٽڻ تي ڪلڪ ڪريو "Browse Repositories"، جنهن کان پوءِ اسان کي ڳوليندا ونڊو ۾ Eclipse Code Formatter پلگ ان.
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 9
هاڻي، انسٽاليشن کان پوء، توهان کي Idea کي ٻيهر شروع ڪرڻ جي ضرورت آهي - اهو هڪ معياري طريقو آهي. ان کان پوء، ساڳئي جاء تي، Idea سيٽنگون ۾، اسان کي هڪ نئون سيڪشن ملندو: "Eclipse Code Formatter" Eclipse لاءِ فارميٽ فائل جو هڪ مثال هتي ملي سگهي ٿو . اهو ڪجهه هن طرح نظر ايندو:
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 10

سخت ضرورتون

Idea اوزارن کان علاوه، توھان پڻ استعمال ڪري سگھو ٿا بلڊ سسٽم پلگ ان جي ضرورتن کي مضبوط ڪرڻ لاءِ. چيڪ ڪرڻ جو ڪو طريقو ناهي ته هڪ شخص فارميٽنگ استعمال ڪيو. جيڪڏهن ٽيم ۾ 5 ماڻهو آهن، اهو اڃا تائين ممڪن آهي. جيڪڏهن ڪمپني وٽ 100 ماڻهو آهن، اهو غير حقيقي آهي. ها، پنجن کي به ٽريڪ رکڻ ڏکيو ٿيندو. ۽ ان تي وقت ڇو وڃايو؟ جيڪڏهن ڪجهه ضابطن جي ڀڃڪڙي ڪئي وڃي ته منصوبي کي گڏ ڪرڻ کان منع ڪرڻ تمام آسان آهي. حقيقت ۾، هي هڪ مڪمل الڳ موضوع آهي جنهن کي "انسپيڪٽ ڪوڊ" سڏيو ويندو آهي. هن مضمون جي مقصدن لاء، مان صرف اهو ڏيکارڻ چاهيان ٿو ته اهو ڪيئن ڪم ڪري ٿو. Gradle لاءِ سڀ کان وڌيڪ عام پلگ ان مان هڪ آهي (جيئن ته اهو اسان جي پروجيڪٽ کي گڏ ڪري ٿو، جيڪڏهن توهان کي ياد آهي) آهي 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
ان کان علاوه، مسئلو ڪالمن ۾ pmd پلگ ان ويب سائيٽ تي مسئلي جي وضاحت لاء هڪ لنڪ آهي. مثال طور، غلطي لاءِ "headerCommentRequirement Required" لنڪ هتي وڃي ٿي: pmd - CommentRequired . هي نقص اسان ڏانهن اشارو ڪري ٿو ته اسان جي طبقي وٽ JavaDoc ناهي. جاوا ڊڪ جي مٿان طبقن جي موجودگي ٽيمپليٽ استعمال ڪندي ترتيب ڏئي سگهجي ٿي:
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 12
۽ فائل هيڊر لاءِ مواد بيان ڪريو:
IntelliJ IDEA: ڪوڊ اسلوب ۽ فارميٽنگ - 13
ان کان پوء، اسان ايپ ڪلاس جي مٿي ڏنل تبصري کي JavaDoc ۾ تبديل ڪري سگھون ٿا ۽ نئين تعمير سان ڏسو ته غلطي غائب ٿي وئي آهي.

هيٺين لائن

هڪ پيداواري منصوبي لاءِ ڪوڊ جو انداز اهم آهي. عام ضابطن جي مطابق لکيل خوبصورت ڪوڊ ضمانت آهي ته توهان جا ساٿي ان کي وڌيڪ آساني سان ۽ جلدي سمجهي سگهندا، ۽ توهان جي باري ۾ ڪجهه پياري شيون نه چوندا. جديد ترقي جا اوزار ڏنا، ضابطن تي قائم رهڻ ايترو ڏکيو نه آهي. مون کي اميد آهي ته هي جائزو ڏيکاريو ويو آهي ته اهو واقعي واقعي آهي. خير، هميشه وانگر، موضوع تي ٿورو مواد: #وياچسلاو
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION