1. Урок 1. 00:07:59
    Initial Database Setup With Seeding
  2. Урок 2. 00:09:27
    Test-Driving Threads
  3. Урок 3. 00:09:10
    A Thread Can Have Replies
  4. Урок 4. 00:17:40
    A User May Respond to Threads
  5. Урок 5. 00:05:15
    The Reply Form
  6. Урок 6. 00:06:13
    A User May Publish Threads
  7. Урок 7. 00:05:44
    Let's Make Some Testing Helpers
  8. Урок 8. 00:07:55
    The Exception Handling Conundrum
  9. Урок 9. 00:14:12
    A Thread Should Be Assigned a Channel
  10. Урок 10. 00:10:41
    How to Test Validation Errors
  11. Урок 11. 00:13:26
    Users Can Filter Threads By Channel
  12. Урок 12. 00:08:24
    Validation Errors and Old Data
  13. Урок 13. 00:03:00
    Extracting to View Composers
  14. Урок 14. 00:07:37
    A User Can Filter All Threads By Username
  15. Урок 15. 00:18:48
    A Lesson in Refactoring
  16. Урок 16. 00:09:20
    Meta Details and Pagination
  17. Урок 17. 00:11:51
    A User Can Filter Threads By Popularity
  18. Урок 18. 00:15:47
    A User Can Favorite Replies
  19. Урок 19. 00:07:37
    The Favorite Button
  20. Урок 20. 00:07:07
    From 56 Queries Down to 2
  21. Урок 21. 00:08:29
    Global Scopes and Further Query Reduction
  22. Урок 22. 00:12:32
    A User Has a Profile
  23. Урок 23. 00:14:07
    A User Can Delete Their Threads
  24. Урок 24. 00:10:29
    Authorization With Policies
  25. Урок 25. 00:16:38
    How to Construct an Activity Feed with TDD
  26. Урок 26. 00:16:22
    How to Construct An Activity Feed with TDD: Part 2
  27. Урок 27. 00:07:40
    Extracting Controller Queries to the Model
  28. Урок 28. 00:05:11
    The Activity Deletion Bug
  29. Урок 29. 00:14:00
    Flash Messaging With Vue
  30. Урок 30. 00:06:06
    A User's Activity Feed Should Include Favorited Replies
  31. Урок 31. 00:07:59
    Authorized Users Can Delete Replies
  32. Урок 32. 00:13:52
    A Vue Reply Component
  33. Урок 33. 00:04:22
    Ajaxifying the Delete Button
  34. Урок 34. 00:16:28
    A Vue Favorite Component
  35. Урок 35. 00:08:32
    Squashing Bugs
  36. Урок 36. 00:21:59
    A More Data-centric Approach
  37. Урок 37. 00:11:44
    A New Reply Component
  38. Урок 38. 00:31:02
    Laravel and Vue Pagination
  39. Урок 39. 00:12:53
    A User Can Filter By Unanswered Threads
  40. Урок 40. 00:10:53
    Thread Subscriptions: Part 1
  41. Урок 41. 00:06:17
    Thread Subscriptions: Part 2
  42. Урок 42. 00:15:13
    Thread Subscriptions: Part 3
  43. Урок 43. 00:25:30
    Thread Subscriptions: Part 4
  44. Урок 44. 00:06:16
    Test Refactoring
  45. Урок 45. 00:13:22
    Thread Subscriptions: Part 5
  46. Урок 46. 00:10:25
    Refactoring for the Better or Worse?
  47. Урок 47. 00:05:21
    Notification Fakes in a Nutshell
  48. Урок 48. 00:15:55
    This Thread Has Been Updated Since You Last Read It
  49. Урок 49. 00:11:09
    Spam Detection
  50. Урок 50. 00:08:52
    Graduating Inspection Methods to Classes
  51. Урок 51. 00:06:57
    Spam Detection At All Ports
  52. Урок 52. 00:10:17
    Handling Server Exceptions with JavaScript
  53. Урок 53. 00:07:21
    Refactoring to Custom Validation
  54. Урок 54. 00:15:11
    A User May Not Reply More Than Once Per Minute
  55. Урок 55. 00:12:04
    Refactoring to Form Requests
  56. Урок 56. 00:09:29
    Mentioned Users Notifications: Part 1
  57. Урок 57. 00:12:14
    Mentioned Users Notifications: Part 2
  58. Урок 58. 00:08:02
    Don't Forget to Scan Your Files
  59. Урок 59. 00:07:35
    Wrap Usernames Within Anchor Tags
  60. Урок 60. 00:13:20
    Instant Username Autocompletion
  61. Урок 61. 00:13:34
    Instant Username Autocompletion: Part 2
  62. Урок 62. 00:07:49
    Basic View Tweaks
  63. Урок 63. 00:13:50
    Testing Avatar Uploads
  64. Урок 64. 00:14:05
    Testing Avatar Uploads: Part 2
  65. Урок 65. 00:28:04
    AJAX Image Uploads
  66. Урок 66. 00:14:50
    Trending Threads With Redis
  67. Урок 67. 00:12:15
    Isolating Knowledge
  68. Урок 68. 00:09:11
    Thread Views: Design #1 - Trait
  69. Урок 69. 00:08:24
    Thread Views: Design #2 - Extract Class
  70. Урок 70. 00:07:51
    Thread Views: Design #3 - KISS
  71. Урок 71. 00:09:47
    Users Must Confirm Their Email Address: #1 - Protection
  72. Урок 72. 00:23:07
    Users Must Confirm Their Email Address: #2 - Confirmation
  73. Урок 73. 00:15:17
    Users Must Confirm Their Email Address: #3 - Cleanup
  74. Урок 74. 00:08:03
    Email Confirmation Loose Ends
  75. Урок 75. 00:07:26
    A Thread Should Have a Unique Slug: Part 1
  76. Урок 76. 00:11:45
    A Thread Should Have a Unique Slug: Part 2
  77. Урок 77. 00:13:29
    We Need a Regression Test
  78. Урок 78. 00:14:18
    Mark the Best Reply: Part 1
  79. Урок 79. 00:07:58
    Mark the Best Reply: Part 2
  80. Урок 80. 00:06:08
    Refactoring Authorization
  81. Урок 81. 00:10:49
    Remembering a Best Reply
  82. Урок 82. 00:11:08
    Confusing Errors and Solutions
  83. Урок 83. 00:06:40
    Thread Authorization
  84. Урок 84. 00:08:00
    An Administrator May Lock Any Thread
  85. Урок 85. 00:16:02
    An Administrator May Lock Any Thread: Part 2
  86. Урок 86. 00:11:16
    An Administrator May Lock Any Thread: Part 3
  87. Урок 87. 00:11:59
    An Administrator May Lock Any Thread: Part 4
  88. Урок 88. 00:09:31
    From Laravel 5.4 to Laravel 5.5
  89. Урок 89. 00:09:33
    Recaptcha
  90. Урок 90. 00:12:51
    Recaptcha Refactoring
  91. Урок 91. 00:13:34
    A Thread Can Be Updated
  92. Урок 92. 00:12:44
    A Thread Can Be Updated: Part 2
  93. Урок 93. 00:15:22
    A Thread Can Be Updated: Part 3
  94. Урок 94. 00:09:07
    First Class Search: Scout Review
  95. Урок 95. 00:18:10
    First Class Search: Implementation
  96. Урок 96. 00:05:01
    First Class Search: Faceting and Ranking
  97. Урок 97. 00:11:51
    First Class Search: Instant Results
  98. Урок 98. 00:11:02
    First Class Search: Forum Integration
  99. Урок 99. 00:15:29
    WYSIWYG
  100. Урок 100. 00:12:12
    WYSIWYG: Part 2
  101. Урок 101. 00:19:29
    Sanitizing is a Must
  102. Урок 102. 00:01:58
    Onward