2017年3月26日日曜日

schoo カスタマイズから学ぶPHP実践

Schooさんの授業を拝見してました。
「カスタマイズから学ぶPHP実践」


メモ

Plugins
  • BuddyPress
  • All in One SEO Pack
  • WooCommerce

laravel Auth
web.php Auth::routes();
--
Ruote::resource(...)
editなどのCRUDのメソッドを生成する

dd()
laravelのヘルパー関数

except()
laravel のセッションのうち、指定したパラメータ以外を取り出す
公式ドキュ

2017年3月11日土曜日

JAWS DAYS 2017 セッション1 「AWSでアプリ開発するなら知っておくべきこと」

初めてのJAWS DAYS参加です。
1発目のセッションは事前申し込みした「管理者に送る処方箋」ではなく、
「AWSでアプリ開発するなら知っておくべきこと」に出ました。


スケーラビリティ
水平・垂直

アーキテクチャのベストプラクティス
Design for failure
Build Security in Every Layer
Leverage Many Storage Options
Implement Elasticity
Think Parallel
Loose Coupling
Don't Fear Constraints

Everything fails, all the time.
by Wanner Vegl???

Design for failure
WebサーバとDBを分ける。
EC2とRDS

次にフェールオーバーや冗長性を考える
冗長構成にするなど。

Build Security in Every Layer
全てのレイヤーでセキュリティを確保

Leverage Many Storage Options
4種類のストレージを使い分けろ
  • S3
  • Glacier
  • EFS
  • EBS
4種類のDBを使い分けろ
  • RDS
  • Redshift
  • DynamoDB
  • ElastiCache

Implement Elasticity
動的な構成を前提とすること

Think Parallel
並列アーキテクチャを試すこと

Loose Coupling
疎結合
コンポーネントの中身を参照しないようにする

コンポーネントを結合した処理の場合、
キューにすることで一から再処理する必要はなくなる。

Asynchronous Integration
本当に即座にレスポンスが必要かを考える。
非同期処理のメリット
・アプリケーションがブロックされない(ユーザ体感の向上) ・よりスケーラブルになる

Don't Fear Constraints
スケールアップの他に、負荷分散やキャッシュも検討できる

The Twelve-Factor App
Herokuのエンジニアが公開したWebアプリ開発の方法論

Codebase
アプリトコードベースは1:1にしろ

Dependencies
特定の環境に依存しないようにする。
アプリと必要なモジュールを同梱してリリースする。

Config
環境によって異なる設定はOSレベルの環境変数によって注入されるべき

Backing Services
?

Build, Release, Run
上記3つのステージを厳密に区分すべき
各リリースに一意のIDを振るべき

Process
プロセス間共有をなくすべき
永続化するデータは外部領域にだす(DBなど)
ファイルやメモリはあくまでキャッシュとして扱い、永続化には用いないこと

Port binding
???

Dev/prod parity
本番環境と開発環境は一致させるべき
CI/CDは環境が同じであることが前提

ステートレスにするためのセッション情報の扱い
セッション情報はec2インスタンスで持たずに、
DynamoDBに外だしなどをする

DevOps
背景は、不確実性とスピード性が加速していること
Culture + Practice + Tool

Build → Test → Release Feadback ← ???

AWSのDocker管理サービス
ECS

自動ロールバック
失敗時の最も早いリカバリ

2017年2月28日火曜日

サムライズさんのJetBrains製品のハンズオンセミナー

サムライズさんのJetBrains製品のハンズオンセミナー


メモ

postfix completion

.var + tab → 変数に入れる

a + b.return + tab

.sout + tab

number &t; 18.if + tab

Emmet
dive.class + tab
script:src + tab

空気読む
山本さんのネーミングがセンスある
Alt + Enter

一つ前のペインに戻る
Control + tab
ファイルだけでなく、ツールウィンドゥを含む

閲覧履歴を開く
Cmd + e

パラメータ一覧を出す
Cmd + p

Shift + Cmd + Enter
Complete Current Statement
今の行の最後を終わらす。
");など

定義箇所にジャンプ
Cmd + b

Shift + f6
rename

リファクタリング
control + t

プロジェクトペインを開く
Cmd + 1

cmd + ↑ 探したい改装で ↓
そこでcmd + nでファイル作成もできる

cmd + n 画面で検索できる。
さらにその次の階層でも検索できる

Option + ↑↓
選択範囲の拡大・縮小

Opt + Cmd + L
コードフォーマット
選択して、範囲を絞ることができる。

PHP / Pythonには標準的なフォーマットがある
らしい。
あとは、Editor.configをプロジェクトルートに置く方法がある

SQLだとわかんない場所
Opt + Enter
Inject Language ...


RenameでAlterが書けてしまうので、
Read-Onlyをつけて置く。

SSHトンネルも掘れるよ。

Cmk + k
コミット
鍵マークを外すことで、diffの場所での変更が有効になる

Edit Json fragment
いい感じにエスケープしてくれる。

RegExpのテスト
1パターンだけはリアルタイムで判定する