BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ golang に関するすべてのコンテンツ

  • 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の代用としては使えないため、これには多少の努力が必要だ。

  • Goが新たなリフレクションベースのProtocol Buffer APIを獲得

    Go言語に新たに導入されたProtocol Buffersのバインディングは、Protocol Bufferの型システムをGoの型システムに統合して、実行時に操作可能にするためのものだ。Protocol Buffersは、ハイパフォーマンスアプリケーションにおけるJSONの代替を目的にGoogleが開発した、言語ニュートラルなデータ交換フォーマットである。

  • 集中型モジュールミラープロキシとチェックサムデータベースを提供するGo 1.13

    Go 1.13は、言語はほとんど変更されていないが、ツールチェーンやランタイム、ライブラリに多くの改善が行われている。その中には、比較的議論の余地のあるデフォルトのGoモジュールプロキシや、Googleプライバシーポリシの受け入れを開発者に求めるチェックサムデータベースも含まれている。

  • Go言語のコントラクトにより、ジェネリックプログラミングが可能に

    Goにジェネリック(総称的)プログラミングのサポートを追加する新たなドラフトの中心となっているのは、型パラメータを型および関数に制約するために使用される、コントラクト(contract)の概念である。さらにドラフトでは、型推論を導入して、多くの場合において型を省略可能にすることで、ジェネリック型と関数の使用を簡略化する。

BT