JavaRush /Blog Java /Random-MS /Panduan untuk pembangun Java masa depan. Perusahaan - bah...
Diana
Tahap

Panduan untuk pembangun Java masa depan. Perusahaan - bahagian 1

Diterbitkan dalam kumpulan
“Jangan terlalu berbangga dengan pencapaian teknologi yang anda bina ini. Keupayaan untuk memusnahkan planet tidak ada apa-apanya jika dibandingkan dengan kuasa Force." - Darth Vader di Death Star. Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 1

Pengenalan

Mungkin, dua bahagian seterusnya dalam siri artikel adalah yang paling dinanti-nantikan oleh ramai orang, dan untuk alasan yang baik. Apa yang ada, di luar ufuk, di luar Jawa tulen? Apakah yang dihirup oleh pembangun Java dalam setiap projek? Pertimbangkan ini sebagai panduan belajar kendiri yang sebenar dan lengkap untuk mana-mana jurutera bahagian belakang purata yang bahasa pengaturcaraan utamanya ialah Java. Saya berhasrat untuk menampung purata hospital sebanyak mungkin dan menerangkan bukan sahaja rangka kerja yang paling popular, tetapi juga penyelesaian yang dianggap relevan pada masa ini. Sememangnya, terdapat banyak alat, dan pemahaman yang paling penting dan terbaik ialah jalan ke mana-mana. Setiap daripada anda melihat bahagian "Pekerjaan" di DOU dan menemui timbunan teknologi yang sentiasa berulang dari kekosongan kepada kekosongan. Saya faham bahawa adalah mustahil untuk menerangkan segala-galanya, tetapi menghasilkan rangka kerja umum adalah baik, jadi mari cuba ikut arahan ini. Entah bagaimana pada masa lalu, pada salah satu projek, rasa malu yang agak menarik berlaku, yang, saya fikir, telah dan berulang secara berterusan dari semasa ke semasa untuk banyak orang di satu kawasan atau yang lain. Tugasan telah ditetapkan untuk melampirkan pemaparan satu halaman HTML pada fungsi siap semata-mata untuk menunjukkan status entiti individu. Akibatnya, rakan sekerja saya memutuskan untuk melampirkan spring thymeleaf, yang menarik sebahagian daripada kebergantungan teras Spring itu sendiri, apabila tiada siapa yang menggunakan Spring. Dan ini semua untuk satu halaman biasa, yang hanya menunjukkan status 2-3 entiti. "Saya tidak pernah melihat banyak guna menggunakan dua lightsabers...ia adalah satu pertunjukan pada pendapat saya" - Obi-Wan Kenobi. Di satu pihak, pemaju menyelesaikan masalah itu secepat mungkin, memasang rangka kerja yang dia mempunyai pengalaman menggunakan dan menyepadukannya ke dalam projek dalam masa beberapa jam. Tetapi sebaliknya, program kami telah berkembang dalam saiz, jadi persoalan mudah menjadi: adakah dia melakukan perkara yang betul? Untuk tugasan atom sebegitu, apabila anda tahu pasti bahawa thymeleaf/Spring MVC ini, dsb. adalah lebih besar. Ia tidak akan digunakan di mana-mana, lebih baik tidak menggunakannya sama sekali. Saya sentiasa terkejut dengan frasa seperti “Oh! Ya, kami menggunakan Hibernate di sini! Lihat, semuanya keren, ORM!”, dan apabila ditanya soalan logik sama ada boleh bertahan dengan JDBC biasa di sini, mereka mengangkat bahu. Terdapat seni bina biasa, yang sepatutnya mudah, yang harus dirawat dengan gementar, tidak berantakan dengan rangka kerja yang bergaya dan super moden. Seperti yang Obi-Wan katakan di atas, ini tidak lebih daripada menunjuk-nunjuk, walaupun perlu mengetahui cara menggunakannya. Javaist muda itu, pada pendapat saya, adalah yang paling malang - begitu banyak spesifikasi, begitu banyak perpustakaan yang perlu dipelajari. Java EE sahaja mempunyai dokumentasi melalui bumbung. Timbul persoalan, apakah yang perlu diambil oleh seorang pemula, apa yang perlu dia pelajari seterusnya, apa yang perlu dia lakukan selepas Horstmann? Jawapan mudah: malangnya, berjumpa dengan ramai orang. Dan kita akan bermula bukan dengan rangka kerja perniagaan, tetapi dengan perkara-perkara yang lebih biasa.

