Caring about UX, as a Developer - Laracon EU 2017

Caring about UX, as a Developer - Laracon EU 2017

63acdaf1b04d9ca7162f4f8deea0219d?s=128

Rizqi Djamaluddin

August 29, 2017
Tweet

Transcript

  1. 3.
  2. 4.
  3. 5.
  4. 6.
  5. 8.
  6. 9.
  7. 10.
  8. 12.
  9. 14.

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

    confusing Help desk link hidden Can’t login on device Throttling too strict
  10. 16.
  11. 17.
  12. 18.
  13. 19.
  14. 22.
  15. 31.

    public function addJobListing($request, $user) { if ($user ->jobsPostedToday > 5)

    { return redirect() ->route('jobs.limit-exceeded', [$user]); }
  16. 32.

    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);
  17. 33.

    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); }
  18. 34.

    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);
  19. 35.

    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]); }
  20. 37.
  21. 38.

    if ($user ->jobsPostedToday > 5) { Log ::notice("Job quota exceeded");

    return redirect() ->route('jobs.limit-exceeded', [$user]); }
  22. 39.

    if ($validator ->fails()) { Log ::notice("Failed to validate job listing”,

    [ 'type' => 'validation', 'errors' => $validator ->errors() ->all() ]); return $this ->errorRedirect('jobs.add', $validator); }
  23. 40.

    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]);
  24. 41.

    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]); }
  25. 43.

    [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}
  26. 44.

    [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}
  27. 48.
  28. 49.
  29. 61.

    Your Seat Is Reserved Just print or show this email

    to our station staff on Tuesday. Have a safe journey!
  30. 62.

    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
  31. 64.

    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
  32. 65.

    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
  33. 66.

    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
  34. 67.

    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
  35. 68.
  36. 70.
  37. 71.
  38. 78.

    We’ve sent you a welcome email to rizqi@rizqi.web.id. 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.
  39. 80.

    Arrr, nice meetin’ ya. What’s yer name? Parameter “name” must

    match the regular expression ^([ \u00c0-\u01ffa-zA-Z'\-])+$
  40. 82.
  41. 86.

    Password Please provide a longer password (at least 10 characters).

    We host your websites, so dashboard security is critical. More Information
  42. 92.

    Pick the user’s perspective. “Your post code helps us estimate

    your shipping time” “Our couriers require your post code to deliver.”
  43. 93.
  44. 94.
  45. 95.

    Start logging, Train an eye for good design, And do

    join us in the fight to build amazing experiences.