What are the proper programming "standards"?

I was researching an issue that I ran into the other day at work and while I was reading through solutions someone mentioned that the proper way to handle data in RPGLE was to use embedded SQL instead of chains, setLL / readE. Is using embedded SQL better than using chains? Does one have better performance over the other?

If that person was correct, what other programming standards should I be following and doing?