見出し画像

Wiz Engineer 技術共有会 10月第1週

弊社では週に一度、1時間の技術共有会を行なっています。最近のTechなニュースや気になること、仕事の役に立ちそうな情報など、ざっくばらんに共有する会です。

条件分岐をなるべく避けよう

コードリーディングのストレスを軽減する

条件やループなどの制御のコードは、読み手が立ち止まらないように書く。
・条件式の引数の並び順は左側に「調査対象」で右側に「比較対象」
・if/elseブロックの並び順は否定形よりも肯定形を使う
・関数から早く返す
・ネストを浅くする

https://qiita.com/KNR109/items/3b14e2e8f89a33c0f959

関数から早く返す

早期returnできるということはメソッドを分解できている。
つまり本来のメソッドのみを簡潔に記入できるため、読み下しやすくなる。

ネストは浅くする

if分のネストが2階層になった途端一気に読みづらくなる。
その場合ひとつ前の話で出てきた早期returnなどのテクニックを使用してネストをフラットにできるようにしよう。

連想配列(ハッシュマップ)を使ってみる

「記事タイプ(文字列)を比較し、一致していた場合IDを返す」
そんなプログラムを書くとき、単純に何も考えないで書くと記事タイプの数だけif分が増えてしまう。
連想配列を使用すると以下のようにスッキリする

$article_types = [
    'news' => 1,
    'entertainment' => 2,
    'recipe' => 3
];

if (!array_key_exists($article->type, $article_types)){
    return null;
}

return $article_types[$article->type];

(引用:分岐アンチパターン:分岐された値を取得する場合のアンチパターン

バックエンドでも最低限覚えておいた方が良いapacheサーバーの仕組み

ディレクトリの意味

  • /proc サーバー情報

  • /etc パッケージ root権限じゃないとさわれない

  • /home ユーザーごとのホーム

  • /var ログ・ドキュメントルート root権限じゃないとさわれない(基本的には)

  • /tmp 一時ファイル(一定時間で消える)

  • apacheのログ置き場:/var/log/httpd/

access_log       error_log        ssl_access_log   ssl_error_log    ssl_request_log  

apacheの設定ファイル(ログはどこに生成するか、ドキュメントルートは?):/etc/httpd/conf/, /etc/httpd/conf.d/

この記事が気に入ったらサポートをしてみませんか?