Sistem operasi

Linux

Selain Windows dan/atau Yosemite yang selesa, anda perlu menghulurkan tangan anda ke Linux dengan senyuman. Untuk sesetengah projek, sudah cukup untuk menjadi pengguna dan tahu cara menggunakan baris arahan, untuk yang lain - lebih banyak lagi. Kaedah mana yang terbaik? Terdapat banyak buku/tutorial di Internet. Mulakan dengan memasang Ubuntu atau mana-mana pengedaran lain yang anda suka dan cuba gunakannya sebagai sistem pengendalian utama anda untuk satu atau dua bulan berikutnya. Ia akan menjadi lebih baik jika anda mula belajar Java di dalam Linux dengan menyusun dan memanipulasi fail menggunakan terminal. Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 2Barisan Perintah Linux oleh William Shotts . Baca buku ini bukan sebagai novel "50 Shades of Grey", tetapi sebagai kursus interaktif penuh - buka terminal dan ulangi selepas pengarang. Adakah anda mahukan asas dan bagaimana Linux berfungsi? Jangan ambil kursus Sains Komputer dan sistem pengendalian - itu di bahagian seterusnya. Pergi ke edx.org dan cuba kursus Pengenalan kepada Linux yang mudah . Terdapat juga buku daripada siri yang disebutkan di atas How Linux Works: What Every Superuser Should Know oleh Brian Ward . Penerbitan yang cukup digambarkan yang memberi perhatian kepada rangkaian, peranti dan pengurusan sumber. Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 3Teruskan? Terdapat sebuah buku yang sangat baik, yang, dengan cara itu, saya ada di suatu tempat di sini... yeah (mengencangkan habuk)... ini dia! Unix dan Linux: Panduan Pentadbir Sistem. Evi Nemeth. Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 4Manual yang agak besar, diterjemahkan dengan baik. Sejujurnya, saya secara peribadi tidak menguasainya, tetapi saya sangat menyukai asas pentadbiran (bahagian pertama). Sememangnya, anda tidak boleh mengabaikan skrip Shell. Adalah lebih baik untuk mencuba semua ini dalam amalan, tetapi dari buku anda boleh melihat Pembelajaran Shell bash: pengaturcaraan Unix Shell oleh Cameron Newham. Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 5Sebilangan besar literatur tentang Linux/Unix tidak dapat dibincangkan sepenuhnya, terutamanya dalam artikel ini, di mana Linux berada di latar belakang. Rakan sekerja saya di tempat kerja, yang memakan anjing dalam perkara ini, menasihatkan perkara yang agak praktikal: Muat turun ArchLinux dan cuba bangkitkan dan jalankan. Dalam proses itu anda akan belajar yang paling saya tidak mahu!

Windows

Dalam resume pengaturcara terdapat lajur: "Pengalaman Windows lebih daripada 10 tahun." Sudah tentu, saya mengucapkan tahniah kepada anda kerana anda telah bermain kontra sejak anda berumur 10 tahun di Windows, tetapi saya meminta anda untuk tidak menggali sendiri lubang terlebih dahulu semasa temu duga, kerana pada projek di mana anda bekerja rapat dengan IIS, batch/powershell, insya-Allah, pendaftaran, temuduga tidak akan menjadi sangat sukar, dan selain senyuman bertentangan dengan orang yang duduk. Lida anda juga akan menerima satu dos penghinaan. Adakah anda memerlukan ini? Jawapannya mencadangkan dirinya sendiri. Ketepikan Windows cetak rompak anda daripada torrent dan cuba pasangkannya pada sejenis mesin maya Windows Server. Kaji ia bukan sahaja dari sisi pengguna dan pemasangan JAVA_HOME. Dalam hal ini, panduan yang hampir lengkap wujud dalam bentuk buku Mastering Windows Server 2012 R2 oleh Mark Minasi . Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 6Contohnya, jika anda menggunakan PowerShell, lihat buku hebat Windows PowerShell in Action oleh Manning oleh Bruce Payette . Saya faham bahawa adalah mustahil untuk melalui 1000 halaman, tetapi sekurang-kurangnya anda boleh menyimpannya bersama anda sebagai rujukan. Tiada apa-apa lagi yang diperlukan, saya fikir. Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 7Akibatnya, perhatikan jurang dalam pengetahuan anda tentang menggunakan Windows dan cari maklumat yang anda minati di Internet.

Bina Alat

Maven

Apakah perkara yang paling penting untuk difahami dalam Maven? Berikut adalah langkah dan tugas pertama:
  1. Ketahui apa yang Maven lakukan dalam setiap fasa, malah anda boleh menghafalnya. Ini hampir 80% kejayaan dan akan memberi anda gambaran yang jelas.
  2. Cipta projek kotak pasir anda sendiri secara tempatan dengan sistem berbilang modul, dengan pengurusan pergantungan yang jelas. Cuba lampirkan perpustakaan pihak ketiga, cuba buat sesuatu menggunakan perpustakaan tersebut.
  3. Main-main dengan profil
  4. Fahami pengurusan pemalam dan kaji senarai pemalam paling popular di tapak web rasmi.
  5. Terokai cara terbaik anda boleh menggunakan maven dalam projek anda. Contohnya, binaan selari boleh mengurangkan masa binaan dengan ketara.
Untuk menyelam pantas, pergi ke versi Rusia tapak web Apache Maven , cari beberapa tutorial di Google. Namun, edisi ketiga salah satu buku utama mengenai Maven tidak akan dikeluarkan. Setakat ini ini adalah edisi kedua Sonatype's Maven: The Definitive Guide . Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 8Untuk tahap lanjutan, mencipta pemalam anda sendiri adalah sesuai. Jangan risau tentang jenis plugin yang anda perlu buat, kerana banyak sudah wujud! Cuba buat sejenis analog, kaji fasa dua dan dua.

SEMUT

Alat ini kelihatan lebih mudah, jadi tidak banyak yang perlu dipelajari di sini. Masih terdapat projek di mana ANT adalah satu-satunya alat binaan. Ini adalah perkara biasa: ANT telah membuktikan dirinya sebagai alat binaan yang mudah dan mudah dalam konteks mengurus tugas atom kecil (tugas semut). Sudah tentu, terdapat banyak pemalam di sini, sama seperti Maven. Untuk bermula dengan ANT, lakukan perkara berikut:
  • Cuba manipulasi fail dan folder
  • Melaksanakan perintah yang berbeza untuk melaksanakan tugas. Berdasarkan ini, pelajari kebergantungan dan keutamaan tugas dalam ANT.
  • Buka bungkusan dan/atau zip arkib. Dalam tugasan, cuba bermain dengan kandungan arkib dan sebagainya.
Tidak perlu menawarkan banyak sumber untuk mempelajari ANT. Untuk menyelam lebih kurang mendalam, halaman Apache Ant rasmi sudah memadai. ( ant.apache.org ) dan buku Ant in Action oleh Steve Loughran . Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 9

Gradle

Bagi saya, Gradle lebih dekat dengan ANT daripada Maven, tetapi ia boleh dipanggil sepenuhnya sebagai abang tiri kepada dua lelaki ini. Ia mempunyai kitaran hayat yang serupa dengan Maven, dan fleksibiliti tugas yang sama yang dimiliki ANT. Nah, perkara yang paling penting ialah Gradle tidak menggunakan XML dan, lebih-lebih lagi, anda boleh melakukan apa sahaja yang anda mahu dengannya jika anda lebih kurang biasa dengan Groovy. Secara umum, perkara yang agak lazat. Jangan takut untuk menggunakan Ant/Maven/Gradle dalam konteks IDE anda. Alat ini disepadukan rapat ke dalam Eclipse/IDEA, dan menggunakan alat ini dalam konteks IDE agak selesa.

