andatki

andatki

Author of High Performance PostgreSQL for Rails

High Performance PostgreSQL for Rails: "Is this useful for non Rails users?"

Roshan asked:

Is this useful for non Rails users?

As the author, I’m biased, but I think so. While all of the application code examples are in Ruby and Active Record, there are many types of code or configuration throughout the book that aren’t.

For example, there’s SQL, shell scripts, SQL Query functions, PL/pgSQL procedures, and native database objects like constraints, views, or cursors that readers work with.

Don’t take it from me though. :grin: How about these responses from readers that work primarily with other technologies:

Robert T. wrote:

Excited to see this hit the market. While Rails is in the title, don’t be put off if you work with something else; the Rails ecosystem provides a wealth of developer tooling and Ruby is an easily accessible language for studying, and the information can definitely be adapted to different domains.

Dave C. said:

​"A book with this information would’ve allowed me to shortcut several years off of learning Postgres the hard way."

Haki B. wrote (after reading portions of the book):

“It’s amazing how much Django and rails resemble each other.”

My estimation is the book is about 75% PostgreSQL and about 25% Ruby on Rails.

My hope is that the book is useful even for programmers that work with other MVC full-stack web frameworks like Django (Python) or Laravel (PHP). Those frameworks will have ORMs with some overlap with Active Record, and when they connect to PostgreSQL, may have some of the same challenges around writing high performance queries.

Other topics like schema design, indexing, or maintenance, all have less to do with specific web frameworks or programming languages.

I also discussed with Drew Bragg on the podcast “Code and the Coding Coders who Code it Episode 27 - Andrew Atkinson” at the 33:50 mark:
https://www.listennotes.com/podcasts/code-and-the/episode-27-andrew-atkinson-0uJ_Yc82Npv/

While I originally considered positioning the book more broadly as something like: “PostgreSQL for Web Developers”, I didn’t think that would work out as well.

The main reason was because I wanted to have lots of concrete examples and exercises, inspired by my career experience from working with Ruby on Rails and PostgreSQL over the last decade.

To do that, the book uses more than 40 libraries from the broader ecosystem, as PostgreSQL extensions and Ruby gems. Most (not all) of the open source libraries that are included are there because I have firsthand experience using them in production. It felt more authentic to stick with what I knew best and have put into production and maintained myself. For libraries where that’s not the case, I try and call that out.

Hope that helps! Thanks for your interest!

book-high-performance-postgresql-for-rails

First Post!

andatki

andatki

Author of High Performance PostgreSQL for Rails

Where Next?

Popular Pragmatic Bookshelf topics Top

jimmykiang
This test is broken right out of the box… — FAIL: TestAgent (7.82s) agent_test.go:77: Error Trace: agent_test.go:77 agent_test.go:...
New
brianokken
Many tasks_proj/tests directories exist in chapters 2, 3, 5 that have tests that use the custom markers smoke and get, which are not decl...
New
mikecargal
Title: Hands-on Rust: question about get_component (page 295) (feel free to respond. “You dug you’re own hole… good luck”) I have somet...
New
s2k
Hi all, currently I wonder how the Tailwind colours work (or don’t work). For example, in app/views/layouts/application.html.erb I have...
New
mert
AWDWR 7, page 152, page 153: Hello everyone, I’m a little bit lost on the hotwire part. I didn’t fully understand it. On page 152 @rub...
New
tkhobbes
After some hassle, I was able to finally run bin/setup, now I have started the rails server but I get this error message right when I vis...
New
Keton
When running the program in chapter 8, “Implementing Combat”, the printout Health before attack was never printed so I assumed something ...
New
ggerico
I got this error when executing the plot files on macOS Ventura 13.0.1 with Python 3.10.8 and matplotlib 3.6.1: programming_ML/code/03_...
New
SlowburnAZ
Getting an error when installing the dependencies at the start of this chapter: could not compile dependency :exla, "mix compile" failed...
New
dachristenson
@mfazio23 Android Studio will not accept anything I do when trying to use the Transformations class, as described on pp. 140-141. Googl...
New

Other popular topics Top

PragmaticBookshelf
Take your Go skills to the next level by learning how to design, develop, and deploy a distributed service. Start from the bare essential...
New
PragmaticBookshelf
Learn from the award-winning programming series that inspired the Elixir language, and go on a step-by-step journey through the most impo...
New
DevotionGeo
I know that -t flag is used along with -i flag for getting an interactive shell. But I cannot digest what the man page for docker run com...
New
Exadra37
I am asking for any distro that only has the bare-bones to be able to get a shell in the server and then just install the packages as we ...
New
PragmaticBookshelf
Build highly interactive applications without ever leaving Elixir, the way the experts do. Let LiveView take care of performance, scalabi...
New
AstonJ
Biggest jackpot ever apparently! :upside_down_face: I don’t (usually) gamble/play the lottery, but working on a program to predict the...
New
mafinar
This is going to be a long an frequently posted thread. While talking to a friend of mine who has taken data structure and algorithm cou...
New
AstonJ
We’ve talked about his book briefly here but it is quickly becoming obsolete - so he’s decided to create a series of 7 podcasts, the firs...
New
AnfaengerAlex
Hello, I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New
AstonJ
This is a very quick guide, you just need to: Download LM Studio: https://lmstudio.ai/ Click on search Type DeepSeek, then select the o...
New

Sub Categories: