Separting the development and production environment in GOLANG

Raju Adhikari picture Raju Adhikari · Aug 10, 2018 · Viewed 8.6k times · Source

I am new to GO programming. I came from nodejs. It was easy to separate the dev and prod mode in nodejs. By simply using this code.

if(process.env.NODE_ENV==="production"){
   server.listen(prod.port);
} 
else{
   server.listen(dev.port);
}

I basically want this convention to use in GO too. So how could I separate my dev and production code.

The reason why want this feature is

to separate the port my server is listening in dev and prod environment

If there is any technique to separate the port, It would work either.

P.S: I am using VScode as my code editor. And go-iris as a go server framework

Answer

Jonathan R picture Jonathan R · Aug 10, 2018

There are multiple ways you can achieve this in Go, but all of them do not handle this in the code itself.

  1. Use environment variables, eg os.Getenv
  2. Parse config files, eg some .yaml file
  3. Use flags, eg package flag

I think the most common solution is using flags but all do the same job. Usually you parse your flags in the main method.