信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

LIST OF ARTICLES

記事一覧

  • テクログ

    【E2Eテスト】codeceptjsをテスト環境に導入してから数ヶ月経過

    こんにちは。E2Eテストを導入して数ヶ月経過しました。画面が生きているかの確認や一定のアクションを実行できるかの確認程度のテストを常に実施しています。忘れた頃にテスト失敗通知がChatWorkに届きます。実施していなかった頃に比べると「検知」のスピードは格段に上がっていると感じます。このままテストと仲良くなりたいです。
  • テクログ

    【E2Eテスト】codeceptjsでシナリオが失敗したときのURLを取得する

    前提として1つのシナリオ内で1画面のテストをしている状況です。const event = require('codeceptjs').event; module.exports = function (options) {     event.dispatcher.on(event.test.failed, async function (test, error) {         let url = await test['steps'][0]['helper'].grabCurrentUrl();     }); } 変数urlに取得したいURLが入ります。これでテストが失敗したときに外部API経由でチャットツールに流して、エラーページのURLがすぐに確認する状況を作れます。参考記事https://codecept.io/hooks/#api
  • 画像:ブログサムネイル

    テクログ

    関数型プログラミングに触れるためにJavaScriptのreduceに触れてみる

     秘密裏に関数型を調べたりしているのですが、その一環でJavaScriptのreduce関数に触れてみました。 この関数はArray オブジェクトを1つにまとめます。以下のコードでは配列内にある数値を全て加算します。コード1const points = [50,5,200]; const reducer = (accumulator, current) => accumulator + current;   console.log(points.reduce(reducer)); 結果1 2つの変数 accumulator, current に入る値に最初は困惑しました。リファレンスを参照すると、累積値は、ひとつ前の戻り値、もしくは initialValue です引用元: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceとあります。「初期値が設定されていない状態で、ひとつ前の戻り値って・・・?」という感じでした。そこで少し書き直してログ出力すると以下のようになります。コード2const points = [50,5,200]; const reducer = function(accumulator, current){    console.log(accumulator, current);    return accumulator + current; }   points.reduce(reducer); 結果2 挙動を見ると、1回目のループでaccumulatorに最初の要素が入っていますね。「だとしたら、currentという変数名はおかしいのでは・・?」と思い、再びリファレンスを参照すると以下の注釈がありました。注: initialValue が指定されなかった場合は、reduce() は最初のインデックスを飛ばしてインデックス 1 から実行されます。initialValue が指定されていたらインデックス 0 から開始します。引用元: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce 初期値がない場合は0番目ではなく、1番目の要素から始まるようです。  reduce関数には4つの引数を取ることができますが、強そうなので仲良くなりたいものです。【参考記事】https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
  • 画像:ブログサムネイル

    テクログ

    個人的に考えるWEBサービス作成で技術的に重要だと思う要素はURLの扱いです

    URLを管理する機能が最も重要かなと思っています。 たとえば、アプリケーションのURLを管理するクラスさえあれば、パンくず、ページネーション、SQL生成の前処理、View切り替え、SEO対策、などの処理が複雑にならずに済むと感じるからです。 ルーティングの機能に各URLセグメントに名前付けが可能であれば、何かしらのID、何かしらの日付、などをセグメントの順番に関係せずに取得できますので、新たに使用するWEBフレームワークにそういった機能が無いかのチェックはしたいところです。  FuelPHPでは、routes.phpにこう書きます。正規表現を利用して数値のみを許可しています。 Controller で取得するときはこんな感じです。 debug::dumpで出力した画面です。 このブログはPythonでDjangoを使用して作成されていますが、上記と同様にセグメントに名前指定をしています。もしかすると、一般的なWEBフレームワークには備わっている機能なのかもしれません。
  • 画像:ブログサムネイル

    レビュー

    「セッション」っていう映画の感想

    「セッション」という映画をご存知でしょうか。私のもっとも大好きな映画の1つです。私がこの映画を3行でご紹介すると1.名門音楽大学に入学したドラマーが2.狂気じみた教師のもとで、3.学生が狂気じみていく様子を映していく映画です。 https://eiga.com/movie/80985/photo/ より引用 こういう狂気じみた執念を持つ主人公のお話が結構好きです。そこまでの執念を持てる対象が無いので憧れるているのかもしれません。 私は字幕でこの映画を鑑賞しました。狂気じみた教師こと「フレッチャー」の怒りの感情が顔、声、動きの全てで表現されています。全体的にダークな雰囲気で展開される映画にフレッチャーの怒りが際立って表現されていきます。終始フレッチャーの怒りに引き込まれますが、主人公の「ニーマン」の変化していく様子も見どころです 非常に面白い映画ですので、まだ見てない方には是非見て欲しい作品の1つです。
  • 画像:ブログサムネイル

    テクログ

    FuelPHPならvar_dump()よりDebug::dump()のが便利ですよ!

     PHPでデバッグするとき標準のvar_dump関数を使う場合があるかと思います。しかしxdebugをインストールしなければ綺麗に表示されないのでちょっと不便です。例えば下のような変数があったとして、 これをxdebug無しでvar_dumpするとこんな感じになります。 FuelPHPに標準で備わっているDebugクラスのdumpメソッドを使うと綺麗に表示されて見やすいです。使用するときは「Debug::dump($hoge)」で使用します。 どのファイルで何行目かも表示されていて見やすいですね。以外と知らない人は多いのではないのでしょうか。自分も先輩社員が使っているのを見て初めて存在を知りました。そう考えると便利なものを使っている様子を周りに見せつけるのも大切なことなのかもしれませんね。