iimon TECH BLOG

iimonエンジニアが得られた経験や知識を共有して世の中をイイモンにしていくためのブログです

目指せ!mockマスター!!!!!~jestのMockテストについて~

こんにちは。iimonでエンジニアをしている林と申します。 本記事はiimonアドベントカレンダ11日目の記事の続きで前回は基本のjestテストの方法を記載しましたが今回はその続きでmockテストについて記載していこうと思います。 mockの概要 mockとはソフトウェ…

SPAサイトをS3 + Cloudfrontにデプロイする方手順を解説する

はじめに こんにちは、インフラエンジニアのhogeです。 この記事では、AWSを使用してSPAアプリケーションを公開する手順を解説します。 はじめに 構成 使用しているサービスのざっくりとした説明 クライアントがアクセスし、レスポンスが返されるまでの流れ …

Nuxt2からReactに移行を決めた話

以下の理由でReactに移行を踏み切りました。 Nuxt3への移行とReactへの移行を比較したがNuxt3への移行コストが思った以上に高い 今後を考えた際の運用のし易さ(情報量の多さ、ライブラリ等)

列指向ストレージについて調べてみた

こんにちは、iimonでエンジニアをしている須藤です。 今回は、redshiftのdocを読んでいて、列指向ストレージという記述があり、行指向との違いが気になったので調べてみることにしました。 行指向と列指向(columnar)の比較 データの格納方式の違い(定義) デ…

シャローコピーとディープコピーの違い

はじめに 結論 オブジェクトのメモリ参照イメージ シャローコピー シャローコピーの使用方法 ディープコピー ディープコピーの使用方法 最後に 参考記事 はじめに こんにちは、株式会社iimonでエンジニアをしている中村です。 業務では、主にフロントエンド…

クラス継承とどう付き合えばよいかわからなくなったので、Goを書いてみた(Composition over inheritance)

はじめに iimonでエンジニアをしています。腰丸です。 突然ですが、Go言語がクラス継承をサポートしていないことをご存知でしょうか?(結構有名かもしれません) 言語として、意図的にクラス継承をサポートしていないって大丈夫なのか?という疑問もあります…

CSSの:has()疑似クラスの使い方

はじめに こんにちは。株式会社iimonでエンジニアをしている保田です。 今回は各ブラウザにサポートされたCSSの:has()疑似クラスについて解説をしていきます。 :has() :has()疑似クラスとは、セレクタ内に指定した要素が存在する場合にのみスタイルを適用す…

ターミナルでCSVを触ってみる

はじめに こんにちは。バックエンドエンジニアの木暮です。 前職では運用業務でサーバに入ってCUI環境で作業を行うことがありましたが、 現職はローカルでの開発業務がメインであまりそういったことを行う機会がありません。 しばらく触っていないと忘れてし…

iimonに入社して約1年半で取り組んだ主に技術面の事について

2022年5月にCTOとして入社してから約1年半、これまで取り組んで来たことを振り返ってみました!(もちろん僕だけで行った訳ではなくエンジニア全体で行った取り組みです) これまで整備されていなかったところを整備出来た事によってサービスの品質を上げた…

Elasticsearchについて

こんにちは、iimonのデッサンです。 本記事はiimonアドベントカレンダー25日目の記事となります。 メリークリスマス! 会社ではフロントエンドに挑戦させてもらっていますが、 関係のないElasticsearchについての記事になります。 Elasticserachとは 全文検…

JavaScriptでの小数点の計算で誤差が出る件

こんにちは、iimonの山根です。 本記事はiimonアドベントカレンダー24日目の記事となります。 クリぼっち確定です、喉を痛めたのが原因なので本当はクリぼっち回避できましたよ それでは本題に入ります。 背景 jsで10.12*10000が101199.99999999999になって…

VSCode おすすめ拡張機能と設定

こんにちは、iimonでフロントエンドエンジニアをしています。ほでぃーです。 本記事はiimonアドベントカレンダー23日目の記事となります。 はじめに 今回はフロントエンド開発をする上で、普段使用している拡張機能と設定を紹介します。 拡張機能 開発共通 …

MultipassでM1 Macに仮想環境を作ってみた

こんにちは。 iimonバックエンドエンジニアの木暮です。 最近はCounter-Strike2にハマっていてスキンまで買い始めました。 ちなみに本当に欲しいスキン*1はマーケットで5万円近くしたので諦めました。 自己紹介はこれくらいにして本題に移りたいと思います…

開発スピードを早めるDeveloperToolでのデバッグ

こんにちは、iimonフロントエンジニアのさいとーです。本記事はiimonアドベントカレンダー21日目の記事となります。 はじめに devtoolでデバッグをしてみる watch(監視) 条件付きブレークポイント Eventlistenerブレークポイント(click) Break on まとめ 最…

ecscheduleを触ってみる!(v0.11)

こんにちは、iimonでエンジニアをしています。須藤です。 本記事はiimonアドベントカレンダー20日目の記事となります。 業務中にbatch処理を追加する際、 サーバー側リポジトリのgithub actionsで、コンテナ実行コマンドの上書きと、batch job定義の登録をし…

ReactとWebAPIを取得して画面表示してみよう!!

