guidflowを使おう

業務フローの作成が終わったので、画面遷移図をつくります。
Excelだとつまらないので、guiflowというjsで作られたツールを使ってみたいと思います。

https://github.com/hirokidaichi/guiflow

railsの参考になったらしい。
https://signalvnoise.com/posts/1926-a-shorthand-for-designing-ui-flows

jsでinputされた値を読み込んで、if value == [] {}でdisplayしているのかな?

draw.ioで業務フローをつくっていこう

ざっくりDFLができたので、業務フロー作成に着手する

DFL -> 業務フロー -> 画面遷移図 -> トンマナ・デザイン基本方針 -> モックアップ -> WF・画面設計図 -> ビジュアルデザイン -> フロントコーディング -> 基本設計 -> 詳細設計 -> laravelコーディング と行きたい。

OK! Excelエンジニア一旦終了!
次は画面遷移図に行こう

webサイトと業務用システムのDFL(ディレクトリマップ)の違い

webサイトのDFLを作る場合は、階層、パスに加えて、title、diescription、H1がディレクトリマップに必ず入りますね。古い人(語弊があってすみません..)が作ると、そこにkeywordが入ります。
keywordなんてseo的に全く意味ないのにな~ とか思いながら、コツコツと重要ワードを拾っていくわけです。

一方で、業務用システム
こちらはtitle、descriptionなどseo要素は全く重視されません。そのため、DFLにtitle、descriptionは入りません。一方、必須は機能要素。う~ん、なるほど。

いずれにしても骨の折れる作業ですな~

laravelのロギング

ログの設定ファイルは config/logging.php
なるほど、設定ファイル系はconfig配下にありますな。

syslog, slackなどにログ出力ができる。syslogってなんだ?

'channels' => [
        'stack' => [
            'driver' => 'stack',
            'channels' => ['single'],
        ],

        'single' => [
            'driver' => 'single',
            'path' => storage_path('logs/laravel.log'),
            'level' => 'debug',
        ],

        'daily' => [
            'driver' => 'daily',
            'path' => storage_path('logs/laravel.log'),
            'level' => 'debug',
            'days' => 7,
        ],

        'slack' => [
            'driver' => 'slack',
            'url' => env('LOG_SLACK_WEBHOOK_URL'),
            'username' => 'Laravel Log',
            'emoji' => ':boom:',
            'level' => 'critical',
        ],

        'stderr' => [
            'driver' => 'monolog',
            'handler' => StreamHandler::class,
            'with' => [
                'stream' => 'php://stderr',
            ],
        ],

        'syslog' => [
            'driver' => 'syslog',
            'level' => 'debug',
        ],

        'errorlog' => [
            'driver' => 'errorlog',
            'level' => 'debug',
        ],
    ],

Syslog は、ログメッセージをIPネットワーク上で転送するための標準規格である。” Syslog” という用語は、その通信プロトコルを指すだけでなく、Syslog メッセージを送信するアプリケーションやライブラリに対しても使われる

とりあえず、slackに通知したいですね。あああああああ、全然追いつかねーな。むしろ離されている感が強い。。

エラー時に表示するページのカスタマイズ

/app/Exceptions/Handler.phpを編集する

Handler.phpの最下部

public function render($request, Exception $exception)
    {
        return parent::render($request, $exception);
    }

以下に変える。$e->getStatusCodeで判定する。
view(‘errors.403’)が上手くいかない

public function render($request, Exception $e){
        if($this->isHttpException($e)){
            if($e->getStatusCode() == 403){
                return response()->view('errors.403');
            }

            if($e->getStatusCode() == 404){
                return response()->view('errors.404');
            }
            return response()->view('errors.500')

        }

        return parent::render($request, $e);
    }

laravel5.2だからか。そりゃそうだ。

public function report(Exception $e)でレポートメールの送信もできるっぽい。。

laravel エラーハンドリング

config/app.php設定ファイルのdebug設定オプションで決定

これか?

'debug' => env('APP_DEBUG', false),

実働環境でこの値をtrueにしてしまうと、アプリケーションのエンドユーザーへ、セキュリティリスクになりえる設定情報を表示する

例えば、falseでcontroller未設定のページのリクエストをすると、

404が表示されます。

trueにします。
あれ、404のままだ。ん?404は404か。

システムエラー時は500のページ
存在しないURLにアクセスされた時は404のページ

laravelのキャッシュクリアコマンド

まず、サーバーを起動します。
[vagrant@localhost laravel]$ php artisan serve –host=192.168.35.10 –port=8000
Laravel development server started:
[Wed Oct 10 22:07:11 2018] 192.168.35.1:56161 [200]: /js/main.js
[Wed Oct 10 22:07:11 2018] 192.168.35.1:56160 [200]: /css/styles.css
[Wed Oct 10 22:07:14 2018] 192.168.35.1:56166 [200]: /favicon.ico
[Wed Oct 10 22:07:17 2018] 192.168.35.1:56168 [200]: /css/styles.css
[Wed Oct 10 22:07:17 2018] 192.168.35.1:56172 [200]: /favicon.ico

[vagrant@localhost laravel]$ php artisan cache:clear
Failed to clear cache. Make sure you have the appropriate permissions.

あれ?
git hub issueに上がってますね。
https://github.com/laravel/framework/issues/25451#issuecomment-424743418

ディレクトリを作成します。

Wow! すげ!
[vagrant@localhost laravel]$ php artisan cache:clear
Application cache cleared!

application以外でも、configuration, route, compiled viewもclearできます。
[vagrant@localhost laravel]$ php artisan config:clear
Configuration cache cleared!
[vagrant@localhost laravel]$ php artisan route:clear
Route cache cleared!
[vagrant@localhost laravel]$ php artisan view:clear
Compiled views cleared!

ドキュメントも読んでおきましょう。
https://readouble.com/laravel/5.6/ja/cache.html
redis, memcacheにも対応しているようです。

RDS マルチ AZ 配置

Multi-AZ DB インスタンスをプロビジョニングすると、Amazon RDS はプライマリ DB インスタンスを自動的に作成するのと同時に、異なるアベイラビリティーゾーン (AZ) にあるスタンバイインスタンスにデータを複製

インフラストラクチャ障害の場合、Amazon RDS はスタンバイ (Amazon Aurora の場合はリードレプリカ) に自動的にフェイルオーバーするので、フェイルオーバーが完了するとすぐにデータベースの動作を再開できる

なるほど、そういう意味か。

同一リージョン内の独立したロケーション
障害発生時は自動でフェイルオーバーが行われ、1,2分で完了します。つまり、サービスが止まる時間はこのフェイルオーバーが行われている間だけなのでとても短い時間で済む。