https://d226lax1qjow5r.cloudfront.net/blog/blogposts/taking-time-for-yourself-code-wise/Blog_Taking-Time-for-Yourself_1200x600.png

自分のために時間を使う、コード・ワイズ

最終更新日 May 4, 2021

所要時間:1 分

2020年3月、私は サーバー仕様の見直しについてお話ししました。私の主な目標のひとつは、SDKを使用する開発者に可能な限り最高の体験を提供することでした。サーバー仕様を更新することで、私たちのチームは少しオープンになり、言語にとって理にかなった方法でSDKを構築し、各開発者が期待する体験を提供することができました。

私たちは、ユーザー・エクスペリエンスをクリーンアップするという考えのもと、今年前半の目標を設定しました。その結果、私たちの言語開発アドボケイトが、NexmoとOpenTokの両方のネームスペースのSDKを調べ、新しい仕様によりよく沿うことができる箇所を見つけることになりました。私たちは、仕様に準拠していない部分のリストを作り始めました。とても堅苦しく聞こえますが、私たちが言いたいのは、SDKが私たちの新しい目標に合致しているかということです。SDKのどこが言語Xのライブラリのように見えないか、感じられないか?

第一印象を決めるワンチャンス

多くの開発者にとって、Vonage APIを初めて利用するのは当社のサーバまたはクライアントSDKです。彼らのプロジェクトにおける最初のタスクの一つは、私たちのSDKソフトウェアをインストールし、初めてそれをブートストラップすることです。その瞬間から、私たちの仕事は私たちのプラットフォーム用のソフトウェアを簡単に書けるようにすることです。

各言語は異なるものであり、私たちはそれを理解しています。Javaの開発者は、Rubyの開発者と比べて、アプリケーションを書く際に期待することが違います。私たちのSDKは、サポートする言語にとって理にかなった方法でAPIを公開すべきです。開発者が適切なライブラリであることを期待するのと同じように、私たちはPythonicであるべきですし、イディオム的であるべきですし、クリーンであるべきです。

言語も進化する。私はPHPの開発者ですが、私たちの言語が嫌われる原因の多くは、過去の期待や制限、サポートされなくなったバージョンのコードに基づいています。私たちのSDKは、言語とともに進化すべきですし、そうすべきです。開発者は "モダンな "コードがどのようなものかを期待しており、私たちはそれを実現するために努力すべきです。

当社のサーバーSDKチームの大きな目標は、当社の製品だけでなく、開発者の期待に応える最新のライブラリを提供することです。私たちは、テスト駆動開発、高品質のドキュメント、細部へのこだわりなど、さまざまな考えを常に支持してきました。今後も、開発者や言語コミュニティの動向を常に把握し、最高の開発者体験を提供していく予定です。

私たちは何を求めていたのか?

監査の大部分は、私たちの製品の使用方法と、SDKがその使用方法を明確で明白な方法で公開しているかどうかを中心に展開されました。コードの明確性は、新しいSDK仕様の主要な焦点であり、監査においても重要な焦点となりました。

Auditは、私たちの各言語アドボケイトに、私たちがより良くできるところをマークする時間と力を与えました。どのSDKも、私たちが期待するサポートに遅れをとってはいませんでしたが、それぞれのSDKには、意図をより明確にするための微調整や、パブリック・インターフェースの名称変更がありました。

今後のPHP SDKの変更点として、Voice APIレイヤーの大部分が書き直された。発信電話をかけたい場合は OutboundCallオブジェクトを作成します。NCCOを生成したい場合は、オブジェクトを作成し、NCCOにアクションを追加します。 NCCOオブジェクトを作成し、NCCOにアクションを追加する。セルフ・ドキュメント化されたコード」を参考にすれば、開発者はPHPそのものに詳しくなくても、このコードを読んで何が起こっているのかを理解できるはずだ。

$outboundCall = new OutboundCall(new Phone(TO_NUMBER), new Phone(NEXMO_NUMBER));
$ncco = new NCCO();
$ncco->addAction(new Talk('This is a text to speech call from Vonage'));
$outboundCall->setNCCO($ncco);

$response = $client->voice()->createOutboundCall($outboundCall);

以前のやり方が難しかったのではなく、何が起こっているのかが明確でなかっただけなのです。メソッドやクラスの名前を変更することは非常に難しいことですが、このような変更の多くは、私たちの製品が何をするのか理解しやすくするだけでなく、それらを使用するための最良の方法を理解しやすくすることを願っています。

また、このAuditによって、1つまたは2つのSDKが、すべてのSDKでグローバルにすべきことを行っている場所を見つけることができました。これらのオプションの1つは、ユーザーがAPIのベースURLを指定できるようにすることでした。これは顧客からの要望でしたが、いくつかのSDKがすでに実装していることがわかりました。Auditは、これらのアイデアをまとめ、すべてのSDKで追加されるようにする機会を与えてくれました。

製品をより良くする

当社のSDKを保守する言語開発者の多くは、製品スペシャリストと呼ばれる人々でもあります。プロダクト・スペシャリストは、プロダクト・マネージャーや様々なエンジニアリング・チームと協力し、API製品を作り上げる手助けをします。製品スペシャリストが製品自体の設計を支援することで、開発者がSDKを通じてAPIとどのようにやり取りするかが早期に検討されます。

開発者にとって作業しにくいことがわかれば、APIやSDKのレベルでより良い決断を下し、開発者の生活を楽にすることができます。私たちの仕事は、イベントに出向いてTシャツを配るだけではありません。開発者からのフィードバックをすべて受け取り、プロダクト・マネージャーやエンジニアに、より良い体験を提供できる場所を知らせ、解決策を見つける手助けをします。

最近の .NET v5.0.0リリースでは、SDKに多くの改良が加えられた。エラー処理の改善や、より柔軟なロギングシステムなど、役に立つコードの追加もありましたが、ユニットテストやコードスニペットもリファクタリングされました。これらの変更は、私たち、ひいては皆さんのコードと変更に対する信頼を向上させるだけでなく、私たちのSDKを実装する方法について、例がより明確かつ簡潔になりました。

私たちはあなたのためにここにいます

結局のところ、私たちの仕事は、私たちのソフトウェアを使用している開発者を擁護することです。私たちは、必ずしもあなたが私たちの製品を使うことを擁護しているわけではありません。私たちは、Vonage内部の声として、開発者であるあなたの擁護者なのです。私たちの仕事の一部は、私たちが会った開発者から得たフィードバックを取り戻して、私たちの製品をより良いものにすることです。SDKを自動生成して終わりにすることもできますが、それでは問題を解決しようとしているあなたの役には立ちません。

2020年末までには、開発をより明確にするためのSDKに多くのエキサイティングなアップデートが行われるだろう。.NET、Python、PHPでは、さまざまな体験をすっきりさせる素晴らしい書き換えが控えている。Rubyは、v6.3.0で導入された静的型チェック v6.3.0で導入されたで導入された静的型チェックを継続し、さまざまな全般的改善 (v7.0.0では、エラー処理の改善とクラス名の明確化が行われたので、そのリリースをチェックしてほしい)。

私たちの製品、または私たちが作成したソフトウェア、デモ、ツールに関するフィードバックがありましたら、お気軽にご連絡ください。私たちは コミュニティSlackチャンネルを設けており、私たちの言語と製品アドボケイトが日々の質問にお答えしています。私たちは スタックオーバーフローを監視し、開発者が直面するさまざまな問題に対する回答やガイダンスを提供する手助けをしています。私たちは community@vonage.comに届くメールに返信しています。

私たちは、可能な限り迅速かつ効率的に、お客様の問題を解決するツールとサポートを提供したいと考えています。

シェア:

https://a.storyblok.com/f/270183/384x384/3bc39cbd62/christankersley.png
Chris Tankersleyデベロッパー・リレーションズ・ツーリング・マネージャー

クリスはデベロッパー・リレーションズ・ツーリング・マネージャーで、お気に入りのツールを開発するチームを率いています。彼は15年以上、クライアントワークからビッグデータ、大規模システムに至るまで、様々な言語と種類のプロジェクトでプログラミングをしてきました。オハイオ州に住み、家族と過ごしたり、ビデオゲームやTTRPGゲームをしたりしている。