This is a question about "best practise". I've taken over a project which I'm working on right now, and the custom modules this project comes with all access fields defined through the UI. In other words, the field names are "hard coded" in code - even though the fields are not defined in code. Is this alright?
I'm thinking that the code depends on data (in fields) which it has no guarantee will be there. Anyone could delete the fields at any time.
If you need to access fields from code, how do you make sure that the fields exist? Do you make sure that the modules define the field (programatically)?