1
/
5

エンジニア

『良いコード/悪いコードで学ぶ設計入門』を読んだので、感想をまとめてみる【株式会社ライトコード】

概要良いコード/悪いコードで学ぶ設計入門を読んだので、感想をまとめてみます。なぜ読んだか最近、業務でプルリクエストを見る機会が増えています。レビューするときは、仕様を満たしているかはもちろんのこと、読みやすく・変更しやすいコードか。という観点でも点検しています。経験則からこうした方が読みやすい・このような構造が好ましいということをレビューするよう努めてはいます。ですが、手探りでレビューしているところもあり、遠回りをしてしまってプルリクエストのコメントの数が数十以上に膨れ上がることもあります。もっと良いレビューをするために体系立てて知識を整理したいと思っていました。そんな折、ITエンジニア...

Gemini API の Search Grounding で Google 検索を自動化する【株式会社ライトコード】

はじめに仕事してると「同じような検索を何十回もやってるな...」ってこと、ありませんか?エンジニアに限らずいろんな業種であると思います。営業の人が架電リストの会社を1件ずつ調べて電話番号メモる経理の人がインボイス対応で法人番号を国税庁サイトで1社ずつ検索するマーケの人が競合企業の従業員数とか売上を調べまくる店舗の営業時間や住所をひたすらコピペするこういう「パターンは同じだけど、対象が違う検索」を何百回もやるの、正直しんどいですよね。最近はAIの発達がすごく、こういう作業はおおかた自動化できるようになっています。今回は、Gemini API とSearch Grounding を使って企業...

製造業は楽しい - 現場で戦う3年目エンジニアの学び【株式会社ライトコード】

はじめにこんにちはロンです。弊社のブログでは、プロジェクトで直面した技術的課題へのアプローチやキャッチアップの記録が多く公開されています。ただ、製造業の「現場目線」で学んだこと、苦労したことを綴った記事は意外と少ないと思っています。現在、製造現場の新事業立ち上げ案件に参画している私だからこそ書ける話があるのではないか。そう考え、このテーマを選びました。エンジニア3年目の壁「製造業は楽しい」とタイトルに掲げましたが、実際のところ大変なことの方が圧倒的に多いです。私はド文系出身でエンジニア3年目。そもそものドメイン知識が浅いという現実があります。具体的に何が今までで大変だったのか、振り返って...

2025年にNext.jsアプリケーションにtRPC + TanStack Queryを導入した話【株式会社ライトコード】

はじめにNext.js App Routerで React Server Componentや Server Functionが導入されましたが、クライアントサイドからデータを取得したい場面ではあまり向いておらず、従来のAjaxで対応した方が望ましいケースがあります。担当しているNext.jsプロジェクトでは、そのようなケースを以下のような構成で実装していました:API Routesによる REST API 作成クライアントコンポーネントにてuseEffect + axiosによるデータ取得この構成にはいくつかの課題がありました:従来の実装における課題型安全性の欠如: フロントエンドとバ...

🚀 Solr大量データインポートが2時間→20分に改善した話

はじめに:なぜ高速化が必要だったのか?私が担当しているプロジェクトでは、大量の物件データを扱っています。Solrコアに保存されている「元となる物件データ」を、ユーザーや店舗に見せるための形に整形し、別のSolrコアへ保存し直す──そんな一連の処理を日々回しています。このときに問題になるのが、物件データのインポート速度です。インポート処理が遅くなると、どうしてもデータの反映が後ろ倒しになり、結果として物件データの鮮度が落ちてしまいます。物件の鮮度が落ちると、実際のサービスにも影響が出てきます。ユーザーから物件の問い合わせがあっても、すでに成約済みだった表示される物件が減り、ユーザーの選択肢...

AIで仕様駆動開発(SDD)をやってみた話【株式会社ライトコード】

