DEV Community

Kevin Murphy for The Gnar Company

Posted on • Originally published at blog.thegnar.co

Gnarly Learnings from July

We love reading, watching, and listening to constantly update our skills and learn new perspectives. Here are some of the exciting pieces we learned from this month.

Ruby adds support for forwarding arguments to a method, along with the leading arguments

Argument forwarding allows you to...forward arguments passed in to one method into another. It was first introduced in Ruby 2.7, and further refined in 3.0. You can learn more about how it works with this introduction.

How to read TypeScript errors and not get mad?

Typescript errors are a lot of characters forced into a fairly small window. This guide helps focus your vision on the parts that matter, and helps you turn it from a loud wall of text to a meaningful clue with some simple context.

Demystifying cookies in Rails 6

There are many different ways Rails can add a cookie to a user's computer, and this article explains the available APIs to do so and how they work.

Building Aggregates in Elixir and PostgreSQL

While this example uses Elixir, the knowledge about optimistic and pessimistic locking for handling concurrent updates is generally applicable.

Why writing software is not like engineering

The "Engineering" question has loomed large over the craft of writing software for all of its existence, a very silent war for legitimacy amongst the classical engineering disciplines. This post takes a different tactic, seeking to transcend the dichotomy of legitimacy altogether.

Integration test on golang using Docker

This article demonstrates a clear, clean pattern for implementing integration tests in Go against a dependency running as a Compose service. The Dockerfile and Compose configuration can be easily extended for other use cases.

Estimating Large-scale Software Projects

Helpful advice on where to start, and where to go, when going through the notoriously difficult and inaccurate exercise of estimating software projects.

Moving From Tailwind To CSS Variables

If you introduce Tailwind, are you tied to Tailwind? Learn about what this author likes and doesn't like about the framework, and how they worked to have what they liked with as close to vanilla CSS as possible.

Feature Flags: Not Just for Big Teams or Big Features

Come for a discussion on utilizing caching for a performance boost, stay for a strategy of how to safely release such an improvement with confidence - not only to move forward, but backwards if needed.

How Teams Can Be More Supportive With Help From Hanlon’s Razor

Heard of Hanlon's Razor? Check out this article to learn more about how you can use this principle to facilitate communication and strengthen relationships across your team.

Contributors

Discussion (1)

Collapse
andyobtiva profile image
Andy Maleh

Thanks for sharing.

The article "Why writing software is not like engineering" seems to misunderstand what engineering is by getting too attached to its classical incarnations in other fields as opposed to freeing understanding from how it was executed and focusing instead on its essence; that is producing consumer-satisfying useful products within time, quality and budget constraints.

As such, there are no implications of "how" things are done in engineering, yet only "what". People who get caught up in the "how" dig themselves a big hole of wasted time pondering senseless matters instead of simply engineering successful outcomes for their customers. The latter is done without wasting time on the "how" yet focusing on the "what" (goals) above all else and freeing the "how" to happen in the best way possible (which can always evolve with the times and within different applications).

Everyone who is building something within quality, time, and budget constraints is engineering whether they admit it or not. Better master engineering then instead of trying to pretend it is not there.