Question: Reading about Chef [resources](https://docs.chef.io/resource.html), I note that all resources have a name. This name is often used as a default value for some argument of a given resource type; for instance, the `command` of an [`execute`](https://docs.chef.io/resource_execute.html) resource and the `path` of the [`directory`](https://docs.chef.io/resource_directory.html) resource default to the `name` if not explicitly specified. But besides that, what significance does the `name` have? I want to know this in order to decide how to name my resources.

Answer: 
No special significance other than the `name_property` shortcut you mentioned. Other than that, the name plus the type forms the key used for resource lookups (the `'template[/foo]'` string you see sometimes). That key needs to be unique within the current resource collection (usually global except inside providers/actions). Beyond that uniqueness requirements, you can pretty much do whatever you want.
Just to add that the name can also help (a lot!) when you're going through the logs of a chef run. Depending on how you run chef and what logs you have access to, you might just be able to see "resource\_type[resource\_name]", so it really helps to use more descriptive / verbose names to better explain what's going on, if it's not obvious.