Integrasi berterusan

Teori

Ini adalah program malaikat yang melindungi anda daripada dipecat. Ringkasnya, ini adalah perisian yang memantau perubahan dalam kod, membina dan menjalankan ujian yang ditulis untuk anda. Jika semuanya baik-baik saja selepas setiap komit/gabungan, maka binaan bersinar dengan cahaya hijau/biru yang menyenangkan. Sebaik sahaja anda memecahkan sesuatu, sistem CI akan segera melaporkannya. Walau bagaimanapun, sedikit teori - ini adalah klasik! Integrasi Berterusan: Meningkatkan Kualiti Perisian dan Mengurangkan Risiko oleh Paul Duvall . (aka "Integrasi Berterusan" dalam bahasa Rusia) Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 10Buku ini juga membincangkan penciptaan sistem CI anda sendiri. Mari lihat dua penyelesaian paling popular di kawasan ini.

Jenkins

Jenkins, aka Hudson. Aplikasi terbuka, mesra, mudah digunakan. Untuk lebih mengenali Jenkins, cuba yang berikut:
  1. Muat turun ke komputer anda. Pasang dan konfigurasikan JDK, Maven, ANT dan semua yang anda perlukan untuk projek itu.
  2. Buat Kerja pertama dan nyatakan lokasi projek anda, contohnya, pom.xml utama. Jalankan, pastikan anda mempunyai beberapa jenis ujian supaya ia dapat dilihat dengan jelas.
  3. Belajar untuk menjalankan projek anda dengan tetapan dan pilihan yang berbeza.
  4. Lampirkan pemalam yang berbeza dan lihat cara ia berfungsi bersama dengan projek anda.
  5. Bina pencetus untuk kerja yang berbeza. Buat saluran paip kecil.
  6. Terokai DSL dan cuba integrasikannya dengan Jenkins.
  7. Sediakan hamba daripada komputer lain dan/atau jadikan ia mesin biasa untuk menjalankan binaan.
  8. Buat binaan setiap malam.
Daripada buku, baca sahaja Jenkins: The Definite Guide oleh John Ferguson Smart . Panduan yang jelas dengan banyak tangkapan skrin. Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 11

TeamCity

Ya, TeamCity bukan percuma, tetapi lihat sejauh mana ia disepadukan ke dalam ekosistem produk JetBrains. Intellij Idea dan TeamCity ialah kesatuan yang hebat. Pada umumnya, jika anda sudah biasa dengan Jenkins, TeamCity tidak akan menjadi hutan yang gelap untuk anda, dan begitu juga sebaliknya. Daripada hamba - ejen, pencetus yang sama dan sebagainya. Tetapi tidak seperti Jenkins, TeamCity mempunyai ciri yang menakjubkan seperti, contohnya, larian jauh, juga dikenali sebagai komitmen yang telah diuji, lebih banyak lagi statistik visual dan banyak lagi. Saya sangat menyukai panduan pengguna di YouTube, yang JetBrains sendiri buat ( Panduan Pengguna TeamCity (Bahagian 1 daripada 9) - Pengenalan ). Saya dapati TeamCity adalah intuitif dan dokumentasi adalah standard yang tinggi. Tetapi jika anda rasa ada buku yang patut dibaca, sila tinggalkan di dalam komen. Sudah tentu, saya telah menyenaraikan hanya sebahagian kecil daripada sistem CI ini, tetapi kami mempunyai segala-galanya terhad dalam skop. Mungkin panduan terbaik untuk belajar adalah latihan. Saya memasangnya pada komputer saya, melancarkannya, ranap/memulihkan binaan dan tidur. Dan kemudian anda boleh membawa saya buku rekod dengan selamat (jika anda mahu :).

Sistem Kawalan Versi

