MetaのGlean:大規模コードインデックス作成システム

2025-01-01

Metaは、効率性とスケーラビリティを重視して設計されたオープンソースのコードインデックス作成システムであるGleanを公開しました。Gleanはソースコードから情報を収集し、Angleと呼ばれる柔軟なクエリ言語を介して開発者ツールに提供します。革新的な増分インデックス作成により、巨大なコードベースの課題に対処し、コードナビゲーション、検索、ドキュメント生成などの機能を実現します。Gleanの汎用性は、さまざまな言語やカスタムデータスキーマをサポートし、開発者にとって貴重な資産となります。

続きを読む

Meta、Haskellを用いた大規模スパム対策

2024-12-22

スパムやマルウェア対策において重要な役割を果たすMetaのSigmaシステムは、2年間の全面的な見直しを経て刷新されました。このシステムは、大規模な本番システムとしては珍しい選択であるHaskellで書き直され、毎秒100万件を超えるリクエストに対応できるようになりました。Haskellへの移行により、純粋関数型と強い型付けの特性が活かされ、Haxlフレームワークによってデータフェッチの自動バッチ処理と並列処理が可能になりました。以前のFXLベースのシステムと比較して、スループットが20~30%向上しました。このプロジェクトでは、GHCコンパイラへの大きな貢献もあり、いくつかのバグが修正されました。

続きを読む

Metaにおける大規模なJavaからKotlinへの移行:数百万行のコードを克服

2024-12-22

Metaは、巨大なAndroidコードベースをJavaからKotlinに移行するために、長年にわたる取り組みを行ってきました。この記事では、MetaがKotlinatorという自動化ツールを構築して、ビルド速度の遅さや不十分なリンターなどの課題を克服し、コードの半分以上を正常に変換した方法を詳しく説明しています。Kotlinatorは、プリプロセッシング、ヘッドレスJ2K変換、ポストプロセッシング、エラー修正など、複数のフェーズで構成されています。MetaはJetBrainsとも協力してJ2Kを改善し、コミュニティの協調を促進するためにプロセスの部分をオープンソース化しました。この記事では、null安全性の処理と、変換中に発生したさまざまなコードの問題と解決策について重点的に説明しています。

続きを読む