Matt KØDVB
Matt KØDVB
  • 45
  • 567 184
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
มุมมอง: 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: 30 Concurrency Gotchas
มุมมอง 5K4 ปีที่แล้ว
Go Class: 30 Concurrency Gotchas
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: 26 Channels in Detail
มุมมอง 15K4 ปีที่แล้ว
Go Class: 26 Channels in Detail
Go Class: 25 Context
มุมมอง 26K4 ปีที่แล้ว
Go Class: 25 Context
Go Class: 24 Select
มุมมอง 11K4 ปีที่แล้ว
Go Class: 24 Select
Go Class: 23 CSP, Goroutines, and Channels
มุมมอง 28K4 ปีที่แล้ว
Go Class: 23 CSP, Goroutines, and Channels
Go Class: 22 What is Concurrency?
มุมมอง 10K4 ปีที่แล้ว
Go Class: 22 What is Concurrency?
Go Class: 21 Homework #4
มุมมอง 4.7K4 ปีที่แล้ว
Go Class: 21 Homework #4
Go Class: 20 Interfaces & Methods in Detail
มุมมอง 10K4 ปีที่แล้ว
Go Class: 20 Interfaces & Methods in Detail
Go Class: 19 Composition
มุมมอง 11K4 ปีที่แล้ว
Go Class: 19 Composition
Go Class: 18 Methods and Interfaces
มุมมอง 15K4 ปีที่แล้ว
Go Class: 18 Methods and Interfaces
Go Class: 17 Go does OOP
มุมมอง 9K4 ปีที่แล้ว
Go Class: 17 Go does OOP
Go Class: 16 Homework #3
มุมมอง 6K4 ปีที่แล้ว
Go Class: 16 Homework #3

