00:00:00皆さん、今週のVercelコミュニティライブストリームへようこそ。
00:00:22エイミー・イーガンです。
00:00:23Vercelのコミュニティチームに所属しています。
00:00:27お知らせです。この配信はXとYouTubeで行っていますが、
00:00:30チャットに参加したい場合は、
00:00:31コミュニティにサインインしてイベントの「参加する」をクリックしてください。
00:00:35横にチャットが表示されますので、質問があればコメントを見逃さないようにします。
00:00:42セッション中、いつでも質問してください。質問は最後にまとめてお答えします。
00:00:47もう一つお知らせです。チャットに参加される方は、敬意を払い、行動規範に従ってください。
00:00:54前置きはこのくらいにして、ゲストの方々をステージにお招きしたいと思います。
00:00:58先月、
00:00:59私のチームメイトのジェイコブがHubSpotチームに参加し、
00:01:01HubSpot開発者プログラムに独自のバックエンドを持ち込むことについて話しました。
00:01:05そして今月は、HubSpotチームをお招きして、彼らがVercelをどのように使っているかについて話してもらいます。
00:01:09ブルックさん、ようこそ。
00:01:12エイミーさん、ありがとうございます。
00:01:13皆さん、こんにちは。
00:01:14ブルック・ボンドです。Vercelコミュニティに参加できて光栄です。
00:01:20チャットで事前に答えていただきたい質問がいくつかあります。HubSpotを使ったことがありますか?
00:01:28私たちのことをご存知ですか?
00:01:30私たちと一緒に開発したことはありますか?
00:01:31もしあれば、何を開発しましたか?
00:01:34チャットで皆さんのコメントをぜひ聞きたいです。
00:01:38ぜひそうしたいのですが、30分しかありません。
00:01:42ですので、素晴らしいコンテンツをすべてお伝えしたいと思います。
00:01:45今日はまず、HubSpotとは何かを簡単に説明します。
00:01:49HubSpotのDevRelチームとは何か。
00:01:51HubSpotとVercelをどのように連携させるか。
00:01:54そして、
00:01:54HubSpotのDevRelチームがVercelを様々なプロジェクトでどのように活用しているか、
00:02:00いくつかの例を挙げます。
00:02:02最後に質疑応答の時間を設けます。
00:02:04エイミーが言ったように、質問があればチャットに投稿してください。最後に喜んでお答えします。
00:02:12今日は、同僚のデニス・エドソンとクリス・ライリーが参加します。
00:02:18ここにいることを大変嬉しく思います。
00:02:19まず基本ルール…ではなく、HubSpotとは何かを説明します。
00:02:25HubSpotは企業向けのスマートCRMです。
00:02:29マーケティング、
00:02:31セールス、
00:02:31サービスソフトウェアのスイートを提供しており、
00:02:34統合を構築するための統合開発者プラットフォームも提供しています。
00:02:39DevRelチームが力を入れているのは、開発者が開発者プラットフォームの使い方を理解するのを支援することです。
00:02:47画面に表示されている画像は、CRMの連絡先レコードページです。
00:02:53HubSpot開発者プラットフォームでは、作成するすべての作業はHubSpotプロジェクト内に収められます。
00:03:00HubSpot開発者プラットフォームでは、
00:03:03内部の静的アプリケーションと外部のOAuthアプリケーションの両方を構築できます。
00:03:09外部アプリケーションを構築した場合、
00:03:12HubSpotマーケットプレイスに公開でき、
00:03:15HubSpotアカウントを持つ人は誰でもマーケットプレイスからアプリをダウンロードできます。
00:03:21例えばVercelが、HubSpotアカウント内でVercelのメトリクスを見られるような統合を構築したいとします。
00:03:29それを構築し、
00:03:30OAuthフローを作成し、
00:03:31人々にアカウントにダウンロードしてもらうことで、
00:03:34HubSpot内でVercelの情報を確認できるようになりますし、
00:03:39その逆も可能です。
00:03:40今ここにあるスクリーンショットは、開発概要ページです。
00:03:46開発者向けに専用の開発概要ページを用意しており、アカウント内で進行中のすべてのプロジェクトを確認できます。
00:03:54監視ツールも用意しており、APIの使用状況などを確認できます。
00:04:01すべてのものが一箇所にまとめられているので、簡単にアクセスできます。
00:04:05HubSpotプロジェクトとは関係のない他の余計な情報に気を取られることなく利用できます。
00:04:11では、チームについて簡単に紹介します。
00:04:15私たちは開発者とマネージャーからなる学際的なグループで、
00:04:19開発者がHubSpotエコシステムで成功するのを支援しています。ソリューションを構築し、
00:04:25ベストプラクティスを学び、
00:04:27利用できる統合を作成することで、
00:04:30開発者コミュニティを支援しています。
00:04:32このようなライブイベントや、
00:04:34独自のチャンネルでイベントを開催し、
00:04:36カンファレンスに参加して講演も行います。また、
00:04:39新機能の構築やリリース時に、
00:04:41外部開発者からのフィードバックが考慮されるようにしています。
00:04:45開発エンジニアリング部門と密接に連携しており、コミュニティからのフィードバックを彼らに伝え、製品の改善に役立てています。
00:04:53これは、もう少し詳しく説明するために私が作成した小さなグラフです。
00:04:57学習とリソースには、
00:04:59開発者向けドキュメント、
00:05:00ブログ、
00:05:01YouTube、
00:05:02そしてYouTubeやGitHubなど様々な場所で提供しているチュートリアルが含まれます。
00:05:08コミュニティとつながりとして、誰でも参加できる開発者向けSlackがあります。
00:05:13フォーラムもあり、コミュニティフォーラムで質問できます。
00:05:18年間を通して対面イベントも開催しています。
00:05:22構築および開発ツールもいくつかあります。
00:05:25アプリ品質評価があり、これはエコシステム品質チームが行っています。
00:05:29彼らはマーケットプレイスに掲載されるすべてのアプリケーションを審査し、私たちの基準を満たしていることを確認します。
00:05:37サンプルアプリも用意しています。
00:05:39そして最後に、これは新しいものですが、Dev MCPがあります。
00:05:42それを構築したエンジニアと密接に連携し、
00:05:45開発者にとって本当に素晴らしいMCP製品をどのように作れるかを理解してもらうために協力しました。
00:05:51そして最後に、ショーケースと成長です。
00:05:53ケーススタディセクションでは、
00:05:55優れた開発者プログラムを取り上げ、
00:05:58HubSpotをどのように活用しているかを紹介しています。
00:06:02マーケットプレイス認定も行っています。
00:06:04アプリをマーケットプレイスに公開すると、
00:06:07マーケットプレイス認定を受けることができ、
00:06:10青いチェックマークやシンボルが表示され、
00:06:12品質が保証されていることを人々に知らせることができます。
00:06:16そして最後に、GTM(Go-to-Market)調整も支援しています。
00:06:19年間を通して大規模なローンチがある場合、
00:06:22そのためのマーケティング資料作成を支援し、
00:06:25開発者オーディエンスに最適な方法で情報が伝わるようにしています。
00:06:30私たちが誰で何をしているかについて話したので、
00:06:33HubSpotとVercelをどのように連携させているかについて話しましょう。
00:06:37エイミーが言ったように、先月、独自のバックエンドを持ち込むことに関するウェビナーを開催しました。
00:06:43ここで話す主なユースケースの一つは、Vercelをバックエンドサービスとして使用することです。
00:06:50この場合、
00:06:50HubSpotアプリ(私たちのフロントエンド)があり、
00:06:54Reactで構築されたUIコンポーネントをページに配置し、
00:06:58HubSpotアカウント内でフロントエンドとしてレンダリングします。
00:07:03そして、コードを保持するVercelバックエンドがあります。
00:07:06コード内でhubspot.fetchを使用して、作成したAPI経由でバックエンドを呼び出します。
00:07:14その後、データが返され、操作され、フロントエンドに応答がレンダリングされます。
00:07:20それがどのように見えるかを示すために、
00:07:23私が構築した例を簡単に説明します。これはLLMS.txtファイルジェネレーターです。
00:07:30早口言葉みたいですね。
00:07:32このLLMS.txtファイルジェネレーターはHubSpotアプリで、
00:07:37ウェブページまたはサイトマップのURLを受け取り、
00:07:41ページ上のデータを解析してそのファイルを作成します。
00:07:45LLMS.txtファイルはAI検索クローラー用のファイルで、余分なHTMLを排除します。
00:07:55情報をマークダウンファイル形式でレンダリングするため、非常に素早く読み取ることができます。
00:08:02これはHubSpot fetchを使用してVercel APIエンドポイントを呼び出し、
00:08:06HubSpotファイルAPIを使用してそのファイルをHubSpotアカウントにアップロードします。
00:08:11ここで表示しているスクリーンショットは私のコードで、実際にVercel APIを呼び出している部分です。
00:08:18ここでは、それをtry-catchで囲み、エンドポイントを渡しました。
00:08:25それについて話したので、実際に動作を見てみましょう。
00:08:28フロントエンドに入って皆さんにお見せします。
00:08:31これはHubSpotアカウント内で、DevRel Labsジェネレーターです。
00:08:38これはアプリ設定ページとして知られているもので、
00:08:42これをアプリ設定ページにレンダリングすることを選んだ具体的な理由は、
00:08:48ウェブサイトの管理者的な作業だからです。
00:08:51ですから、HubSpotアカウント内の誰でもアクセスできるようにしたくありませんでした。
00:08:55適切な人だけがこれにアクセスできるようにしたかったのです。人々がこれを生成してAI検索クローラーに問題を引き起こさないようにするためです。
00:09:04ここでは、タイプを選択できます。サイトマップ全体を入力するか、単一のURLを入力できます。
00:09:10もちろん、ウェブサイトが非常に大きい場合、サイトマップは時間がかかります。
00:09:15ですので、単一のURLの方がはるかに速いです。
00:09:17では、URLを入力するだけです。
00:09:20では、developers.hubspot.comを入力します。すると生成されます…あ、エラーが出ました。
00:09:28なるほど。
00:09:29これは面白いですね。
00:09:30ライブなので。
00:09:31では、見てみましょう。
00:09:32Vercelの設定に入って、エラーメッセージがあるか確認しましょう…ビルドログではありませんね。
00:09:39バックエンドでこれらを確認できます。
00:09:43ランタイムログを見てエラーを見つけられるか確認しましょう。
00:09:46うまくいっていませんが、
00:09:49完璧な状況であれば、
00:09:51私が作成したVercelサーバーレス関数を使用して、
00:09:56llms.txtファイルが生成され、
00:09:59HubSpotアカウントにアップロードされます。
00:10:04では、
00:10:05残りのチームメイトにバトンタッチして、
00:10:07VercelをHubSpotのバックエンドとして使うだけでなく、
00:10:12HubSpotを他の方法でどのように使用しているかについて話してもらいます。
00:10:18クリスに引き継ぎます。
00:10:20ありがとう。
00:10:22デモが100%完璧に動作しない場合に私が好きなことの一つは、
00:10:29見ているすべての開発者やコミュニティに対して共感を持てることです。
00:10:37ブルックのPCでスライドに素早く戻っていただけますか。
00:10:43完璧です。
00:10:44ありがとう。
00:10:45もちろん、
00:10:46皆さんの創造性とアイデアを、
00:10:49私たちのAPIを使った統合を通じてHubSpotのお客様に提供していただきたいと思っています。
00:10:57しかし、
00:10:58DevRel内でVercelを使って、
00:11:01どのように実験し、
00:11:03迅速なテストを実行し、
00:11:05迅速なプロトタイプを構築しているかというと、
00:11:09チームとして持っているアイデアを試し、
00:11:12組織の他の部門に提供するためです。
00:11:15DevRel Labsというものがあります。DevRel Labsは、
00:11:22開発者リレーションズ全体に広がる一連のルールとプロセスであり、
00:11:28実験を標準的な方法で行い、
00:11:30それらの実験を検証したり、
00:11:33時には無効にしたりして、
00:11:35その後それらを卒業させる機会を与えてくれます。
00:11:39後に製品になったり、より洗練されたソリューションになったりします。
00:11:46では、私が主導してきた2つの実験について話し、その後デニスに彼が取り組んでいることについて話してもらいます。
00:11:58しかし、これらの実験はすべて、明確なプロセスと目標を持っています。
00:12:03その一つは、多くの組織と同様に、外部開発者向けのSlackコミュニティを持っていることです。
00:12:10これは、HubSpot上にソリューションを構築している人々が集まり、交流し、学び、助け合う場所です。
00:12:21本当に最高のコミュニティとは、ピアツーピアの交流があるコミュニティだからです。
00:12:27そこで、これらのコミュニティメンバーに、より迅速にソリューションとリソースを提供するために何ができるかと考えました。
00:12:38皆さんもいくつかのSlackボットとやり取りしたことがあると思いますが、
00:12:42明らかな解決策の一つはSlackボットを構築することでした。
00:12:45しかし、Slackボットについて考えたとき、私たちは会話を支配するようなものではなく、
00:12:51交流のために存在してほしいと考えました。
00:12:53ですから、あまり邪魔にならないようにすべきです。
00:12:57そして、外部コミュニティにリアルタイムで迅速なリソースを提供するために存在してほしいと考えました。
00:13:05そこで、それをVercel上に構築しました。
00:13:08なぜなら、
00:13:09Vercelを使うことで非常に迅速にプロトタイプを作成でき、
00:13:15その品質を評価し、
00:13:16その後、
00:13:17これをどうするかを決定できるからです。
00:13:21そして現在、私たちは実験と検証の段階にいます。
00:13:25DevRelの他のコミュニティチームと協力して、次のステップを決定します。
00:13:31画面でボットを素早くお見せしたかったのですが、
00:13:35ここにあるものですが、
00:13:37このホーム画面は、
00:13:39グラフやチャート、
00:13:40数字がいつも楽しいので、
00:13:43とても気に入っています。
00:13:45しかし、ボットの採用に関するデータを提供するシンプルな画面があります。
00:13:51しかし、ボットとやり取りする方法は2つあります。
00:13:53ダイレクトメッセージ経由でやり取りすることもできますし、
00:13:56ボットがサポート関連の質問に自動的に応答するチャンネルもあります。
00:14:01では、非常にシンプルに質問を送信します。「HubSpot Dev MCPを始めるにはどうすればよいですか。」
00:14:08バックエンドから実際に表示できるものには少し制限があるため、
00:14:13お見せしたかったのは、
00:14:15Vercelでこれによって得られるリアルタイムロギングです。
00:14:19これにより、ここにあるこれが、私が今送信したリアルタイムチャットでしょう。
00:14:33素早く行われました、これは良いことです。
00:14:35すぐに「考え中」のメッセージに変わります。
00:14:39応答を得るためにOpenAIにアクセスします。
00:14:43DevRelチームが厳選した追加リソースがあるかを確認するためのツールを介して戻ってきます。このユーザーがさらに進むのに役立つかもしれないものを私が提供するかもしれません。
00:14:53YouTube、ドキュメント、あらゆる種類のリソースです。
00:14:58そして応答を返します。
00:15:00これが応答だと思います、そうです。
00:15:06では、これに戻ると、すべて200です。
00:15:10最良のシナリオですよね?
00:15:13その通りです。
00:15:14応答をくれただけでなく、参照すべき記事もくれました。
00:15:21Dev Slackに参加するように言われましたが、私はすでにここにいます。
00:15:24しかし、ここで提示した質問に関連するチュートリアルやその他の情報も推奨してくれました。
00:15:35そして、
00:15:35開発環境をセットアップし、
00:15:37CLIをインストールし、
00:15:38MCPサーバーをインストールすれば準備完了です、
00:15:41という正しい応答をくれました。
00:15:43始めるためのアイデアもいくつかくれました。
00:15:47ご覧のように、それはテストを構築するための非常にシンプルな方法であり、ここではログが非常に重要です。
00:15:56カスタム構築されたSlackボットを使用してソリューションをテストする。DevRelの私たちの主な責任はソリューションを構築することではありません。私たちは皆開発者ですが、
00:16:07日々構築しているわけではありません。
00:16:09ですから、私たちが構築するものは何であれ、邪魔にならず、非常にシームレスである必要があります。
00:16:15これが、私が少し驚いたことにつながりました。
00:16:18スライドに戻ると、これがどのようにして別の実験につながったかをお話しします。
00:16:27すみません、その前に、ブルック、あのスライドに戻っていただけますか…
00:16:35まず、Vercelの何が私を本当に興奮させたかをお話ししたかったのです。
00:16:39一つは、私がお見せしたように、読みやすいログです。ライブに設定していました。
00:16:43ログがリアルタイムでストリーミングされているのを見ましたね。
00:16:46起動が、私たちはサーバーレス環境を扱っています。
00:16:49起動が驚くほど速いです。
00:16:52それはSlackにとって重要です。
00:16:53Slack統合や、サーバーレスの他のサードパーティツールを統合したことがあるなら、迅速な起動を望むでしょう。
00:17:02そしてVercelのどのティアでも、迅速な起動が可能です。
00:17:06コミットやプルリクエストの前にデプロイできるCLIが気に入っています。変なコードを入れてもデプロイ前に問題を素早く見つけられるようにするためです。もちろん、
00:17:19様々な環境へのデプロイも。
00:17:22そして、
00:17:22私たちにマーケットプレイスがあるように、
00:17:24彼らはRedisやPostgres用のNeonやUpstashのようなサービスとの接続を持っており、
00:17:30バックエンドデータベースを非常に迅速に立ち上げて実行できるようにします。
00:17:35それは重要でした。
00:17:37バックエンドデータベースといえば、それが次に来るものにつながりました。
00:17:41今、Dev Slackにはこれらすべてのやり取りがあります。
00:17:48そして、それが非常に豊富な情報源であることが判明しました。
00:17:52もちろん、これは直感的に理解できました。
00:17:54しかし、
00:17:54私が驚いたことの一つは、
00:17:56このデータに別のフロントエンドインターフェースを作成できると気づいたことです。それを使って、
00:18:04ブルックが以前言ったように、
00:18:06フィードバックプロセスを教育し、
00:18:09情報を提供し、
00:18:10情報をどのように受け取り、
00:18:13その情報を製品に戻して開発者体験を向上させるかを知ることができます。
00:18:18そこで、
00:18:19Slackボットの構築から、
00:18:22新しいプロジェクトで突然V0に切り替え、
00:18:25そのデータを取得し、
00:18:27人々がどのような質問をしているかを公開するための非常にシンプルなパスワード保護されたフロントエンドを作成しました。
00:18:37どのような種類のリソースを提供しているか?
00:18:40Webhookに関する多くの会話や、認証に関する多くの会話があります。
00:18:46それは私たちが行っていた実験の影響を示すことができました。このSlackボットをどこかに持っていく必要があるため、
00:18:55本当に素晴らしいことです。
00:18:57ただ構築して放置したくはありませんでした。
00:18:59次のステップに進む必要があります。
00:19:01リーダーシップ層との会議に参加したことがあるなら、
00:19:05それを行う最善の方法は、
00:19:06グラフを見せたり、
00:19:07何らかのプレゼンテーションをしたりすることです。
00:19:10そして、これはDevRel内のコミュニティチームと意思決定を行うのに役立ち、「どうするのか」と問いかけます。
00:19:18これを維持するのか?
00:19:19進化させるのか?
00:19:21もし進化させるなら、ボットのバックエンドのインフラストラクチャは変わるでしょう。
00:19:28しかし、
00:19:29Vercelのような非常に使いやすいプラットフォームで構築し、
00:19:35いくつかの可視化を行うよりも良い方法はなく、
00:19:39今、
00:19:40次に何をすべきかを決定できます。
00:19:43では、
00:19:43デニスが構築したものを見てみましょう。これは私が構築したものよりもさらに高度で、
00:19:49あえて言えばより良いものですが、
00:19:51DevRel Labs内の別の実験でもあります。
00:19:55デニス、どうぞ。
00:19:57クリス、ありがとう。
00:19:59そして、より良いと言ってくれてありがとう。
00:20:01皆さん、聞いてくれてるといいな。
00:20:04HubSpotで働く前は、エージェンシーで働いていました。
00:20:08クリスがこのDevRel Labsの取り組みについて教えてくれたとき、
00:20:13エージェンシーで遭遇した非常に具体的な問題がありました。それは、
00:20:17私が何かを構築するのですが、
00:20:19次の3つのうちのいずれかでした。
00:20:21何かを構築し、それが完了して、メンテナンスモードになる。
00:20:24時々監視しているだけです。
00:20:25HubSpotエコシステムで何かが起こっているのを見逃したために、後で壊れる。
00:20:31あるいは、多くのプロジェクトを引き継ぎ、何をしているのか全く分からなかった。
00:20:37そして最終的にそれらのいずれかが何らかの破壊的変更に遭遇して壊れ、
00:20:40どこで、
00:20:41なぜ、
00:20:41どのように壊れたのかを突き止めなければなりませんでした。
00:20:44そして最後の、
00:20:45そしておそらく私にとって最大のことは、
00:20:47注意すべきことが非常に多く、
00:20:49自分が何をしているのか見失うことがよくありました。
00:20:52変更ログに全く注意を払っておらず、何かが壊れる。
00:20:56そしてどうなるか?
00:20:57その時点で顧客が怒鳴りつけてくるのです。
00:20:59そこで私が決めたのは、
00:21:00次のスライドにあるHubSpot開発者変更ログ監視ツール、
00:21:05コードネームSprocky change dustを構築することです。
00:21:10このツールは、
00:21:11HubSpotの変更ログを積極的に監視し、
00:21:14AIを使用してそれらの変更ログエントリを見て、
00:21:16それがどのような種類の変更であるかを判断します。
00:21:19破壊的変更か?
00:21:21機能強化か?
00:21:22CMSに影響するか?
00:21:23CRMに影響するか?
00:21:24両方に影響するか?
00:21:26そして、
00:21:26GitHubでホストされているリポジトリを使用して、
00:21:30それらの変更ログを自分のリポジトリと照合できます。これにより、
00:21:34基本的にアシスタントがあなたの代わりに変更ログを見てくれるようにします。
00:21:39では、どうやって構築したのか?
00:21:40ここで使用したツールキットは、
00:21:42Vercelで構築されたReactフレームワーク、
00:21:45もちろんNext.jsです。ピーナッツバターとゼリーのように相性が良いからです。データベースにはSuperbaseを使用し、
00:21:52それらのリポジトリに接続できるGitHubアプリを構築する必要がありました。
00:21:56そして、
00:21:57Vercelのいくつかのサーバーレス関数とOpenAIを通じて、
00:22:01ユーザーが行動するための非常に質の高いデータを返すことができました。
00:22:06なぜVercelを選んだのか?
00:22:07正直、セットアップがめちゃくちゃ簡単だからです。
00:22:11フロントエンドについてあまり心配する必要がありませんでした。
00:22:1330分以内に簡単にアプリを稼働させることができました。
00:22:18サーバーレス関数のおかげで、そのサーバーの実行コストを大幅に削減できました。
00:22:23必要なときにだけ稼働します。
00:22:25これらのバッチキューをOpenAIに送って処理させ、素早く結果を返します。
00:22:31それでたくさんのお金を節約できました。
00:22:32そして、
00:22:33自分一人でテストして、
00:22:35その後何千人もの人がこのアプリを使うようになっても、
00:22:38Vercelはそこにあり、
00:22:40私と共にスケールします。
00:22:42全体のプロセスは素晴らしかったです。
00:22:44次スライドに移ります。これは基本的に私がNext.jsで構築したフロントエンドです。
00:22:50すべての変更ログエントリを取り込みます。
00:22:53ここで、その変更ログが何であるかの説明を見ることができます。
00:22:57今ここで知っていれば、
00:22:58添付している特定のGitHubリポジトリにすでにissueを作成できます。次のスライドに移りますが、
00:23:05GitHubに接続する必要があります。
00:23:07これにより、好きなだけ多くのリポジトリを接続できます。
00:23:11最初のスキャンでは、プログラムによるスキャンを実行し、HubSpotに関連していると思われるかどうかを確認します。
00:23:18覚えておいてください、50個ものリポジトリを引き継いだかもしれません。
00:23:22何をしているのか全く分かりません。
00:23:23ここに放り込みます。
00:23:24初期スキャンを実行します。
00:23:26HubSpotに関連していると思われるファイルパターンなど、
00:23:30見つけられるものを見つけます。その時点で次のスライドに進むと、
00:23:34HubSpotボタンをクリックできることがわかります。これは、
00:23:38OpenAIにバッチで送信されることを意味します。
00:23:42監視し、RAGシステムを使用して、自分のリポジトリとHubSpotに関連していると思われる重要な詳細のみを送信します。
00:23:49少し時間がかかり、完了すると、戻ってきて可能なすべてのヒットを表示します。
00:23:56通知メールが届きます。Slack通知も開発中ですが、「おい、これを確認した方がいいぞ」と伝えます。
00:24:03その後、
00:24:03「これは正当だ、
00:24:04これについてissueを作成して作業を開始しよう」と言うか、
00:24:08「これには関係ないので無視しよう」と言うかを選択できます。
00:24:12それを無視すると、
00:24:13私たちは「この特定のリポジトリで監視したいものではないかもしれない」と認識し始め、
00:24:21使用状況グラフを更新します。
00:24:23その後、各リポジトリを継続的に監視します。ですから、いずれかのリポジトリに変更を加えている場合、それを監視しています。
00:24:32大きな変更を行った場合、
00:24:34追加したこの新しい変更に対してすべての変更ログを再スキャンし、
00:24:38問題であることを知らなかったことをしていないか確認するためです。
00:24:43また、これにより、ええと、何を言おうとしていたか忘れました。
00:24:50新しい変更ログが来るたびにチェックできます。接続しているすべてのリポジトリを調べて、
00:24:57その変更ログがあなたに特有のものであるかを確認できます。
00:25:01これにより、変更ログに目を通し、それが自分に関連しているかどうかを判断するために自分の目に頼る必要がなくなります。
00:25:08変更ログがあなたの受信トレイに届くようになり、必要に応じてそれに対応できます。
00:25:14というわけで、質疑応答の時間だと思います。
00:25:17必要であれば質疑応答ができるように、できるだけ早く駆け足で説明しました。
00:25:22よくやったよ、デニス。
00:25:23うん、デニス、素晴らしい仕事だ。
00:25:25早口で、早口で。
00:25:26とても速かった。
00:25:27さて、ここで数分ありますね。
00:25:31まず質問があります。
00:25:34ライブデモは常に完璧にいくとは限らないことを今日見ました。
00:25:39Vercelは物事を簡単にしてくれますが、常に改善できる点があります。
00:25:45完璧な人はいません。
00:25:46エンジニアリングチームに共有してほしい機能リクエストはありますか?
00:25:51違うものを見たい、あるいは完全に欠けているものはありますか?
00:25:55まだ欠けているものについては分かりません。
00:26:00しかし正直なところ、最近リリースされた機能がいくつかあります。サーバーレス関数の実行時間を延長する機能だったと思います。
00:26:07最近リリースされたその機能の名前は覚えていませんが、
00:26:11非常に興味があります。OpenAIと連携しているとき、
00:26:14結果を待つ時間がサーバーレス関数の実行時間を超える可能性があるからです。
00:26:19名前があったのですが、申し訳ありません、忘れました。
00:26:21しかし、それと、最近導入されたAI SDKも使い始めるのが本当に楽しみです。
00:26:28これらは機能リクエストではなく、皆さんが提供している機能を楽しんでいるということです。
00:26:34もう一つあります。
00:26:35私はデプロイ用のAPIの名前は忘れましたが、
00:26:39使っています。自分で構築したフロントエンドアプリケーションから、
00:26:46「デプロイは成功したのか?」と確認しに行くのが少し面倒でした。
00:26:53そして、デプロイステータスを取得するAPIがあります。
00:26:56ですから、それをする必要がありません。
00:26:58準備が整うまで待つことができます。実際、問題が発生するまでインターフェースを見たくないのです。
00:27:05デプロイが失敗した場合、それは私が遭遇する最もイライラする問題です。
00:27:09しかし、
00:27:10複数のプロジェクトがあり、
00:27:13いくつかのインターフェースについては、
00:27:16経験の面で常に改善の余地はありますが、
00:27:20特にこれといったものはありません。
00:27:23ええ、私の側にあるかもしれない、Vercelではない一つの落とし穴があります。
00:27:28機能リクエストなら素晴らしい。
00:27:30私のせいなら、まあ、私のせいですね。
00:27:33ローカルで自分のものすべてを大量にテストしました。関数はローカルでは停止しません。
00:27:38少なくとも私にとってはそうでした。
00:27:40ですから、すべてがバターのようにスムーズに見えました。素晴らしかったです。
00:27:43すべてうまくいっています。
00:27:44私の環境では動きました。
00:27:45ええ。
00:27:46私の環境では動きました。
00:27:47その通り。
00:27:48定番ですね。
00:27:49ですから、
00:27:50Vercelで関数が最終的に停止する場合、
00:27:54これは私の問題かもしれません。関数にガバナーを設定して、
00:27:59一定期間だけ実行できるようにする必要があるだけかもしれません。
00:28:04しかし、Vercelがそれをすぐに提供してくれたら、かなり素晴らしいでしょう。
00:28:08より長いランタイムのようなものですね。
00:28:10ええ。
00:28:11いや、いや。
00:28:12つまり、本番環境でのランタイムと一致するようなものです。
00:28:17ローカルで。
00:28:18ええ。
00:28:19なるほど。
00:28:20ええ。
00:28:21私もそのような経験があります。
00:28:22参考になります。
00:28:23何かありますか?
00:28:24素晴らしいですね。
00:28:25そうですね。
00:28:26ずっとそうでした。隣で叩くことで思い出せます。
00:28:32特定のリクエストはありませんが、
00:28:35HubSpotを初めて使う方で、
00:28:37今日の内容が気に入って試してみたいと思った方にお伝えしたいことがあります。
00:28:43いつでも開発者Slackに参加できます。
00:28:45それについては話しました。開発者向けドキュメントも確認して、自分で試すことができます。
00:28:55その通りです。
00:28:56素晴らしい。
00:28:57さて。
00:28:58もう一つ質問したいことがあります。多くのことを話していただきましたが、
00:29:05このセッションから持ち帰ってほしい重要なポイント、ベストプラクティス、またはヒントはありますか?
00:29:14一つあります。私はそれを守っていませんし、今も守っていません。自分自身にとても腹が立っています。
00:29:23環境を使い、早めに設定してください。
00:29:27後から修正しようとしないでください、とても大変ですから。
00:29:32ですから、早めに環境を整えることです。インターフェースでは、環境変数を環境に紐付けるのは非常に簡単です。
00:29:43環境をセットアップし、早めに使い始めてください。
00:29:48後からやると本当に大変なので、待たないでください。
00:29:51私たちは皆、できるだけ早く機能を構築し、動作するのを見たいと思っています。
00:29:57テスト環境を持つのは少し面倒かもしれませんが、それが私がお勧めすることです。
00:30:03私もそれに賛成です。
00:30:04エラーが出て、
00:30:06開発環境でなぜ動作しないのかカーソルに尋ねていました。それは、
00:30:13開発環境内で環境のシークレットキーを使用するトグルをオンにしていなかったからです。
00:30:22キーが見つからないという感じでした。
00:30:24それは少し馬鹿げていました。
00:30:26ええ、ワークフローでAIをどのように使っていますかという質問が見えますね。
00:30:30私の場合、開発者MCPを使うのが好きです。
00:30:35本当に良い製品だと思いますし、
00:30:36HubSpot開発者にとってその開発者MCPをより良くする方法について常にフィードバックを得ようとしています。
00:30:43しかし、カーソルに「何かしたい」と尋ねるところが好きです。
00:30:48それがすることは、ドキュメントをリアルタイムで検索することです。
00:30:51ですから、常に最新の情報を得ることができます。
00:30:55MCPに質問してドキュメントを検索しに行ったときに、情報が古くなることはありません。
00:31:04私の補足ですが、私はAIを懐疑的に使っています。
00:31:07返ってくるものすべてを疑います。なぜなら、多くの場合、まだ完璧ではないからです。
00:31:12やめてください、とても簡単です。
00:31:14お菓子みたいです。
00:31:15承認して、どんどん進んでいけますよね。
00:31:1917コミットも進んでしまいます。
00:31:21そして、3番目のコミットがすべてを壊すことになります。
00:31:26ですから、Vercelを使うか、AIを懐疑的に使ってください。
00:31:31非常に批判的に。
00:31:33新しいことをするときは、常に新しいブランチを作成してください。
00:31:38そうすれば、必要に応じてそれを削除できます。
00:31:40Vercelとそのプレビュー環境を活用してください。そして、あまりそれに頼りすぎないでください。
00:31:50どれも良いアドバイスですね。
00:31:51時間になりましたし、皆さんはとてもお忙しいので、この後すぐにご予定があるかと思います。
00:31:58お時間をいただき本当にありがとうございました。
00:32:00皆さんをお見送りしますので、お仕事に戻ってください。
00:32:03感謝します。
00:32:04ありがとう。
00:32:05Vercelとご参加いただいた皆さん、ありがとうございました。
00:32:09素晴らしい。
00:32:11簡単なお知らせです。
00:32:12来週も別のセッションがあります。
00:32:14VercelでのPythonについて話します。
00:32:18今後のすべてのイベントを確認するには、
00:32:19いつでもcommunity.vercel.com/eventsのイベントカレンダーを確認してください。
00:32:24皆さん、ありがとうございました。
00:32:25良い一週間を。