So far, you have learned about the Solidity programming language's fundamentals, as well as object-oriented concepts in Solidity. To develop real-world smart contract applications, we have to understand the difference between safe and unsafe code practices. Once deployed, a smart contract is considered immutable. Therefore, we have to design smart contracts to be flexible, extensible, and maintainable. There are costs associated with running smart contracts on the Ethereum network, and so we have to develop cost-effective smart contracts.
In this section, we will discuss some advanced topics when it comes to programming Solidity smart contracts, including the following:
- Smart contract security
- Best practices and design patterns
- Writing upgradable smart contracts
- Economic consideration in developing smart contracts