いつまでも寝てたい

いつまでも寝てたい人が書くブログ

else句を使わないという選択肢

※else句が悪だと言っている訳ではないです。

else句はとても便利ではあるけど、使いすぎると読みにくいし読む気も起きなくなる。
ので、ちょっと待って、それ本当にelse句使わないといけない?っていうお話です。

例えばこんなコード

function nomoney(){
  if(行動 == 'バイトする'){
    //正常な時の処理
  }else if(行動 == '現実逃避'){
    return '現実';
  }else if(行動 == '樹海に行く'){
    return 'お家';
  }
}


例はnomoney(お金が無い時)関数で「バイトをする」は「正常」なので「正常な時の処理」をさせる。
もし「現実逃避」と「樹海に行く」ならば、それはおかしい(異常)ので、
「現実逃避」なら「現実」、「樹海に行く」なら「お家」に返す関数です。

これはまだ3つなのでいいですが、もしelse句が続くとしたら....
考えるだけでも気持ちが悪くないでしょうか。

そこで知ってほしいのが「ガード節」です。
具体的には異常系の時は早いうちに返して正常系の物だけ処理しようと言う考え方です。

例をガード節を使い書き直すとこうなります。

function nomoney(){
  if(行動 == '現実逃避') return '現実';
  if(行動 == '樹海に行く') return 'お家';
  
  //正常な時の処理
}


どうでしょうか。
やってる事としては同じなのに、とてもスッキリ見やすくなったとは思いませんか?
この様にガード節をを用いる事でスッキリと書ける事が多々あります。

ただし、

function nomoney(){
  if(行動 == 'バイトする'){
    //正常な時の処理
  }else if(行動 == '正社員として働く'){
    //正常な時の処理
  }else if(行動 == '就活する'){
    //正常な時の処理
  }
}


お金が無い時に「バイトをする」「正社員として働く」「就活する」、どれも正しいですよね。
この様なウェイトが同じ(どれも正常系)の場合はガード節の考えに反するので用いるべきでは無いと言うのが一般的(だと思います)です。

以上、else使わない方がスッキリ書ける時があるよと言うお話でした。

2018年、今更になって数年間避けて来てたNode.jsを勉強してみたという話

node.jsの存在自体は数年前から知ってたけど、
javascript忍者の人にしか無理だろうと思ってずっと避けてました。

が、最近少し暇で特にしたい事も無いので勉強してみる事に。
思ってたよりも全然簡単であっけに取られました。

存在するページだったら表示して、それ以外は404ページを表示する簡易的なサーバ(?)くらいなら

main.js

'use strict';

const HTTP = require('http') 
    , INIT = require('init')
    , FILE = require('fs')
    , SERVER = HTTP.createServer()
    ;

SERVER.on('request',(request,response) => {
  const URL = require('addresser')(__dirname,request.url)
      , MIME = require('mime')(request.url)
      , STATUS = (FILE.existsSync(URL)) ? 200 : 404;
      ;

  response.statusCode = STATUS;
  response.setHeader('Content-Type',MIME);
  FILE.readFile(URL,(error,data) => {
    response.write(data);
    response.end();
  });

});

SERVER.listen(INIT.PORT,INIT.HOST);

たったのこれだけ。
requireしているinit addresser mimeも書いてはいるけど大した事は何もしてない。

socket.ioも一緒に使ってチャットを作ってみたがこれまた簡単にできた。
何事も挑戦してみらんといけもんやね。

Node.js難しそうだからという理由で敬遠してる人は一度勉強してみたらいかがでしょうか。