Skip to content

Instantly share code, notes, and snippets.

View joaorobertopb's full-sized avatar
💻
Coding

João Roberto P. Borges joaorobertopb

💻
Coding
View GitHub Profile
@joaorobertopb
joaorobertopb / ocp-solid-violate.php
Last active January 4, 2019 03:05
Exemplo em PHP da violação do princípio Aberto-Fechado ( Open-Closed ) do SOLID
<?php
class ContratoClt
{
public function salario()
{
//...
}
}
@joaorobertopb
joaorobertopb / srp-solid-functions-example.php
Created December 31, 2018 02:03
Princípio da responsabilidade única do SOLID sendo aplicando na refatoração de uma função.
<?php
//Ruim:
function emailClients(array $clients): void
{
foreach ($clients as $client) {
$clientRecord = $db->find($client);
if ($clientRecord->isActive()) {
email($client);
}
@joaorobertopb
joaorobertopb / srp-solid-refactor.php
Created December 31, 2018 01:34
Aplicação do princípio de responsabilidade única do SOLID.
<?php
class Order
{
public function calculateTotalSum(){/*...*/}
public function getItems(){/*...*/}
public function getItemCount(){/*...*/}
public function addItem($item){/*...*/}
public function deleteItem($item){/*...*/}
}
@joaorobertopb
joaorobertopb / srp-solid-violate.php
Created December 31, 2018 01:32
Violação do princípio de responsabilidade única - SOLID
<?php
class Order
{
public function calculateTotalSum(){/*...*/}
public function getItems(){/*...*/}
public function getItemCount(){/*...*/}
public function addItem($item){/*...*/}
public function deleteItem($item){/*...*/}
@joaorobertopb
joaorobertopb / clean-code_dont_use_flags_as_function_parameters.php
Created October 8, 2018 16:26
Evite o uso de flags como parâmetro! Porquê? porque o uso de flags indicam que essa função faz mais de uma coisa. Lembre-se, funções devem fazer apenas uma coisa!
<?php
//Ruim
function createFile(string $name, bool $temp = false): void
{
if ($temp) {
touch('./temp/'.$name);
} else {
touch($name);
}
@joaorobertopb
joaorobertopb / clean-code_native_functions.php
Last active October 5, 2018 01:18
Dê preferência para funções nativas da linguagem
<?php
/********** Ruim **********/
$nomeUsuarios = [];
foreach ($usuarios as $usuario) {
$nomeUsuarios[] = $usuario->nome;
}
return $nomeUsuarios;
@joaorobertopb
joaorobertopb / clean-code_comments3.php
Created October 5, 2018 01:09
Não use comentários para versionar o código!
<?php
private function deveExecutar()
{
$gruposAcesso = explode(',', $_SESSION['GRUPOSACESSO']);
/*
if (in_array(self::GRUPO_ADMINISTRADOR, $gruposAcesso)) {
return true;
}
@joaorobertopb
joaorobertopb / clean-code_comments2.php
Created October 5, 2018 01:08
Comentários não devem explicar o código
<?php
/*Ruim*/
//Nome não pode ser vazio nem nulo
if (!is_empty($nome) && !is_null($nome)) {
}
/*Bom*/
@joaorobertopb
joaorobertopb / clean-code_comments.php
Last active October 5, 2018 01:01
Não comente o óbvio! Evite comentários irrelevantes...
<?php
//Autentica usuário
$this->autenticar($usuario, $senha);
// método construtor
public function __construct()
{
}
<?php
//Ruim
if ($article->state === 'published') {
// ...
}
//Bom
if ($article->isPublished()) {