Defining function visibility is mandatory.
pure and view functions do not cost any gas.
Data location must be explicitely defined for all variables.
Storage is very expensive and must be used with caution.
Similar types should be grouped together in structures to lower gas cost.
Array and Mappings
Arrays created in storage can have a variable size, arrays created in memory must have a fixed size at instantiation.
Array can be read through by indexes, mappings cannot.
Constructors are optional, they are executed at contract creation.
Definition must be identical to source function.
Use _; to continue with the function after running modifier code.
Events are defined at contract root and emitted inside functions.
Solidity Cheat Sheet (DRAFT) by hsoudry
Solidity Language cheat sheet
This is a draft cheat sheet. It is a work in progress and is not finished yet.