Už dlho mi vŕta hlavou otázka prečo sú projekty generované slovenskými “hyper super cool” digitálnymi agentúrami a webovými štúdiami v drvivej väčšine také šmejdy.

Koľko z nich (tých štúdií a agentúr) dá “ruku do ohňa” za ten svoj projekt, ktorý práve dodalo?


Niekedy sa dostaneme do situácie kedy Model potrebuje informáciu (typicky z http requestu) ale on sám o sebe nevie túto informáciu získať. To vedie k situácii kde si niektorí z nás “šáhnu” tam kde Model nemá čo hľadať!

Ako sa to stane?

  • ak je používateľ prihlásený tak hodnotu $referral získame z databázy
  • v prípade, že používateľ nie je prihlásený tak je uložená v COOKIE
  • ak je daná COOKIE prázdna použijeme predvolenú hodnotu
class AdGenerator {  const DEFAULT_REFERRAL = 'default';  /** @var string */
private $referral;
public function __construct($referral) {
$this->referral = $referral;
}
public function generateRandomAd()…

Ako by to mohlo vyzerať keď sa nám nechce písať štýlom read-write model lebo ten zo sebou prináša kopu ďalších problémov a to projekt na ktorom pracujeme ešte nepotrebuje ale chceli by sme sa mu priblížiť.

Read-write model

Realita

namespace Project\Models;class Users {  public function getById($id);
public function getByEmail($email);
public function countActivated();
public function updateEmailById($id, $email);
public function delete($id);
public function deleteByEmail($email);
// ďalších xy…


Alebo ako mať “rýchlejší” Docker na OSX-e

Na začiatok

Prečo je cache problém?


Docker na OSX-e


Ako na testovanie pomocou Selenia v Docker kontaineroch

Selenium po starom

1. spustím Selenium server:

java -jar selenium-server-standalone-<version>.jar
phantomjs --webdriver '127.0.0.1:4444'

2. v konfigurácii testovacieho frameworku nastavím host a port serveru:

$host = 'http://localhost:4444/wd/hub';

3. a veselo testujem.

Selenium v Docker kontaineri

$ docker run -d --name=phantomjs -p 8910:8910 wernight/phantomjs phantomjs --webdriver=8910

Ako si postaviť HTTP proxy v kontainer bez použitia — link

Život v izolácii

$ docker run — name mysql -e MYSQL_ROOT_PASSWORD=root mysql$ docker run — link mysql:mysql nginx
$ docker run — name mysql -e MYSQL_ROOT_PASSWORD=root mysql $ docker run — name memcached memcached $ docker run — link mysql:mysql — link memcached:memcached nginx

Malá pomoc s docker-compose

Adam Štipák

head of development at diagnose.me and one of the owners of rekurzia.sk

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store