Git Product home page Git Product logo

go-in-5-minutes's Issues

Overview on context.Context

It's coming as a built-in for Go 1.7, it's really powerful, and it's time to talk about it as a serious piece of machinery that most or every Go developer should know about

BDD with Goconvey

You've already an issues for TableDrivenDevelopement (#40) and you created a video about Godebug. Would you also cover BDD (behavior-driven developement) with GoConvey?

What it makes so different is that the test are written in a human-like language and could be seen as some sort of documentation. Another big plus is GoConvey's powerful web-ui.

Change travis file to use its docker infrastructure

This means removing sudo: true from the .travis.yml file and executing hugo directly, instead of inside a docker container. removing sudo: true will enable travis to use its docker infrastructure, which executes faster

Go development using Docker

Hello Aaron, would it be possible for you to demonstrate how to develop Go apps using Docker? Since Docker registry includes Debian on the Golang image, perhaps you can show how a Go HTTP Server connects and request information from another Docker container that hosts a Postgres database. I believe covers the majority of business applications use case.
Let me know if I should elaborate a bit more!

Cheers to you,
Marcio

Go templates

not sure what specifically, but there's a lot to choose from here

background jobs

I am new to Go, but I have been doing background jobs for years using both Ruby/Rails and Python/Flask with supporting software such as Redis, Resque, Sidekiq, APScheduler, and Celery.
There just doesn't seem to be as much information for doing this in Go web apps.

Often in web apps there is a need to perform one or more tasks in the background, such as:

  • long running reports which are emailed to user(s)
  • creating PDF or Excel files
  • alerting on various database changes (usually emailed)

Almost always a part of any web app:

  • authenticating and authorizing users
  • user session security: form submission authenticity, cross site scripting, and so on
  • background job submission and scheduling (hourly, daily, weekly)

A screencast on any of the above would be great.

Basic auth and session handling

Hello @arschles,

what do you think about a screencast which covers the basic authentication of users and session handling in web applications? Implementing it is required in most of them.

Furthermore, you could build on top of episode 5 'Building Web Applications in Go'.

Function closures

Show examples of their use:

  • Creating http.Handlers
  • Removing global variables
  • Passing static configuration
  • Creating goroutines in a loop

Cover io.Reader and io.Writer

  • Common places they're used (os.File, http.ResponseWriter, etc...)
    • And use of them in the net/http library (such as bodies of requests, etc...)
  • Ways to stitch them together (e.g. io.LimitReader, io.TeeReader, etc...), emulating pipes in unix
  • Using the io/ioutil package to do various things

Debugging Go Code

Debugging Go code, going beyond fmt.Println(%+v, obj). GDB? Handling goroutines? Debugging concurrency issues?

net/http in depth.

  • Overview of the HTTP protocol
  • Internals of the net/http and how it works behind the scene
  • Advanced usage of net/http (Custom transport, round tripper, reverse proxy etc)

episode 4 semantics

Thanks for your awesome videos and source code!

So I'm trying to piece together how websockets work in your episode 4 tuturial. I notice in the ServeHTTP implementation for wsHandler, there is a line to defer removing the newly added connection. Presumably this is so the server doesn't leak resources.

What I'm confused about is when (exactly) the deferred statement gets executed in this case. And does the sync.WaitGroup come into play?

Can you shed some light on that (or point me in the right direction in some docs). Thanks!

The optional singleton pattern

Some packages (including some in the standard lib) do this thing where they have a bunch of top level funcs and then a type (usually a struct) that has the same funcs defined with as the receiver.

This is kinda like having a singleton class in other languages (basically a bucket of funcs), but in this case it's optional because you can also allocate a new instance of whatever the type is and get the same funcs only with the instance as the receiver. log has a good, clean example of what I'm talking about.

I heard Jack Lindamood name this the Optional Singleton pattern at a GoSF meetup.

Build an HTTP server with substance

I had a discussion with a Reddit user who thought a screencast on basics would be nice. It got me thinking about how I could do a screencast covering the basics but not going too basic (like covering how to install the go binary - which I don't want to do right now).

I want to do a screencast that shows how to build an HTTP server that's more than just a ping/pong or "hello world" server. Maybe an HTTP based key/value store.

SSH with golang

Seeing a SSH client/server example would be kind of useful.

Using sync.Cond

sync.Cond is pretty powerful. It combines a sync.Locker with the ability to wake up one or all waiting goroutines.

Cover a basic example of sync.Cond usage and hopefully there will also be time to show a heavier duty usage. Best idea I have right now is showing unicast and multicast usages (with Signal() and Broadcast(), respectively)

Websockets?

maybe a simple example on how and why to use websockets? not much more ideas around this yet...

deploying go project/api to production

Thanks for doing these videos. I have been following since almost day 1, but still relatively new to Go since I don't use it at work.

I would love to see a video on deploying to heroku and Google cloud. I have built small Api's in Go but but never deployed them to any service and would love to see what you use for this. #

How to secure a JSON API

A screencast about how to secure a JSON API. Further episodes could also cover rate throttling etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.