Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Caring about UX, as a Developer - Laracon EU 2017

Caring about UX, as a Developer - Laracon EU 2017

Avatar for Rizqi Djamaluddin

Rizqi Djamaluddin

August 29, 2017
Tweet

Other Decks in Programming

Transcript

  1. Confusing check-out Unreliable search results Gave up payment Password reset

    confusing Help desk link hidden Can’t login on device Throttling too strict
  2. public function addJobListing($request, $user) { if ($user ->jobsPostedToday > 5)

    { return redirect() ->route('jobs.limit-exceeded', [$user]); }
  3. public function addJobListing($request, $user) { if ($user ->jobsPostedToday > 5)

    { return redirect() ->route('jobs.limit-exceeded', [$user]); } $validator = Validator ::make($request ->only(['title', 'body']), $this ->rules);
  4. public function addJobListing($request, $user) { if ($user ->jobsPostedToday > 5)

    { return redirect() ->route('jobs.limit-exceeded', [$user]); } $validator = Validator ::make($request ->only(['title', 'body']), $this ->rules); if ($validator ->fails()) { return $this ->errorRedirect('jobs.add', $validator); }
  5. public function addJobListing($request, $user) { if ($user ->jobsPostedToday > 5)

    { return redirect() ->route('jobs.limit-exceeded', [$user]); } $validator = Validator ::make($request ->only(['title', 'body']), $this ->rules); if ($validator ->fails()) { return $this ->errorRedirect('jobs.add', $validator); } $job = $this ->jobService ->add($request ->title, $request ->body, $user);
  6. public function addJobListing($request, $user) { if ($user ->jobsPostedToday > 5)

    { return redirect() ->route('jobs.limit-exceeded', [$user]); } $validator = Validator ::make($request ->only(['title', 'body']), $this ->rules); if ($validator ->fails()) { return $this ->errorRedirect('jobs.add', $validator); } $job = $this ->jobService ->add($request ->title, $request ->body, $user); return redirect() ->route('jobs.edit', [$job]); }
  7. if ($user ->jobsPostedToday > 5) { Log ::notice("Job quota exceeded");

    return redirect() ->route('jobs.limit-exceeded', [$user]); }
  8. if ($validator ->fails()) { Log ::notice("Failed to validate job listing”,

    [ 'type' => 'validation', 'errors' => $validator ->errors() ->all() ]); return $this ->errorRedirect('jobs.add', $validator); }
  9. Log ::debug("Job listing validated, adding to database", $request ->only(['title', 'body'])

    ->toArray()); $job = $this ->jobService ->add($request ->title, $request ->body, $user); Log ::info("Added new job listing", ['job' => $job ->id]);
  10. public function addJobListing($request, $user) { Log ::info("New job listing submitted",

    $request ->only(['title', 'body']) ->toArray()); if ($user ->jobsPostedToday > 5) { Log ::notice("Job quota exceeded"); return redirect() ->route('jobs.limit-exceeded', [$user]); } $validator = Validator ::make($request ->only(['title', 'body']), $this ->rules); if ($validator ->fails()) { Log ::notice("Failed to validate job listing”, [ 'type' => 'validation', 'errors' => $validator ->errors() ->all() ]); return $this ->errorRedirect('jobs.add', $validator); } Log ::debug("Job listing validated, adding to database", $request ->only(['title', 'body']) ->toArray()); $job = $this ->jobService ->add($request ->title, $request ->body, $user); Log ::info("Added new job listing", ['job' => $job ->id]); return redirect() ->route('jobs.edit', [$job]); }
  11. [2017-08-25 07:16:56] local.INFO: New job listing submitted {"title":"New Job","body":"We are

    seeking a new team member for our Laravel dev team."} {"user":1} [2017-08-25 07:16:56] local.DEBUG: Job listing validated, adding to database {"title":"New Job","body":"We are seeking a new team member for our Laravel dev team."} {"user":1} [2017-08-25 07:16:56] local.INFO: Added new job listing {"job":5} {"user":1}
  12. [2017-08-25 07:25:52] local.INFO: New job listing submitted {"title":"New Job”,"body":""} {"user":1}

    [2017-08-25 07:25:52] local.NOTICE: Job quota exceeded {"user":1} [2017-08-25 07:25:52] local.NOTICE: Failed to validate job listing {"type":"validation","errors":["The body field is required."]} {"user":1}
  13. Your Seat Is Reserved Just print or show this email

    to our station staff on Tuesday. Have a safe journey!
  14. Your Seat Is Reserved Just print or show this email

    to our station staff on Tuesday. Have a safe journey! ECONOMY Rizqi Djamaluddin Argo Gede Express Jakarta Surabaya 8:30 9:15 WED, 6 DEC 2017 AM PM
  15. Your Seat Is Reserved Just print or show this email

    to our station staff on Tuesday. Have a safe journey! ECONOMY Rizqi Djamaluddin Argo Gede Express Jakarta Surabaya 8:30 9:15 WED, 6 DEC 2017 AM PM
  16. Your Seat Is Reserved Just print or show your emailed

    ticket to our station staff. Have a safe journey! ECONOMY Rizqi Djamaluddin Argo Gede Express Jakarta Surabaya 8:30 9:15 WED, 6 DEC 2017 AM PM PRINT TICKET
  17. Your Seat Is Reserved Check your inbox! Just print or

    show your emailed ticket to our station staff. Have a safe journey! ECONOMY Rizqi Djamaluddin Argo Gede Express Jakarta Surabaya 8:30 9:15 WED, 6 DEC 2017 AM PM PRINT TICKET RE-SEND EMAIL
  18. Your Seat Is Reserved Check your inbox! Just print or

    show your emailed ticket to our station staff. Have a safe journey! ECONOMY Rizqi Djamaluddin Argo Gede Express Jakarta Surabaya 8:30 9:15 WED, 6 DEC 2017 AM PM PRINT TICKET RE-SEND EMAIL STATION MAP LUGGAGE FAQ
  19. We’ve sent you a welcome email to [email protected]. Please click

    the button in the email to confirm your account. This way we can verify your identity, and recover your account if you ever get locked out.
  20. Arrr, nice meetin’ ya. What’s yer name? Parameter “name” must

    match the regular expression ^([ \u00c0-\u01ffa-zA-Z'\-])+$
  21. Password Please provide a longer password (at least 10 characters).

    We host your websites, so dashboard security is critical. More Information
  22. Pick the user’s perspective. “Your post code helps us estimate

    your shipping time” “Our couriers require your post code to deliver.”
  23. Start logging, Train an eye for good design, And do

    join us in the fight to build amazing experiences.