Skip to content

Instantly share code, notes, and snippets.

@uyab
Created January 16, 2018 10:30
Show Gist options
  • Save uyab/4aefc3d2467a170a74c2c83b1e3f4a58 to your computer and use it in GitHub Desktop.
Save uyab/4aefc3d2467a170a74c2c83b1e3f4a58 to your computer and use it in GitHub Desktop.
Catatan Worskhop PHP

Catatan Workshop PHP

Request Peserta

  • package
    • cara bikin package
  • design pattern
  • event listener
  • queue
  • gate vs policy
  • API best practice
    • endpoint (sebagian sudah dibahas ketika bikin routes)
    • transform
  • Kapan pakai interface
    • Jika ingin mudah switching implementasinya saat runtime
  • TDD
  • Apa itu Repository, apa itu Service, apa itu Query Object
    • Service adalah segala sesuatu diluar MVC dkk
      • Please dont call something Service, because it’s to generic
        • Repository adalah Service yang tugasnya mengambil data dari suatu sumber
        • FooCreator adalah Service yang tugasnya meng-create something
        • Log adalah service yang tugasnya melakukan logger
    • Query object adalah Class yang cuma punya satu fungsi, yaitu melakukan query

Studi Kasus

  • project management (mirip active collab)
    • admin bisa manage (CRUD) project
    • admin bisa invite multiple member ke project
    • admin bisa remove seorang member tertentu dari project
    • member bisa bikin tasklist
    • member bisa delete tasklist
    • member bisa bikin task ke suatu tasklist
    • member bisa bikin subtask ke dalam suatu task
    • member bisa nambah komentar ke suatu task
    • member bisa mengeset assignee suatu task
      • member yang diset dapat notifikasi email
    • tabel ganttchart
  • asumsi
    • admin sudah ada
    • member sudah ada
    • dibedakan berdasar kolom role

Model

  • User
    • kolom bawaan
    • role
  • Profile
    • user_id
    • jenis kelamin
    • tanggal lahir
    • pendidikan terakhir
    • status pernikahan
    • alamat
    • nomor hape
  • Project
    • nama
    • deskripsi
    • klien_id
  • Klien
    • nama
  • Tasklist
    • project_id
    • nama
  • Task
    • tasklist_id
    • subyek
    • deskripsi
    • assignee_id
    • creator_id
    • subtasks
  • Komentar
    • task_id
    • konten
    • commentator_id

Day 1

  • Model
  • Migration
    • data type
      • ENUM => HURUF_BESAR (sama sepertin constant)
    • constraints
    • foreign key
  • Seeder
    • seeder hanya untuk development
    • handle relationship
      • use eloquent relationship to save model
      • hindari hardcoded xxx_id
  • Database Factory

Day 2

  • Resource controller
  • PR
    • Selesaikan semua view
      • Silakan pakai framework CSS selera masing-masing, plain old HTML pun boleh
      • RULE: NO JAVASCRIPT, just plain old request-response
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment