iimon TECH BLOG

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

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

TypeScriptでよく見る「?」「!」について調べてみた

□はじめに こんにちは!株式会社iimonでフロントエンドエンジニアを担当している「奥島さん」です! 今回は新機能追加やバグ修正の際に、非nullアサーション(!)とオプショナルチェイニング(?)の使い方に確信が持てなかったため、正しく使うために改めて…

「リファクタリング(第2版): 既存のコードを安全に改善する」を読んで

■ 前書き ■ リファクタリングとは? ■ なぜリファクタリングを行うのか? 【 実際に体験した問題点 】 【 リファクタリングのメリット 4つ 】 【 気をつけること 】 ■ 練習問題 1 ■ 練習問題 2 ■ 練習問題 3 ■ 感想 ■ 募集 ■ 参考 ■ 前書き こんにちは、…

まだESLintとPrettier使ってるの?(Biomeを試してみた!)

はじめに こんにちは! 株式会社iimonでエンジニアをしている「あめく」です。 今回は最近注目を集めてきてる?JavaScriptやTypeScript等で使用する静的解析とフォーマッターを備えたツール Biome を試してみたので紹介したいと思います! まず静的解析とは …

まだconstアサーション使ってないの?

□はじめに こんにちは!株式会社iimonでフロントエンドエンジニアを担当している「みよちゃん」です! 自分は普段の業務でTypeScriptを使用して自社プロダクトの機能追加やデバッグを行っております。新機能の追加や機能の拡張を実装するうえで、「変更する…

チームリーダーになって半年と少し経ったので振り返ってみた

はじめに そもそもリーダーの仕事って……何? メンバーコンディションの把握 チームで出た改善点の把握 とはいえチームの文化がわからん! チームで出た改善点の把握(本題) 振り返りフレームワークを用いて改善点を更に拾えるようにする 新規メンバーのアサ…

Pythonの型チェッカについてまとめる

はじめに そもそもPythonの型ヒントとは何か なぜ型チェッカが必要なのか mypy Pyre Pyright Pytype まとめ 参考文献 はじめに こんにちは! 株式会社iimonでエンジニアをしている遠藤です。 以前「ロバストPython 型チェックを効果的に導入するための考え方…

エラーハンドリングを書きたいあなたへ

はじめに エラーハンドリングとは エラーハンドリングの方式 エラーハンドリングの基本的なやり方 エラーハンドリングの動き(大域脱出) try~catchのメリット 非同期処理をtry~catchでエラーハンドリングしようとすると、、、 promiseでのエラーハンドリング …

モバイルアプリでソーシャルログインを実装

はじめに iimonでエンジニアをしています。腰丸です。 今回はソーシャルログインについて触れてみようと思います。 ソーシャルログインとは こういうやつです。 Googleとか、Facebookでログインできるよって画面があって、 ボタンを押すと、外部サービスのロ…

生成AIに触れてみよう

初めまして、エンジニアの井出です。 みなさん、生成AIに興味ありますか? 今回は、AWSの「PartyRock」を使って、作成AIに触れてみようと思います! PartyRockの概要 PartyRockとは、AWSの生成AIのBedrockを基盤としたアプリを作成するプラットフォームです…

package.jsonにおけるセマンティックバージョンの指定方法について

■はじめに ■セマンティックバージョンとは何か? ■セマンティックバージョンの基礎知識 ◆パッチバージョン:patch ◆マイナーバージョン:minor ◆メジャーバージョン:major ■なぜセマンティックバージョンを使うのか? ■環境構築 ■パッケージ情報を調べてみ…

Reactでstorybookのインタラクションテストをやってみる

こんにちは、iimonの検索チームでフロントエンドエンジニアを担当している保田です。今回は、ReactにStorybookを導入して、インタラクションテストを試してみたことを記事にしました。 Storybookとは? Storybookは、UIコンポーネントのカタログ作成・テスト…

JavaScriptにおける配列の破壊的操作とその代替策

はじめに スプレッド構文 配列の破壊的メソッド 破壊的操作の回避策 スプレッド構文の落とし穴!? まとめ 参考文献・記事 はじめに こんにちは! 6月よりiimonでフロントエンドエンジニアを担当しているかねにわと申します! これまでの現場ではあまり…

イベントハンドラーについてしらべる

はじめに こんにちは。新卒でエンジニアをしています、木村と申します。以前イベントリスナーのコピーを行いたい場面があり、結論「この環境ではできない」という形にはなったのですが、その過程で調べたことをまとめました。イベントはフロントエンドの開発…

Firestore REST APIをTypeScriptで使ってみた

こんにちは。バックエンドエンジニアの木暮です。 今回はfirestoreのREST APIを使う機会がありましたので TypeScriptでの使用方法を紹介させていただきます! 私の読解力の低さのせいだとは思いますが、なかなか公式ドキュメントを読んでもすんなりと動かす…

Calm Technologyを知る

こんにちは。iimonで主にフロントエンドを担当しているたくしです。 まだまだ暑い日々が続いてますね、、引き続き皆様ご自愛くださいませ。 最近特に色々調べ物をしたり、読み物があったりと情報に触れる機会を今までよりも意識的に増やしているのですが、世…

