Lucian Ghinda Profile picture
Aug 28 6 tweets 2 min read Read on X
Consider a list of predicates for an object and the fact that there is a logical priority of considering them.
This is just an example, so please do not focus on the requirements themselves. Image
Left side contains a case statement without a case condition and the right side the same logic implemented with if/else.

Which one do you prefer and why? Image
Here is an alternative (right side) using guard clauses instead of if/else.
Which one do you prefer and why? Image
What if there are more statuses to take into consideration?

Which one do you prefer and why? Image
Somehow, for me, the case statement makes more sense when I take into consideration:

• the order in how the conditions are assessed

• it is a bit more open to add more statuses

• I somehow feel a bit uneasy after using 2 guard clauses (or early returns) in a method

But I like also the variant with guard clauses or the if/else.
@igor_alexandrov I know Rubcop has a rule about this which maybe it is on by default? But I was wondering why is that

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Lucian Ghinda

Lucian Ghinda Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @lucianghinda

Oct 2
Here is a list of community projects and directories try to show a list of companies and products using #Ruby or Ruby on #Rails.

If your company or project utilizes Ruby or any Ruby-based framework, consider adding it to these websites. Image
These efforts benefit the community by offering job seekers resources and inspiration on what can be built with Ruby and Ruby on Rails.

They are important because they show potential projects and companies for those considering learning Ruby. Image
1️⃣ usingrails.com is a project by @andycroll that contains organizations that use Ruby on Rails.

You can submit a website directly via the web interface at usingrails.com/submissions/new after creating a new account. Screenshot of https://usingrails.com homepage
Read 11 tweets
Aug 31
When learning #Ruby on #Rails, you might learn RSpec or Minitest, know their DSLs and how to use the them to write model, controller, or integration tests.

There is often a gap in learning how to write good test cases. To address this, I am excited to prelaunch a workshop
What does it mean to test a feature or a piece of code?
How do you know that the tests you wrote will actually catch bugs?
How many tests are enough? Image
I am launching the preview of a workshop that I am creating:
Good Enough Testing for #Ruby Developers

In this works I will focus on the following objectives Image
Read 9 tweets
Aug 30
I prefer writing detailed Git commit messages.

For Pull Requests or Merge Requests with a single commit, I use the commit message as the body of the request.

But using the simple git log command displays the commit message but has some padding/indentation: Output from executing:    git log -1
There is a way to fix this by specifying the format

git log -1 --pretty='format:%s%n%n%b' Image
Explanation for the format provided to git log Image
Read 6 tweets
Aug 22
So let's talk about #testing and #Ruby and specifically about test design.

I think this could be a good conversation to sparkle so I am going to start sharing more about what I think about testing with some focus on Ruby and Ruby on Rails.

I will start with testing guidelines
I think it is important when speaking about tests to think about 3 situations a developer can be when dealing with tests:

1️⃣ Verify requirements/document how it works

That is when writing the feature code and want to verify either (a) requirements and/or (b) document how it works.
2️⃣ When changing the existing logic
When you have a change request and you have to change the code and adapt the tests.

3️⃣ When debugging
When time passes, and you have a bug and want to fix it. The details of both the code and test are fuzzy and there can be time pressure
Read 7 tweets
Aug 9, 2023
Ruby is on the rise according to the Stack Overflow Developer Survey 2023! Here are some insights I extracted from survey results:
In the Most Popular Technology section, Ruby's adoption has grown to 6.23% in 2023, up from 6.05% in 2022. For professional developers, it's even higher at 6.94%
However, for those learning to code, Ruby adoption is slower, at 2.55% in 2023, only slightly up from 2.52% in 2022. The good news is that more beginner-friendly content is being created.
Read 9 tweets
Sep 7, 2022
Here is a simple and opinionated way to learn Ruby

I think learning Ruby has three parts:

1. Ruby Syntax
2. OOP + SOLID in Ruby
3. Idiomatic Ruby

What follows assumes you already know how to program in any other programming language.
1. Ruby Syntax:
First, read a bit about the Ruby syntax. You can find a short introduction to Ruby. (shameless plug) I tried to collect a lot of resources here, but you can also find some resources here. Do some small exercises if you feel like it just to get the syntax.
2. Watch some videos of Sandi Metz.
I recommend starting with SOLID Object-Oriented Design by Sandi Metz:

Some things might make sense, some not.
No worries, this is just a kind of preparation for your thinking process about how to code in Ruby.
Read 20 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(