diff --git a/_posts/2019-02-26-introduction.md b/_posts/2019-02-26-introduction.md index bc87dd0b9ac60915488b6eb57b1a4893a50ff3d4..35b90896f41aead5620ddaeddfa7a12b34feca66 100644 --- a/_posts/2019-02-26-introduction.md +++ b/_posts/2019-02-26-introduction.md @@ -13,18 +13,18 @@ di tim kami ada: <!--more--> __Fata Nugraha__ dan __Ragil Al Badrun Pasaribu__ - - + + __Tirta Abimanyu Purnomo__ dan __Usama__ - - + + dan... __Yogi Lesmana__ - -*Foto-foto di atas diambil saat _study tour_ tentang kapal. + +\*Foto-foto di atas diambil saat _study tour_ tentang kapal. Dalam satu semester ini, tim kami akan mengembangkan suatu sistem untuk memanajemen *log* yang merupakan proyek dari Badan Pengkajian dan Penerapan @@ -35,7 +35,7 @@ yang berada di *data center* BPPT dan mengelola log tersebut agar pengguna dapat mendapat laporan tentang serangan yang sedang terjadi, mencari informasi yang terkait dengan log serangan, dan menganalisa suatu serangan. - + Gambar 1: Mockup Dashboard Salah satu tantangan yang saat ini berusaha kami pecahkan adalah masalah diff --git a/_posts/2019-02-27-agile&tdd.md b/_posts/2019-02-27-agile&tdd.md index 7f74cd0e2997c5faa32c80f1216ced91c1786131..0fda71b5f5102f3b8757eb643a12a3d88695a7e8 100644 --- a/_posts/2019-02-27-agile&tdd.md +++ b/_posts/2019-02-27-agile&tdd.md @@ -11,11 +11,11 @@ Halo, di post kali ini saya akan menjelaskan tentang _workflow_ tim kami dengan Di Agile, semua pekerjaan yang akan dilakukan dibagi-bagi kedalam **Product Backlog Item** (PBI). Contoh: Fitur Login/Logout - + Lalu akan dipilih PBI apa yang akan dikerjakan pada rentang 2 minggu dari sekarang. Rentang 2 minggu tersebut disebut dengan **sprint** - + Sebelum memulai sprint, PBI yang dipilih dipecah lagi menjadi unit pekerjaan terkecil yang disebut **task**. Contoh: Membuat test fungsi login. @@ -23,11 +23,11 @@ Task-task tersebut akan diassign ke anggota tim setiap **Daily Stand Up**. Daily Setiap daily stand up, task-task yang sudah selesai ditandai menjadi done dan anggota tersebut bisa mengerjakan task yang lain. - + Jika menggunakan project management tools seperti jira, dapat dilihat grafik jumlah task yang sudah selesai dikerjakan selama sprint berjalan. Disebut juga dengan **Burndown Chart**. - + Setelah sprint selesai, dilakukan Sprint Retrospective untuk meninjau apakah ada kekurangan atau kelebihan kerja tim pada satu sprint sebelumnya. @@ -39,4 +39,4 @@ Untuk fitur backend, kami menggunakan library **unittest** bawaan Django. Untuk Selama test belum _pass_, setiap commit message harus diawali dengan tag \[RED\]. Baru setelah semua test berhasil dipenuhi, commit message diawali dengan tag \[GREEN\]. - + diff --git a/_posts/2019-02-27-deployment.md b/_posts/2019-02-27-deployment.md index 3c8428c8110fa5b273f433dfcb12a0eef7955488..ba4ebd31904757018c2ffa4dba033ae6ab2bc972 100644 --- a/_posts/2019-02-27-deployment.md +++ b/_posts/2019-02-27-deployment.md @@ -93,7 +93,7 @@ backend:deploy:staging: - .gitlab-ci.yml ``` - + Karena kami menggunakan strategi __monorepo__, GitLab CI/CD di versi terbaru menyediakan fitur yang cukup membantu dengan subtag `changes` dari tag `only` diff --git a/_posts/2019-02-28-go-testing.md b/_posts/2019-02-28-go-testing.md index db04d48b03ecf47fab14f4a7eb66032e80b3244f..a393cfc9304128c3aa50f55b635ff23e1e3ca543 100644 --- a/_posts/2019-02-28-go-testing.md +++ b/_posts/2019-02-28-go-testing.md @@ -12,7 +12,7 @@ yang kami dapatkan saat mencoba membuat API menggunakan Go. <!--more--> Ternyata testing di dalam Go tidak semudah yang saya bayangkan. - + Karena selama ini saya dimanjakan dengan mudahnya mock function di bahasa yang bisa melakukan dynamic loading seperti `python` dan `Java`, ternyata melakukan @@ -29,11 +29,11 @@ menjadi masalah. Pada saat pertama kali saya membaca ini, saya memikirkan hal yang sama dengan apa yang dinyatakan oleh orang ini - + Tetapi saat saya membaca komentar ini, saya cukup setuju juga. - + **fair enough** Kode yang didesain dengan bagus, selain memudahkan untuk testing, memudahkan kita diff --git a/_posts/2019-02-28-gpt.md b/_posts/2019-02-28-gpt.md index 40024650dedca58801f74f3701e02f6ffb9e9778..5fbbf171cea95677294ed9c2eb681271dc8a3f1d 100644 --- a/_posts/2019-02-28-gpt.md +++ b/_posts/2019-02-28-gpt.md @@ -40,9 +40,9 @@ Berikut akan saya jelaskan secara singkat perintah beserta keterangannya: **branch** - perintah ini dapat digunakan untuk membuat cabang baru, menghapus cabang spesifik, dan melist semua cabang lokal -Perintah-perintah yang lainnya dapat dilihat selengkapnya di [sini] (https://about.gitlab.com/images/press/git-cheat-sheet.pdf) +Perintah-perintah yang lainnya dapat dilihat selengkapnya di [sini](https://about.gitlab.com/images/press/git-cheat-sheet.pdf) - + **Persona** @@ -58,7 +58,7 @@ Menurut Nielsen, terdapat 4 buah perspektif berbeda dari persona, yaitu: **Fictional** - muncul bukan dari riset pengguna, melainkan dari pengalaman tim desain UX. - + **TDD** @@ -71,6 +71,6 @@ Inti dari TDD adalah Red-Green-Refactor. **Refactor** - Inti dari fase ini adalah mengubah kode menjadi lebih baik - + Sekian cerita saya untuk minggu ini. Terima kasih telah membaca. \ No newline at end of file diff --git a/_posts/2019-03-20-agile.md b/_posts/2019-03-20-agile.md index 7e3856096742c5c90f9c2ee83e48c3f3631eda48..ca4ada26c3e40dcdfce54253b71b85138364e958 100644 --- a/_posts/2019-03-20-agile.md +++ b/_posts/2019-03-20-agile.md @@ -15,7 +15,7 @@ Awalnya rencana kami dalam menyelesaikan _project_ ini menggunaka **go** dan **r Setelah menyelesaikan _Sprint 1_ kami melakukan _Sprint Retrospective_ - + Di _Sprint Retrospective_ yang pertama masih biasa-biasa saja, mungkin karena fitur kami diterima oleh _Product Owner_ dan _Scrum Master_ akan memberikan satu **teh kotak** kepada anggota yang paling produktif pada _Daily Scrum_ setelah ini. Setelah melakukan _cycle_ yang kedua barulah _Sprint Retrospective_ berbeda dari yang pertama, mungkin karena fitur kami tidak jadi (berbeda dengan _Sprint Review 1_). _Sprint Retrospective_ ini juga banyak menghasilkan _feedback_ negatif kemudian Pak Adin menyuruh kita untuk mencari _Silver lining_ dari _Sprint_ yang telah kita lakukan, akhirnya kami-pun menemukan beberapa. @@ -24,6 +24,6 @@ Di _Sprint Retrospective_ yang pertama masih biasa-biasa saja, mungkin karena fi Ngoding bareng ini sudah bisa saya rasakan dampaknya, karena banyak _tasks_ yang selesai dari sebelumnya. Hal ini dikarenakan saat ngoding bareng kami berkomitmen untuk bekerja. - + Terima kasih sudah membaca. \ No newline at end of file diff --git a/_posts/2019-03-20-tdd.md b/_posts/2019-03-20-tdd.md index e6ee35df0190d46f175e2cff4247647c57325457..b6134880c6a687ab1aef60e422744eb713f65eca 100644 --- a/_posts/2019-03-20-tdd.md +++ b/_posts/2019-03-20-tdd.md @@ -9,7 +9,7 @@ Pengalaman melakukan TDD (Test Driven Development) selama pengerjaan _project_. <!--more--> - + Saya mendapat tugas untuk membuat model dari fitur _users_. Awalnya saya kebingungan untuk membuat _test_ yang akan dilakukan, karena saya berpikir jika menggunakan test untuk _count_ atau _create_ bukan merupakan TDD karena saya menguji fungsi yang sudah dibuat oleh **django**. Setelah berkonsultasi dengan Pak Adin saya diberi sebuah pencerahan. TDD bisa dilakukan dengan menentukan atribut apa yang akan ada di model seperti `.name`, `.username`, dll. diff --git a/_posts/2019-04-01-django-tdd.md b/_posts/2019-04-01-django-tdd.md new file mode 100644 index 0000000000000000000000000000000000000000..0398c15e5c6b86a51d30502c81a87741d9e1355e --- /dev/null +++ b/_posts/2019-04-01-django-tdd.md @@ -0,0 +1,56 @@ +--- +layout: post +title: TDD with Django +date: 2019-04-01 14.01.23 +0700 +author: ragil +--- + +Untuk melakukan TDD (Test Driven Development), kita harus mengetahui bagaimana cara membuat test +dengan baik dan benar dalam _framework_ yang digunakan. Dalam blog ini akan dijelaskan secara +singkat bagaimana cara membuat test menggunakan framework Django. + +<!--more--> + +Untuk membuat test, maka pertama-tama kita harus membuat class yang meng-inherit class `django.test.TestCase`. + +```python +from django.test import TestCase +from myapp.models import Human + +class HumanTest(TestCase): + pass +``` +Lalu di dalam class buat tiap fungsi untuk melakukan test. Contoh kita ingin melakukan mengecek nama +dari object Human yang dibuat. + +```python +from django.test import TestCase +from myapp.models import Human + +class HumanTest(TestCase): + + def testHumanName(self): + human = Human.objects.create(name="Fata") + self.assertEqual(human.get_name(), "Fata") +``` +Di atas kita melakukan pengecekan dengan `self.assertEqual()`. Tidak hanya `assertEqual()` Python juga +menyediakan seperti `assertIn` dan sebagainya, silahkan di-explore sendiri :D + +Kadang kala kita membutuhkan object yang dipakai di berbagai fungsi test. Kita bisa saja membuat object +di tiap fungsi test, tetapi ini akan sangat melelahkan. Karenanya, kita dapat memanfaatkan fungsi +`setUp()` untuk itu. + +```python +from django.test import TestCase +from myapp.models import Human + +class HumanTest(TestCase): + + def setUp(self): + self.human = human = Human.objects.create(name="Fata") + + def testHumanName(self): + self.assertEqual(self.human.get_name(), "Fata") +``` + +Sekian tutorial singkat test dengan Django :D diff --git a/assets/images/abi-edit.jpeg b/assets/images/2019-02-26-introduction/abi-edit.jpeg similarity index 100% rename from assets/images/abi-edit.jpeg rename to assets/images/2019-02-26-introduction/abi-edit.jpeg diff --git a/assets/images/fata-edit.jpeg b/assets/images/2019-02-26-introduction/fata-edit.jpeg similarity index 100% rename from assets/images/fata-edit.jpeg rename to assets/images/2019-02-26-introduction/fata-edit.jpeg diff --git a/assets/images/mockup.jpeg b/assets/images/2019-02-26-introduction/mockup.jpeg similarity index 100% rename from assets/images/mockup.jpeg rename to assets/images/2019-02-26-introduction/mockup.jpeg diff --git a/assets/images/ragil-edit.jpeg b/assets/images/2019-02-26-introduction/ragil-edit.jpeg similarity index 100% rename from assets/images/ragil-edit.jpeg rename to assets/images/2019-02-26-introduction/ragil-edit.jpeg diff --git a/assets/images/usama-edit.jpeg b/assets/images/2019-02-26-introduction/usama-edit.jpeg similarity index 100% rename from assets/images/usama-edit.jpeg rename to assets/images/2019-02-26-introduction/usama-edit.jpeg diff --git a/assets/images/yogi-edit.jpeg b/assets/images/2019-02-26-introduction/yogi-edit.jpeg similarity index 100% rename from assets/images/yogi-edit.jpeg rename to assets/images/2019-02-26-introduction/yogi-edit.jpeg diff --git a/assets/images/burndownchart.png b/assets/images/2019-02-27-agile&tdd/burndownchart.png similarity index 100% rename from assets/images/burndownchart.png rename to assets/images/2019-02-27-agile&tdd/burndownchart.png diff --git a/assets/images/pbi.jpg b/assets/images/2019-02-27-agile&tdd/pbi.jpg similarity index 100% rename from assets/images/pbi.jpg rename to assets/images/2019-02-27-agile&tdd/pbi.jpg diff --git a/assets/images/pbisprint.jpg b/assets/images/2019-02-27-agile&tdd/pbisprint.jpg similarity index 100% rename from assets/images/pbisprint.jpg rename to assets/images/2019-02-27-agile&tdd/pbisprint.jpg diff --git a/assets/images/tasks.jpg b/assets/images/2019-02-27-agile&tdd/tasks.jpg similarity index 100% rename from assets/images/tasks.jpg rename to assets/images/2019-02-27-agile&tdd/tasks.jpg diff --git a/assets/images/tddcycle.png b/assets/images/2019-02-27-agile&tdd/tddcycle.png similarity index 100% rename from assets/images/tddcycle.png rename to assets/images/2019-02-27-agile&tdd/tddcycle.png diff --git a/assets/images/paralel-pipeline.png b/assets/images/2019-02-27-deployment/paralel-pipeline.png similarity index 100% rename from assets/images/paralel-pipeline.png rename to assets/images/2019-02-27-deployment/paralel-pipeline.png diff --git a/assets/images/comment-1.png b/assets/images/2019-02-28-go-testing/comment-1.png similarity index 100% rename from assets/images/comment-1.png rename to assets/images/2019-02-28-go-testing/comment-1.png diff --git a/assets/images/comment-2.png b/assets/images/2019-02-28-go-testing/comment-2.png similarity index 100% rename from assets/images/comment-2.png rename to assets/images/2019-02-28-go-testing/comment-2.png diff --git a/assets/images/pikachu.jpeg b/assets/images/2019-02-28-go-testing/pikachu.jpeg similarity index 100% rename from assets/images/pikachu.jpeg rename to assets/images/2019-02-28-go-testing/pikachu.jpeg diff --git a/assets/images/git.png b/assets/images/2019-02-28-gpt/git.png similarity index 100% rename from assets/images/git.png rename to assets/images/2019-02-28-gpt/git.png diff --git a/assets/images/persona.jfif b/assets/images/2019-02-28-gpt/persona.jfif similarity index 100% rename from assets/images/persona.jfif rename to assets/images/2019-02-28-gpt/persona.jfif diff --git a/assets/images/tdd.png b/assets/images/2019-02-28-gpt/tdd.png similarity index 100% rename from assets/images/tdd.png rename to assets/images/2019-02-28-gpt/tdd.png diff --git a/assets/images/usama_latest_scrum_board.jpg b/assets/images/2019-03-20-agile/usama_latest_scrum_board.jpg similarity index 100% rename from assets/images/usama_latest_scrum_board.jpg rename to assets/images/2019-03-20-agile/usama_latest_scrum_board.jpg diff --git a/assets/images/usama_sprint_retro.png b/assets/images/2019-03-20-agile/usama_sprint_retro.png similarity index 100% rename from assets/images/usama_sprint_retro.png rename to assets/images/2019-03-20-agile/usama_sprint_retro.png diff --git a/assets/images/usama_tdd.png b/assets/images/2019-03-20-tdd/usama_tdd.png similarity index 100% rename from assets/images/usama_tdd.png rename to assets/images/2019-03-20-tdd/usama_tdd.png diff --git a/assets/images/scrumboard.jpg b/assets/images/scrumboard.jpg deleted file mode 100644 index 41d054d7fba74e3d8e53dc1e68f296f8450e3282..0000000000000000000000000000000000000000 Binary files a/assets/images/scrumboard.jpg and /dev/null differ diff --git a/assets/images/stackoverflow-comments.png b/assets/images/stackoverflow-comments.png deleted file mode 100644 index 49d1e847ac561c823c12e27474028f7cbfcc4689..0000000000000000000000000000000000000000 Binary files a/assets/images/stackoverflow-comments.png and /dev/null differ