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

iPaul
page 37 ANTLRInputStream input = new ANTLRInputStream(is); as of ANTLR 4 .8 should be: CharStream stream = CharStreams.fromStream(i...
New
sdmoralesma
Title: Web Development with Clojure, Third Edition - migrations/create not working: p159 When I execute the command: user=> (create-...
New
jdufour
Hello! On page xix of the preface, it says there is a community forum "… for help if your’re stuck on one of the exercises in this book… ...
New
jeremyhuiskamp
Title: Web Development with Clojure, Third Edition, vB17.0 (p9) The create table guestbook syntax suggested doesn’t seem to be accepted ...
New
brian-m-ops
#book-python-testing-with-pytest-second-edition Hi. Thanks for writing the book. I am just learning so this might just of been an issue ...
New
jskubick
I think I might have found a problem involving SwitchCompat, thumbTint, and trackTint. As entered, the SwitchCompat changes color to hol...
New
jskubick
I found an issue in Chapter 7 regarding android:backgroundTint vs app:backgroundTint. How to replicate: load chapter-7 from zipfile i...
New
hazardco
On page 78 the following code appears: <%= link_to ‘Destroy’, product, class: ‘hover:underline’, method: :delete, data: { confirm...
New
jwandekoken
Book: Programming Phoenix LiveView, page 142 (157/378), file lib/pento_web/live/product_live/form_component.ex, in the function below: d...
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

Other popular topics Top

Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1045 20892 392
New
AstonJ
If it’s a mechanical keyboard, which switches do you have? Would you recommend it? Why? What will your next keyboard be? Pics always w...
New
ohm
Which, if any, games do you play? On what platform? I just bought (and completed) Minecraft Dungeons for my Nintendo Switch. Other than ...
New
AstonJ
poll poll Be sure to check out @Dusty’s article posted here: An Introduction to Alternative Keyboard Layouts It’s one of the best write-...
New
PragmaticBookshelf
Use WebRTC to build web applications that stream media and data in real time directly from one user to another, all in the browser. ...
New
PragmaticBookshelf
Build efficient applications that exploit the unique benefits of a pure functional language, learning from an engineer who uses Haskell t...
New
PragmaticBookshelf
Programming Ruby is the most complete book on Ruby, covering both the language itself and the standard library as well as commonly used t...
New
hilfordjames
There appears to have been an update that has changed the terminology for what has previously been known as the Taskbar Overflow - this h...
New
AstonJ
This is cool! DEEPSEEK-V3 ON M4 MAC: BLAZING FAST INFERENCE ON APPLE SILICON We just witnessed something incredible: the largest open-s...
New
Fl4m3Ph03n1x
Background Lately I am in a quest to find a good quality TTS ai generation tool to run locally in order to create audio for some videos I...
New

Sub Categories: