Weekly Report #11 — Teresa

Teresa Pranyoto
May 8, 2016 · 3 min read

Selamat liburan! Tapi weekend ini saya habiskan dengan ngoding.

Sprint kemarin saya mengerjakan fitur item replacement. Akhirnya pada minggu ini, saya belajar database yang digunakan! Plus juga saya belajar tentang ActiveRecords pada Rails.

Ternyata sangat mudah ya *_* Ternyata sangat memudahkan kehidupan. Misalnya saya akan tulis ekuivalen-ekuivalen dari syntax ActiveRecords dan SQL.

SQL:

SELECT * FROM clients WHERE (clients.id = 10) LIMIT 1

ActiveRecords:

client = Client.find(10)

SQL:

client = Client.first

ActiveRecords:

SELECT * FROM clients ORDER BY clients.id ASC LIMIT 1

SQL:

SpreeStockItem.all.sort_by(&:prodname)

SpreeStockItem.all.sort_by(&:prodname)

SELECT * FROM spree_stock_items ORDER BY prodname

Sumber: http://guides.rubyonrails.org/active_record_querying.html


Saya juga akan menjelaskan beberapa command git yang saya jalankan pada terminal saya ketika saya mengerjakan PPL kemarin:

meld

“ Meld is a visual diff and merge tool” (meldmerge.org). Biasanya, jika kita ingin melihat difference pada current work dengan commit sebelumnya, kita menggunakan git diff. Dengan meld, tampilan yang muncul berupa GUI sehingga dapat dilihat dengan lebih mudah.

git status

Informasi yang bisa didapat adalah branch apa sekarang dan apa saja file yang telah kita ubah, yang mana yang sudah distage dan yang mana yang belum distage (unstaged)

git stash

Terkadang kita telah mengerjakan sesuatu, namun kita “simpan” dahulu, sementara kita kembali dulu ke clean workspace. Command ini “menyimpan” apa yang kita kerjakan seperti dalam stack.

git stash pop

Jika kita ingin mengembalikan apa yang telah kita kerjakan sebelumnya (yang paling baru kita git stash), kita pop saja.

git checkout master

Pindah ke branch master

git pull origin master

Origin biasanya merupakan yang di remote. Jadi, artinya adalah kita pull branch master dari origin (dalam hal ini, repository happystock di gitlab.com)

git checkout -b teresa-itemreplacement

Pindah ke branch baru teresa-itemreplacement

git reset HEAD~1

Sebelumnya saya ada mengcommit sesuatu di local, namun ternyata commitan tersebut ngebug, dan saya tidak ingin commitan tersebut “tercommit”. Maka, saya menggunakan command tersebut untuk menghapus commit paling baru tersebut dan secara otomatis memasukkan semua file ke unstaged files.


Selain git, saya juga mencoba inheritance pada Ruby. Saya menggunakannya untuk memberi filter user pada dashboard. Sehingga, hanya user yang logged in yang bisa melihat dashboard.

Sebelumnya, untuk memberi fitur tersebut, pada setiap controller dashboard (dashboard sendiri, itemreplacement, oosrate, trend) kita dapat memberikan kode berikut:

before_filter :require_loginprivate
def require_login
unless current_user
redirect_to login_url
end
end

Kita dapat membuat satu class controller yang mengextend ApplicationController (karena semua controller extends applicationcontroller)

class DashboardApplicationController < ApplicationController
before_filter :require_login
private
def require_login
unless current_user
redirect_to login_url
end
end
end

Dan tiap class controller di dashboard tadi kita ubah sehingga mengextends DashboardApplicationController. Misalnya,

class Dashboard::ItemreplacementController < ApplicationController

menjadi

class Dashboard::ItemreplacementController < DashboardApplicationController

Hal ini juga termasuk ke dalam refactoring. Teknik ini disebut dengan Pull Up Refactoring.


Saya akan me-list beberapa penjelasan dari fitur PivotalTracker.

  • The icebox is where you start storing all your features and ideas throughout the course of the project. You can click the bars to the right of the story titles to choose the number of points estimated for it.
  • Add story: The default story type describes a feature, and is usually written from the perspective of a user.
  • Backlog: Stories are prioritized by moving them from the icebox to the backlog.
  • Current: Developer can start, finish, and finally deliver the story when the feature is ready for review.
  • Velocity & Done: Once stories have been accepted and the current iteration has ended, they move into the Done panel and your project’s velocity is updated. By default, your Project Velocity is an average of the number of story points completed over the previous 3 iterations.

Sprint ini saya mengerjakan itemreplacement. Salah satu fitur yang saya kerjakan adalah membuat halaman detail dari suatu item. Untuk itu, saya menggunakan action show.

Ada beberapa action yang termasuk dalam resourceful routing:

index, show, new, edit, create, update and destroy

Hal ini sangat berguna dalam REST. Lebih lengkapnya dapat dilihat di sini: http://guides.rubyonrails.org/routing.html

Red Panda

We are @firza_pratama, @idadidut, @irfan3, @kennabila, @pnteresa, and @shylla working on a challenging Software Engineering project at HappyFresh. Here, we share our stories.

    Teresa Pranyoto

    Written by

    Red Panda

    Red Panda

    We are @firza_pratama, @idadidut, @irfan3, @kennabila, @pnteresa, and @shylla working on a challenging Software Engineering project at HappyFresh. Here, we share our stories.

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade