1
/
5

テック

Vitest のモック(vi.fn, vi.spyOn, vi.mock)の使い分けについて【株式会社ライトコード】

背景Vitest でテストを書く際、公式ドキュメントを見るとモックに関するユーティリティが多数存在し、最初はどれを使うべきか悩んでしまいます。この記事では、テストができれば良いという状態から、テストの目的に合わせたモックユーティリティの使い分けができるような状態へのステップアップを目指します。ゴールvi.fn,vi.spyOn,vi.mockのそれぞれの特徴と適した用途を理解する実際のサンプルコードを通して、実践的な使い分け方や注意点を学ぶ環境vitest: 3.0.8jsdom: 26.0.0用語の確認ソフトウェアテストで用いる一般的なモックに関する用語の定義を確認します。スタブ: 関...

Text Mesh Proで日本語を表示させてみた【株式会社ライトコード】

はじめにこんにちは!今回は、Text Mesh Proで日本語を表示する方法についてブログにまとめました。Text Mesh Proで日本語を設定すると、文字が四角(いわゆるtofu)になってしまう問題に直面するため、今後Text Mesh Proで日本語を使用したい方の参考になれば幸いです!tofu問題とはtofu問題とは、Text Mesh Proで日本語を表示しようとした際に、文字が四角で表示されてしまう現象を指します。以下の画像は、Unityのシュミレーター画面でText Mesh Proに日本語を設定した際の例です。このように、入力した文字が四角になってしまいます。tofu問題...

【Next.js】Next.js 15で変更された機能と今後のキャッシュ【株式会社ライトコード】

はじめに2024/10/21にNext.js 15がリリースされました!今回のリリースでは、安定版(stable)から実験的機能(experimental)まで、様々な新しい機能が追加されています。全部を紹介したいところですが、今回は特に知っておきたい変更とおまけとして新しいキャッシュのモード(experimental)について見ていこうと思います。キャッシュの変更今までのCacheと一番変わった点は、Get リクエストのRoute Handler と Client Router Cacheのキャッシュがデフォルトでは無効になった点でしょう。特に考えなくても(勝手に?)パフォーマンスの良...

応用情報技術者試験のミニマムな勉強法【株式会社ライトコード】

はじめに今年も応用情報技術者試験がありましたね。私も1年前に受験したことを思い出したので、その時の勉強法について書いていきたいと思います。(一応ちゃんと合格しました)応用情報に挑戦したい、でも業務やその他諸々あって中々時間が取れない!と言う人も多いかと思います。そんな人に向けて、私が実践したミニマムな勉強法を紹介していこうと思います。目次応用情報の勉強方式午前試験の勉強法方午後試験の勉強法方試験でのペース配分応用情報の試験方式ミニマムな勉強時間で試験に挑むにあたって、闇雲に戦っては絶対に勝てません。まずは試験方式を把握するところから始めましょう。応用情報は筆記試験です。午前試験と午後試験...

社内の後輩エンジニア向けにワークショップを開いたら失敗した話【株式会社ライトコード】

社内の後輩エンジニア向けにワークショップを開いたら失敗した話をしますこんにちは、Androidエンジニアの江幡です。今回は直近で経験した良かれと思って勢いで計画したことの失敗談についてお話したいと思います。この話を通じて、少しでも皆さんの参考になれば幸いです。ワークショップを開くことになった経緯先日、社内の後輩モバイルエンジニア数人と雑談をしていた際、DI(DependencyInjection)の話題が出ました。雑談の時間では伝えきることができず、私の持っている知識をもっとしっかり後輩に伝えたほうが良いと感じたのがきっかけです。そして、手を動かしながら学ぶワークショップ形式なら、効果的...

Next.jsのParallel Routesを触ってみた【株式会社ライトコード】

はじめにこんにちは武田です。最近Next.jsに触れる機会があり色々調べていると、「Parallel Routes」という機能があり、面白いなと感じたので書かせていただきます。Parallell RoutesとはNext.js(App Router)のルーティング機能の1つで、フォルダ名に「@」を付けることでこのルーティングを利用することができます。この方法で作成されたセグメントは「スロット」と呼ばれ、ページに埋め込まれる部分を担うことになります。具体的には、スロットは親階層にあるレイアウトに組み込まれ、propsとして渡されるようになります。文字だけだとイメージしづらいので、以下を見て...

Rust/ActixWeb で データベース(SeaORM 利用)の準備【株式会社ライトコード】

はじめにRust のお勉強、前々回/前回の続きです。今回はデータベースの準備がメインとなります。今回の動作環境毎度の前回からの動作環境変更点。バージョン(括弧内は前回)Rust:1.81(1.78)actix-web:4.9.0(4.5.1)データベース接続言わずもがな。少々乱暴な解釈かもですが、アプリ/API は総じてデータベースのラッパーで、なので CRUD 操作してなんぼなんですよね。actix の公式サイトでは Diesel というクレートを利用して DB 操作例が記載されてました。Databases | Actix Webなのでそれ使ってみよー、と思ったですが下記一文(英語)が...

Auth.js v5に入門した感想【株式会社ライトコード】

