Notas
1Trade-off é uma decisão onde o aumento de uma quantidade, qualidade ou propriedade vai decrescer outra e não há um cenário onde se ganhe nas duas frentes.↩
2regras da linguagem de programação para definir o conjunto de palavras (símbolos) permitidos e suas combinações.↩
3o WolframAlpha é excelente para testar procedimentos (e depois objetos/métodos) que envolvam matemática!↩
4Existe uma corrente a favor de primeiro criar o teste unitário e então implementar o código que cumpra o especificado. O nome desta técnica é Test-Driven Development (TDD, em português desenvolvimento guiado por testes). Para saber mais a respeito experimente essa leitura http://tdd.caelum.com.br/.↩
5C é uma linguagem procedimental criada em 1972 e usada até hoje (o ++ em C++ é uma analogia a um “incremento” da C). A maioria dos sistemas embarcados, núcleos de sistemas operacionais como Windows, Linux e Mac OS, por exemplo, são escritos em C ou C++.↩
6Eu sei que alguém pode dar um novo nome ao Gato, não vamos estragar o exemplo. Façamos assim, a cor do pêlo é constante. Quê? Se o Gato ficar velho ou cair o pêlo? Tá, tá, tu entendeste!↩
7Até é possível definir estado constante em JS e Python com algumas “manobras”, mas que deixam claro que não é um recurso “natural”.↩
8Os exemplo a seguir estarão na linguagem Java, e cabe apenas investigar se há e qual keyword está disponível para declarar uma propriedade constante na linguagem que pretendes programar.↩
9Tá, eu sei que tu podes encher a garrafa até transbordar e que passaria a capacidade nominal, mas, shhhh, não bugue o exemplo!!↩
10Trade-off é uma decisão onde o aumento de uma quantidade, qualidade ou propriedade vai decrescer outra e não há um cenário onde se ganhe nas duas frentes.↩
11Os quatro pilares da POO foram originalmente descritos no livro de Grady Booch Object Oriented Analysis and Design with Applications como: abstração, encapsulamento, modularidade e hierarquia.↩
12Ad hoc é uma expressão do latin que significa literalmente para isto, entendido melhor como algo para esta situação particular.↩
13Java é open-source, portando os códigos-fonte das classes padrão podem ser consultadas no repositório do Open JDK. Por exemplo, o código da classe Object está aqui https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/Object.java.↩