ソフトウェア開発の技術記事まとめ
@prozolic /
- .NET 11 Preview 7でdecimalと浮動小数点数の変換処理が変更された
- 変更前は有効数字15桁に丸めて変換していたが、変更後は厳密値を正確に変換するようになった
- ビルド時のコンパイラと実行時のランタイムのバージョンが異なると、定数の変換結果が異なるため、注意が必要
@ろんちゃん /
- Jujutsu (jj) は Git 互換だが、Git ツールと併用時に情報ズレや操作ミスが発生する
- Git の detached HEAD 状態とステージングエリアの無さが原因で、AIエージェントやIDEのGitパネルで不具合
- AIエージェントを使う場合は git コマンドを物理的にブロックし、変更は jj で行う二刀流が効果的
@k.ike /
- インデックスを貼ると検索が速くなるが、貼りすぎや使われないケースでは逆効果になる
- インデックスはB-Tree構造で実装され、フルスキャンと比較してデータ量に比例しない検索速度になる、複合インデックスは左端カラムから使われる
- 関数やLIKE、否定条件ではインデックスが使われず、カーディナリティが低いカラムには貼らないこと
@mizugeek /
- 15種のデスクトップUIフレームワークのメモリ使用量を比較した
- ネイティブ系は100〜170MB、WebView系は450〜530MB、JVM/Go系は450〜530MB
- ElectronはSlintと比べて約4.5倍のメモリを消費していることが分かった。
@榊原昌彦 /
- Cloudflare Workersに移行することで、従来のAWS構成での実装が見直された
- パッケージ選定でSDKの責務を考慮、メモリ使用を通過点として扱い、実行時間の形に注目、コネクションの持ち方を変更、ElastiCacheの読み書きを分解
- バンドルサイズやメモリ制限、ネットワーク往復回数、KVのアクセス単位など、Cloudflareの課金モデルに合わせた実装が必要になる。
@takeshi-teshima /
- 注文と履行を別概念として設計することで、再配送や分割発送の対応が自然になる
- OrderとFulfillmentの2つの概念を明確に分離し、配送状況を別データで管理する
- 概念設計の違いが後のコードの複雑さや運用コストに直接影響するため、初期段階で慎重に考えるべきである。
@TaichiYamasaki /
- Cloud Runの公開設定はInvoker IAMチェック無効とallUsers付与の2種類があり、IAMポリシーに記録されない場合がある
- Invoker IAMチェック無効はIAMポリシーに何も記録せず、allUsersはIAMポリシーにallUsersが記録される
- IAMポリシー検索ではInvoker IAMチェック無効のサービスが見つからないため、gcloud asset listでアノテーションを確認する必要がある
@gmo-co-kitaura /
- タスク管理をAIに任せ、原本を1つに統一してビューは再生成する運用を採用
- 自然言語で入力しAIがタスクを分割、原本から期限別一覧や週次レポートを再生成
- 原本の整合性を保つためビューは再生成のみ許可し、不整合時は異常終了させる
@colum2131 /
- DatabricksのDeclarative Automation Bundles(DAB)を活用してデータセット作成基盤を構築し、運用効率を向上させた
- DABでジョブ定義や依存パッケージをコードで管理し、Serverless Computeで高速なデータ処理を実現、MosaicML StreamingDataset(MDS)をデータ形式に採用
- Serverless Computeの制約に対応するため、依存パッケージの事前取得やDataFrameのmaterialize機能を導入し、リトライ制御を実装する必要がある。
@colum2131 /
- DatabricksのDeclarative Automation Bundles(DAB)を活用したデータセット作成基盤を構築
- DABでコード管理・CI/CDを実現し、MosaicML StreamingDataset(MDS)をデータ形式に採用
- Serverless Computeでの依存解決の高速化にwheelhouseを活用し、起動時間を5分から2分に短縮可能。
@tatsuya582 /
- エラーレスポンスはステータスコード・ヘッダー・ボディの3層で設計し、RFC 9110とRFC 9457が正典
- ステータスコードは400/500番台に分類、WWW-AuthenticateやRetry-Afterがヘッダーで義務、ボディはProblem Details形式でtypeとdetailを区別
- エラーレスポンスは共通関数で組み立て、プロジェクト固有の判断はハーネスに記録し、型でルールを強制する。
@nt_y-maeda112 /
- transitionとtransformを組み合わせてボタンやカードにアニメーションを加える方法が紹介されている
- transitionで変化を滑らかに、transformで移動・拡大・回転を実現、下線の伸びやカードの浮き上がりなど複数のアニメーション例が含まれる
- ホバー時に色や位置が変化するアニメーションを実装する際、transitionとtransformの組み合わせが効果的で、コードの見通しが良くなる点に注意が必要である。
@nt-izumi /
- SQLはデータベースを操作するための言語として公開された
- SELECT/INSERT/UPDATE/DELETEの4つの命令でデータ操作、Excelとデータベースの比較が説明されている
- データベースの仕組みを理解するための第一歩としてSQLを学ぶことが推奨される
@zumax /
- Obsidianはローカルに保存されるプレーンMarkdownベースのナレッジ管理ツール
- [[Wikilink]]でノート間接続、グラフビューでの知識可視化、Git管理可能
- セキュリティ設定でクラウド同期を無効にし、外部データ送信を防ぐ必要がある。
@yama3133 /
- Claude Codeにずんだもんの声をつけて通知機能を実装した
- フックイベントにPythonスクリプトを挟み、VOICEVOXで音声合成し、ウィンドウ表示を4パターン対応
- 英単語や数字の処理でカスタム対応表を作成し、読み間違いを修正する仕組みが必要だった。
@hez2010 /
- .NET 11でジェネリック仮想メソッドの脱仮想化が実装され、JITが直接呼び出しに変換できるようになった
- ジェネリック仮想メソッド呼び出しを直接呼び出しに変換し、ボックス化や間接ディスパッチを削除。値型と参照型のインスタンス化でコードが最適化される
- ジェネリック仮想メソッドの呼び出しでボックス化や間接ディスパッチが発生しなくなり、パフォーマンスとメモリ使用量が改善される。特に値型での処理が高速化される。
@nabettu /
- Next.js + Cloudflare Workers + Tursoで本番運用する際の7つの罠と対処法が記載されている
- next/imageとnext/linkの制限、TursoとのHTTP往復遅延、RSCのクエリパフォーマンス、タイムゾーンの問題、unstable_cacheのJSONシリアライズ、初期JSの最適化、Durable Objectsの再起動対応
- Tursoとの通信はHTTP往復が必須で77msのレイテンシを前提に設計する必要がある、RSCのクエリはメモリ上で処理してN+1を防ぐ、タイムゾーンは明示的に指定する
@yamarin /
- BiomeとOxlintは同じRust製でも速度差が生じる理由が解析された
- 解析範囲の違い(スキャナ・CSS対応)、アリーナASTとロスレスCSTのメモリ戦略、ルール実行モデルの違い
- スキャナやCSS解析をオフにするとBiomeは0.74秒、Oxlintは0.16秒で、通常の差は解析範囲だけでは説明できないことが判明した。
@gts /
- パスキーは秘密鍵をサーバーに送らない設計で、フィッシングを防ぐ
- 公開鍵暗号方式とチャレンジ-レスポンス認証、秘密鍵のデバイス内保存
- synced passkeyではパスキープロバイダのアカウントがセキュリティの要となるため、強い認証が必要になる。
@ruumalilja /
- VS Code 1.131 で Markdown プレビューを編集できる Hybrid Markdown editor が追加された
- プレビュー表示とソース編集を1ペインで行える、Editing / Locked モード
- Experimental な機能のため今後の挙動変更に注意し、必要に応じてショートカットで切り替え可能