はじめに初めまして。今年4月に新卒で入社いたしました櫻田と申します。今回はAuth.jsを用いて実際にモダンな認証機能を実装したのでその感想をまとめたいと思います。そもそもAuth.jsとは公式サイト : https://authjs.dev/getting-started複雑なWebアプリケーションの認証機能を簡単に実装するためのオープンソースライブラリです。主な特徴は以下の2つです。特徴1: ランタイムに依存しない!Auth.js (旧NextAuth.js) v5ベータパッケージをリリースし、最新バージョンのNext.jsとより簡単に統合できるようになっただけでなく、ランタイムに依...

【Next.js】rechartsでレーダーチャートを表示する際のTips【株式会社ライトコード】

rechartsとはreactでチャート表示が簡単にできるライブラリです。利用したバージョンrecharts: 2.12.7まずは普通に表示する公式サンプルがあるのでそれを参考に実装するだけです。とりあえずは以下のようなレーダーチャートを作成しました。これを元にTipsを紹介していきます!レーダーチャート周りの文字の表示を調整したい割と簡単にできそうな感じはありますが、けっこう面倒な実装が必要になります。hoge, fuga...の部分こちらの表示はPolarAngleAxisで対応が可能です。おおまかな変更はPolarAngleAxis自体に値を渡せば可能ですが、x,y軸をそれぞれ変更...

浮動小数点について調べてみた【株式会社ライトコード】

はじめにこんにちは!今回は結構ややこしい浮動小数点数について書こうと思います。普通に計算すると以下のようになります。0.1 + 0.2 = 0.3一方でだいたいのプログラミング言語で以下の計算をすると0.1 + 0.2 => 0.30000000000000004のように表示されます。今回はこのなぜ?についてなるべくわかりやすく説明したいと思います。少しでも理解が深まれば幸いです。コンピュータではどのように計算するかご存知のようにコンピュータはデータを2進数で扱います。4(10)=100(2)5(10)=101(2)100(2)+101(2)=1001(2)=9(10)それはコンピュータ...

Google Cloud Memorystoreで60倍のパフォーマンス向上を体験【株式会社ライトコード】

最近、Google Cloud Platform (GCP) が「GC」と呼ばれるようになっていることを知って、衝撃を受けてしまいました。GCといえば、「ゲーム○ューブ」が真っ先に浮かんできますよね。よく兄弟喧嘩で鈍器と化してました。さて、今回のブログでは、Google Cloudの「Memorystore」と呼ばれるサービスについて、速度向上体験をご紹介したいと思います。キャッシュ戦略の基礎知識: サービスを高速化する方法まず、Memorystoreについて触れる前に、キャッシュ戦略について確認しましょう。多くのウェブサービスは、レスポンスが早いとユーザーに喜ばれます。キャッシュ戦略は...

BigQueryのMaterialized Viewにパイプラインを移行したかった【株式会社ライトコード】

はじめに所属しているプロジェクトにて、稼働中のETLパイプラインの一部をマテリアライズドビューに置き換えることでコストの削減ができないか検討を行いました。現在はAirflowにてBigqueryInsertJobOperatorを使用してSQLを実行するパイプラインが存在しますが、増分更新にするにはひと手間かかるためほとんどが全件更新で実行されています。比較的シンプルなデータの正規化・標準化を行っているレイヤーのクエリをマテリアライズドビューに置き換えることができないかを試みました。結果として移行は断念したのですが、そこまでに行った調査・検討を書いていきます。移行対象のデータセットはオン...

[Flutter] integration testで発生しがちなつまづきと解決方法【株式会社ライトコード】

はじめに以前、以下の記事でflutter integration testの導入について紹介しました。[Flutter] integration test でiOS/Androidアプリのテストを自動化!(導入編)あれからMagicPodがついにFlutter対応したり…ということもありましたが、手元で手軽にテストができるFlutter integration testの魅力もあります!(MagicPodは、MagicPodクラウドのシュミレータで動くアプリファイルを出力しないといけないですし…)手軽とはいえどE2Eテスト、安定して動くように構築するには様々な課題があります。性質上、不具...

pandasに入門【株式会社ライトコード】

こんにちは!最近データエンジニア的なお仕事をしています。データの比較をするときなどにpandasを使っているのですが、雰囲気で使ってしまっている感が否めません。このままではいかん!!!ということで今回は、公式サイトのチュートリアルを使ってpandasにしっかりと入門していこうと思います!※本記事は筆者が上記公式のチュートリアルをやりながら勉強用にメモしたものなので、飛ばしている箇所や、誤りや不足がある可能性がございます。ご了承ください。 環境MacJupyterLab データの種類についてpandasを利用するには次のようにインポートをします。import pandas as pdpan...

【C# 9.0】Record 型 を実際に使ってみた気づき【株式会社ライトコード】

Record型を使ってみた気付きC# 9.0 からRecord型というものが追加され、 実際に使用してみたところ、”書き換え不可”という制約が良い方にも悪い方にも働いていると感じた。レコード型の詳しい説明は自分が以前書いたブログを見てもらいたい。【C# 9.0】Record 型 の使い方について良い点は書き換え不可なので、当然インスタンスを生成したときから変わらないため、データの状態がわかりやすい。しかし開発を進めると、データの一部を書き換えたいという要件がよく発生する。書き換え不可なので新しくインスタンスを生成することになるのだが、全てのプロパティを羅列するのが冗長になってしまう。//...

4,974Followers
289Posts

Spaces

Spaces

エンジニア初心者向け記事

注目のストーリー

ライトコード技術記事

社員の声

フリーランス応援