ความคิดเห็น

  • @RicardoCanastro
    @RicardoCanastro 19 ชั่วโมงที่ผ่านมา

    Thank you, this has been really helpful ❤

  • @__nitinkumar__
    @__nitinkumar__ 20 ชั่วโมงที่ผ่านมา

    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.

  • @ghostofalexandria8914
    @ghostofalexandria8914 3 วันที่ผ่านมา

    This is literally the art of Software Engineering!

  • @maxxim2934
    @maxxim2934 4 วันที่ผ่านมา

    Http sockets do not exist

  • @ThaldranIronpine
    @ThaldranIronpine 5 วันที่ผ่านมา

    Best hello world example I have ever seen awesome! I had no idea how you could make that so educational but you did.

  • @diegocmsantos
    @diegocmsantos 6 วันที่ผ่านมา

    This playlist is priceless

  • @pantanom18
    @pantanom18 9 วันที่ผ่านมา

    good explanation teacher Matt

  • @igordebastiani
    @igordebastiani 9 วันที่ผ่านมา

    Very different from the programming languages I am used to. Loving this course. Thank you, Matt!!

  • @AryanSinghal-z2s
    @AryanSinghal-z2s 10 วันที่ผ่านมา

    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!

  • @innu8462
    @innu8462 10 วันที่ผ่านมา

    This is a piece of gold. Thank you for your amazing work

  • @nitinjuyal7739
    @nitinjuyal7739 10 วันที่ผ่านมา

    Really appreciate these quality content on go. Thank you Matt !

  • @gaofan2856
    @gaofan2856 16 วันที่ผ่านมา

    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

  • @glennl9378
    @glennl9378 20 วันที่ผ่านมา

    This with benchmarking is like having x-ray vision

  • @glennl9378
    @glennl9378 21 วันที่ผ่านมา

    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.

  • @bsyc26
    @bsyc26 25 วันที่ผ่านมา

    Definitely the best course of Go, Thank you Matt!

  • @seraph9029
    @seraph9029 28 วันที่ผ่านมา

    Finally I understood why it is named Closure. Best go class! Thanks Matt.

  • @mahmoudel-hawawshy5198
    @mahmoudel-hawawshy5198 หลายเดือนก่อน

    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.

  • @tutudou
    @tutudou หลายเดือนก่อน

    At 39:28, can't we just use & to get the address and then call ScaleBy on that?

  • @amanshitta
    @amanshitta หลายเดือนก่อน

    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

    • @vasishthroy3258
      @vasishthroy3258 15 วันที่ผ่านมา

      Thanks alot!! That's what I thought I tried it and the same code was giving me a different value.

  • @r4c3c0nd1t1n
    @r4c3c0nd1t1n หลายเดือนก่อน

    Great video, thanks

  • @CoredusK
    @CoredusK หลายเดือนก่อน

    This should be paid!

  • @MixturaLife
    @MixturaLife หลายเดือนก่อน

    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!

  • @eillioniscreating
    @eillioniscreating หลายเดือนก่อน

    Looking forward to new courses matt. thank you for your course...

  • @fatihozgen2886
    @fatihozgen2886 หลายเดือนก่อน

    Thank you! This is great course!

  • @b99andla
    @b99andla 2 หลายเดือนก่อน

    Great content! Thank you!

  • @MattShort-f6v
    @MattShort-f6v 2 หลายเดือนก่อน

    Great video!

  • @Mr.x.187
    @Mr.x.187 2 หลายเดือนก่อน

    starting my transition to cloud engineering with this series. Thanks

  • @MattShort-f6v
    @MattShort-f6v 2 หลายเดือนก่อน

    Amazing

  • @ruhulbro
    @ruhulbro 2 หลายเดือนก่อน

    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

  • @MattShort-f6v
    @MattShort-f6v 2 หลายเดือนก่อน

    Matt, your wealth of knowledge clearly shows when teaching. Amazing.

  • @iamworstgamer
    @iamworstgamer 2 หลายเดือนก่อน

    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.

  • @MattShort-f6v
    @MattShort-f6v 2 หลายเดือนก่อน

    This is an amazing course. Thanks so much!

  • @azufendusgarendum6583
    @azufendusgarendum6583 2 หลายเดือนก่อน

    "it's not to scale" lmao great stuff. Thanks for sharing

  • @ahmad-saeed-goda
    @ahmad-saeed-goda 2 หลายเดือนก่อน

    What are the obvious reasons for not writing software in Go? @ th-cam.com/users/clipUgkxd6EcsGOtqi-MQJNNp9YpQdJgO8-IXWWP?si=EQtE3c4vS2pvsdpd

    • @ahmad-saeed-goda
      @ahmad-saeed-goda 2 หลายเดือนก่อน

      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

  • @ChopperTon
    @ChopperTon 2 หลายเดือนก่อน

    th-cam.com/video/MDB2x1Di5uM/w-d-xo.html Thats me most of the time im trying to code anything.

  • @MichaelKlimenko
    @MichaelKlimenko 2 หลายเดือนก่อน

    Invaluable source of knowledge about Golang and just programming in general. Thank you for such a great work you do.

  • @CristianNica-qp6os
    @CristianNica-qp6os 2 หลายเดือนก่อน

    Seeing your face besides the code is distracting

  • @dixztube
    @dixztube 3 หลายเดือนก่อน

    Man you teach so good!

  • @im_marwa_ayman
    @im_marwa_ayman 3 หลายเดือนก่อน

    either me finish this or this finish me

  • @loggerboy9325
    @loggerboy9325 3 หลายเดือนก่อน

    just finding these videos now cant wait to go through them

  • @plutack
    @plutack 3 หลายเดือนก่อน

    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.

  • @rubyciide5542
    @rubyciide5542 3 หลายเดือนก่อน

    I still dont understand the closed over here

  • @mohamedhabas7391
    @mohamedhabas7391 3 หลายเดือนก่อน

    thank you for the detailed lessons.

  • @slan7
    @slan7 3 หลายเดือนก่อน

    f*ck me, this is the best course I've watched so far on Go... and it's free. Thank you, sir.

  • @themannyzaur
    @themannyzaur 3 หลายเดือนก่อน

    this legend is inspiring a new generation of capable, competent and cracked Go developers!

  • @MalaPawar-o5i
    @MalaPawar-o5i 3 หลายเดือนก่อน

    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?

  • @MrVipulLal
    @MrVipulLal 3 หลายเดือนก่อน

    Sorry, but I think C or even c++ is way easier to understand and use

    • @amanshitta
      @amanshitta หลายเดือนก่อน

      Sorry, but this course might not be for you 🤔

  • @joeljose6608
    @joeljose6608 4 หลายเดือนก่อน

    Array is immutable by nature , But can be mutated using a slice🥲. This concept kills me.

  • @mahmoudhassan2944
    @mahmoudhassan2944 4 หลายเดือนก่อน

    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.

  • @mzi-code
    @mzi-code 4 หลายเดือนก่อน

    thanks, you really teach very well