jsメモリ管理について

はじめに メモリとは何か ライフサイクル ガベージコレクションの仕組み 参照カウントのガベージコレクション マークアンドスイープアルゴリズム メモリリークの対処法 最後に 参考資料 はじめに こんにちは、iimon新卒エンジニアのみやこしです、今回…

JSでソートを知る

はじめに iimon新卒エンジニアのかとうです 大学時代苦手だった配列のソートにもう一度向き合うため、ソートについてまとめた記事です。まず、ソートについて理解して、JavaScriptでの実装を試みます。 ここでは、基本的なソートアルゴリズムについて…

情報セキュリティと暗号技術の機密性の概要

こんにちは。iimonでエンジニアをしている林と申します。 今回は情報セキュリティについて調べた事を記事にしました。 全部記事にすると、とてつもない量になりますので分けていこうかなって思います。 今回は情報セキュリティと暗号技術の機密性の概要につ…

OpenSearch(ElasticSearch) + Lambdaで物件検索APIを作る

はじめに こんにちはiimonでエンジニアをしているhogeです。 最近ElasticSearchを勉強する機会がありました。アウトプットのためにElasticSearchに関する基礎的な知識を学びながら、OpenSearchとLambdaで物件検索APIを作ろうと思います。 AWSリソースは検証…

React hooksのuseStateについて調べてみた

■はじめに こんにちはiimonでフロントエンドエンジニアをしている「奥島」です! ■Reactとは Reactとは:UI 構成開発のためのライブラリだよ! コンポーネントを組み合わせてWEB画面を作っていくのが特徴だよ!! コンポーネント:Reactで画面に表示される部…

Difyを使ってみる

こんにちは、iimonでエンジニアをしている須藤です。 今回はRAGを試してみたいと思って調べていたところ、Difyというサービスを利用するとGUI上から簡単に構築できるらしいので、実際にRAGを利用したチャットボットを構築してみました Dify(ディファイ)の概…

React初心者向け!不動産広告を作成してみる

■はじめに ■Reactとは何か? ■環境構築 ◆リポジトリをCloneする ■解説 ◆Reactの初期化 ◆App.jsxの説明 ◆Form.jsxの説明 ◆Advertisement.jsxの説明 ◆Text.jsxの説明 ◆Pictures.jsxの説明 ■まとめ ■はじめに こんにちは! 株式会社iimonでフロントエンドを担当…

Chrome拡張機能をウェブストアへアップロードする際Firebase認証が原因でリジェクトされた話

はじめに なぜリジェクトされたのか 対応方法 つまずいたポイント (余談)パッケージ内のリモートでホストされるコードがなくなっているのか確認 まとめ はじめに こんにちは! 株式会社iimonでエンジニアをしている「あめく」です。 今回、Firebaseの認証パ…

集合論に学ぶJavaScriptのSet

はじめに こんにちはiimonでフロントエンドエンジニアをしている「みよちゃん」です! 普段業務でTypeScriptを使用していますが、皆さんもご存じのSetに関して、重複を削除する以外の用途で使用したことがなく、いまいちピンときていませんでした。 最近個人…

結局「質とスピード」、大事なのはどっちやねん?

はじめに 成功体験 もうひとつの成功体験 悩みの答え合わせ 保守性を高めるための読書ガイド 理解容易性 変更容易性 テスト容易性 宣伝コーナー はじめに こんにちは、8月からマネージャーにジョブチェンジ(?)したマツダです。 今日は敬愛する t-wada さ…

ローカル環境でDynamoDBを体験してみる

こんにちは! 株式会社iimonでエンジニアをしている遠藤です。 NoSQLデータベースってどんなタイプのものがあって、それぞれどういう特徴があるのか、概念的なことは何となくわかってきたような気がする(?)けど、実際にNoSQLのデータベースを使用して開発す…

えぇ!?Reactをchrome拡張機能に載せてもいいんですか!?

はじめに というか実現できるの? chrome拡張機能について マニフェスト サービスワーカー コンテンツスクリプト ツールバーアクション とりあえず先人の知恵を借りながら作ってみる。 カスタムについて まとめ 参考URL 宣伝コーナー はじめに 今年の夏も暑…

abstractが気になっている

はじめに abstract classとはなにか 抽象クラスを使うメリット 実際にabstractを使ってみる abstractの欠点 abstractとinterface 終わりに はじめに iimonでフロントエンジニアをしてますさいとうです。 今回は業務で見かけたabstract について気になったの…

Webアプリのデバッグのをどうやってしているのかという話

はじめに iimonでサーバーサイドエンジニアをしている腰丸です。皆さんはアプリケーションのデバッグをどのように行っているでしょうか? 今回は、簡単なログイン認証機能のコードをもとに、自分がどのような手順でデバッグ作業を行っているかをご紹介します…

Chrome拡張機能のwebRequestAPIを使って通信を確認してみる

■はじめに ■ChromeExtensionAPIとは何か? ■環境構築 ◆リポジトリをCloneする ◆package.jsonの説明 ◆webpack.config.jsの説明 ◆manifest.jsonの説明 ◆ChromeExtensionのインストール ■content_script.jsとbackground.jsが正しく動作しているか確認 ◆content_…