gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

他言語やる時のラーニングパターン フレームワーク変

新しいフレームワーク触るときの手出しの仕方のパターンを合わせて。

URLルーティング設定の確認と、場合によっては破り方

まぁ大体「書かなくてもデフォルトで動く」ケースが多いのですが(その場合は「まずHello World」へ)。
「明示的な記述が必要な場合」は、まず、1Page分でもよいので、調べて記述しておきましょう。
あと「特別なルール(このURLならこっちの処理にしたい、など)」は、調査コストとの兼ね合いになります…が、ヒネたものでなければある程度フォローされている可能性が高いので、適宜調査して実験して、実装しましょう*1

まずHello World

もっぱら「空っぽの処理無し」+「テンプレートファイルの位置と書式」の確認。
あとは「そもそもそのフレームワークのインストールがうまくいってるか?」の確認も込み。

設定ファイルの把握

以降随時チェックにはなると思うのですが(で、大抵の場合、デフォルトで動いたりもするのですが)。
とりあえず
デバッグモードの on/off
・DB設定周り
・時刻、言語(文字コード)周りの設定
・テンプレートエンジン周りの設定
あたりは最低限確認をしておくとよいです。

用語の確認

特に昨今の場合、MVCないしそれに近しいお名前はちょいちょいと見受けられる…のですが、特にCとM(中でもM)の意味が、言語によってフレームワークによって、下手すると本気で「別物ぢゃん!!」レベルで違うので。
新しいところに言ったら、一旦心の中のお茶碗を空っぽにして、「その言語/フレームワークにおけるこの用語の意味」を、知っている単語ほど、再確認しておきましょう。

テンプレートに変数を渡す

大体「単値」「配列(正確にはhash配列の配列) )」「if文の書式」の3つが別れば大体いけます。
あと、テンプレートに渡す変数がデフォルトで「HTMLエスケープされているかされていないか」の確認。
万が一「されていないがデフォルト」の場合、テンプレートエンジンなりviewクラスなりをラッピングして「デフォルトエスケープ」に倒せるように全力を尽くしましょう!!
デフォルトエスケープの場合、とりあえず「エスケープさせない設定」の方法を調べておきましょう。

DBハンドルの取得

大体の場合「どっかに設定するとどこかでとれる」と思われるので、その「どっか」を把握しましょう。

テーブル名、カラム名、その他制約の確認

特にORマッパー系を使うものの場合、テーブル名やカラム名に一定の制約やルールがあるものがあるので。
その辺は把握しておきましょう。
「そのルールの破り方」は、必要そうなら合わせて調査。ただ「ルールを破るコストが高い」可能性も結構あるので、「ルールに合うように仕様変更が可能」であれば、仕様変更しちゃったほうが、コスト安かもしれないですが。

単純なCRUDの作成

もうちょっと端的には「SQLの発行の仕方(またはORマッパーの使い方)」と、特にSQLを自力発行する場合は「プリペアドステートメント機構の使い方」のあたりをしっかりと把握しましょう。
「複数のやり方がある」可能性が高いので、とりあえず「今回想定しているやり方」だけ押さえておく、でもよいと思いますし、「フレームワークの推奨のやり方」を合わせて押さえておく、というのもよりよいかと思います。

Cookieの設定の仕方とセッション保持のやり方とセッションデータの持ち回りかた

とりあえずセッションは、些か狭義に「サーバ側で情報が保持できる仕組み」と定義しておきます。
「クライアントサイドに情報を持ってもらう方法としてのCookie」と「サーバサイドで情報を持たせるためのセッション」の、それぞれの書式を把握しましょう。

「管理画面」の作り方

業務系前提ですが、大抵「frontと管理画面」を作る事になると思うので。
一旦「そのフレームワークにおける、ポピュラーな管理画面の作り方」を把握しておきましょう。
いや「別プロジェクトで全部作る」でもよいのですが、frontと管理画面で「同じクラスとか関数とか設定値とか使いたい」シーンも多いので、それを「全部copyでやる」と些かしんどいのではないかなぁ、と思うので、その辺込みで「ちゃんとしてる」方法を見つけるとよいと思います。

「環境別」設定ファイルの作り方

開発、ステージング、本番で設定ファイルの「一部」が異なる(「一部」は一緒)だと思うので。
可能であれば「環境別のconfigと環境共通のconfig(場合によっては含む定数)」と、それらを「いかに環境別に振り分けるか」の手段を想定しておきましょう。
大体は「環境変数の値でif文でスイッチ」とか多いのですが、おいちゃんは「シンボリックリンクで振り分け」とかやるほうがよりお好みなので、まぁ適宜。



この辺までくると多分「普通のものなら」なんとか書けると思うので。
書けるようになってから「コントローラーのダイエット」とか「ちょっとこまっしゃくれたコード」とか「テクニカルなテクニシャン」とか、考えていくようにしましょう。


以上、もっそおおざっぱですが。

*1:ヒネたものの場合、調査コストと相談しましょう