Princípios por trás do Manifesto Ágil
Nós seguimos estes princípios:
Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado.
Mudanças nos requisitos são bem-vindas,
| server { | |
| server_name domain.tld www.domain.tld; | |
| root /var/www/project/public; | |
| location / { | |
| # try to serve file directly, fallback to index.php | |
| try_files $uri /index.php$is_args$args; | |
| } | |
| # optionally disable falling back to PHP script for the asset directories; |
Princípios por trás do Manifesto Ágil
Nós seguimos estes princípios:
Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado.
Mudanças nos requisitos são bem-vindas,
video: https://youtu.be/8EXS9wR0VRc
A lean organization understands customer value and focuses its key processes to continuously increase it. The ultimate goal is to provide perfect value to the customer through a perfect value creation process that has zero waste.
To accomplish this, lean thinking changes the focus of management from optimizing separate technologies, assets, and vertical departments to optimizing the flow of products and services through entire value streams that flow horizontally across technologies, assets, and departments to customers.
Eliminating waste along entire value streams, instead of at isolated points, creates processes that need less human effort, less space, less capital, and less time to make products and services at far less costs and with much fewer defects, compared with traditional business systems. Companies are able to respond to changing customer desires with high variety, high quality, low cost, and with very fast throughput times. Also, information management becom
| # Backup | |
| docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql |
| # Restore | |
| cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE |
| // Exemplo em Java | |
| void enviaMsg(IMsgBasica msg){ | |
| // quem precisar chamar este método deve fornecer como | |
| // parâmetro algum objeto que implemente a | |
| // interface IMsgBasica | |
| } | |
| // Exemplo de objeto necessário | |
| class MsgOla implements IMsgBasica{ | |
| (…) | |
| } |
| // Exemplo em GO | |
| type IMsgBasica interface{ | |
| SetTexto(valor string) | |
| } | |
| // Exemplo de objeto | |
| type MsgOla struct{ | |
| (…) | |
| } | |
| // Ao definir este método MsgOla "se parece" com IMsgBasica | |
| // logo implementa a interface e poderá ser utilizada |
| // continuação, exemplo de uso de MsgOla | |
| func enviaMsg(msg IMsgBasica){ | |
| (…) | |
| } | |
| //criando objeto MsgOla | |
| msg := &MsgOla{} | |
| msg.SetTexto("Olá duck typing!") | |
| // msg é aceito pela interface IMsgBasica por duck typing | |
| enviaMsg(msg) |
| // Utilizador é obrigado a chamar com parametro *os.File | |
| func escreverInfo(destino *os.File){ | |
| (…) | |
| } |
| // Utilizador pode chamar passando qualquer objeto que implemente io.Writer, inclusive os.File | |
| func escreverInfo(destino io.Writer){ | |
| (…) | |
| } |