InfoQ ホームページ golang に関するすべてのコンテンツ
-
Goがベータ版でファズテストをサポート
Goチームは、ベータテストでファジングがサポートされるようになったことを発表した。プロジェクトの主な目標は、堅牢なモジュールサポート、goコマンドとの統合、新しいコンパイラインストルメンテーションなど、言語の開発者とユーザ向けに統一されたエンドツーエンドのエクスペリエンスを作成することである。
-
Slackが新しいロール管理アーキテクチャを詳しく説明
Slackは最近、新しい役割管理システムのソフトウェアアーキテクチャの詳細な説明を投稿した。Slackは、以前よりも柔軟なシステムを構築する必要があった。Slackは、カスタムコンテナ化されたGoベースのパーミッションサービスを開発した。これは、gRPCを介して既存のシステムと統合される。その結果、顧客の管理者は、ユーザが実行できることをきめ細かく制御できるようになった。
-
UberがAPIゲートウェイのアーキテクチャを公開
Uberは最近、自社で構築したAPIゲートウェイのアーキテクチャについて詳しく説明した。そこでは、独立したレイヤー化されたコンポーネントがゲートウェイで各リクエストをどのように処理するかを説明されており、各レイヤーはリクエストライフサイクルの異なる面を担当する。YAMLとApache Thriftの組み合わせがゲートウェイ構成を定義し、Goでコード生成されたアーティファクトがゲートウェイ実装を構成する。
-
CDK for TerraformがGoのサポートを追加、アセット構築を強化
Hashicorpは先頃、CDK for Terraformのバージョン0.4をリリースした。CDKは、TerraformコンフィギュレーションをC#、Python、TypeScript、Javaなど、さまざまなプログラミング言語で記述可能にするものだ。今回のリリースには、TerraformコンフィギュレーションをGoを使って記述する試験的サポートが加えられている。Terraformモジュールとアセット構築のサポートも強化された。
-
GoとJavaScriptでコンテンツ・アウェアな画像サイズ変更
UberのソフトウェアエンジニアであるOleksii Trekhleb氏は、最近、動的計画法を使って、CPUを消費するコンテンツ・アウェアの画像サイズ変更アルゴリズムを高速化する方法を検討した。開発者は、コンテンツ・アウェアのサイズ変更を使って、画像のキーとなる特徴を維持しながら、画像をさまざまな含みを持つコンテキスト(画面のフォームファクタ、レスポンシブレイアウトコンテナなど)にフィットさせることができる。
-
分散アプリケーションランタイム (Dapr) v1.0 が発表された
分散アプリケーションランタイム (Dapr) チームは本日 Dapr v1.0 が利用可能になり、プロダクションレディになったと考えていることを発表した。Daprは、開発者がクラウドとエッジで実行される回復力のあるマイクロサービスベースのアプリケーションを構築できるようにするオープンソースのランタイムだ。v1.0リリースでは、開発者はDaprアプリケーションをプロダクションシナリオのKubernetesクラスタにデプロイできる。
-
Using Go in Native macOS Apps with MacDriver
MacDriverは、GoとObjective-Cの相互互換性の実現を目指す最新プロジェクトだ。これによってmacOS、さらに可能性としてはiOSのアプリをGoで記述できるようになると同時に、Objective-CやSwiftで書かれたmacOSアプリでGoコードを再利用することも可能になる。作者であるJeff Lindsay氏に話を聞くことができた。
-
Generics Enter Go Change Proposal Process
Go開発者が最も多く望んできた機能のひとつであるジェネリクスが、数年間にわたって進化を続けたドラフト設計に基づいて言語に導入されることになり、言語変更提案プロセスが開始された。
-
Mediumが「Rex」を説明 - Goベースのレコメンデーションサービス
最近のブログ投稿で、Mediumは「Rex」という名前のレコメンデーションサービスをどのように構築したかについて説明している。オリジナルのレコメンデーションサービスはNode.jsで開発したプログラムの一部であり、150ストーリーしかランク付けできなかった。しかし、Mediumは、このサービスが1秒未満でユーザあたり数十万のストーリーをランク付けしたかった。そこで、Goを使ってまったく新しい別個のサービスを構築することにした。
-
Google Registry APIを使用したAPI情報の整理
Google Registry APIは、開発者が開発で使用するAPIの機械可読な説明をアップロードして共有することにより、APIに関する情報を整理できるようにす���ことを目的としている。
-
Go 1.16、レジスタベースの呼出規約をサポート
GoチームはGo 1.16で、レジスタベースの呼出規約(calling convention)の実用最小限(minimum viable)実装に取り組んでいる。この変更により、GoogleのGoチームによれば、現行のスタックベース呼出規約を使用するGoコードとの後方互換性を維持しながら、5~10パーセントのスループット改善が可能になる。
-
リンカや小サイズオブジェクトのアロケーションなどを改善したGo 1.15
Go言語の最新リリースであるGo 1.15は、ツールチェーン、ランタイム、コアライブラリの改善が中心のリリースだ。リンカや小オブジェクトのアロケーション改善に加えて、X.509 CommonNameが廃止され、新たにtzdata組み込みパッケージなどがサポートされた。
-
TinyGoはモノのインターネットに持ち込むことが目的
Googleが提供するTinyGoは、LLVMベースの新しいGoコンパイラーで、Arduino UnoやBBC micro.bitなどのマイクロコントローラ、およびWeb Assemblyを使用する最新のブラウザでGoプログラムを実行できるようにする。
-
Johnny Boursiquot氏のGoサーバーレスと"外交官"としてのSRE
最近のInfoQポッドキャストで、Herokuのサイト信頼性エンジニアであるJohnny Boursiquot氏は、次のようなさまざまなトピックについて説明した。なぜ、Goがファンクション・アズ・ア・サービス(FaaS)スタイルのアプリケーションを構築するのに役立つ言語であるのか。 Herokuがどのようにしてサイト信頼性エンジニア(SRE)の役割を実装するのか。 なぜ、教える能力がそんなに貴重なスキルなのか。
-
スクリプト言語としてのGo
ハイパフォーマンスなネットワークシステムや並列システムを開発するプログラム言語として、Goの採用が拡大していることから、開発者たちはこれをスクリプト言語として使用することに熱意を持ち始めている。ただし現在のGoは、そのままではbashやpythonの代用としては使えないため、これには多少の努力が必要だ。