Coder Social home page Coder Social logo

csui-adpro / tutorial-7 Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 93 KB

Refactoring and Clean Code. Include Spring Project with Sonarqube (Sonarcloud), Google Cloud Platform, Virtual Machine, Docker, Gitlab Runner, Pipelining, and YML Configuration.

Dockerfile 0.48% Kotlin 6.58% Java 72.23% HTML 20.71%
clean-code docker google-cloud-platform pipeline refactoring runner sonarcloud sonarqube spring-boot vm yml-configuration database postgresql postman

tutorial-7's Introduction

Tutorial 7

Pada sesi tutorial kali ini, kamu akan menerapkan materi yang telah kamu pelajari yaitu terkait refactoring dan clean code. Tidak hanya itu, kamu juga akan mencoba menggunakan SonarQube untuk membantumu mengidentifikasi code smell, serta men-deploy aplikasi tersebut.

Clean Code

Selama liburan beberapa hari kebelakang, kamu sempat ingat bahwa dulu pernah membuat suatu program untuk belajar SpringBoot. Namun ketika dilihat kembali programnya, ternyata masih berantakan dan bahkan sulit dipahami. Kalau kata orang-orang kodenya kotor. Maklum, waktu itu yang penting bisa jalan dulu saja, yang lainnya urusan belakangan.

Kali ini, kamu ingin membersihkan kodemu dan menghilangkan code smell-nya. Oleh karena itu, dilakukanlah refactoring untuk memperbaiki kodemu sebelumnya. Untuk membantumu mengidentifikasi code smell, kamu juga mendapat rekomendasi dari teman untuk menggunakan SonarLint dan SonarQube. Kemudian, setelah programmu bebas dari code smell, kamu juga akan men-deploy-nya agar bisa digunakan secara luas.

Spesifikasi Program

Aplikasi terdiri dari tiga fitur, yaitu:

  1. Leap Year: Memeriksa apakah suatu tahun merupakan tahun kabisat.

  2. Day Counter: Menghitung beberapa hari setelah atau sebelum hari tertentu.

  3. Time Counter: Menghitung beberapa jam/menit setelah atau sebelum waktu tertentu.

Deployment

Deployment aplikasi akan menggunakan Google Cloud Platform dengan memanfaatkan guideline deployment yang telah ada. Aplikasi ini tidak membutuhkan database dan diasumsikan environment development, test, dan production sama sehingga bagian application.properties dapat dihiraukan untuk saat ini. Meskipun demikian, kamu diharapkan dapat memahami peran application.properties.

Beberapa hal yang perlu diperhatikan.

  • File application.properties dan beberapa versi environment tidak perlu dibuat.
  • Terdapat Dockerfile yang sudah disesuaikan.
  • Semua hal terkait database tidak perlu ditambahkan seperti dalam environment variables di GitLab dan Pipeline GitLab.
  • Konfigurasi .gitlab-ci.yml dapat dilihat disini untuk melihat perbedaannya.
  • Variabel IMAGE_NAME dan CONTAINER_NAME diisi dengan tutorial-7.

Requirements

  • Refactor implementasi fitur Leap Year:

    • Penamaan variable/method/file
    • Mengurangi long method
    • Memastikan setiap class memiliki responsibility yang sesuai
    • Meningkatkan readability kode. Contoh bahan bacaan dapat dilihat di sini dan di sini.
    • Feel free untuk menghapus comments yang tidak penting dan tidak berkaitan dengan production code.
  • Refactor implementasi fitur Day Counter:

    • Mengurangi long method
    • Memastikan setiap class memiliki responsibility yang sesuai
  • Refactor implementasi fitur Time Counter untuk mengurangi code duplication

  • Jalankan test yang telah disediakan untuk memastikan fitur dapat berjalan sebagaimana mestinya

  • Install SonarLint pada Intellij dan setup SonarQube untuk memastikan tidak ada code smell yang tersisa

  • Mengatur integrasi CI/CD untuk tahap pengecekan SonarQube

  • Deploy aplikasi pada GCP

Referensi

tutorial-7's People

Contributors

eugeniusms avatar hzz-hzz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.