Zamonaviy vositalar rivojlanish jarayonini osonlashtiradi. Xususan, "ruxsatsiz" formatlashni minimallashtirishga harakat qilib, kodingiz uslubini kuzatish osonroq. Ushbu sharhda men IntelliJ Idea IDE kodni o'qish uchun yoqimli va tushunarli qilish uchun ishlab chiquvchiga qanday vositalarni taqdim etishi bilan tanishishni taklif qilaman.
Skrinshotda ko'rib turganingizdek, biz "Zanjirlangan usul chaqiruvlari" uchun sozlamani "har doim o'rash" deb belgilashimiz mumkin, ya'ni. har doim birlashtirilgan usul chaqiruvlari uchun bo'linadi. Endi testda formatlashni yana bosamiz va u haqiqatan ham ishlayotganini ko'ramiz! Ammo ba'zida shunday bo'ladiki, ba'zi kodlarni formatlashning umumiy qoidalaridan tashqarida formatlash zarurati paydo bo'ladi. Keling, formatlashni quyidagicha o'rnatamiz:
Formatlashni o'chirib qo'yish uchun "Kod uslubi" bo'limida formatlashni o'chirish belgilarini qo'llab-quvvatlash yoqilgan bo'lishi kerak:
Endi biz test kodini o'zgartirishimiz mumkin, shunda uning formatlanishi biz yozgan shaklda qoladi:
Ko'rib turganingizdek, juda ko'p turli xil sozlamalar mavjud. Kod uslubi sozlamalari haqida ko'proq ma'lumotni bu yerda o'qishingiz mumkin: " Idea Help: Code Style ". Yana bir muhim formatlash xususiyati mavjud - import formatlash. U alohida bajariladi va chaqiriladi
Shundan so'ng biz sozlamalarni import yoki eksport qilishimiz mumkin bo'ladi:
Yana bir variant - Ideya sozlamalarini import qilish:
Uchinchi variant - Sozlamalar ombori. Sozlamalar omboridan foydalanish boʻyicha qoʻshimcha maʼlumot olish uchun “IntelliJ Idea Help: Settings Repository ” hujjatiga qarang . Jamoada yagona uslubni tarqatish mavzusida men ham Eclipse IDE uslublarini yaxshi qo'llab-quvvatlashini ta'kidlay olmayman. Buning uchun siz alohida plaginni o'rnatishingiz kerak bo'ladi: Fayl -> Sozlamalar (Ctrl + Alt + S) orqali Idea sozlamalarini oching va Plaginlar bo'limiga o'ting. Yangi plaginlarni qidirish uchun tugmani bosing
Endi, o'rnatishdan so'ng, siz Idea-ni qayta ishga tushirishingiz kerak - bu standart protsedura. Shundan so'ng, xuddi shu joyda, Idea sozlamalarida biz yangi bo'limni topamiz: "Eclipse Code Formatter" Eclipse uchun format faylining namunasini bu erda topish mumkin . Bu shunday ko'rinadi:
Bundan tashqari, muammo ustunida pmd plaginining veb-saytidagi muammoning tavsifiga havola mavjud. Masalan, "headerCommentRequirement Required" xatosi uchun havola bu yerga o'tadi: pmd - CommentRequired . Bu xato bizning sinfimizda JavaDoc yo'qligiga ishora qiladi. JavaDoc ning sinflar ustida mavjudligi shablonlar yordamida sozlanishi mumkin:
Fayl sarlavhasi uchun tarkibni belgilang:
Shundan so'ng, biz App klassi ustidagi sharhni JavaDoc ga aylantirishimiz va yangi Build bilan xatolik yo'qolganligini ko'rishimiz mumkin.
Kirish
Dasturlash tili odamlar gapiradigan tilga juda o'xshaydi. Yagona farq shundaki, bu maxsus til bo'lib, dastlab kompyuterdan nima istayotganimizni tushuntirish uchun u bilan muloqot qilish uchun ishlatiladi. Lekin kompyuter bilan yakkama-yakka muloqot bo'lishi mumkin emas. Dasturlash tilini o'rganishni boshlaganingizda ham, siz kitob yoki JavaRush kabi ta'lim manbasini ko'rib chiqdingiz. Va bu manbada siz kompyuter tushunadigan kodni ko'rdingiz. Lekin siz Java tilini bilishingiz bilan ham buni tushunishingiz kerak. Har qanday tilda bo'lgani kabi, dasturlashda ham kodni shakllantirish uchun ba'zi qoidalar mavjud. Masalan, muloyim jamiyatda panjara bilan yozish yomon odob hisoblanadi, Javada esa bosh harf bilan usulni chaqirish kod uslubini qo'pol ravishda buzish hisoblanadi. Java kodini formatlash qoidalari Java Code Convention hujjatida tuzilgan . Bundan tashqari, kod uslubi kichikroq tafsilotlarni, masalan, chekinishni tartibga solishi mumkin. Va versiyani boshqarish vositalaridan foydalanilganda, har bir kishi faylni yorliq sifatida yoki bo'sh joy sifatida chekingan holda saqlaganida, butun dahshatli tushni tasavvur qiling. Tahrirlashni faqat bitta usulda tekshirishi kerak bo'lgan odam uchun bu qanday bo'ladi, lekin yorliqlardagi bo'shliqlar to'g'rilanganligi sababli butun fayl o'zgaradi yoki aksincha. Tabiiyki, oddiy tilda bo'lgani kabi, uslub ham qaerda ishlatilishiga qarab farq qilishi mumkin. Misol uchun, Internetda siz Google Java Style Guide yoki Twitter Java Style Guide ni topishingiz mumkin . Ushbu sharh maqolasi uchun bizga test mavzusi kerak bo'ladi. Keling, Gradle loyihasini qurish tizimi xizmatidan foydalanaylik. Bu bizga tezkor boshlash uchun shablon yordamida yangi loyiha yaratish imkonini beradi. Gradle ajoyib plaginga ega: Build Init Plugin . Keling, yangi katalogga o'tamiz va u erda buyruqni bajaramiz:gradle init --type java-application
Shundan so'ng IntelliJ Idea-ni ishga tushiring. Agar siz allaqachon ochiq loyihaga ega oynani ko'rsangiz (siz kod muharriri, loyiha tuzilmasi daraxtini ko'rasiz), yordamida ushbu loyihani yoping File -< Close Project
. Endi xush kelibsiz oynada biz "Import Project"
yangi loyihamizni bajaramiz va import qilamiz. Import qilishda bayroqni o'rnating "Use autoimport"
. Keling, zamonaviy rivojlanish vositalari yordamida hayotni qandaydir soddalashtirish mumkinligini aniqlaylik.
Ideada kodni formatlash
Loyihani import qilgandan so'ng, tugmalar birikmasini bosingCtrl+N
va sinfga o'ting AppTest
. Bu sinf standart sinov sinfidir. Bu shunday ko'rinadi:
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());
}
}
Bu erda nima darhol e'tiboringizni tortadi? Xunuk ko'rinadigan bir qatorda usul deklaratsiyasiga ega annotatsiya rozi. Buni qanday tuzatish kerak? "Code"
IntelliJ Idea-da turli xil kod manipulyatsiyalari uchun menyu bo'limi mavjud . Bunday manipulyatsiyalardan biri "Reformat Code"
kalit birikmasi Ctrl + L
. Qo'llashdan so'ng, izoh bir satrda, usulning o'zi esa boshqasida bo'ladi. Darhol ta'kidlash joizki, ushbu operatsiya tanlangan kod bo'limida amalga oshiriladi . Va agar bunday narsa bo'lmasa, formatlash jarayoni barcha tarkibda amalga oshiriladi. Keling, yangi sinov usulini qo'shamiz:
@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));
}
Va ikkita import:
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
Ko'rib turganingizdek, Stream-dagi operatsiya bitta satrda joylashgan. Ammo qo'ng'iroqlari zanjirlangan usullar har doim bir nuqtada yangi qatorlarga bo'linishiga ishonch hosil qilishni istasak nima bo'ladi? Bir tomondan, biz buni qo'lda qilishimiz mumkin. Ammo unutmangki, biz hamma narsa biz uchun ishlashini xohlaymiz. Axir, vaqti-vaqti bilan biz unutamiz va kod formati hamma joyda har xil bo'ladi va bu yaxshi emas. Ma'lum bo'lishicha, siz Idea formatlashni amalga oshiradigan qoidani tahrirlashingiz kerak. Menyuda Idea bandini tanlang File -> Settings
(yoki ni bosing Ctrl + Alt + S
). Sozlamalar oynasidagi qidiruv maydoniga "Kod uslubi" ni yozing. Kod uslubi bo'limida nafaqat Java uchun sozlamalarni belgilash mumkin. Ammo hozir biz Java-ga qiziqamiz. Ko'rib turganingizdek, sozlamalar bir nechta yorliqlarga bo'lingan. Eng foydalisi shundaki, o'zgartirish natijasi oynaning o'ng tomonidagi misolda ko'rsatiladi:
@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
}
Ha, agar e'tibor bersangiz: Tab tugmasini bosganingizda, Idea uni siz uchun bo'sh joy sifatida izohlaydi (standart xatti-harakatlar). Lekin buni Kod uslubida o'zgartirishingiz mumkin:
"Optimize Imports"
va menyu bandida joylashgan Code -> Optimize Imports
(Ctrl + Alt + O). Importni optimallashtirish keraksiz importlarni olib tashlaydi va ularni Java sozlamalari uchun Kod uslubidagi Importlar yorlig'idagi sozlamalarga muvofiq to'g'ri tartibga soladi. Bundan tashqari, agar siz formatlash avtomatik ravishda amalga oshirilishini istasangiz, yaxshi xabar shundaki, siz buni Saqlash Action plaginidan foydalanib qilishingiz mumkin .
Sozlamalarni jamoaga tarqatish
Ajoyib, biz yuqorida ko'rdikki, biz formatlash uslubini o'zimizga mos ravishda sozlashimiz mumkin. Ammo bu uslubni jamoada qanday ishlatish mumkin? Juda oddiy. Bir nechta variant mavjud. Eng oson yo'li - diagrammani saqlash. Fikr sozlamalarini Fayl -> Sozlamalar orqali oching (yoki Ctrl + Alt + S tugmalarini bosing). Kod uslubi bo'limida biz yozuv sxemasini ko'rishimiz mumkin. Bu bizning formatlash sxemamiz. Odatiy bo'lib, sxema Default nomi bilan ko'rsatilgan va uning yonida IDE izohi joylashgan: bu sozlama faqat bizning IDE uchun ekanligini anglatadi va u hech kimga ta'sir qilmaydi. "Maxsus" sxemani yaratish uchun "dublikat" qilish uchun o'ngdagi tugmani bosing va unga nom bering, masalan: JavaRush"Browse Repositories"
, shundan so'ng biz qidiruv oynasida Eclipse Code Formatter plaginini topamiz.
Qattiqlashuv talablari
Idea vositalaridan tashqari, siz talablarni kuchaytirish uchun tizim yaratish plaginlaridan ham foydalanishingiz mumkin. Biror kishi formatlashdan foydalanganligini tekshirishning hech qanday usuli yo'q. Agar jamoada 5 kishi bo'lsa, bu hali ham mumkin. Agar kompaniyada 100 kishi bo'lsa, bu haqiqiy emas. Ha, hatto beshtasini ham kuzatib borish qiyin bo'ladi. Va nega bunga vaqt sarflayapsiz? Agar ma'lum qoidalar buzilgan bo'lsa, loyihani yig'ishni taqiqlash ancha oson. Aslida, bu "Kodni tekshirish" deb nomlangan alohida mavzu. Ushbu maqolaning maqsadlari uchun men shunchaki uning qanday ishlashini ko'rsatmoqchiman. Gradle uchun eng keng tarqalgan plaginlardan biri (chunki u bizning loyihamizni to'playdi, agar esingizda bo'lsa) pmd . Uni yoqish uchun gradle loyihamizning qurish skriptiga (loyihamiz ildizidagi build.gradle fayli) o‘ting va qolgan plaginlar yonida pmd ni belgilang:
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'
}
Endi biz u erda batafsilroq sozlamalarni o'rnatishimiz mumkin:
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'
]
}
Bizning loyihamizda ham endi hamma narsa yaxshi emas. Keling, gradle build-ni ishga tushiramiz va xatoga yo'l qo'yamiz. Qizig'i shundaki, yig'ish paytida hisobot tuziladi. Va agar xatolar bo'lsa, biz quyidagi kabi xabarni olamiz:
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
Hisobotga o'tadigan bo'lsak, biz shunga o'xshash narsani ko'ramiz:
Pastki chiziq
Kod uslubi samarali loyiha uchun muhimdir. Umumiy qoidalarga muvofiq yozilgan chiroyli kod - bu sizning hamkasblaringiz buni osonroq va tezroq tushunishi va siz haqingizda bir nechta mehrli so'zlarni aytmaslik kafolati. Zamonaviy rivojlanish vositalarini hisobga olgan holda, qoidalarga rioya qilish unchalik qiyin emas. Umid qilamanki, ushbu sharh haqiqatan ham shunday ekanligini ko'rsatdi. Odatdagidek, mavzu bo'yicha ozgina material:- JetBrainsTV dan video: " Kodni tekshiring (IntelliJ IDEA) "
- " Gradle plaginlari bilan kod tahlili " ni ko'rib chiqish
- " Kod sifatini avtomatlashtirish " kursi
GO TO FULL VERSION