2021-01-01から1年間の記事一覧

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

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

ボーイスカウト・ルールが保守開発に役立った話

コードはどんどん汚くなっていく プロジェクトのスタート時にどれだけ入念に設計をしてコードを書き始めたとしても、プロジェクトの年数が経つにつれて、コードの状態は悪くなってきます。 新機能追加 既存仕様の変更 メンバーの入れ替わり リリース日が変更…

ターミナルのパイプの中にElixirの処理を挟む方法を思いついた

きっかけは突然に 弊社のインフラエンジニアの方がデプロイ作業の中でこんなようなperlの処理系をコマンドの中にパイプで渡しているのを発見しました👀 ls | tail -1 | perl -ne 'if (/release command failed/){print 1}else{print 0}' 処理の内容はともかく…

「なのでは」「ではないかと」って言い方やめてくれ

単純に不快 なんでわざわざ「なのでは」とか「ではないかと」っていう文章を送ってくるのか理解出来ません。 これが攻撃的な言い方に感じるのは自分だけでしょうか。日々、マウントをとってくるような人が使っているイメージがあります。 「なのではないでし…

Rubyのコードレビューでよく指摘すること

コードレビューはじめました 昨年の10月から勤務先企業で開発チームのリーダーになりました。元々はコードをガリガリ書くような業務をしていたのですが、ポジションが変わったため、業務の内容も変化しました。大きく変化した点としてコードをレビューしても…

TODOコメントってあんまり意味がないんじゃないか説

とりあえず書き込まれるTODO ある日のことです。新機能開発のためにコードを眺めていると該当箇所に対応するテストコードが全くないことに気づきました。 「TDDでやってるのになぁ」と思っていると、テストコードのファイルだけが作られていて、中にTODOコメ…

またブログを頑張るための振り返りと反省

サボりがちになったブログ 思えば、昨年には一週間に最低でも1記事。一昨年には何と一週間に2、3個の記事を書いていました。 時期としては大学の学部を卒業して新社会人としては働き始めた頃で決して、時間的に余裕があったわけではないはずです。さらに今と…

【Elixir】無名関数で気軽に再帰的にメッセージの送受信を実装する

Elixirでの並行処理 Elixirでは並行処理を行うためにアクターモデルに従ってプロセス間同士でメッセージを送受(メッセージパッシング)し合います。 アクターモデルとは並行処理を効率よく実装するための手法の一つです。Elixirにおいては、アクター(軽量プロ…

GoogleCloudStorageでファイル検索を簡単にする命名方法

あらすじ とあるAPIからのレスポンスの内容が、どうやら仕様書で共有されていたモノと中身が異なっているということで、どういうレスポンスが返ってきているのかを確認してほしいと言われました。とはいえ、本番環境では1時間に約10万回ものリクエストを送っ…

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

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