DEV Community

hyper
hyper

Posted on β€’ Originally published at Medium on

Programmer Mindset

Lately, I re-read the book: The Pragmatic Programmer

The Pragmatic Programmer from Andy Hunt and Dave Thomas is a classic and the updated version is even better. The 20th Anniversary edition came out in 1999 and is 320 pages of great advice on how to effectively approach software development.

The Pragmatic Programmer, 20th Anniversary Edition

Andy and Dave wrote this seminal, classic book to help their clients create better software and rediscover the joy of coding. For over 20 years, the Pragmatic philosophy has spawned hundreds of our books, screencasts, audio books, and thousands of your careers and success stories. <b>New!<…

David Thomas, Andrew Hunt

The audible book is great to, I find myself listening to bits of it as I walk and it continuously re-enforces good practices and it keeps me in check over time. A large part of hyper63 is to help developers build applications using the principles found in this book.

  • Fight software rot
  • Learn continuously
  • Harness the power of basic tools
  • Test ruthlessly and effectively
  • Delight your users

To name a few.

Business Logic

The book does a great job in discussing business logic and separating your implementation details from your business logic. Thinking about your solutions in terms of a pipeline where information travels from A to B and leveraging functional concepts to apply rules and filters along the way. This was such an important mindset shift for me. Before, I was thinking in terms of solving specific problems in a logic flow with objects, which over specialized my solutions and lead me to create solutions that were difficult to maintain and manage. πŸ‘¨β€πŸ’Ό

Changing Mindset

By changing my mindset to think in terms of pipelines and flow, I was able to deconstruct my complex embedded logic of state and loops into a series of generic functions, like legos to apply to my special data set. Like a pipeline that takes input and transforms into new output. When working on solutions using this mindset, I am able to re-use so many generic functions, compose them together to create better results. And drastically reduce my specialized code surface area, which results in developer happiness. 😎

Easier to Test

When testing pipelines you control the flow, you control state because it is passed from one step to another, no risk of the outside world changing your logic. This is the advantage of working with pure functions, they create encapsulation by not knowing anything but their input and output. This results in reliable unit testing that is easy to create and provides a lot of value. πŸ› οΈ

Ship with confidence

By changing my mindset to isolate my business logic into transformation pipelines of pure re-usable functions and types, I am able to ship features with much more confidence that they will work and when they fail the signal/cause will be high. Because I am decreasing the surface area and isolating my business logic in these composable transformation pipelines that leverage well tested generic functions. I am currently using libraries like crocks and ramda to give me the generic tools to assemble my business logic. But these libraries or built on common principles found in the Fantasy Land spec. πŸš€

Crocks

Homeβ€Šβ€”β€ŠCrocks

A collection of well known Algebraic Data Types for your utter enjoyment.

Crocks

Ramda

https://ramdajs.com/

Summary

Ramda

Check out hyper63 a service framework that creates a boundary between common services and your business logic. https://hyper63.com

API Trace View

Struggling with slow API calls?

Dan Mindru walks through how he used Sentry's new Trace View feature to shave off 22.3 seconds from an API call.

Get a practical walkthrough of how to identify bottlenecks, split tasks into multiple parallel tasks, identify slow AI model calls, and more.

Read more β†’

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

πŸ‘‹ Kindness is contagious

Please leave a ❀️ or a friendly comment on this post if you found it helpful!

Okay