- 45
- 567 184
Matt KØDVB
United States
เข้าร่วมเมื่อ 11 ก.ย. 2015
Are you interested in Go programming and computer science topics? Stay tuned to this channel! Right now I'm putting up my Go programming class, but I'll follow that with short videos on various topics in programming, Unix, software development, and computer science.
Go and Google App Engine (Go Developer's Network, March 2021)
This is my presentation on Go and Google App Engine for the March 2021 GoBridge / Go Developer's Network meetup (on St Patrick's Day). In this presentation I talk about monitoring and debugging GAE apps: using trace IDs to correlate logs, profiling in GCP, and monitoring via custom OpenCensus metrics. I also show how to deploy a simple service to App Engine and use IAP for security.
The code is available at github.com/matt4biz/go-gae-example; the examples are similar to what I use for the profiling segment of my class (th-cam.com/video/MDB2x1Di5uM/w-d-xo.html).
Slides at: github.com/matt4biz/go-class-slides/blob/trunk/gobridge/gdn-2103-gae-slides.pdf
The code is available at github.com/matt4biz/go-gae-example; the examples are similar to what I use for the profiling segment of my class (th-cam.com/video/MDB2x1Di5uM/w-d-xo.html).
Slides at: github.com/matt4biz/go-class-slides/blob/trunk/gobridge/gdn-2103-gae-slides.pdf
มุมมอง: 3 079
วีดีโอ
Go Class: 13 Regular Expressions & Search
มุมมอง 6K3 ปีที่แล้ว
Bonus! I've added a segment that was not part of the original class in which I talk about Go's regular expression (regex) support and some of the gotchas of using regexes (or package "regexp"). Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md See also golang.org/pkg/regexp/syntax/ and github.com/google/re2/wiki/Syntax Russ Cox has some articles at swtch.com/~rsc/reg...
Go Class: 43 Parting Thoughts
มุมมอง 3.4K3 ปีที่แล้ว
This is the wrap-up for the Go class with some parting thoughts, a reference to some resources for more learning, and one more thing ... Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md
Go Class: 42 Parametric Polymorphism
มุมมอง 4.7K3 ปีที่แล้ว
In this segment I'll talk a little about the future of Go, which will now include generics; I'll give a couple examples, demo them in the playground, and discuss when generics should (and shouldn't) be used. Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md
Go Class: 41 Building Go Programs
มุมมอง 4.6K3 ปีที่แล้ว
In this section I'll discuss how to use go build, particularly to make a "pure" Go program; how to version your executable; some things about project layout and Makefiles; and how to build in Docker. I have a complete demo on building & publishing a container and then running it on another machine, so you get a Docker lesson for free :-) UPDATE: use `git describe tags long dirty always` to get ...
Go Class: 40 Go Modules
มุมมอง 4.1K3 ปีที่แล้ว
This is a short introduction to Go modules and dependency management, enough for day-to-day work. It reflects Go 1.15; there are some changes in Go 1.16 (released after the recording was made) that you should note; see the release notes at golang.org/doc/go1.16#tools. I briefly mention one: that go build will no longer download modules by default; you must use go get or go mod tidy. Slides at: ...
Go Class: 39 Code Coverage
มุมมอง 2.8K3 ปีที่แล้ว
This segment shows how to use "go tool cover" to measure and visualize code coverage, with an example where I improve a unit test to increase coverage. Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md
Go Class: 38 Testing
มุมมอง 3.8K3 ปีที่แล้ว
In this segment I'll circle back to Go's testing package and then get up on a soap box and say a few words about testing in general. Warning: contains informed opinions! Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md
Go Class: 37 Static Analysis
มุมมอง 2.5K3 ปีที่แล้ว
This segment describes (and recommends!) the available static analysis tools and how to enable them. Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md
Go Class: 36 Profiling
มุมมอง 5K3 ปีที่แล้ว
In this segment I'll show how to use pprof to find goroutine leaks and to optimize CPU usage. I'll also give a quick demonstration of using metrics (Prometheus, in this case) as a debugging tool. Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md Code at: github.com/matt4biz/go-class-profile
Go Class: 35 Benchmarking
มุมมอง 4K4 ปีที่แล้ว
I this segment I demonstrate Go's benchmarking tools and run benchmarks to show some of the issues I mentioned in the previous segment on mechanical sympathy. Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md Code at: github.com/matt4biz/go-class-bench (I don't recommend trying to run benchmarks on repl.it)
Go Class: 34 Mechanical Sympathy
มุมมอง 6K4 ปีที่แล้ว
Mechanical sympathy is about building programs that work with the machine rather than against it. In this segment I describe what it is, why we care, and how Go helps you build efficient programs, and offer a few opinions also. Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md
Go Class: 33 Reflection
มุมมอง 9K4 ปีที่แล้ว
We look at Go's reflection feature, including type assertions and switch-on-type, and a couple examples involving JSON, including a custom JSON unmarshal method. Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md Code at: github.com/matt4biz/go-class-contains
Go Class: 32 Error Handling
มุมมอง 11K4 ปีที่แล้ว
This segment covers the creation of error types and the use of Go 1.13's error wrapping, as well as a discussion of why Go's error handling is based on returning error values and not throwing exceptions, and how best to handle errors of different kinds. Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md
Go Class: 31 Odds & Ends
มุมมอง 4K4 ปีที่แล้ว
In this segment I talk about some odds & ends in Go: enumerations, variable argument lists, bitwise operators (and short/signed integers), and to goto statement. Slides at: github.com/matt4biz/go-class-slides/blob/trunk/xmas-2020/README.md
Go Class: 29 Homework #5 (h/w #4 part deux)
มุมมอง 2.8K4 ปีที่แล้ว
Go Class: 29 Homework #5 (h/w #4 part deux)
Go Class: 28 Conventional Synchronization
มุมมอง 6K4 ปีที่แล้ว
Go Class: 28 Conventional Synchronization
Go Class: 27 Concurrent File Processing
มุมมอง 11K4 ปีที่แล้ว
Go Class: 27 Concurrent File Processing
Go Class: 23 CSP, Goroutines, and Channels
มุมมอง 28K4 ปีที่แล้ว
Go Class: 23 CSP, Goroutines, and Channels
Go Class: 20 Interfaces & Methods in Detail
มุมมอง 10K4 ปีที่แล้ว
Go Class: 20 Interfaces & Methods in Detail
Thank you, this has been really helpful ❤
Just adding this comment for the people who have started this series. First: This is the best series on Go, and it's free. Second: It is almost 21 hours in total. If you watch and do the hands-on with Matt, it should take you more than a week (probably two weeks) to complete.
This is literally the art of Software Engineering!
Http sockets do not exist
Best hello world example I have ever seen awesome! I had no idea how you could make that so educational but you did.
This playlist is priceless
good explanation teacher Matt
Very different from the programming languages I am used to. Loving this course. Thank you, Matt!!
Learning Go from scratch, just read about Channels and goroutines. This video is really helpful to understand the details relevant for practical use. Nice job!
This is a piece of gold. Thank you for your amazing work
Really appreciate these quality content on go. Thank you Matt !
Idk why, but I find syntax confusing. I have 10+ years of experience in writing in JS, PHP, C++ and python. I though python is fucked up with its' syntax of inventing the wheel by trying to optimize everything. But then I found Go
This with benchmarking is like having x-ray vision
Returning to this video to let people know that the homework series are also neat, even as a viewer. If you don't want to write the "homework", treat it like a lecture because that's how he discusses the homework anyway. Each homework in the series builds on the topics discussed prior to it. Homework #4 and #5 especially are a nice little demonstration of taking naive read/write operations in a REST API (#4), and improving it to avoid race conditions using simple usage of mutexes (#5). He verifies the states of #4 and #5 code using the `-race` option. Please like this so people see immediately.
Definitely the best course of Go, Thank you Matt!
Finally I understood why it is named Closure. Best go class! Thanks Matt.
just want to say a thank you after completing your series. i am really grateful that you posted such content for everyone to see and benifit from. you presented it in a nice and kind way. Thank you Matt.
At 39:28, can't we just use & to get the address and then call ScaleBy on that?
For anyone using Go >=1.22, the behavior where the variable i captures the same location and prints the same value (e.g., 4) when a closure is called has been fixed in the latest versions. PS: Great explanation Matt, really grateful for these classes and your explanations
Thanks alot!! That's what I thought I tried it and the same code was giving me a different value.
Great video, thanks
This should be paid!
Was doing advent of code this year, decided to use go to learn it deeper and faced this very strange behaviour So basically never append to or modify values in slices that were derived from array/another slice…😅 Thank you for explanation!
Looking forward to new courses matt. thank you for your course...
Thank you! This is great course!
Great content! Thank you!
Great video!
starting my transition to cloud engineering with this series. Thanks
Amazing
when i run this code every things works fine not need to shadow i variable why ? package main import "fmt" func main() { s := make([]func(), 4) for i := 0; i < 4; i++ { s[i] = func() { fmt.Printf("%d -- %p ", i, &i) } } for i := 0; i < 4; i++ { s[i]() } } result is 0 -- 0xc000104040 1 -- 0xc000104048 2 -- 0xc000104050 3 -- 0xc000104058
Matt, your wealth of knowledge clearly shows when teaching. Amazing.
this content is free. this is worth paying for. even better than so called paid courses. I wish you make more courses on linux and systems programming in general, or is there somewhere I can purchase your courses.
This is an amazing course. Thanks so much!
"it's not to scale" lmao great stuff. Thanks for sharing
What are the obvious reasons for not writing software in Go? @ th-cam.com/users/clipUgkxd6EcsGOtqi-MQJNNp9YpQdJgO8-IXWWP?si=EQtE3c4vS2pvsdpd
Just wanted to mention that I can understand that GC is a thing, that makes it risky to write safety-critical systems while it's in-action. But it can be disabled. And apart from such a GC aspect, I wanna learn more! Like all the reasons. As far as I can see the type system is strong, though there's unsafe play around but still wanna grasp the entire idea as a whole pls.. @Matt @everyone
th-cam.com/video/MDB2x1Di5uM/w-d-xo.html Thats me most of the time im trying to code anything.
Invaluable source of knowledge about Golang and just programming in general. Thank you for such a great work you do.
Seeing your face besides the code is distracting
Man you teach so good!
either me finish this or this finish me
just finding these videos now cant wait to go through them
what i understand from this, someone should validate. If you are ever going to have any reason to slice an array.. you are better of creating a slice from the beginning and let go handle the underlying array.
I still dont understand the closed over here
thank you for the detailed lessons.
f*ck me, this is the best course I've watched so far on Go... and it's free. Thank you, sir.
this legend is inspiring a new generation of capable, competent and cracked Go developers!
Hi Matt. great videos. Thank you for posting and sharing them !! Note: @18:53 of slice examples z := a[0:1] you mention that z become a slice that points to first two elements of a. is it correct to say that as z will have only the first element from array a?
Sorry, but I think C or even c++ is way easier to understand and use
Sorry, but this course might not be for you 🤔
Array is immutable by nature , But can be mutated using a slice🥲. This concept kills me.
Hello Matt, I want to start with thanking you so much for the amazing content you are providing it have been very helpful for me. and second I was just wondering if GOMAXPROCS is kind of misleading with hyperthreading, as far as I know hyperthreading would be beneficial only in case multiple threads are requesting to use different execution units. however in our case when the scheduler create double the physical cores it still wouldn't get the expected parallel execution. what I mean is, for 8 physical cores processor that supports hyperthreading it would read it as 16, open 16 threads and expect 16 parallel goroutines to run in parallel however only 8 max would run which "feels" kind of misleading. would like to hear your opinion on that and thanks.
thanks, you really teach very well