Tidak ada gunanya bercakap banyak tentang VCS. Ia hanya sesuatu yang sepatutnya, dan tanpa pengurusan projek yang mana akan menjadi seperti era Mesozoik. Sama seperti sistem CI, mari kita lihat dua daripada penyelesaian yang paling popular: Git dan SVN.

Git

Git kami telah membuktikan dirinya sebagai sistem kawalan versi teragih yang stabil. Mula belajar dari sini dan baca semua bab dengan Git sudah dikonfigurasikan. Kemudian terdapat satu siri tutorial interaktif yang menarik dari Sekolah Kod. Terdapat juga panduan ringkas daripada mereka yang dipanggil Try Git: Code School . Dari buku saya boleh mengesyorkan Kawalan Versi dengan Git oleh Jon Loeliger Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 12 Jika anda sudah biasa dengan penyu (TortoiseSVN, nota pengarang) dan takut dengan konsol, anda boleh, sudah tentu, memuat turun analog TortoiseGit, tetapi, pada pendapat saya, lebih menyenangkan dan menyenangkan dari segi estetik Penyelesaiannya ialah produk daripada Atlassian - SourceTreeApp. Anda boleh berlatih dengan repositori jauh, kerana terdapat perkhidmatan hos yang mencukupi di Internet. Jika anda mahu, berlatih secara tempatan. Tidak? Kemudian buat akaun di GitHub dan kerja dalam mod penuh: buat beberapa komitmen, buat beberapa projek sumber terbuka, lakukan beberapa gabungan antara cawangan dan sebagainya.

SVN

Satu lagi VCS yang sama popular ialah SVN. Sistem ini tidak boleh membanggakan pengedaran. Setiap daripada mereka mempunyai pendekatan sendiri, kebaikan dan keburukan sendiri. Pastikan anda membaca perbualan menarik antara pemula dan pengguna SVN . Terdapat buku percuma dari read-bean.com dengan terjemahan bahasa Rusia. Kursus mini daripada TutorialsPoint juga akan sangat berguna . Jangan terlepas tapak web rasmi Apache subversion.apache.org . Pelanggan yang paling menarik bagi saya ialah TortoiseSVN yang disebutkan di atas. Antara buku itu, seseorang boleh menyerlahkan: Kawalan Versi dengan Subversion oleh Michael Pilato . Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 13Saya menyukainya kerana ia memberi perhatian kepada pentadbiran pelayan SVN itu sendiri. Saya harap saya tidak terlepas perkara utama.

Alat ujian

Adalah idea yang baik untuk memahami dalam projek kotak pasir kecil anda tentang ujian unit, integrasi dan ujian regresi. JUnit Teori ujian unit diterangkan dengan baik dalam buku dari artikel sebelumnya. Khususnya, Kod Bersih malah menggambarkan junit sebagai salah satu perpustakaan yang popular di kawasan ini. Tetapi apabila bercakap tentang JUnit secara khusus, terdapat sebuah buku kecil yang hebat dipanggil Ujian Unit Praktikal dengan JUnit dan Mockito oleh Tomek Kaszanowski Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 14 Sudah tentu, terdapat lebih daripada sekadar JUnit dan Mockito. Di sini pengarang memperkenalkan Matchers, menawarkan contoh ujian berparameter dan menelusuri TDD secara ringkas. Ada juga buku yang keluar agak baru-baru ini. Ini ialah Pengujian Unit Pragmatik dalam Java 8 oleh Jeff Langr. Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 15 Penulis memperkenalkan Hamcrest, menerangkan Amalan Terbaik, dan, sudah tentu, Java 8. Anda boleh membaca dengan selamat selepas buku Tomek. Dengan cara ini, mengenai TDD. Saya tidak mahu membangkitkan holivar tentang sama ada ia berbaloi untuk menggunakannya, sama ada ia baik atau buruk, sama ada pelanggan memerlukannya. Ingatlah: bekerja dalam TDD bukanlah sesuatu yang baru, dan banyak projek menggunakan metodologi ini, dan bagi kebanyakan orang ia adalah satu-satunya peraturan yang tidak boleh dipertikaikan. Secara teori, anda boleh membaca klasik. Kent Beck - Pembangunan Didorong Ujian: Melalui Contoh . Perkara yang paling saya suka ialah bahagian tentang corak TDD. Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 16Yang menghairankan, terdapat kursus orang pertama yang bagus - Jom Main TDD (200 video!) di Youtube. Tidak kurang menarik ialah perbincangan Fowler sendiri tentang sama ada ia berbaloi atau tidak menggunakan TDD, sama ada ia merosakkan reka bentuk, dan sebagainya. Ingat ini sekali dan untuk semua: TDD tidak mencipta reka bentuk yang buruk, anda menciptanya. Jika anda menggunakan BDD lebih banyak (satu tidak mengganggu yang lain) dan, sebagai contoh, menggunakan Timun pada projek, maka ini adalah satah yang sedikit berbeza. Buku yang bagus mengenai perkara ini ialah Manning BDD in Action: Pembangunan dipacu tingkah laku untuk keseluruhan kitaran hayat perisian oleh John Ferguson Smart . Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 17By the way, John Ferguson Smart giat mempromosikan topik ini kepada orang ramai. Jika anda seorang Scrum Master atau PM yang akhirnya tidak menyakitkan matanya, tetapi seronok melihat apabila-jika-maka ujian, maka pastikan anda mengikuti John di Twitter . Mengenai Timun, lihat pelaksanaan Java di laman web rasmi dan baca buku The Cucumber Book: Behavior-Driven Development oleh Matt Wayne . Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 18

