Signals are one of Godot’s best tools for keeping scenes independent. Used carelessly, they can also hide the route an event takes through the game.
Name the event, not the reaction
health_changed travels better than update_health_bar. The first describes what happened; the second tells one particular listener what to do.
Keep connections close
I prefer connecting a signal where the receiving relationship is easiest to discover. A short comment is worthwhile when ownership is not obvious.
These small rules keep the event graph flexible without making it invisible.