InfoQ ホームページ Code Generation に関するすべてのコンテンツ
-
Google、Android開発向けコーディングボット「Studio Bot」をプレビュー公開
Google I/O 2023で、GoogleはAndroid Studio最新版に統合されたAI搭載のコーディングボットStudio Bot(コードネーム:Hedgehog)をプレビュー公開した。Studio Botは開発者がコードとユニットテストを書き、エラー修正をするのを支援することを目的としている。
-
GitHubのCopilot - オートパイロットへの道程は長い
GitHubがCopilotをローンチした3か月後、ニューヨーク大学のTandon School of Engineeringに籍を置く学者グループは、Copilotのコードコントリビューションに対する実証的サイバーセキュリティ評価をリリースし、生成されたコードの40パーセントはバグが多く脆弱であると結論付けた。
-
UberがAPIゲートウェイのアーキテクチャを公開
Uberは最近、自社で構築したAPIゲートウェイのアーキテクチャについて詳しく説明した。そこでは、独立したレイヤー化されたコンポーネントがゲートウェイで各リクエストをどのように処理するかを説明されており、各レイヤーはリクエストライフサイクルの異なる面を担当する。YAMLとApache Thriftの組み合わせがゲートウェイ構成を定義し、Goでコード生成されたアーティファクトがゲートウェイ実装を構成する。
-
マイクロサービスによる銀行インフラの構築 - QCon London Q&Aより
Monzoのマイクロサービスの数は、この数年で100から1,600にまで増加し、さらに増え続けている。マイクロサービスは責務が増えると分割され、密結合すると統合される。エンジニアはコードジェネレーションを使って自身のサービスを生成し、デプロイし、スケールアップし、監視することができる。
-
C# 9 - ソースジェネレータのためのパーシャルメソッド拡張
C# 9のソースジェネレータ(Source Generator)は、コンパイル時にコードを調査して追加的にソースコードを挿入するようなコンパイラ拡張を可能にする。挿入されたコードは、コンパイルされたものとまったく同じアセンブリに組み込まれる。この機能を活用するためにMicrosoftは、パーシャルメソッドの制限の大部分を撤廃することにしている。
-
C# 9でコンパイル時メタプログラミングを実現するソースジェネレータ
ソースジェネレータ(Source Generator)は、コンパイラが生成したメタデータを使ってユーザコードを調査し、新たなコードを追加的に生成して、プログラムの他の部分と一緒にコンパイルするという動作を可能にする、C#コンパイラの新機能である。
-
マイクロサービスアーキテクチャの正しい設計 - QCon NYで学んだMichael Bryzak氏の教訓
先日のQCon New York 2018で、Michael Bryzek氏が、マイクロサービスアーキテクチャを“正しく”設計する方法について論じた。ボイラプレートコードの自動生成を実現するため、最初にすべてのAPIとイベントのスキーマを設計すること、デプロイや依存性管理などの自動化に注力すること、などがおもな内容だ。
-
AtomistがAlpha Programmeの提供を開始
Atomistは、同社のメタ・メタプログラミング言語であるRugを試してみたい人向けにAlpha Programmeの提供を開始した。同社は、Rugのことを開発ワークフローを自動化する言語と述べている。Rugは、繰り返しまたは定型コードの生成を自動化するために使用され、Atomistによって編成されている。Rugは、マイクロサービスなどの分散システムで作業するときの生産性を向上させることを目指している。
-
PaintCode 3、Swift 3とAndroidのコード生成をサポート
PaintCodeは、ベクタードローイングからコードを生成できるmacOSで動作するデザインおよび開発ツールだ。最新バージョンのPaintCode 3では、Swift 3、Android、JavaScriptのcanvasをサポートする。
-
自動運転車のソフトウェア開発にモデルを使用すること
モデルは自動運転車のような自律システムのソフトウェア開発において重要な役割を果たしている。モデルは振る舞いのシミュレートや検証、システムの文書化、そしてコードを生成するために使用される。Jonathan Sprinkle氏が、自律システムで使用するモデルをどうモデリングするか、モデリングの利点、テストデー���を用いてどう自動車を運転するソフトウェアを検証するか、信頼性のあるコードを記述するための技法を説明する。
-
Form.IOに聞く - Webフォームを使ったAPI生成
<form.io>は,フロントエンドアプリを駆動するバックエンドAPIを,フロントエンド開発者自身がフォームを使って自動生成することのできるオープンソースプロダクトだ。フロントエンドのJavaScriptフレームワークで利用するAPIとユーザインターフェースの両方を生成可能な,完結したソリューションを提供する。InfoQはその製作者に,プラットフォームの詳しい機能や今後の計画について聞いた。
-
レガシソフトウェアをメンテナンスするためのモデルベースのアプローチ
Phillips HealthcareのソフトウェアアーキテクトであるHans van Wezep氏がBits&Chips Software Engineering Conferenceで,モデルを使用したマイグレーションについて講演した。InfoQでは氏にインタビューして,レガシソフトウェアをメンテナンスする上での問題点,手作業によるリファクタリングでのエラーの問題,コードベースのリファクタおよびマイグレーションにおけるモデルの利用,レガシソフトウェアをメンテナンスする上でのモデル利用のメリットなどについて話を聞いた。
-
依存性注入とデバッグ機能が T4 に追加された Visual Studio 2012
Visual Studio 2012 の T4 機能には数多くの改善が加えられている。中でも注目すべきなのはディレクティブプロセッサ展開時の MEF のサポート,デバッグの容易化の2つだ。
-
eclipse Xtextでモバイル用アプリケーション開発をシンプルに
Daniel Schnellerは、彼のチームがXtextを使いモバイルアプリケーションのナビゲーションパスをモデル化するテキスト型DSLをどのように作成し、どのようにJavaコードを生成したか説明します。ステップ・バイ・ステップの解説を行い、このアプローチの利点について論じます。
-
T4を使った複数ファイルの出力
T4は、Visual Studioに組み込まれたコード・ジェネレータだ。.NET上に構築される多くのフレームワークの基盤であるにもかかわらず、信じられないぐらい非力なのだ。うまくテンプレートを使いまわすことや、複数ファイルを出力するといった非常に単純なことでさえ、一見したところできそうにないのだ。しかし、Damien Guard氏のような開発者たちは、徐々に改善方法を見つけ出してきている。