Live data from Hacker News

Ask HN: While developing, do you run all the dependent services on your machine?

news.ycombinator.com

11–16 of 16 posts

Re: Ask HN: While developing, do you run all the dependent services on your machine?

#12
On my personal machine? No, but for work we just pre-install all the software needed to run the project before a new hire gets their machine.

For the people who prefer to use personal computers, there's a variety of options:

1. Virtualization. Previously we used VMWare or VirtualBox, but now offer Docker installs that replicate what CI runs.

2. Following the installation documents. Our stack is complicated, but doesn't change very much so one can run a script to install everything on a standard nix that we support, or edit it to support their preferred configuration. People who have nonstandard nix boxes tend to know what they're doing when it comes to compiling from source.

3. Use the dev machine you're given as a server, and work on your personal remotely.

All have their pros and cons, but it seems to work out.

Re: Ask HN: While developing, do you run all the dependent services on your machine?

#13
post #2

Yes, mostly I do. And I have not yet needed Docker to do this, though many people have argued that this is what Docker is for. I tried to point out how empty that argument was in "Docker is the dangerous gamble which we will regret": http://www.smashcompany.com/technology/docker-is-a-dangerous... When I need to run multiple database, or want a database with a copy of production data, then sometimes we run that remote…

Any thoughts how to enforce consistent dev environment among the team mates?

Don't? I'm currently working on a Golang web app with a small team and we're lucky enough to be each working on separate modules that fulfill a predefined specification we drafted prior to starting a line of code. As long as each module fulfills the requirements we drafted, we don't care about each others dev environments, because go creates a binary.

Also: `go fmt` is incredible (and built in to literally every Golang environment). We used to work primarily in Node.js but since making the switch last year to Golang we've noticed an increase in code-review productivity. Everyone's code looks the same so we don't have to spend time worrying about dev environments.

Re: Ask HN: While developing, do you run all the dependent services on your machine?

#15

Earlier quoted context omitted.

> I have not seen that Docker actually makes that easy to do docker-compose up -d What’s not easy about that?

It's slow feedback loop when developing / testing / debugging. This of course depends on your tech stack, with dynamic language such as NodeJS it is actually quite good as you can just mount your code base to the container and when you edit files they are reloaded automatically. However if your application docker container requires compilation and you need to restart docker compose once you make changes to the codeba…

I was referring to dependencies that you don’t work on yourself. For example, if you’re a front-end dev and there’s a bunch of microservices you want to have running, you can start them all in one command and get on with your job. No need to wait for anyone to spin up environments, refresh databases, etc.

Re: Ask HN: While developing, do you run all the dependent services on your machine?

#16
post #8

Earlier quoted context omitted.

> I have not seen that Docker actually makes that easy to do docker-compose up -d What’s not easy about that?

Go here: http://www.smashcompany.com/technology/docker-protects-a-pro... And then scroll down to where you see this: UPDATE 2018-07-09 And read that Slack conversation. That is a real conversation that actually happened. We lost 3 days trying to fix that bug, which in the end was a complex interplay of the Docker cache and the way the Dockerfile was written. This is the sales pitch for Docker: docker-compose up -d Bu…

This issue isn’t specific to Docker. Your tags should always be immutable.
Post reply on HN