Skip to content

Instantly share code, notes, and snippets.

Avatar

Akihito Koriyama koriym

View GitHub Profile
@koriym
koriym / example_binding_auth_intercepter.php
Last active Nov 28, 2019
公開領域だけ @publicdomain アノテーションをつけてその他は認証するための束縛
View example_binding_auth_intercepter.php
<?php
public function configure()
{
$this->bindInterceptor(
$this->matcher->logicalAnd(
$this->matcher->logicalAnd(
$this->matcher->logicalNot(
$this->matcher->annotatedWith(PublicDomain::class)
),
@koriym
koriym / SqlTest.php
Created May 16, 2019
SQLテストテンプレート
View SqlTest.php
<?php
use Aura\Sql\ExtendedPdoInterface;
use BEAR\Package\AppInjector;
use Koriym\QueryLocator\QueryLocatorInterface;
use PHPUnit\Framework\TestCase;
use Ray\Di\InjectorInterface;
use Ray\Query\RowInterface;
/**
@koriym
koriym / v8js_install_error.txt
Created Mar 15, 2019
v8js_install_error.txt
View v8js_install_error.txt
AkiBook2016:v8js akihito$ ./configure --with-php-config=/usr/local/php5/bin/php-config --with-v8js=/usr/local/opt/v8\@3.15
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
View v8js_compile_error.md
sudo pecl install v8js
downloading v8js-2.1.0.tgz ...
Starting to download v8js-2.1.0.tgz (101,553 bytes)
.......................done: 101,553 bytes
28 source files, building
running: phpize
Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
View file0.php
return function (
string $context,
string $name,
string $ip,
int $port,
int $mode = SWOOLE_BASE,
int $sockType = SWOOLE_SOCK_TCP,
array $settings = ['worker_num' => 4]
) : int {
$http = new Server($ip, $port, $mode, $sockType);
@koriym
koriym / file0.txt
Created Dec 17, 2018
macOS MojaveでLiip PHPのインストール ref: https://qiita.com/koriym/items/7c1b42338586c495089f
View file0.txt
sudo apachectl stop`
sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null`
@koriym
koriym / file0.php
Created Dec 17, 2018
ディレクトリ内のファイルの消去 ref: https://qiita.com/koriym/items/b7e60f621b9a0a868d7f
View file0.php
array_map('unlink', glob("path/to/dir/*.php"));
@koriym
koriym / Day_of_the_Programmer.php
Created Sep 13, 2018
Happy Programmer's day !
View Day_of_the_Programmer.php
<?php
// @see https://en.wikipedia.org/wiki/Day_of_the_Programmer
if (date("z") + 1 === 256) {
echo "Happy Programmer's day !" . PHP_EOL;
}
@koriym
koriym / 問題解決の鍵はbounded context.md
Last active Aug 30, 2018
問題解決の鍵はbounded context
View 問題解決の鍵はbounded context.md
  1. bounded contextがあやふやな「悪いモノリス」と、契約のある「良いモノリス」とがある。
  2. 初期段階での性能差は低いが、前者はスケールの限界が早期に訪れ、後者は基本的には限界はほぼ無い。
  3. 前者の問題をマイクロサービスで解決しようとすると、分割された泥だんごができる。http://www.codingthearchitecture.com/2014/07/06/distributed_big_balls_of_mud.html
  4. m/sはReliabilityの問題を軽視してはいけない https://twitter.com/ircmaxell/status/1006631401603514368
  5. m/sはシステムを複雑にする。自動化やツールのための専門のスタッフが必要。 https://twitter.com/ircmaxell/status/908647840196513792
  6. 問題解決の鍵はbounded context。(=interface) これはm/sに優先する。
  7. HTTP APIにはmedia type / content-negotiation / json-schema (+hyper-scehma)などのhttp semanticsを。
  8. サービスのbounded contextを設計するのがAPIアーキテクト。示された「API構造」にシステムのbounded contextを設計して、ソフトウエア構造を与えるのが、ソフトウエアアーキテクト。
  9. APIはシステムのUI。APIアーキテクトはシステムUIデザイナー。