Perpustakaan pihak ketiga

Adalah penting untuk dapat menggunakan perpustakaan popular jika perlu - ia memudahkan kehidupan harian setiap pembangun Java. Penyelesaian popular termasuk yang berikut: Joda Time. Menawarkan untuk menggantikan sepenuhnya Tarikh dan Masa asli yang menyusahkan dengan JodaTime yang lebih mudah. Berikut adalah satu rujukan yang baik . Sila ambil perhatian bahawa jika anda sudah menggunakan Java 8, maka JodaTime tidak akan banyak membantu. Hakikatnya ialah API DateTime baharu telah menggantikan perpustakaan ini sepenuhnya, dan di beberapa tempat ia menyalin dan menampal dengan bijak. Menurut artikel pengarang sendiri , setiap kelas Joda boleh digantikan dengan mudah dengan analog daripada java.time. Google Guava. Dalam banyak cara, Java 8 malah menggantikan Jambu Batu. Objek yang sama, API Strim, Predikat Java dan banyak lagi perkara lain mencadangkan untuk menggantikannya dan tidak menggunakannya sama sekali. Saya ulangi, jika anda tidak mempunyai Java 8, tidak ada yang lebih baik daripada panduan ini dan tangan langsung anda.

Apache Commons

Raksasa ini tidak begitu mudah untuk ditangani: kira-kira 40 perpustakaan untuk semua keadaan, daripada commons.lang yang terkenal kepada pengesahan xml, daripada DBUtils kepada commons.io . Sememangnya, anda tidak perlu membiasakan diri dengan segala-galanya, tetapi buku dan tutorial Buku Masakan akan berguna untuk anda miliki. Sebagai contoh, untuk memahami maksud Apache Commons, anda boleh melihat melalui Buku Masakan Jakarta Commons oleh Timothy O'Brein Panduan untuk pembangun Java masa depan.  Perusahaan - bahagian 1 - 19

Kesimpulan

Perusahaan sangat luas sehingga menjadi bodoh untuk mula membincangkan JavaEE dan rangka kerja lain tanpa segala-galanya yang mengelilingi Perusahaan ini. Oleh itu, dalam bahagian kedua kita akan memberi tumpuan kepada setiap lapisan seni bina berbilang peringkat, pertimbangkan perkhidmatan dan sebagainya. Terima kasih banyak atas perhatian anda. Akhir bahagian pertama. Bahagian sebelumnya siri:
  1. Panduan untuk pembangun Java masa depan. Asas Java
  2. Panduan untuk pembangun Java masa depan. Kod yang elegan
Asli dengan DOU
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION