Solidity is very new and undergoes rapid changes every day. You should expect new best practices and bugs to be suggested/discovered every day, which improves the platform as a whole. There are some best practices and software engineering techniques in solidity that you can follow to write bug-free and optimized smart contracts for Ethereum. This recipe focuses on this topic.