-
Урок 1. 00:03:060.1. Why I wrote this book (and course)
-
Урок 2. 00:02:130.2. Hearty welcome
-
Урок 3. 00:01:240.3. Course author
-
Урок 4. 00:01:310.4. Comfort and Learning
-
Урок 5. 00:01:260.5. How to ask questions
-
Урок 6. 00:01:580.6. Exercises
-
Урок 7. 00:02:130.7. Exercises in IntelliJ 2020.1 (or later)
-
Урок 8. 00:02:140.8. History of dynamic proxies
-
Урок 9. 00:03:110.9. Big Win
-
Урок 10. 00:01:020.10. Infrastructure Code
-
Урок 11. 00:03:230.11. Risk of dynamic proxies
-
Урок 12. 00:01:000.12. What will we learn?
-
Урок 13. 00:01:180.13. Java version
-
Урок 14. 00:02:260.14. Shallow vs deep reflection
-
Урок 15. 00:01:110.15. Book sample code
-
Урок 16. 00:02:290.16. How code is modularized
-
Урок 17. 00:00:220.17. Enjoy!
-
Урок 18. 00:02:140.18. Exercise 0.1
-
Урок 19. 00:00:371.0. Design Patterns Cousins
-
Урок 20. 00:02:431.0.1. Christopher Alexander and Design Patterns
-
Урок 21. 00:03:111.0.2. What's in a name?
-
Урок 22. 00:01:151.0.3. Four Cousins
-
Урок 23. 00:01:331.1.1. Proxy Intent
-
Урок 24. 00:01:211.1.2. Proxy Structure
-
Урок 25. 00:01:321.1.3. Proxy Variations
-
Урок 26. 00:01:051.1.4. Proxy Exercises
-
Урок 27. 00:01:251.2.1. Adapter Intent
-
Урок 28. 00:02:261.2.2. Adapter Structure
-
Урок 29. 00:01:321.2.3. Object Adapter vs Proxy
-
Урок 30. 00:00:241.2.4. Adapter Exercises
-
Урок 31. 00:03:191.3.1. Decorator Intent
-
Урок 32. 00:01:191.3.2. Decorator Structure
-
Урок 33. 00:02:281.3.3. Decorator OutputStream
-
Урок 34. 00:01:011.3.4. OutputStream Objects
-
Урок 35. 00:03:251.3.5. OutputStream Code Samples
-
Урок 36. 00:01:141.3.6. Decorator vs Proxy
-
Урок 37. 00:00:331.3.7. Decorator Exercises
-
Урок 38. 00:00:511.4.1. Composite Intent
-
Урок 39. 00:01:001.4.2. Composite Structure
-
Урок 40. 00:00:261.4.3. Composite vs Proxy
-
Урок 41. 00:00:251.4.4. Merging and reducing return values
-
Урок 42. 00:00:171.4.5. (Ab)using dynamic proxies to implement all four cousins
-
Урок 43. 00:00:311.4.6. Composite Exercises
-
Урок 44. 00:00:591.5.1. Chain of Responsibility Intent
-
Урок 45. 00:02:321.5.2. Chain of Responsibility Sample Code
-
Урок 46. 00:00:291.5.3. Chain of Responsibility Summary
-
Урок 47. 00:00:201.5.4. Chain of Responsibility Pitfalls
-
Урок 48. 00:00:181.5.5. Chain of Responsibility Exercises
-
Урок 49. 00:01:482. Handcrafted proxies
-
Урок 50. 00:01:052.1.1. Virtual Proxy
-
Урок 51. 00:00:352.1.2. CustomMap Interface
-
Урок 52. 00:01:472.1.3. CustomHashMap Class
-
Урок 53. 00:01:592.1.4. VirtualCustomMap Class
-
Урок 54. 00:01:412.1.5. CustomMap Class Diagram
-
Урок 55. 00:01:482.1.6. Using VirtualCustomMap
-
Урок 56. 00:01:252.1.7. Sizeof in Java
-
Урок 57. 00:02:072.2. Remote Proxy
-
Урок 58. 00:00:422.2.1. RealCanada
-
Урок 59. 00:01:172.2.2. Spark Framework
-
Урок 60. 00:00:492.2.3. Service Publisher with Spark
-
Урок 61. 00:00:492.2.4. Service Publisher with Jetty
-
Урок 62. 00:02:042.2.5. Remote Proxy CanadianEmbassy
-
Урок 63. 00:00:452.2.6. Canada Class Diagram
-
Урок 64. 00:00:292.2.7. Heinz Applying for Canadian Visa
-
Урок 65. 00:01:252.3. Protection proxy
-
Урок 66. 00:02:342.3.1. ConcurrentTest for testing thread safety in CustomMap
-
Урок 67. 00:05:132.3.2. Code walk-through and demo for ConcurrentTest
-
Урок 68. 00:00:172.3.3. Protection Proxy to the rescue
-
Урок 69. 00:00:302.3.4. SynchronizedCustomMap
-
Урок 70. 00:01:502.3.5. Synchronized or ReentrantLock?
-
Урок 71. 00:00:482.3.6. SynchronizerTestDemo
-
Урок 72. 00:01:062.3.7. Unmodifiable Map
-
Урок 73. 00:01:262.3.8. UnmodifiableCustomMap
-
Урок 74. 00:02:042.3.9. UnsupportedOperationException
-
Урок 75. 00:00:412.4. Cascaded Proxies
-
Урок 76. 00:00:282.4.1. More flexible proxy structure
-
Урок 77. 00:01:152.4.2. Cascading proxies code
-
Урок 78. 00:01:192.5. equals() in proxies
-
Урок 79. 00:01:472.5.1. IDE-generated equals() in CustomHashMap
-
Урок 80. 00:01:102.5.2. How AbstractMap implements equals()
-
Урок 81. 00:01:592.5.3. New CustomHashMap.equals() method (Broken contract)
-
Урок 82. 00:00:252.5.4. Proxy's equals() delegates call
-
Урок 83. 00:02:532.5.5. Correct CustomHashMap.equals()
-
Урок 84. 00:03:242.6.1. Exercise 2.1. Problem Statement
-
Урок 85. 00:07:442.6.2. Exercise 2.1. Walkthrough
-
Урок 86. 00:16:142.6.3. Exercise 2.2. Problem Statement
-
Урок 87. 00:24:042.6.4. Exercise 2.2. Walkthrough
-
Урок 88. 00:00:482.7. Summary
-
Урок 89. 00:00:473. Dynamic Proxies
-
Урок 90. 00:03:543.0.1. Avoid Copy and Paste
-
Урок 91. 00:03:563.1. Proxy.newProxyInstance()
-
Урок 92. 00:00:463.1.1. IllegalArgumentException from Wrong ClassLoader
-
Урок 93. 00:01:143.1.2. Correct ClassLoader Specified
-
Урок 94. 00:04:273.1.3. Java Platform Module System
-
Урок 95. 00:01:393.1.4. InvocationHandler
-
Урок 96. 00:01:143.2. LoggingInvocationHandler
-
Урок 97. 00:03:523.2.1. invoke() Method for LoggingInvocationHandler
-
Урок 98. 00:00:503.2.2. toString() Prints Methods with Args
-
Урок 99. 00:01:223.2.3. Demo of LoggingInvocationHandler
-
Урок 100. 00:00:293.3. Dissecting a Dynamic Proxy
-
Урок 101. 00:01:043.3.1. Dynamic Proxy Class Name
-
Урок 102. 00:00:493.3.2. Decompiling $Proxy0
-
Урок 103. 00:06:423.3.3. $Proxy0 Code Walkthrough
-
Урок 104. 00:01:303.3.4. How Does $Proxy0 Work?
-
Урок 105. 00:04:463.3.5. EscapeAnalysisTest of Arguments Array
-
Урок 106. 00:01:423.3.6. Turbo-boosting Reflection Methods
-
Урок 107. 00:06:283.3.6.1. TurboBoosterTest Demo
-
Урок 108. 00:02:033.3.6.2. MethodTurboBooster Code Review
-
Урок 109. 00:00:163.4. Recasted Exceptions
-
Урок 110. 00:00:313.4.1. Unexpected Exceptions Causing Issues
-
Урок 111. 00:01:323.4.2. RecastingExceptionsBroken
-
Урок 112. 00:01:313.4.3. Unwrapping InvocationHandler
-
Урок 113. 00:00:273.4.4. RecastingExceptionsFixed
-
Урок 114. 00:01:023.5. Proxies Facade
-
Урок 115. 00:01:173.5.1. Proxies.castProxy()
-
Урок 116. 00:00:543.5.2. simpleProxy()
-
Урок 117. 00:00:513.5.3. RealISODateParser
-
Урок 118. 00:01:183.5.4. Using Proxies Facade
-
Урок 119. 00:01:053.6. Virtual Dynamic Proxy
-
Урок 120. 00:00:273.6.1. Proxies Facade virtualProxy()
-
Урок 121. 00:01:093.6.2. Creating Virtual Proxy
-
Урок 122. 00:01:253.6.3. Company and MoralFibre
-
Урок 123. 00:01:003.6.4. CompanyTest
-
Урок 124. 00:01:033.7. Synchronized Dynamic Proxy
-
Урок 125. 00:00:183.7.1. Proxies Facade synchronizedProxy()
-
Урок 126. 00:00:523.7.2. SynchronizedTest
-
Урок 127. 00:01:133.8. Cascading Dynamic Proxies
-
Урок 128. 00:01:583.9. EnhancedStream
-
Урок 129. 00:01:433.9.1. EnhancedStream Code Review
-
Урок 130. 00:00:293.10. Dynamic Proxy Restrictions
-
Урок 131. 00:00:373.10.1. Interfaces Only
-
Урок 132. 00:00:333.10.2. UndeclaredThrowableException
-
Урок 133. 00:00:593.10.3. Return Types Have to be Correct
-
Урок 134. 00:01:333.10.4. Naming Mysteries
-
Урок 135. 00:00:403.10.5. Deeper Call Stacks
-
Урок 136. 00:01:483.10.6. Shared Proxy Classes
-
Урок 137. 00:03:013.11. Performance
-
Урок 138. 00:04:063.11.1. Model for Benchmark using JMH
-
Урок 139. 00:01:383.11.2. Benchmark increment() Results
-
Урок 140. 00:00:513.11.3. Benchmark consumeCPU() Results
-
Урок 141. 00:00:413.11.4. Summary of Benchmark Results
-
Урок 142. 00:00:163.12. Exercises
-
Урок 143. 00:00:253.12.1. Exercises 3.1. Problem Statement
-
Урок 144. 00:01:313.12.2. Exercises 3.1. Walkthrough
-
Урок 145. 00:02:143.12.3. Exercises 3.2. Problem Statement
-
Урок 146. 00:08:323.12.4. Exercises 3.2. Walkthrough
-
Урок 147. 00:00:374. Dynamic Decorator
-
Урок 148. 00:00:374.0. Decorator Structure
-
Урок 149. 00:02:544.1. Filtering for Immutability
-
Урок 150. 00:01:154.1.1. ImmutableCollection
-
Урок 151. 00:01:054.1.2. HandcodedFilter
-
Урок 152. 00:00:234.1.3. MutableCollection
-
Урок 153. 00:01:054.1.4. UML Diagram
-
Урок 154. 00:01:454.1.5. HandcodedFilter Demo
-
Урок 155. 00:04:534.2. FilterHandler
-
Урок 156. 00:04:554.2.1. FilterHandler Class
-
Урок 157. 00:01:444.2.2. Proxies Facade Gets filter() Method
-
Урок 158. 00:01:084.2.3. Dynamic Filter Demo
-
Урок 159. 00:02:254.2.4. What Happened?
-
Урок 160. 00:00:454.3. VTable
-
Урок 161. 00:02:064.3.1. VTable Overview
-
Урок 162. 00:04:494.3.2. ParameterTypesFetcher
-
Урок 163. 00:04:534.3.3. MethodKey
-
Урок 164. 00:03:584.3.4. VTable
-
Урок 165. 00:07:394.3.4.1. VTable put() and findIndex()
-
Урок 166. 00:03:314.3.4.2. VTable.getDefaultMethodHandle()
-
Урок 167. 00:00:584.3.4.3. Turbo-Boosting Methods in VTable
-
Урок 168. 00:03:414.3.4.4. VTable.lookup() and stream()
-
Урок 169. 00:19:044.3.5. VTable.Builder
-
Урок 170. 00:01:404.3.6. VTables Facade
-
Урок 171. 00:00:234.3.7. VTable Summary
-
Урок 172. 00:05:424.4. ChainedInvocationHandler
-
Урок 173. 00:00:454.4.1. UnhandledMethodException
-
Урок 174. 00:01:494.4.2. VTableHandler
-
Урок 175. 00:01:324.4.3. VTableDefaultMethodHandler
-
Урок 176. 00:05:354.4.4. UnifiedInvocationHandler
-
Урок 177. 00:00:494.5.1. Exercise 4.1. Problem Statement
-
Урок 178. 00:02:124.5.2. Exercise 4.1. Walkthrough
-
Урок 179. 00:03:334.5.3. Exercise 4.2. Problem Statement
-
Урок 180. 00:13:314.5.4. Exercise 4.2. Walkthrough
-
Урок 181. 00:00:315. Dynamic Object Adapter
-
Урок 182. 00:01:005.0.1. Singer and Rapper
-
Урок 183. 00:01:135.0.2. Class Adapter
-
Урок 184. 00:01:225.0.3. Object Adapter
-
Урок 185. 00:00:135.1. Better Collections
-
Урок 186. 00:02:325.1.1.1. Generics Type Erasure
-
Урок 187. 00:02:185.1.1.2. Demo of ArrayList
-
Урок 188. 00:02:455.1.1.3. Covariant Return Types
-
Урок 189. 00:01:345.1.2.1. BetterArrayList
-
Урок 190. 00:01:015.1.2.2. Demo of BetterArrayList
-
Урок 191. 00:01:255.1.3.1. BetterCollection Interface
-
Урок 192. 00:00:355.1.3.2. BetterConcurrentSkipListSet
-
Урок 193. 00:01:175.1.4.1. Object Adapter Pattern
-
Урок 194. 00:01:245.1.4.2. BetterCollectionObjectAdapter
-
Урок 195. 00:00:255.1.4.3. Demo of BetterCollectionObjectAdapter
-
Урок 196. 00:00:525.1.4.4. What if we want to make a better Set, List, etc.?
-
Урок 197. 00:01:545.1.5.1. ObjectAdapterHandler
-
Урок 198. 00:01:445.1.5.2. Proxies.adapt()
-
Урок 199. 00:02:235.1.5.3. BetterCollectionFactory
-
Урок 200. 00:01:165.1.5.4. Demo of Dynamic Object Adapter
-
Урок 201. 00:01:105.2.1. Dynamic Object Adapter Restrictions
-
Урок 202. 00:03:465.2.2. AdapterPuzzle1
-
Урок 203. 00:01:085.2.3. AdapterPuzzle2
-
Урок 204. 00:00:295.3. Performance
-
Урок 205. 00:01:385.3.1. Benchmark
-
Урок 206. 00:02:305.3.2. JMH Benchmark Code
-
Урок 207. 00:01:105.3.3. Benchmark size() Results
-
Урок 208. 00:01:005.3.4. Benchmark toArray() Results
-
Урок 209. 00:01:495.3.5. Benchmark forEachFiltered() Results
-
Урок 210. 00:01:525.4.1. Exercise 5.1. Problem Statement
-
Урок 211. 00:05:225.4.2. Exercise 5.1. Walkthrough
-
Урок 212. 00:01:175.4.3. Exercise 5.2. Problem Statement
-
Урок 213. 00:05:485.4.4. Exercise 5.2. Walkthrough
-
Урок 214. 00:01:255.4.5. Exercise 5.3. Problem Statement
-
Урок 215. 00:11:085.4.6. Exercise 5.3. Walkthrough
-
Урок 216. 00:03:226. Dynamic Composite
-
Урок 217. 00:01:136.0.1. Composite Structure
-
Урок 218. 00:01:076.0.2. Visitor Pattern
-
Урок 219. 00:05:336.0.3. add() and remove() in Component?
-
Урок 220. 00:03:026.1. Mailing List
-
Урок 221. 00:00:566.1.1. Contact and Person
-
Урок 222. 00:01:376.1.2. DistributionList
-
Урок 223. 00:01:196.1.3. Contact Class Diagram
-
Урок 224. 00:01:136.1.4. Let's Build a Mailing List
-
Урок 225. 00:00:296.1.5. Mailing List Object Graph
-
Урок 226. 00:00:356.1.6. Composite Classes Look Similar
-
Урок 227. 00:00:526.1.7. BaseComponent
-
Урок 228. 00:00:256.1.8. Contact extends BaseComponent
-
Урок 229. 00:00:496.1.9. BaseComponent Class Diagram
-
Урок 230. 00:00:546.2. CompositeHandler
-
Урок 231. 00:01:486.2.1. CompositeHandler Constructor
-
Урок 232. 00:01:226.2.2. Matching add() and remove() methods
-
Урок 233. 00:01:436.2.3. requiresAllInterfaces()
-
Урок 234. 00:07:036.2.4. addChildMethods()
-
Урок 235. 00:01:096.2.5. UncheckedException
-
Урок 236. 00:02:106.2.6. mapFunction()
-
Урок 237. 00:03:016.2.7. map and reduce
-
Урок 238. 00:00:456.2.8. Reducer.PROXY_INSTANCE_REDUCER
-
Урок 239. 00:00:296.2.9. Merging final result and unwrapping UncheckedException
-
Урок 240. 00:00:146.2.10. CompositeHandler summary
-
Урок 241. 00:01:116.2.11. Proxies.compose()
-
Урок 242. 00:00:576.2.12. Dynamic Composite Contact
-
Урок 243. 00:01:166.3. TeeAppendables
-
Урок 244. 00:00:536.3.1. Demo of TeeOutputStream
-
Урок 245. 00:00:276.3.2. OutputStreamComposite
-
Урок 246. 00:02:256.3.3. Interfaces of OutputStream and Writer
-
Урок 247. 00:01:406.3.4. TeeAppendable Handwritten Composite
-
Урок 248. 00:01:026.3.5. Making TeeAppendable into Writer
-
Урок 249. 00:02:286.3.6. Demo of TeeAppendable
-
Урок 250. 00:01:456.4. AppendableFlushableCloseable
-
Урок 251. 00:00:596.4.1. Composing Appendable Dynamically
-
Урок 252. 00:02:196.5.1. Exercise 6.1. Problem Statement
-
Урок 253. 00:09:456.5.2. Exercise 6.1. Walkthrough
-
Урок 254. 00:00:436.5.3. Exercise 6.2. Problem Statement
-
Урок 255. 00:03:236.5.4. Exercise 6.2. Walkthrough
-
Урок 256. 00:04:577. Conclusion
Категории
Источники
Все курсы