こんにちは~~~~☆:.。. o(≧▽≦)o .。.:☆ 株式会社iimonでエンジニアをしている「マウンテンぴー」です!!!! 本記事は株式会社iimonアドベントカレンダー19日目です! 今回は「React」+「WebAPI」に関して調べてみました!! いちばんの目的は画像検索アプリ…

Django Adminでフィルター機能(SimpleListFilter)をAND検索にカスタマイズする方法について

こんにちは、iimonでサーバーサイドエンジニアをしています。hoge1です。 本記事はiimonアドベントカレンダー18日目の記事となります。 はじめに デフォルトだと検索はどうなる? AND検索ってこれでいけんじゃねぇ? 実際にAND検索を行った実装方法 最後に …

Django Ninjaを使ったDjangoのディレクトリ構成を考えたい

こんにちは、iimonでサーバーサイドエンジニアをしています。腰丸です。 本記事はiimonアドベントカレンダー17日目の記事となります。 はじめに iimonでは、主に「Django + DRF」を使ってAPIサーバーの実装をしています。DRF自体は高機能で、便利なライブラ…

CloudFrontのログを使って機械学習で異常検知を試してみた

こんにちは、CTOの森です。 本記事はiimonアドベントカレンダー16日目の記事となります。 普段機械学習を使うことは無いのですが、勉強も兼ねてCloudFrontのログを機械学習させてみたらどうなるのか試してみました。 検証した環境 ログデータの形式 使用した…

IndexedDBの基本を学ぶ

はじめに こんにちは!株式会社iimonでフロントエンドエンジニアをしている「みよちゃん」です! 本記事は株式会社iimonアドベントカレンダー15日目です! 弊社では不動産仲介業者向けのサービスを開発しています。 私が所属しているチームでは、chromeの拡…

React-three-fiberを使ってみた!

React-three-fiber セットアップ 立方体 Canvas mesh boxGeometry meshStandardMaterial 回る立方体 useFrame まとめ 参考 こんにちは。 アドベントカレンダー14日目! 担当のタクシです。 普段はフロントエンド中心の業務をしています。 アドベントカレンダ…

TypeScriptのジェネリクス型を使って型に柔軟性を持たせる

■はじめに ■ジェネリクス型とは? ■ジェネリクス関数を作る ■extendsで制約を付与したジェネリクス型 ■keyofで制約を付与したジェネリクス型 ■ジェネリクスクラスを作る ■ユーティリティのジェネリクス型 ◆Required < Type > ◆Readonly< Type > ◆Pick< Type,…

入門編: k6を触ってみる

こんにちは、インフラエンジニアのhogeです。本記事はiimonアドベントカレンダー12日目の記事となります。今回は負荷テストツールのk6に入門してみたので、記事にしてみようと思います。 k6を触ろうと思ったモチベーション 負荷テストツールを探していました…

jest基礎とテスト戦略

はじめに こんにちは。iimonでエンジニアをしている林と申します。 本記事はiimonアドベントカレンダ11日目の記事となります。 今回テスト戦略やjestについて調べたので記事にしてみようと思います。 テスト戦略 今回挙げるテストの種類以外にも様々なテスト…

めざせ☆全問正解 正規表現マスター!

はじめに 動作確認環境 対象 出題形式 問題1 問題2 問題3 問題4 問題5 問題6 問題7 問題8 問題9 問題10 おわりに 参考 はじめに 初めまして、こんにちは! iimonに入社して5ヶ月目のなかむ〜です。 本記事はiimonアドベントカレンダー10日目の記事となります…

Lambda PowerToolsで便利にAPIを作ることができる(Swagger UIでAPIドキュメントも見れるよ)

こんにちは、インフラエンジニアのhogeです。本記事はiimonアドベントカレンダー9日目の記事となります。 はじめに Lambda Powertoolsとは? 導入方法 Lambda Powertoolsのイベントハンドラの機能 コード FlaskやFastAPIのようにデコレータでパスルーティン…

ロバストPython 型チェックを効果的に導入するための考え方

こんにちは、株式会社iimonでエンジニアをしている遠藤です。 本記事はアドベントカレンダー8日目の記事となります。 昨日に引き続きアドベントカレンダーを担当させていただきます。 はじめに 今回は既存のプロジェクトに型チェックを効果的に導入するため…

TypeScriptプロジェクトでディレクトリ単位のカプセル化をする

こんにちは、株式会社iimonでエンジニアをしている遠藤です。 本記事はアドベントカレンダー7日目の記事となります。 TypeScriptでは、ファイルがプロジェクト内でカプセル化できる最大の単位になります。 そのため、ファイルでexportされていない変数や関数…

reduce関数について

こんにちは、iimonでフロントエンドエンジニアをしている、ほでぃ〜です。 本記事はiimonアドベントカレンダー6日目の記事となります。 はじめに この記事では、reduce関数の基本的な使い方から実践的な使用例までを紹介します。 詳細な説明やドキュメントは…

URLのエンコードについて

こんにちは、iimonフロントエンジニアの齋藤です。 本記事はiimonアドベントカレンダー5日目の記事となります。 はじめに URLエンコードとはなにか エンコードはしないといけないのか エンコードの手法について encodeURI encodeURIComponent URLSearchParam…