はじめにこんにちは、コウです。近年、AI技術の進歩により、仕様駆動開発においてもAIを活用する事例が増えてきました。本記事では、私がAIを活用して仕様駆動開発をしてみた経験について共有します.仕様駆動開発とは仕様駆動開発とは、仕様を最初に明確・厳密に定義し、その仕様を基準に実装・テストを進める開発手法です。仕様が明確であるため、開発プロセス全体の透明性が高まり、品質の向上やコミュニケーションの円滑化が期待できます。特徴実装よりも仕様書が主役仕様が「契約(Contract)」の役割を持つ実装者は仕様に従ってコードを書くテストは仕様を満たしているかを検証する典型的な流れ要件定義仕様書作成(A...

Jetpack Composeで無理やりSharedFlowを監視したら失敗だった話【株式会社ライトコード】

はじめにJetpack Composeの導入、進んでいますか?新規プロダクトなら「フルCompose」で気持ちよく開発できますが、歴史あるプロダクトや大規模なアプリでは、まだまだActivityやFragmentの遷移を残しつつ、Viewの中身だけComposeに置き換えるというハイブリッドな構成で戦っている方も多いのではないでしょうか。そんなActivity/FragmentとComposeが共存するハイブリッドな開発環境において、「Activityのコードを減らしたい」「将来の完全Compose移行を考慮したい」という動機から、SharedFlowをComposable内で処理しよう...

2025年にNext.jsアプリケーションにtRPC + TanStack Queryを導入した話【株式会社ライトコード】

はじめにNext.js App Routerで React Server Componentや Server Functionが導入されましたが、クライアントサイドからデータを取得したい場面ではあまり向いておらず、従来のAjaxで対応した方が望ましいケースがあります。担当しているNext.jsプロジェクトでは、そのようなケースを以下のような構成で実装していました:API Routesによる REST API 作成クライアントコンポーネントにてuseEffect + axiosによるデータ取得この構成にはいくつかの課題がありました:従来の実装における課題型安全性の欠如: フロントエンドとバ...

【iOS】Whisperで文字起こししてみた【株式会社ライトコード】

はじめにWhisper を使った文字起こしアプリを実装してみたのですが、導入や実装で時間がかかってしまったため、今回、備忘録として導入から実際に音声の文字起こしまでをまとめたいと思います。Whisper とはWhisperは汎用的な音声認識モデルです。多様な音声を収録した大規模なデータセットで学習されており、多言語音声認識、音声翻訳、言語識別を実行できるマルチタスクモデルでもあります。引用:https://github.com/openai/whisper/blob/main/README.md#whisperWhisper は MIT ライセンスになっており、無料で使用することができる...

Claude Opus 4.5とSonnet 4.5に同じ実装をお願いしてみた【株式会社ライトコード】

はじめに2025年11月25日、Anthropicから最新モデル「Claude Opus 4.5」がリリースされました。Opus4.5は、他のAIモデルと比較しても、現段階では最先端のモデルとなったようです。トークン出力時にかかるコストも従来のOpusから67%削減され、Maxプランだと、普段使いではほぼ上限に行くことはなくなり、Opusでの開発がより一層楽しめます。私は、会社のサブスク補助制度を利用して、Maxプラン($100)に加入させていただいています。100ドルの補助はありがたすぎます!!感謝です。また、Claude Codeがデスクトップアプリで利用可能になったことで、アプリ上...

メンターとしてのエンジニア育成の理想と現実(理想編)【株式会社ライトコード】

はじめに「Javaのコードが書けるエンジニアを増やしたい!」という話が社内であり、少しの期間に数名をメンターとして見ていきました。その時にやっていったことや感じたこと、今後はこうしたい、みたいなことを書いていこうと思います。ここではまず理想として考えていたことから書いていきます。Javaのコードが書けるエンジニア、とは対象の方々は、プログラミング自体が業務では初めてに近い人もいれば、実務で他の言語はそれなりにやっていった人とか様々です。まずは何をもって「Javaのコードが書けるエンジニア」と言えるのか、ゴールを決めるところから考えていく感じとなります。<最終的なゴール>1、作業現場に1人...

dbtモデルを増分化してコスト削減しよう【株式会社ライトコード】

はじめにdbtはデータパイプラインを構築するためのとても便利なツールです。単にSQLを実行してくれるだけでなく、関連する機能がたくさんあります。今回はincrementalモデルとして実行してコストを削減する方法をまとめました。DWHはBigQueryを利用しています。実装方法早速実装方法です。以下のようなSQLモデルがあったとしたら、{{ config( materialized="table", alias="daily_sales", partition_by={ "field": "date", ...

Djangoの設定ファイルの基本を理解したい【株式会社ライトコード】

概要Djangoのsettings.pyを毎回調べながら使っているので、もう少し仲良くなるためにドキュメントを読み直してみます。ゴールDjangoがデフォルトで生成する設定ファイル「settings.py」を読み解き、よく使う設定値がいつ・どこで・どのように参照されるのか概要を復習することを目指します。構成settings.pyの中身を最初に見ておき、ブロック単位に何が書かれているか見ていきます。すべて触れると長くなってしまうので、よく使うものに絞っておきます。環境Django: 5.2.8settings.pyまずはデフォルト設定から、概観を掴んでおきます。"""Django sett...

Artifact Registry・Cloud SQL・Cloud Runの費用削減術【株式会社ライトコード】

Artifact Registryの費用削減Artifact Registryでは、アーティファクト1GBあたり、0.1$ほどの料金が発生します。検証環境では、頻繁にアーティファクトがpushされるため、気が付いたら容量がそこそこ大きなものになっていたりということが多々あります。すごく高い料金という訳ではありませんが、ちりつもで不要なリソースは削除していくのが望ましいでしょう。Google Cloud の Artifact Registryの管理画面からリポジトリごとにクリーンアップポリシーというものが設定できます。以下は、私がよく設定するクリーンアップポリシー例です。最新の5件のアーテ...

Solr で commitWithin を使ってみた【株式会社ライトコード】

はじめに今回はSolrにおいて、アプリケーション側からコミット制御を行う際に使われるcommitWithinの挙動について紹介します。Solrではドキュメントを追加(add)しても即座に検索に反映されず、データをいつ検索できる状態にするかを制御する必要があります。この反映タイミングを決める仕組みがcommitとcommitWithinです。業務で大量のデータを扱う中で、アプリケーション側から明示的にcommitを多発すると、タイムアウトやパフォーマンス低下 を引き起こすケースがありました。そこで今回は、commitWithinを使ってSolr に「◯秒以内に commit してね」と任せ...

5,335Followers
314Posts

Spaces

Spaces

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

注目のストーリー

ライトコード技術記事

社員の声

フリーランス応援