やわらかテック

業務を通して得られた知見、知見。個人的に試してみたこと、興味のあることについてアウトプットしています。

JavaScript

【JavaScriptで解説】部分適用って何?カリー化との違いは?

部分適用とは何か。またよく混同されるカリー化という手法とは何か。部分適用とカリー化の説明をしながら、2つの違いを明確にしていきます。解説にはJavaScriptのサンプルコードを用いています。関数型言語の概念や知識がなくても理解できるように書きました…

特に意味のないデフォルト引数が保守性を低下させるので注意

機能追加の依頼がきた いつものように業務をこなしていると、スケジュール管理機能にとある機能追加の依頼が来ました。 内容としては複数のスケジュールを作成する関数で祝日での場合には、祝日に該当する日にはスケジュールを作成しないようにしたいとのこ…

【API設計】jsonを返す時はできる限りフィールドのkeyを統一してあげよう

APIの仕様書が送られてきた 外部連携させて頂く企業様から、新規に追加されるAPIの仕様書を頂きました。ユーザーが登録しているカテゴリの総数と、その内訳を取得することが出来るAPIだそうで、新たに追加されたとのことです。しかしながら、蓋を開けてみる…

JavaScriptで連番の配列を生成する4つの方法と速度比較

連番の生成に関して 意外と使用する頻度が高かったりします。他言語であればRange(eg: 1..10)のようなClassやデータ構造が定義されており、簡単に連番の配列を作成することが出来ます。しかし、JavaScript には連番の配列を簡単に生成するための機能が提供さ…

【JavaScriptサンプル有り】例外が発生した後の処理を高階関数にまかせる

これは便利 リファクタリング 既存のコードを安全に改善する(第2版)作者:MartinFowlerオーム社Amazon こちらの書籍で紹介されていた、リファクタリングの手法の1つで、例外が発生した後の処理って場面によって何をしたいか違うよねを叶えるた…

JavaScriptでのスマートな再帰関数の書き方【ECMAscript2015以降対応】

仕事でJavaScriptを書くことが多くなりました。以前より学んできた多くの関数型言語で一般的に使用されている再帰関数をJavaScriptでもスマートに書けないものかなと模索してみました。 「普通にforや、mapを使えば良いのでは?」という問いかけに対する答え…

JavaScriptでawait可能なintervalの書き方

setIntervalが割と使いにくい setIntervalはPromiseのオブジェクトではないため、awaitさせて実行終了を待つことが出来ません。例えば、3秒毎にカウントを1ずつ増やしていく処理をsetIntervalで実装をすると以下のようになります。 gist.github.com 10回分の…

【作って学ぶフロントエンド】ReactのuseStateの仕組みについて

Hooksについて Reactのバージョン16.8に導入されたHooksという機能によって、class componentを使用せずとも、functional component(以降: FCと記述)にstateを用意することが可能になりました。 FCにstateを用意するのは非常に簡単で以下の構文を記述するの…

【現役エンジニアが考察】はじめてのプログラミング言語習得のコツ。挫折しないためにはどう学ぶべきか

この記事を書く理由 個人的にElixirというプログラミング言語の勉強会を主催したり、セミナーに登壇する中で多くのプログラミングの初学者や、現在、学習をしているが、何をしていいのか分からないなど多くの相談を受けた。毎度、回答する中で「参考になりま…

docker-composeを使ってReact+phoenix+postgresの環境を構築する

概要 ほとんど個人的メモです 自身でよく構築することの多い以下の環境を毎度、調べながら作るのが面倒なのでまとめたって感じです React(front end) phoenix(backend, elixir web framework) postgres(open source database) 毎度悩むのが、dockerのimageを…

cloud-functionにFirebaseの値を取得して返すAPIをデプロイしてみた

前回 www.okb-shelf.work 前回の記事でcloud-functionを使って、元から記述されていたサンプルコードをデプロイするところまで触りました 今回はもう少し面白みのありそうなことをやってみたので記事にしました こちらの動画を元にやってきます やること clo…

【デプロイまでわずか10分】JaveScriptでcloud-functionのデプロイまでを体験した

何かサーバーレスたるものが流行ると聞く サーバーレスって何やねん APIなどがcallされた時に動き出して、処理が終了したらまたさよなら 常時サーバーが起動してない。呼ばれた時にパッと現れパッと消える インフラを作る必要なし。コード(関数)のみをデプロ…