This repository has been archived by the owner on Jan 14, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
plan.txt
399 lines (374 loc) · 17.3 KB
/
plan.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
Open Source
1. [How to Contribute to an Open Source Project on GitHub
1 00:47 introduction to github
2 01:47 exploring github
3 04:07 exploring a repository
4 02:15 how to install git scm
5 03:34 how to authenticate with github using ssh
6 02:15 identifying how to contribute to an open source project on github
7 02:41 how to fork and clone a github repository
8 01:18 setting up the project locally
9 06:19 how to create a pull request on github
10 02:21 how to collaborate on a pull request on github
11 02:57 how to update a pull request on github
12 03:39 how to rebase a git pull request branch
13 02:53 how to squash multiple git commits
14 01:13 getting a pull request merged and wrapping up
2. [How to Write an Open Source JavaScript Library
1 01:35 introduction
2 01:31 setting up github
3 05:01 configuring npm and creating a package json
4 04:46 creating the library and adding dependencies
5 02:34 pushing to github
6 02:36 publishing to npm
7 02:27 releasing a version to github
8 03:24 releasing a new version to npm
9 03:37 javascript how to write a
10 02:44 setting up unit testing with mocha and chai
11 03:01 unit testing with mocha and chai
12 05:49 automating releases with semantic release
13 04:47 writing conventional commits with commitizen
14 03:49 committing a new feature with commitizen
15 03:52 automatically releasing with travisci
16 03:02 automatically running tests before commits with ghooks
17 02:57 adding code coverage recording with istanbul
18 03:24 adding code coverage checking
19 03:59 add code coverage reporting
20 02:28 adding badges to your readme
21 08:35 adding es6 support
22 05:02 adding es6 support to tests using mocha and babel
23 03:38 limit built branches on travis
24 06:16 javascript add a browser build to an npm module
Git
3. [Practical Git for Everyday Professional Use
1 02:34 create local repos with git init
2 01:06 copy remote repos to local machines with git clone
3 03:42 capture code history snapshots with git add commit push
4 01:26 document repos with readme files
5 01:38 sync local and remote repos with git pull
6 02:19 isolate feature development with git branch
7 02:27 sync branches with git merge
8 04:36 resolve merge conflicts with git status
9 02:51 save uncommitted changes with git stash
10 02:03 navigate git command pager output with unix less commands
11 00:40 view commit history with git log
12 02:00 format commit history with git log arguments
13 06:49 filter commit history with git log arguments
14 05:20 compare file changes with git diff
15 01:34 show who changed a line last with git blame
16 02:14 use semantic versioning with git tag
17 05:42 clean up commits with git rebase
18 02:49 diagnose which commit broke something with git bisect
19 02:58 run scripts on git events with git hooks
20 02:33 configure global settings with git config
21 02:36 remove unnecessary git tracking with gitignore files
22 00:57 remove all unnecessary git tracking with a global gitignore file
Node
4. [Introduction to Node The Fundamentals
1 04:19 using the node js repl shell
2 07:03 understanding callbacks in node js
3 06:26 the node js process object
4 04:42 node js global namespace
5 10:30 node js buffers
6 06:23 introduction to modules
7 05:50 exporting modules in node
8 08:14 finding and installing packages in your node application using npm
9 03:54 using the node js net module to create a tcp server
10 04:30 creating a node js module
11 04:08 using the node js http server
12 03:22 publishing a module to the npm registry
13 06:00 using eventemitters in node js
14 08:40 managing memory and garbage collection in node js
JavaScript
5. [Advanced Logging with the JavaScript Console
1 04:38 log levels and semantic methods
2 03:52 log arguments
3 03:11 grouping and nesting output
4 03:11 grouping and nesting output (1)
5 02:16 counting events
6 01:35 logging timing data
7 03:09 prettyprinting tabular data
6. [Intro to Recursion - The Problem
1 06:15 the problem
2 04:39 the solution
3 03:37 refactoring to a pure function
4 05:39 detecting an infinite loop
7. [JavaScript Asynchronous Programming The End of The Loop
1 04:03 foreach method
2 03:02 map method
3 04:42 filter method
4 03:05 chaining the array map and filter methods
5 04:17 create an array concatall method
6 11:59 introducing the observable
7 03:45 using the map method with observable
8 12:35 simple drag and drop with observables
9 11:58 advanced flattening
8. [JavaScript Arrays in Depth.
1 04:38 concat
2 04:42 join
3 05:21 indexof
4 09:15 slice
5 06:23 sort
6 06:44 filter
7 05:43 some
8 03:26 push
9 09:26 map
9. [Javascript Reduce Data with Javascript Array#reduce
1 03:56 introducing reduce transforming arrays functionally
2 03:59 introducing reduce reducing an array into an object
3
4 04:47 advanced reduce additional reducer arguments
5
6 08:06 advanced reduce flatten flatmap and reduceright
7 08:19 advanced reduce composing functions with reduce
8 06:29 advanced reduce safe nested object inspection
9. [Regex in Javascript
1 06:00 introduction
2 02:29 find plain text patterns
3 03:53 find repeated patterns
4 02:41 find sets of characters
6 04:35 find groups of characters
7 01:27 find a string that precedes another string
8 02:18 find the start and end of whole words
9 03:31 match the same string twice
10 03:19 match the start and end of a line
10. [Learn ES6 (ECMAScript 2015)
1 02:57 arrow function
2 02:58 the let keyword
3 02:16 default values for function parameters
4 02:14 const declarations in es6 es2015
5 01:01 shorthand properties in es6
6 02:12 object enhancements in es6
7 01:40 using the es6 spread operator
8 04:12 string templates
9 04:33 destructuring assignment
10 05:33 es6 modules es2015 import and export
11 02:19 converting an array like object into an array with array from
12 05:51 promises with es6
13 05:28 generators
14 05:14 maps and weakmaps with es6
15 01:40 js es6 parameter object destructuring with required values
11. [Redux
1 02:11 the single immutable state tree
2 02:54 describing state changes with actions
3 01:19 pure and impure functions
4 01:54 the reducer function
5 02:36 writing a counter reducer with tests
6 03:09 store methods getstate dispatch and subscribe
7 02:28 implementing store from scratch
8 02:18 react counter example
9 03:54 avoiding array mutations with concat slice and spread
10 02:38 avoiding object mutations with object assign and spread
11 04:11 writing a todo list reducer adding a todo
12 02:47 writing a todo list reducer toggling a todo
13 02:21 reducer composition with arrays
14 02:42 reducer composition with objects
15 02:10 reducer composition with combinereducers
16 04:22 implementing combinereducers from scratch
17 07:25 react todo list example adding a todo
18 03:29 react todo list example toggling a todo
19 08:14 react todo list example filtering todos
20 04:52 extracting presentational components todo todolist
21 08:35 extracting presentational components addtodo footer filterlink
24 03:54 passing the store down explicitly via props
25 07:56 passing the store down implicitly via context
26 01:30 passing the store down with provider from react redux
27 05:13 generating containers with connect from react redux visibletodolist
28 04:41 generating containers with connect from react redux addtodo
29 03:27 generating containers with connect from react redux footerlink
30 03:52 extracting action creators
12. [Reactive Extentions; RxJS
13. [1 Introduction to Reactive Programming
1 04:31 what is rxjs
2 04:36 using an event stream of double clicks
3 04:05 why choose rxjs
4 07:14 reactive programming async requests and responses in rxjs
5 05:22 reactive programming rendering on the dom with rxjs
6 05:07 new requests from refresh clicks
7 06:28 clear data while loading with rxjs startwith
8 03:34 sharing network requests with rxjs merge
9 07:44 using cached network data with rxjs
10 02:14 an overview of reactive concepts
14. [2 Step by Step Async JavaScript with RxJS
1 05:48 starting a stream with switchmap
2 04:10 stopping a stream with takeuntil
3 02:10 updating data with scan
4 01:06 displaying initial data with startwith
5 02:32 changing behavior with mapto
6 02:59 handling multiple streams with merge
7 04:44 refactoring composable streams in rxjs
8 01:46 getting input text with map
9 03:08 combining streams with combinelatest
10 01:01 adding conditional logic with filter
11 01:19 completing a stream with takewhile
12 01:21 handling a complete stream with reduce
13 01:34 logging a stream with do
14 02:54 timer and input recap
15 02:17 refactoring combinelatest to withlatestfrom
16 02:04 resubscribing to a stream with repeat
17 01:06 basic dom rendering with subscribe
18 04:00 sharing streams with share
15. [3 RxJS Beyond the Basics; Creating Observables from scratch
1 01:00 let s learn rxjs
2 06:43 observables are almost like functions
3 03:21 observables push compared to generator functions pull
4 01:39 observables can throw errors
5 01:48 observables can complete
6 02:06 creation operator of
7 03:41 creation operators from fromarray frompromise
8 03:49 creation operators fromeventpattern fromevent
9 02:48 creation operators empty never throw
10 04:11 creation operators interval and timer
11 03:03 creation operator create
12 03:14 returning subscriptions from the subscribe function
13 00:54 observables are the foundation in rxjs
16. [4 RxJS Beyond the Basics; Operators in Depth
1 05:38 what rxjs operators are
2 04:29 marble diagrams in ascii form
3 03:34 transformation operator map and mapto
4 04:25 utility operator do
5 02:06 filtering operator filter
6 02:51 filtering operators take first skip
7 03:10 filtering operators takelast last
8 06:22 combination operators concat startwith
9 03:57 combination operator merge
10 04:21 combination operator combinelatest
11 04:02 combination operator withlatestfrom
12 05:10 combination operator zip
13 05:21 transformation operator scan
14 05:17 transformation operator buffer
15 04:22 transformation operators delay and delaywhen
16 05:21 transformation operators debounce and debouncetime
17 02:48 filtering operators throttle and throttletime
18 04:34 filtering operators distinct and distinctuntilchanged
19 05:24 error handling operator catch
20 04:01 error handling operator retry and retrywhen
21 01:28 transformation operator repeat
22 01:06 more operators and conclusion
17. [Using Webpack for Production JavaScript Applications
1 02:14 intro to the production webpack course
2 04:06 validate your webpack config with webpack validator
3 03:23 tree shaking with webpack 2
4 01:59 polyfill promises for webpack 2
5 02:38 maintain sane file sizes with webpack code splitting
6 03:46 hashing with webpack for long term caching
7 05:36 grouping vendor files with the webpack commonschunkplugin
8 04:11 chunking common modules from multiple apps with the webpack commonschunkplugin
9 05:45 optimize react size and performance with webpack production plugins
10 04:20 import a non es6 module with webpack
11 03:20 expose modules to dependencies with webpack
12 05:22 javascript initialize a webpack project with karma for testing
13 01:17 javascript use chai assertions for tests in a karma project
14 04:53 use karma for unit testing with webpack
15 06:30 add code coverage to tests in a webpack project
16 04:59 ensure all source files are included in test coverage reports with webpack
Typescript
18. [Up and Running with TypeScript
1 01:59 installing typescript and running the typescript compiler tsc
2 00:52 configuring a new typescript project
3 01:24 configuring typescript which files to compile with files and outdir
4 00:58 stopping a typescript build when errors are found
5 05:00 loading compiled typescript files in browser with systemjs
6 01:31 compiling typescript with webstorm
7 01:48 using exclude and rootdir until file globs lands in 2 0
8 03:14 what happens to compiled interfaces
9 03:38 using lodash in typescript with typings and systemjs
10 04:44 using typings and loading from node_modules
11 03:23 understanding decorators
12 05:59 reflection and decorator metadata
13 05:51 definition files
14 02:41 generating definition files
Angular
19. [Angular 2 Dependency Injection (DI) Explained
1 02:36 what is dependency injection b9f0c87e
2 03:07 injecting a service into a component
3 03:57 understanding providers (1)
4 03:29 factory providers
5 03:05 factory providers with dependencies
6 04:27 understanding injectable
7 03:00 value providers
8 03:53 understanding opaquetoken
20. [Angular Fundamentals
1 00:50 say hello world to angular 2
2 01:43 angular 2 writing a simple angular 2 component (1)
3 01:22 using events and refs
4 01:02 events in depth
5 02:37 injecting a service
6 01:23 using the inject decorator
7 03:08 using ng for to repeat template elements
8 01:19 using ng model for two way binding
9 02:19 adding a data model
10 01:39 template property syntax
11 01:38 passing data to components with input
12 00:56 ng class and encapsulated component styles
13 02:03 controlling how styles are shared with view encapsulation
14 02:24 using pipes to filter data
15 01:54 using array spread to enforce pipe immutability
16 04:16 refactoring mutations to enforce immutable data in angular 2
17 04:21 build a select dropdown with ngfor in angular 2
18 03:15 filter items with a custom search pipe in angular 2
19 02:23 organizing angular 2 projects by feature
20 04:33 overview of angular 2 and what to learn next
21. [Building Angular 2 Components
1 02:32 create an angular 2 hello world component
2 01:16 structure a basic angular 2 application
3 02:51 create application specific angular 2 components
4 04:17 create shareable angular 2 components
5 02:51 share a service across angular 2 components and modules
6 02:25 angular 2 smart components vs presentation components
7 03:43 style angular 2 components
8 02:21 nesting elements in angular 2 components with ng content aka angular 2 transclusion
9 03:02 select from multiple nested angular 2 elements
10 03:46 manipulate and access dom elements with angular 2 renderer
11 04:12 generate angular 2 components programmatically with entrycomponents
12 01:47 set properties on dynamically created angular 2 components
13 02:08 order dynamic components inside an angular 2 viewcontainer
14 02:25 move and delete angular 2 components after creation
15 01:25 generate and render angular 2 template elements in a component
16 00:58 set values on generated angular 2 templates with template context
22. [Intro to Angular 2 Forms
1 01:39 create a basic angular 2 ngmodel input
2 00:55 check ngmodel validation in angular 2
3 02:59 display validation and error messaging in angular 2
4 02:42 create and submit an angular 2 form using ngform
5 01:51 group inputs in angular 2 forms with ngmodelgroup
6 01:11 angular 1 x style validation in angular 2 forms
7 01:44 understand the angular 2 states of inputs pristine and untouched
8 03:05 use rxjs streams with angular 2 forms
9 05:48 create radio buttons for angular 2 forms
10 01:10 build select dropdowns for angular 2 forms
23. [Build an Angular 2 Instant Search Component
1 03:07 consuming events as obser...
2 01:25 building an instant search with angular2 debouncing the ...
3 01:15 preventing unnecessary requests
4 02:10 combining observables wi...
5 01:34 dealing with out of order responses
6 01:58 building fully...
24. [Intro to Angular 2 Router
1 03:31 configure your first angular 2 route
2 00:49 map a second angular 2 route to a component
3 00:38 build angular 2 navigation with routerlink
4 05:15 lazy load angular 2 modules with the router (1)
5 01:53 style the active angular 2 navigation element with routerlinkactive (1)
6 03:07 use params from angular 2 routes inside of components
7 03:48 understand the angular 2 base href requirement
8 01:49 d3 build dynamic angular 2 navigation with ngfor
9 03:29 load data to build angular 2 navigation
10 05:16 load data based on angular 2 route params
25. [Build Redux Style Applications with Angular2, RxJS, and ngrxstore
1 02:19 rendering an observable with the async pipe
2 01:05 rendering an observable date with the async and date pipes
3 01:33 handling click events with subjects
4 01:36 handling clicks and intervals together with merge
5 02:23 managing state in rxjs with startwith and scan
6 01:32 mapping streams to values to affect state
7 05:12 using ngrx store and reducers for angular 2 application state
8 01:21 dispatching action types to reducers
9 02:00 dispatching action payloads to reducers
10 02:37 passing template input values to reducers
11 03:09 passing observables into components with async pipe
12 02:33 adding a second reducer to the store
13 01:38 using two reducers together
14 05:05 using a reducer to change an object s property inside an array
15 03:31 using a value from the store in a reducer
16 03:38 review of angular 2 rxjs and reducers from ngrx store