注目のストーリー
All posts
rswag gemを利用してRailsでAPIドキュメントを生成する【株式会社ライトコード】
はじめに今回は、RailsアプリケーションにSwaggerを用いてAPIドキュメントを導入する方法について解説します。私自身はGraphQLで開発する機会が多く、これまでSwaggerを使うことがほとんどありませんでした。そのため、今回初めてSwaggerを使ってみた経験を備忘録として残しておこうと思い、本記事を執筆することにしました。rswagのインストール今回は「rswag」というgemを使用します。こちらはrspecで書いたテストファイルがそのままAPIドキュメントのスキーマになるという優れもので、スキーマと実装の乖離をなくすことができます。以下をgemに追加します。gem 'rs...
自作のChrome拡張を使って業務効率化をしてみる【株式会社ライトコード】
ちょっとした作業を効率化するためにシェルスクリプトや簡単なコードを作って楽をすることはエンジニアではよくあることかと思います。その一環としてChromeの拡張機能を作るのも意外と便利だよ、というお話です。作りたいもの今回作るのはGitHubのプルリクエストに対する拡張です。プルリクエストが大きくなると、全てのコメントに対応したかどうか分かり辛くなることがあるので指摘数を一目でわかるようなブラウザ拡張を作ってみようと思います。具体的にはFiles changedタブを開いた際に画面の適当な部分にコメント数や解決数を表示してくれる、といったものを目指します。必要な手順manifest.jso...
YOUは何しにライトコードへ〜李さん編〜 【株式会社ライトコード】
元プロゲーマーがエンジニア「攻略」を目指す!今回は、2025年に入社した李さんにインタビューを行いました!李さんは中国から来日して約八年。かつてはプロゲーマーとして活躍していたという異色の経歴の持ち主。そんな彼が、なぜエンジニアを志し、次のキャリアの場としてライトコードを選んだのか。ライトコードを選んだキッカケや実際に働いてみた感想などをお聞きしたいと思います!初めまして、李さん!簡単な自己紹介をお願いします2025年に入社した李です。大学時代、プログラミングに興味を持ったことをきっかけに、エンジニアとしての道に進みました。前職では、バックオフィス関連のシステムの開発をやっていました。そ...
アルベルト・アインシュタインと現代IT:遺産がもたらすIT革命【株式会社ライトコード】
フリーランスエンジニア大募集中!現在、「WEBエンジニア」「フロントエンジニア」「データサイエンティスト」など、様々な職種のフリーランスエンジニア様を募集中です!まずは以下よりご応募ください!採用ページはこちら:https://itanken.com/register1879年3月14日、ドイツのウルムでアルベルト・アインシュタインは産声を上げました。アルベルト・アインシュタインの幼少時代は、まさに天才の片鱗が垣間見える一方で、多くの意外なエピソードに彩られています。最初の「目覚め」5歳頃までアインシュタインはほとんど言葉を発さず、周囲の大人たちは言語発達の遅れを心配しました。ゆっくりと...
【アタリ創業者】スティーブ・ジョブズを雇った男「ノーラン・ブッシュネル」【株式会社ライトコード】
フリーランスエンジニア大募集中!現在、「WEBエンジニア」「フロントエンジニア」「データサイエンティスト」など、様々な職種のフリーランスエンジニア様を募集中です!以下からご登録いただきましたら、弊社担当者からご連絡させていただきます。採用ページはこちら:https://itanken.com/registerノーラン・ブッシュネルは1943年、ユタ州ソルトレイクシティに近い町、クリアフィールドで生まれました。幼少期からSF小説や数学、パズルに夢中となり、10歳でアマチュア無線に熱中するなど幼い頃から技術や創造性に溢れていた少年でした。1961年にユタ州立大学に入り、後にユタ大学工学部に転...
YOUは、その先へ【たなゆー編】 株式会社ライトコード
2021年に入社した田中さん。そして、「YOUは何しにライトコードへ?」の企画に2022年5月に参加してもらいました。2022.05.31YOUは何しにライトコードへ?〜たなゆー編〜エンジニアへの憧れが再燃しWEBエンジニアへ昨年の11月にライトコード福岡本社に入社した田中さんにフィーチャー!大学時...–––あれから約3年。その後、田中さんのことが気になった取材班。田中さんはエンジニアをやる前は、工事現場の現場監督を行っていました。未経験からのエンジニア転職に成功した彼は、今も順調にエンジニアとしてやっていけてるのか?ライトコードでどのように成長したのか?今回は、田中さんの「今」を調査...
なぜアプリは壊れやすいのか? 〜ドメイン駆動設計の視点から〜
はじめに最近遅ればせながらドメイン駆動設計を本格的に勉強しようと思い立ちました。「ドメイン駆動設計」エンジニアの皆さんならば一度は聞いたことがあると思います。ただ、あまりに抽象的で難解な言葉が多く、そのメリットを享受できずに途中であきらめた人も多い(自分も含む)のも事実です。アプリケーションを実装する際に「何が問題」でどうすれば問題を最小化できるのか、という視点で考えていこうと思います。ビジネスロジックドメイン駆動設計の本では必ず「ビジネスロジックをドメイン層に閉じ込める」と必ず出てきます。まず、ビジネスロジックとは?が一番大事なのですが、なぜビジネスロジックが大事なのかというと以下が答...
【Android】GitHub ActionsからワンクリックでFirebase App Distributionにアプリをデプロイする【株式会社ライトコード】
前回は、GitHub Actionsを使ってAndroidアプリのバージョン番号(versionName と versionCode)を自動で更新し、プルリクエストを作成するワークフローについて解説しました。▼ 前回の記事(まだの方はこちらからどうぞ!)2025.02.07【Android】GitHub Actionsでアプリのバージョン情報を更新するはじめにこんにちは!株式会社ライトコードの福岡本社でモバイルエンジニアやってる こー です!現在、個人開発しているAn...開発中では、テスターやチームメンバーに対して動作確認用としてAPKファイルを配信することが多くあると思います。ですが...
Android Roomのパフォーマンス改善:Indexとクエリ最適化のポイント【株式会社ライトコード】
Android Roomのパフォーマンス改善をしようAndroidアプリ開発でデータを扱う際に、SQLiteを手軽に利用できるRoomはとても便利なライブラリですよね。便利な反面、アプリの利用が進みデータ量が増加すると、次のような状況に直面することがあります。「アプリの動作が少し遅く感じることがある…」「データ表示に時間がかかり、ユーザー体験に影響が出ているかもしれない…」これらの場合、データベースのパフォーマンスがボトルネックになっていること可能性があります。UIがどんなに優れていても、データの読み込みに時間がかかれば、アプリ全体の使い心地(UX)は低下してしまいます。今回は、この課題...
テストしやすいRailsコード【株式会社ライトコード】
はじめにRailsで開発を進めていてると、最初は快適だったのに機能が増えるに連れてテストが書きづらくなり、修正が怖くなるようなことはないでしょうか?この記事では、「テストしやすいRailsコード」とは何かを考えつつ、テストファーストの視点から設計を見直すためのヒントを紹介します。なぜ「テストしやすさ」が重要なのか?Railsは開発スピードに強みがありますが、適切な設計をしないと、テストが困難な肥大化したコードが生まれやすいという弱点もあります。一方でテストファーストという視点を持つと、以下のようなメリットがあります。自然と責務が明確なコードになるフレームワーク依存を避けやすくなるコードが...
【dbt × BigQuery】増分更新について挙動を詳しく確認してみる【insert_overwrite(Dynamic partitions), append】株式会社ライトコード
こんにちは!普段データ関連のお仕事をしています。現在所属しているチームではデータマートの作成の際にdbtを使用しており、コスト削減のために差分更新の対応中です。差分更新処理を書いていると「あれ?どんな挙動になるんだっけ?」ということが多いので、そんな自分に向けて増分更新の詳しい挙動を確認して、備忘録がてらブログを書いていきたいと思います。環境・準備BigQuerydbt差分更新の種類僕が所属しているチームでは「insert_overwrite(Dynamic partitions)」方式と「append」方式を採用しているので、今回はその2つについて挙動を見ていきたいと思います。inse...
ボタンタップ時に発生する不具合の対策について【株式会社ライトコード】
はじめに今回は、Unityにおけるボタンの連打・同時押し対策についてまとめました。業務でゲーム開発を進める中で、これらの対策を初めて実装する機会があり、多くの学びがあったので、これからUnityでゲームを開発される方の参考になれば幸いです!前提として、アーキテクチャにはMVPを採用し、ライブラリにはUniTaskおよびR3を使用しています。どんな不具合が起きたのか実際に発生した不具合は以下の2点です。- ボタンを連打した後、タップしても処理が実行されず、ゲームが進行不能になる- 複数のボタンを同時にタップした際、それぞれの処理が並行して実行され、想定外の挙動になるいずれも致命的な問題です...
Koltin Coroutines withContextを使っているとStackTraceを用いた不具合調査が辛いのをどうにかしたい【株式会社ライトコード】
はじめにAndroidの非同期処理でKoltin Coroutinesを用いた実装を数年続けてきたことで非同期処理を最適化するためにwithContextを積極的に使うことを意識して実装するようになりました。withContextによるスレッドの切り替えはオーバーヘッドも少なく、気軽に使うことができるのが魅力の一つです。しかし、withContextを積極的に使った実装をするようになったことでStackTraceを用いた不具合調査がしづらくなってしまいました。「不具合調査が辛い」とはどういうことか端的に言うと。withContextを使うと「StackTraceが破壊され処理の呼び出し元...
Pythonのパッケージ管理ツール「uv」を試してみた【株式会社ライトコード】
概要Pythonのパッケージ管理ツールuvを使ってみたので、使い心地をざっくり書いてみます。記事の要約趣味プロジェクトのパッケージ管理ツールをuvへ移行させた使ってみたらとても便利だったので、普段の開発ユースケースでどう運用するのが良さそうか整理したいuvはいいぞ環境Python: 3.13.2uv: 0.7.8背景もとい前置きPythonは主に趣味で触っていましたが、パッケージ管理で苦戦することが多かったです。Dockerを使うとIDEと噛み合わせが悪かったり、いろんなツールを試すと仮想環境とパッケージ管理が複雑になってきてメンテナンスが大変になったりと、色々迷走してきました。Pyth...
【GAS】Google App Scriptのタイムアウトエラーを回避する方法【株式会社ライトコード】
はじめにGoogle Apps Script (GAS) を使った自動化は非常に便利だが、タイムアウトエラーに直面したことはないだろうか?GASのスクリプトが連続して実行できる時間が無料版で最大6分、有料のGoogle Workspaceプランでも30分に設定されているために発生する。スプレッドシートに書き込む処理が時間がかかるため、getValue, setValueを減らし、getValues, setValues を使いまとめて処理することが速くすることができる。しかしながら、大量のデータ操作を行うスクリプトを開発していると、コードによる高速化にも限度があり、このタイムアウトエラー...