You absolutely can. Just change,
```elixir
users
|> send_email_with_money()
|> do_complex_thing_that_crashes()
```
into
```elixir
users = users
|> send_email_with_money()
require IEx; IEx.pry()```
I turned the `require IEx; IEx.pry()` into a snippet just to make life as easy as it is in Ruby land.
> - Phoenix is very bad at serving static files. It was a nightmare to import a new CSS template requiring to convert everything to work with bower first, or dump the files in the /priv directory to make it work.
Well, two sides to this. For one, Phoenix uses Webpack now(since finally the war to see what app bundler would win is over).
But even when you did use bower- you should've been able to just delete `phoenix.css`, copy your template in, and in `app.css` put `import "template_name_here"`.
> Well, two sides to this. For one, Phoenix uses Webpack now(since finally the war to see what app bundler would win is over).
We shouldn't force devs on Bower or Webpack. If I want to try out a new theme just bought on ThemeForest, it shouldn't take hours to make it compatible. Or to force to do the /priv/ hack that seems unelegant.
You could at any time have installed Phoenix without those. And what's so hackey about /priv/? That's where you can dump things that you know will be served. It's literally the intended purpose of the folder.
Then debugging a pipeline is as simple as dropping in IO.inspect between statements as it returns the content as well as printing.
thing
|> stage1
|> IO.inspect
|> stage2
Not that difficult!It takes forever if your assets are large. Just serving random static files shouldn't take long.
> IO.inspect
It's nothing like a real debugger.
Are you using the Erlang :debugger module?
The only "problem" I see is that we can't set a breakpoint on the first line of a Elixir pipeline, but to see the value of variable from that line we can set a breakpoint on the last line of the pipeline. To see why that happens we can try stepping through a pipeline with the debugger: First "executed" is the last line of the pipeline, then the second line, then third etc and it looks like for the debugger the first line of the pipeline never happened. I don't think this is a big problem to be honest.
Inspect is fine as in Elixir you don’t have any hidden state. Use the :debugger if you need more than this.
You do this for legacy systems. New systems should not use Bootstrap, there is much better out there.
Given you haven't even attempted to explain your reasoning, I can't possibly agree.
- Pipelines are hard to debug. You can’t just throw a debugger just before the line with the issue.
- Phoenix is very bad at serving static files. It was a nightmare to import a new CSS template requiring to convert everything to work with bower first, or dump the files in the /priv directory to make it work.