Bahasa pemrograman sangat mirip dengan bahasa lisan. Satu-satunya perbedaan adalah bahwa ini adalah bahasa khusus yang tujuan utamanya adalah memfasilitasi komunikasi dengan komputer untuk menjelaskan kepada komputer apa yang ingin kita lakukan. Tetapi Anda tidak dapat melakukan percakapan pribadi dengan komputer. Ketika Anda mulai mempelajari bahasa pemrograman, Anda melihat buku atau sumber pendidikan seperti CodeGym. Dan sumber daya ini menunjukkan kepada Anda kode yang dimengerti komputer. Tetapi Anda juga harus memahaminya saat Anda belajar tentang bahasa Jawa. Seperti halnya bahasa apa pun, beberapa konvensi pemformatan telah diadopsi dalam pemrograman. Misalnya, dalam masyarakat yang sopan, menulis seperti ini akan dianggap sebagai perilaku yang tidak baik. Dan di Jawa, memulai nama metode dengan huruf kapital merupakan pelanggaran berat terhadap konvensi pengkodean. Aturan untuk kode Java diberikan dalam dokumen Konvensi Kode untuk Bahasa Pemrograman Java . Konvensi pengkodean juga dapat mengatur detail yang lebih kecil, seperti indentasi. Bayangkan mimpi buruk yang akan terjadi pada kontrol versi jika lekukan tidak konsisten, beberapa orang menggunakan tab dan orang lain menggunakan spasi. Bagaimana jadinya bagi seseorang yang perlu memeriksa perbaikan hanya dalam satu metode, tetapi mendapati seluruh file berubah karena perbedaan spasi dan tab? Tentu saja, seperti bahasa biasa, konvensi dapat berubah tergantung di mana bahasa digunakan. Misalnya, di web yang sangat luas, Anda dapat menemukan Panduan Gaya Google Java dan Panduan Gaya Java Twitter. Untuk ulasan ini, kami membutuhkan subjek uji. Kami akan menggunakan sistem otomasi build Gradle. Ini akan memungkinkan kita memulai dengan cepat dengan membuat proyek baru dari template. Gradle memiliki plugin yang bagus: Build Init Plugin . Ayo pergi ke direktori baru dan jalankan perintah berikut di sana:
gradle init --type java-application
Setelah itu, jalankan IntelliJ IDEA. Jika Anda melihat jendela dengan proyek terbuka (yaitu Anda melihat editor kode dan pohon proyek), tutup proyek ini menggunakan File -> Close Project
. Sekarang di jendela selamat datang, jalankan " Import Project
" dan impor proyek baru kita. Saat mengimpor, setel Use autoimport
kotak centang " ". Mari kita cari tahu apakah kita dapat menggunakan alat pengembangan canggih untuk menyederhanakan hidup.
Pemformatan kode di IDEA
Setelah mengimpor proyek, tekan Ctrl+N dan pergi keAppTest
kelas. Ini adalah kelas tes default. Ini terlihat seperti ini:
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());
}
}
Apa yang langsung menarik perhatian Anda? Anotasi pada baris yang sama dengan deklarasi metode, yang terlihat jelek, bukan? Bagaimana cara memperbaikinya? IntelliJ IDEA memiliki Code
entri menu " " untuk berbagai manipulasi kode. Salah satu manipulasi tersebut adalah " Reformat Code
", yang dapat Anda terapkan menggunakan Ctrl+L. Setelah Anda melakukan ini, anotasi akan berada di satu baris, dan deklarasi metode di baris lainnya. Perlu dicatat segera bahwa operasi ini dilakukan pada kode yang dipilih saat ini . Jika tidak ada pilihan, maka operasi pemformatan dilakukan pada semuanya. Sekarang mari tambahkan metode pengujian baru:
@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));
}
Dan dua impor:
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
Seperti yang Anda lihat, operasi di Stream ada di satu baris. Tetapi bagaimana jika kita ingin memastikan bahwa pemanggilan metode berantai selalu dipecah menjadi baris baru pada setiap periode operator? Kita bisa melakukan ini secara manual. Tetapi ingat bahwa kami ingin semuanya terjadi secara otomatis. Memang, kami pasti akan melupakan langkah manual dari waktu ke waktu, dan kemudian kami akan berakhir dengan pemformatan yang berbeda di mana-mana, dan itu tidak baik. Jadi kita perlu mengedit aturan yang digunakan IDEA untuk memformat. MemilihFile -> Settings
di menu IDEA (atau tekan Ctrl+Alt+S). Masukkan "Gaya kode" di bidang pencarian di jendela pengaturan. Di bagian "Gaya kode", Anda dapat menentukan setelan untuk lebih banyak bahasa selain Java. Tapi Java adalah yang kami minati saat ini. Seperti yang Anda lihat, pengaturan dibagi menjadi beberapa tab. Fitur yang sangat berguna adalah contoh operasi ditampilkan di bagian kanan jendela: Tangkapan layar menunjukkan bahwa kita dapat menyetel "Panggilan metode berantai" menjadi "selalu dibungkus", yaitu selalu membagi panggilan metode berantai menjadi baris terpisah. Sekarang klik lagi tombol pemformatan di kelas pengujian dan kami melihat bahwa itu benar-benar berfungsi! Namun terkadang Anda perlu memformat beberapa kode di luar aturan pemformatan standar. Siapkan pemformatan sebagai berikut: Untuk mencegah pemformatan, di bagian "Gaya Kode", aktifkan penanda pemformat: Sekarang kita dapat mengubah kelas pengujian agar kodenya tidak diformat ulang:
@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
}
Anda mungkin memperhatikan bahwa saat Anda menekan Tab, IDEA menafsirkannya sebagai spasi (ini adalah perilaku default). Tapi Anda bisa mengubahnya di Code Style
bagian " ": Seperti yang Anda lihat, ada banyak pengaturan di sana. Anda dapat membaca detail lebih lanjut tentang Code style
pengaturan " " di sini: " Bantuan IDEA: Gaya Kode ". Ada fitur pemformatan penting lainnya: pemformatan impor. Operasi ini dijalankan secara terpisah dan disebut " Optimize Imports
". Itu terletak di bawah Code -> Optimize Imports
(Ctrl+Alt+O). Mengoptimalkan impor akan menghapus impor yang tidak perlu dan menyusun impor dalam urutan yang benar sesuai dengan setelan di Imports
tab " " pada Code Style
setelan " " untuk Java. Terlebih lagi, jika Anda ingin pemformatan ini terjadi secara otomatis, ada kabar baik:Plugin Simpan Tindakan .
Mendistribusikan pengaturan dalam perintah
Kami melihat di atas bahwa Anda dapat menyesuaikan gaya pemformatan sesuka Anda. Tapi bagaimana Anda menggunakan gaya ini dalam sebuah tim? Sangat mudah. Ada beberapa pilihan. Yang paling sederhana adalah menyimpan skema gaya kode. Buka pengaturan IDEA menggunakanFile -> Settings
(atau tekan Ctrl+Alt+S). Di bagian " Code Style
", kita bisa melihat "Skema". Ini adalah skema pemformatan kami. Secara default, skema "Default" digunakan dan diberi label "IDE", yang berarti bahwa pengaturan ini hanya berlaku untuk IDE kita — tidak memengaruhi orang lain. Untuk membuat skema "kustom", gunakan tombol di sebelah kanan untuk membuat salinan dan beri nama, misalnya: CodeGym Kemudian kita dapat mengimpor atau mengekspor pengaturan: Opsi lainnya adalah mengimpor pengaturan IDEA: Opsi ketiga adalah Repositori Pengaturan. Untuk menggunakan Repositori Pengaturan, lihat dokumentasi Bantuan IntelliJ IDEA untuk detail lebih lanjut di tautan berikut: Repositori Pengaturan ". Berbicara tentang mendorong gaya terpadu pada tim, saya juga tidak bisa tidak menyebutkan dukungan yang baik untuk gaya dari Eclipse IDE. Untuk melakukan ini, Anda perlu menginstal plugin terpisah: buka pengaturan IDEA melalui File -> Pengaturan (Ctrl+Alt+S) dan buka bagian "Plugin". Untuk menemukan plugin baru, klik tombol " ". Browse Repositories
Kemudian temukan plugin Eclipse Code Formatter di jendela pencarian. Setelah menginstalnya, Anda harus memulai ulang IDEA — ini adalah prosedur standar. Sekarang semuanya sudah selesai. Ada bagian baru di pengaturan IDEA: "Eclipse Code Formatter".. Ini akan terlihat seperti ini:
Persyaratan yang lebih ketat
Selain alat IDEA, Anda juga dapat menggunakan plugin otomasi build untuk memperketat persyaratan. Tidak mungkin Anda dapat memeriksa secara manual apakah seseorang telah menggunakan pemformatan yang tepat. Mungkin Anda bisa dengan 5 orang dalam satu tim. Tapi dengan 100 orang di sebuah perusahaan, itu tidak realistis. Dan bahkan lima pun akan sulit dilacak. Dan mengapa membuang waktu Anda untuk semua ini? Akan jauh lebih mudah untuk mencegah proyek dibangun jika aturan dilanggar. Faktanya, ini adalah topik terpisah yang disebut "Periksa Kode". Pada artikel ini, saya hanya ingin menunjukkan cara kerjanya. Salah satu plugin Gradle paling populer (karena itu membangun proyek kami, Anda ingat) adalah pmd. Untuk mengaktifkannya, cukup buka skrip build proyek Gradle kami (file build.gradle di root proyek kami) dan tambahkan pmd di samping plugin lainnya:
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'
}
Sekarang kita dapat memasukkan pengaturan yang lebih detail di tempat yang sama:
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'
]
}
Bahkan proyek kami rusak sekarang. Jalankan gradle build
dan kami mendapatkan kesalahan. Hal yang menyenangkan adalah laporan dibuat selama pembuatan. Dan jika ada kesalahan, kami mendapat pesan seperti ini:
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
Pergi ke laporan, kami melihat sesuatu seperti ini: Selain itu, kolom " Problem
" menyediakan tautan ke deskripsi masalah di situs web plugin pmd. Misalnya, untuk headerCommentRequirement Required
kesalahan " ", tautannya ada di sini: pmd — CommentRequired . Kesalahan ini merupakan petunjuk bahwa kelas kita tidak memiliki JavaDoc. Kita dapat menggunakan templat untuk mengonfigurasi kelas JavaDoc di atas: Dan menentukan konten untuk File Header
: Setelah itu, kita dapat mengubah komentar di atas kelas Aplikasi menjadi JavaDoc dan melihat bahwa kesalahan telah hilang dalam versi baru.
Garis bawah
Gaya kode penting untuk memaksimalkan produktivitas pada suatu proyek. Kode indah yang ditulis sesuai dengan aturan bersama menjamin bahwa rekan kerja Anda akan lebih mudah dan cepat memahaminya dan tidak akan memberi Anda banyak kritik. Dengan alat pengembangan modern, tidak terlalu sulit untuk mengikuti aturan gaya. Saya harap ulasan ini telah membuktikan kepada Anda bahwa ini benar. Mengikuti tradisi, inilah sedikit materi tambahan tentang topik ini:- Video dari JetBrainsTV: " Periksa Kode (IntelliJ IDEA) "
- Tinjauan " Analisis Kode Dengan Plugin Gradle "
- Kursus " Otomatiskan Kualitas Kode "
GO TO FULL VERSION