木曜日, 12月 18, 2025
No menu items!
ホーム ブログ ページ 1638

KID PHENOMENON新曲「Snakebite」MV公開!8月20日シングル収録

📌 内容
KID PHENOMENONは、8月20日(水)に5thシングル「Sparkle Summer」をリリースし、その収録曲「Snakebite」のミュージックビデオが同日21:00に公開されることが発表されました。音楽ビデオの監督はYUANN氏であり、彼は数々の有名アーティストの作品を手掛けているクリエイティブ集団“kidzfrmnowhere”の一員です。

リリースイベントは、8月24日(日)に千葉県・イオンモール幕張新都心で開催される予定です。このイベントはフリー観覧可能で、ファンにとって貴重なパフォーマンスを体験できる機会となります。KID PHENOMENONは「PHENOMENON」という名前の通り、新しい現象を世に広めることを目指しています。

楽曲「Snakebite」は、スウェーデン出身のDavid FrembergとRasmus Vibergが制作したポップミュージックで、EXILE SHOKICHIによる印象的な歌詞やドラマティックなメロディが特徴的です。彼らの音楽スタイルは、聴く人々に新しいものを提供することを重視しています。

この発表は、株式会社ソニー・ミュージックレーベルズから行われ、KID PHENOMENONの活動に対する期待が高まる中での出来事です。彼らの初回生産限定盤や通常盤のリリースについても情報が公開されています。

📊 詳細データ

  • 発売日:2025年8月20日(水)
  • シングルタイトル:5thシングル「Sparkle Summer」
  • 新曲タイトル:収録曲「Snakebite」
  • ミュージックビデオ公開日時:2025年8月20日(水)21:00
  • リリースイベント日:2025年8月24日(日)14:00~千葉県・イオンモール幕張新都心

公式リンク: KID PHENOMENON Official

💬 編集部コメント:

KID PHENOMENONが新曲「Snakebite」のミュージックビデオを公開するというニュースは、音楽界における彼らの位置づけをますます強固にするものとして注目です。特に、音楽のジャンルやスタイルを横断する彼らのアプローチは、多様性を求める現代の文化にフィットしています。

注目ポイント

  1. ジャンルの融合
    「Snakebite」は、ハードロックにルーツを持ちながらも、ポップな要素を取り入れた新しいスタイル。リスナーには新鮮さを感じさせる一方で、幅広い層にアピールすることができます。

  2. 歌詞のテーマ
    自分らしさを大切にするメッセージが込められているのは、現代社会において重要なテーマです。特に若い世代にとって、自分のアイデンティティや自己表現は大切な要素。この曲がどのように受け入れられるかが気になります。

  3. クリエイティブなビジュアル
    監督YUANN氏の独特な視点が加わったミュージックビデオは、80年代の音楽ショーを彷彿とさせるもので、視覚的にも楽しませてくれる要素が多いです。ダンスシーンの迫力や演出に注目が集まりそうです。

  4. フリーイベントの開催
    リリースイベントが千葉県で行われるとのことで、ファンとの距離が近く、直接的な交流が楽しめる機会です。リアルなパフォーマンスがどのような反響を得るのかも注目です。

  5. ストリーミング時代の適応
    新曲が発表されることで、SNSやYouTubeなどを通じた広がりが期待されます。彼らのファンベースがさらに拡大するかもしれません。

KID PHENOMENONは音楽だけでなく、視覚やメッセージでも人々に新しい体験を提供しています。これからの動向から目が離せませんね。

Sparkle Summer をAmazonで探す
Snakebite をAmazonで探す
PHENOMENON をAmazonで探す

📸 関連画像一覧


※以下、出典元
▶ 元記事を読む

Views: 0

山下美月、天然トークで共演者に総ツッコミ!

ざっくり内容:
元乃木坂46の山下美月が主演する映画「火喰鳥を、喰う」の完成披露試写会が8月19日に都内で行われました。共演者たちとともに登場した山下は、ユーモラスな天然トークで会場を盛り上げました。

### 映画の概要
「火喰鳥を、喰う」は、原浩氏のホラー小説を基にした作品で、監督は本木克英氏が務めます。物語は、信州に住む夫婦が先祖の日記を受け取るところから始まります。日記に記された「ヒクイドリ、クイタイ」という謎の言葉が、夫婦の周りに奇妙な出来事を引き起こし、彼らとともに真相を探る専門家の登場によって、驚くべき展開が待ち受けます。

### 試写会でのやり取り
試写会では、映画のキャッチコピーにちなんで、お互いが最近感じた「ビミナリ(不気味)」なものを発表しました。山下が「キムチマヨ牛丼」と答える中、豊田裕大は「鉱物」を挙げ、その情熱を語ると、山下は「それを食べるの?」と天然な反応を見せ、共演者たちからツッコミが入りました。この一幕は、山下の愛らしいキャラクターを際立たせるものでした。

映画の公開は10月3日を予定しています。これからの展開に期待が高まります!

編集部の見解:
この記事のテーマは、映画「火喰鳥を、喰う」の完成披露試写会における山下美月さんの天然トークです。筆者が感じたのは、彼女のキャラクターがとても愛らしく、映画のホラー要素と対比になっているところ。共演者との掛け合いも楽しく、見ているこちらまでニヤニヤしちゃいました。

## 感想と関連事例

映画の話とは別に、実はこのような天然キャラは、芸能界では珍しくありません。例えば、江頭2:50さんや有吉弘行さんなど、独特のキャラで愛されているタレントたちも多いです。こうしたキャラクターがいることで、視聴者はホッとする瞬間が増え、物語の緊張感を和らげる役割を果たしているのかもしれませんね。

## 社会的影響

また、最近ではSNSが普及し、こうしたキャラクターの可愛らしさや魅力が瞬時に広がります。例えば、山下さんがこの発言をした瞬間の動画がSNSでバズれば、映画への関心も高まります。娯楽としての映画だけでなく、それを取り巻くプロモーションの重要性も感じます。

### 豆知識

ところで「火喰鳥を、喰う」というタイトル、元ネタは実際の生物を意識しているんですが、ヒクイドリは実在しており、大きく、飛ぶことができない鳥として知られています。絶滅危惧種でもあり、神秘的な存在感が映画のホラー要素を引き立てるアクセントになりそうですね。

以上、山下美月さんを中心に、作品に対する感想や関連事例、そして社会的影響についてまとめてみました。映画の公開が楽しみです!

  • キーワード: 山下美月

※以下、出典元
元記事を読む

Views: 0

「似すぎ!人気俳優66歳の息子登場」

🔸 ニュース:

赤井英和の自宅を訪れた「プラチナファミリー」

10月19日、テレビ朝日系の番組「プラチナファミリー」が放送され、俳優の赤井英和(66)さんの豪華な自宅が公開されました。この番組は、小泉孝太郎さんと高嶋ちさ子さんがMCを務めています。赤井さんは、ボクサーとしてのキャリアを経て俳優に転身し、幅広い活躍を見せています。

番組では、赤井さんが暮らす東京・世田谷区成城の14LDKの自宅が紹介されました。訪れたのは、MCのひとり、森泉さんです。さらに、赤井さんの息子である赤井英五郎(30)さんも登場。彼は12歳からアメリカの全寮制学校に留学していた帰国子女で、英語が堪能です。プロボクサーとしても活躍し、2023年度のミドル級東日本新人王のタイトルを獲得しています。

また、赤井さんの娘、つかささんはイギリスの学校を卒業し、舞台の大道具デザインを学んでいることも紹介され、赤井家の子どもたちがそれぞれ多彩な才能を持っていることが見えてきました。弟の英佳(ひでよし)さんはハリウッドで役者として活動中で、スタジオには彼の写真が映し出され、「すごくカッコイイ」との声が上がりました。

自宅の中には、赤井さんの選手時代の映像を元に英五郎さんが編集したドキュメンタリー映画「AKAI」(2022年公開)のポスターも掲げられており、森さんがそのポスターを見て「そっくりだよね!」と驚く場面もありました。英五郎さんは「よく間違えられます」と照れ笑い。

さらに、赤井さんの妻である佳子さんも出演し、彼女のSNSフォロワーが40万人以上いることが話題に。赤井さんとの軽快なやりとりにはスタジオも笑いに包まれます。家族の絆や赤井家の日常が垣間見える素敵な放送でした。

🧠 編集部の見解:
この記事を読んで感じたのは、赤井英和さん一家の多才さとその影響力です。ボクシング界から俳優に転身した赤井さん自身が、家族全員に影響を与え、才能を引き出している様子が伝わってきます。特に息子の英五郎さんがプロボクサーとして活躍しながら、映像制作に挑戦しているのは素晴らしいですね。現代では、特にエンタメ業界での多様性が求められる中、こうした家庭の背景は、とても興味深いです。

### 社会的影響や関連事例
ボクシングや映像制作といった異なるフィールドで活躍する才能が同じ家から生まれるのは、彼らの教育や環境が大きいのではないかと思います。最近では、芸能界やスポーツ選手の子どもたちが新たなジャンルで頑張る姿が多く見受けられますよね。たとえば、松田翔太さんや、池松壮亮さんなど、役者として活躍する父親を持つ若手俳優も増えてきています。

### 背景や豆知識
赤井英和さんは「浪速のロッキー」として名を馳せ、大衆の愛を受けたボクサーですが、彼のキャリアの転機は、俳優業に挑戦した時でした。多くのアスリートは、現役を引退した後に新しいキャリアを築く難しさがありますが、赤井さんはその壁を乗り越え、見事に新しい分野で成功を収めました。また、彼の家族もそれぞれの道で活躍している姿を見ていると、親の背中を見て育った子どもたちの教育の重要さを再認識させられます。

家族の絆やそれぞれの挑戦が、今後どのように展開されていくのか、非常に楽しみです。

  • キーワード: 赤井英和

    この内容では、赤井英和氏の家族や経歴、そして彼のドキュメンタリー映画に関する情報が取り上げられています。


ドキュメンタリー映画「AKAI」をAmazonで探す

ボクサーをAmazonで探す

英語学習をAmazonで探す


Views: 0

「バイオハザード新映像公開!PCグラフィック機能をチェック」

本日、2025年8月19日に、NVIDIAが『バイオハザード レクイエム』のPC向けグラフィック機能を紹介する映像を公開しました。この映像では、ゲームがさまざまなPCスペックでスムーズに動作できるよう最適化が進められていることが強調されています。

重要なポイント

  1. グラフィック機能の最適化: 高性能なゲーミングPCはもちろんのこと、幅広いスペックを持つPCでも楽しめるように、開発側が配慮していることが述べられています。これにより、多くのプレイヤーがこの名作を体験できる機会が広がっています。

  2. NVIDIAの技術: NVIDIAは最新のグラフィック技術を活用しており、ビジュアルの美しさと性能の両立を目指しています。これにより、ゲームの没入感がさらに向上することが期待されています。

このように、NVIDIAの取り組みはゲーム体験をより良いものにするための重要な要素であり、ファンにとっても嬉しいニュースです。『バイオハザード レクイエム』は、グラフィックやゲームプレイの面でも注目されている作品ですので、今後の展開に期待が高まります。

🧠 編集部より:

『バイオハザード レクイエム』は、人気サバイバルホラーシリーズの最新作であり、プレイヤーに緊迫した体験を提供します。この作品では、リアルなグラフィックと高度なゲームプレイが求められています。

補足説明

NVIDIAが公開した映像によれば、『バイオハザード レクイエム』は異なるハードウェア環境でスムーズに動作するように最適化されています。これにより、ゲーマーは高性能なPCだけでなく、中程度のスペックを持つPCでも快適にプレイできることを期待できます。

背景や豆知識

  • 『バイオハザード』シリーズは、1996年に初めてリリースされて以来、サバイバルホラーのジャンルを確立しました。2023年までに数多くの続編やスピンオフが登場し、世界中に多くのファンを持っています。
  • NVIDIAは、最新のゲーム技術を支える企業であり、特にレイトレーシング技術により、ゲームのグラフィック質が飛躍的に向上しました。

関連リンク

この最新作があなたのPCでどれほど楽しめるか、期待が高まりますね!

  • キーワード: 最適化

バイオハザード レクイエム をAmazonで探す



※以下、出典元
▶ 元記事を読む

Views: 0

「ハンターハンター×しまむら」新作ソックス&バスタオル登場!

「ハンターハンター×しまむら」新作グッズが発売決定!

2025年8月20日(水)から、人気アニメ「ハンターハンター」とのコラボレーションによる新作グッズがしまむらから登場します。ゴンやキルアなど、主要キャラクターたちの魅力を反映したアイテムが揃い、普段使いにも最適です。

商品ラインナップ

新作グッズは、以下のような便利で魅力的なアイテムがラインナップされています:

  • ソックス 各385円(税込)
  • バスタオル 各979円(税込)
  • タオルハンカチ 各429円(税込)
  • トートバッグ 各1,639円(税込)
  • 同柄2枚組フェイスタオル 各759円(税込)
  • ブランケット(ひざ掛けサイズ) 各1,419円(税込)
  • 枕カバー 各649円(税込)
  • 刺繍缶バッジ 各649円(税込)
  • キーチャーム 各649円(税込)
  • チャーム 各759円(税込)

「ハンターハンター×しまむら」

開催概要

  • 発売日:2025年8月20日(水)〜
  • 取り扱い:全国のしまむら店舗およびしまむらオンラインストア(同日15:00から)

より詳しい情報は、公式Xをご確認ください。

この新作コレクションでは、日常生活の中で「ハンターハンター」の世界観を楽しむことができます。限られた数量のため、興味のある方は早めの入手をお勧めします!

🧠 編集部より:

「ハンターハンター×しまむら」新作グッズが発売決定!

「ハンターハンター」とのコラボグッズが、しまむらから登場します!このコレクションでは、普段使いに便利なアイテムが豊富に揃っており、キャラクターたちの魅力を日常生活にも取り入れることができると話題です。

商品ラインナップ

  • ソックス 各385円(税込)
  • バスタオル 各979円(税込)
  • タオルハンカチ 各429円(税込)
  • トートバッグ 各1,639円(税込)
  • 同柄2枚組フェイスタオル 各759円(税込)
  • ブランケット(ひざ掛けサイズ) 各1,419円(税込)
  • 枕カバー 各649円(税込)
  • 刺繍缶バッジ 各649円(税込)
  • キーチャーム 各649円(税込)
  • チャーム 各759円(税込)

※価格はすべて税込です。

開催概要

  • 発売日: 8月20日(水)から
  • 取り扱い: 全国のしまむら店舗およびしまむらオンラインストア(同日15:00~)

詳しい情報や新作の画像は、公式Xをチェックしてください。

背景や豆知識

「ハンターハンター」は、冨坚義博による人気漫画で、1998年から連載が続いています。アニメ化もされており、多くのファンに愛されています。このコラボは、キャラクターたちのデザインを日常で楽しめるアイテムとして展開することで、新たなファンを獲得する狙いがあります。また、しまむらはこうしたコラボ商品を多く取り扱っており、今後も注目が集まるブランドです。

関連リンク

ぜひ、商品を手に入れて、作品の世界観を楽しんでください!

  • キーワード: コレクション

ハンターハンター をAmazonで探す

トートバッグ をAmazonで探す

バスタオル をAmazonで探す



※以下、出典元
▶ 元記事を読む

Views: 0

ABEMA、ブンデスリーガを毎節無料生配信!

記事の内容をわかりやすく紹介します。


ABEMAがブンデスリーガの日本語生中継を発表

2025年8月19日、ABEMAはドイツのサッカーリーグ「ブンデスリーガ」の2025-26シーズンにおいて、日本人選手が所属するクラブの試合を中心に毎節2試合を無料で生中継することを発表しました。

この取り組みは、日本のサッカーファンにとって非常に嬉しいニュースです。日本人選手が活躍する試合をリアルタイムで観戦できることで、サッカー界のさらなる興味と関心を引き寄せることが期待されます。

例えば、ブンデスリーガには数名の日本人選手が在籍しており、彼らの活躍を直接見ることができる機会が増えます。これにより、日本国内でのブンデスリーガの人気も高まることが予想されます。

ABEMAは、スポーツの無料配信に力を入れており、今回の発表はその一環です。これにより、多くの人々にサッカーの魅力を伝える助けとなるでしょう。


このように、ABEMAの新たな試みは、日本のサッカーファンにとって大きな喜びとなること間違いありません。

🧠 編集部より:

ABEMAが発表した「ブンデスリーガ」2025-26シーズンの無料生中継は、日本のサッカーファンにとって大きなニュースです。特に日本人選手が所属するクラブの試合を中心に放送されるため、日本国内での注目度も高まるでしょう。

背景と豆知識

ブンデスリーガは、ドイツのプロサッカーリーグで、世界的にも人気があります。日本人選手が多く活躍していることでも知られ、特に武藤嘉紀、鎌田大地、久保建英などがその代表例です。また、ドイツは若手選手育成に定評があり、多くの日本人選手が海外挑戦を果たしています。

サッカーに限らず、ABEMAはスポーツのライブ配信に力を入れており、様々なジャンルでの配信を行っています。これにより、他国のスポーツ文化をより身近に感じることができるため、ファンの向上にも寄与しています。

さらに知りたい方へ

この機会にぜひ、ブンデスリーガの試合を楽しんでみてください!どの日本人選手が活躍するのか、ますます目が離せませんね。

  • キーワード: ブンデスリーガ

ブンデスリーガ をAmazonで探す
ABEMA をAmazonで探す
サッカー をAmazonで探す



※以下、出典元
▶ 元記事を読む

Views: 0

GraphQLスキーマ設計:Global Object ID、エラーハンドリング、Non-null、Cursorの考え方



PeopleXのエンジニアの野口(@joe_re)です。

最近活動できていないのですがGraphQL Tokyoというコミュニティのオーガナイザをしています。

https://www.meetup.com/ja-JP/graphql-tokyo/

自分はGraphQLを長くProductionで使っていて、Prismaの前段プロジェクトであるgraphcoolを導入していました。

https://www.graph.cool/

graphcoolは2020年に終了しています。記憶では自分は2016-2017年ごろに使っていたと思います。
それ以降も、GraphQLをproduction運用してきました。GraphQLがオープンソース化されたのが2015年なので、オープンソース化されてからの期間で考えると、発表後のほとんどの時間をGraphQLに関わってきました。
振り返れば自分のエンジニア人生においては非常に大きく関わってきた技術だなぁと思います。

長ければすごいというものでもないのですが、経験値はあるということでよくGraphQLスキーマの設計について質問される機会があります。

この記事では、よく質問されていて、かつ初見ではわかりづらそうなものをピックアップして紹介しようと思います。

仕様やプラクティスの説明と自分の考えは分けています。
「これを踏まえて筆者の考え方」の項目は、あくまで筆者はこう考えているということを示しています。
他の考え方もあると思いますので、それを拒絶するものではありません。

GraphQLの仕様ではないですが、公式が紹介するベストプラクティスとして、Global Object Identificationというものがあります。

https://graphql.org/learn/global-object-identification/

内部構造(DB内のIDなど)によらず、必ず一意となる文字列をIDとするべきというプラクティスで、 User:1234 のような値をbase64 encodingしたものが使われます。

これは元々はRelayのcacheの仕組みで、クライアントでnormalized cacheを生成するときのキーとして必ず一意となる値を採用する必要があったところから始まっています。

Relayにおいてはこの制約を利用して、Paginationのクエリを自動生成もしています。

キャッシングの観点では、現在のApollo clientではtype name + idをキャッシュのキーとしているように必須ではありません。

この仕様は、Node Interfaceを提供できるところとセットで価値があります。

Node Interfaceは ID! フィールドを持つinterfaceです。ベストプラクティスでは、スキーマ上のオブジェクトの全てがこれをimplementするようにします。
その上で、Node interfaceをクエリできるようにすることで、全てのオブジェクトがIDをキーに取得可能な単数クエリを提供します。

以下のような定義になります。

interface Node {
  id: ID!
}

type User implements Node {
  id: ID!
  name: String!
}

type Article implements Node {
  id: ID!
  title: String!
}

type Query {
  node(id: ID!): Node
}

この例では、User, Articleの両方ともにトップレベルにあるnode queryで取得できるようになっています。
以下がクエリの例です。


node(id: VXNlcjoxMjM0Cg==) {
  id
  ... on User {
    name
  }
}

Global Object IDでbase64エンコードした値を使う理由はここにあります。
DBに持つテーブルのIDをインクリメンタルな整数値として持っていた場合、このクエリは成立しません。User, Articleともに同じIDを持つ可能性があるためです。

DB内のIDをUUIDとして持っている場合には、base64エンコードせずとも一意な値になっていますが、それはあくまで内部構造上の話です。

GraphQLのスキーマはDBに永続化されたデータとは直結しないので、時にはテーブル上のデータを表さない時もあるでしょう。

全てのオブジェクトが単一のnode queryで返されるという特性から、心理的にも、IDの中にtypenameを持って必ず一意になることが保証されている方が望ましいです。

RelayではNode interfaceが実装されていることを前提に、cacheの更新を自動化したりもしています。

これを踏まえて筆者の考え方

よく聞かれることが、Relayを使ってない場合にこの実装が必須かどうかという点です。筆者は必須ではないかな、と考えています。

同僚からはbase64エンコードされていると調査時にいちいちデコードしないとIDがわからないので不便という意見も聞きました。

必須とは思いませんが、実装も難しくないし、自分は推奨はしたいです。

単純に単数系のクエリを悩まずに提供できるというだけでもその利点はあります。

筆者はGraphQLではユースケースをスキーマ上に表現することが大切だと考えています。
その観点では、単数系のクエリと複数形のクエリではそれぞれが必要なユースケースが異なるため、それぞれ単数系と複数形は別々に提供するべきです。

例えばユーザプロフィールページでユーザの詳細を取得するケースを考えた時に、必要十分だからと言ってユーザリストを取得するqueryからユーザ一件を取らなければいけないとすると、それはユースケースに寄り添えているとは言えないでしょう。

userByID のようなqueryをこのために定義していくのはそれはそれで煩雑です。
node queryを通じて、一般的にユースケースが考えやすいIDをキーにしたオブジェクトの取得をデフォルトで提供することができるのは利点です。

この記事では実装の詳細には触れませんが、node interfaceをimplementしているオブジェクトをスキーマ上から取得することで、node resolverの実装は自動化することもできます。

GraphQLにはエラーを返す手段が仕様に定義されています。

https://spec.graphql.org/draft/#sec-Errors

しかしこのエラーはGraphQLのスキーマの外側になるため、型情報や、どんなエラーが発生する可能性があるのかなどをクライアントにあらかじめ伝える手段がありません。

また、2025年の1月にapplication/graphql-response+jsonのcontent typeが仕様として標準化されました。

https://mbonnin.net/2025-01-13_graphql-errors/

GraphQLのレスポンスで返すhttpステータスコードはこれまで曖昧でしたが、これによってどういう時に4xx, 5xx系を返すのか、その時にdata fieldはどういう状態になるのかが明確になりました。

仕様はこちらに定義されています。

https://graphql.github.io/graphql-over-http/draft/#sec-application-graphql-response-json

これによると、responseにdata entryが含まれている限りは例えそれがnullであったとしても200を返すべき、と記載があります。
これはGraphQLのレスポンスが基本的にpartial responseであり、部分的にnullであることを許容しているために定められた仕様です。

逆にdata entryが含まれていない場合には4xx, 5xx系を返すべきと記載があります。
また、data entryがない場合にはerrors entryを含めないといけません。(data entryがある場合にerrors entryを含めることはできます。)

Apolloのdocumentを見ると、errorsをdata(GraphQL schema)で返すアプローチについて記載があります。

https://www.apollographql.com/docs/graphos/schema-design/guides/errors-as-data-explained#when-to-use-errors-as-data

ここにはerrorsはシステムエラーのためのフィールドであり、このエラーに関しては予期せぬものになるためクライアント側での適切なハンドリングが難しいという旨の記載があります。

そこで紹介されているのがunion typesでエラーをスキーマ上に表現する手段です。

Apolloの例をここに記載します。

union CheckoutResponse =
    Order
  | InsufficientStockError
  | InvalidPaymentMethodError

interface CheckoutError {
  message: String!
}

type InsufficientStockError implements CheckoutError {
  message: String!
  product: Product!
  availableStock: Int!
}

type InvalidPaymentMethodError implements CheckoutError {
  message: String!
  paymentMethod: ID!
}

ここでは在庫不足として、InsufficientStockError, 支払い情報のvalidationエラーとしてInvalidPaymentMethodErrorを定義しています。

クライアント側は以下のようなqueryでそれぞれのエラーケースを取得することができます。

mutation OrderCheckout($payment: ID!) {
  checkout(paymentMethod: $payment) {
    ... on Order {
      id
      items {
        product {
          name
        }
        quantity
        price
      }
      totalPrice
      status
    }
    ... on InsufficientStockError {
      message
      product {
        name
      }
      availableStock
    }
    ... on InvalidPaymentMethodError {
      message
      paymentMethod
    }
  }
}

これにより、クライアントはInsufficientStockErrorの時、InvalidPaymentMethodErrorの時のエラーハンドリングをそれぞれ適切に行うことができます。

また、エラーハンドリングをそれぞれのケースで行いたくない時には以下のようなqueryでCheckoutErrorとして、まとめて行うこともできます。

mutation OrderCheckout($payment: ID!) {
  checkout(paymentMethod: $payment) {
    ... on Order {
      id
      items {
        product {
          name
        }
        quantity
        price
      }
      totalPrice
      status
    }
    ... on CheckoutError {
      message
    }
  }
}

これはそれぞれのエラーがCheckoutErrorをimplementしているので可能になっています。
message fieldはCheckoutErrorをimplementしているそれぞれのエラーに共通のフィールドなので、このinterfaceを通じてまとめて扱うことができます。

クライアントのユースケースによって、クライアントに手段の選択を委ねられるのがGraphQLの大きな特徴であり、One-Size-Fits-All APIとしての利点だと思います。

これを踏まえて筆者の考え方

Apolloの記事にもある通り、システムエラーではerrorsを使い、アプリケーションエラーはスキーマでエラーを表現するのが良いと考えます。

エラーを返す手段としては、上記のunion typeで返す他にも、以下のようにerror用のfieldを追加して表現する方法もあります。

type CheckoutResponse {
  checkoutError: [CheckoutError!]!
  order: Order
}

enum CheckoutErrorCode {
  InsufficientStockError
  InvalidPaymentMethodError
}

type CheckoutError {
  message: String!
  code: CheckoutErrorCode!
}

どちらを使うかは好みの問題なので、プロジェクトに合わせて考えれば良いと思います。
形式が統一されていることがより重要です。

筆者はより型の恩恵を受けやすいunion typesの定義を好んで使います。

GraphQLのスキーマ設計で度々話に上がりますが、Non-null fieldを使う時は慎重になるべきという考えがあります。

これは上記のエラーフィールドのところでも述べた、GraphQL responseがpartial responseであるという仕様と、non-nullからnullableへの変更がSchemaの破壊的変更を引き起こすことの2点から語られます。

GraphQLのresponseがpartial responseであるという点から説明します。

GraphQLではフィールドでエラーが発生した時、nullableなtypeが出現するまでエラーを親のタイプに伝播させていくことが定められています。

https://spec.graphql.org/draft/#sec-Handling-Execution-Errors

以下のようなSchema定義があるとします。

type User implements Node {
  id: ID!
  name: String!
  postedArticles: [Article!]!
  favoriteArticles: [Article!]
}

type Article implements Node {
  id: ID!
  title: String!
  references: [Article]!
}

この時、favoriteArticlesを以下のようなqueryで取得します。
この時referencesの生成でエラーが発生したとします。

query {
  users {
    id
    name
    favoriteArticles {
      id
      title
      references { 

この場合に、サーバが返すべきレスポンスは以下のようになります。

{
  data: {
    users: [
      {
        id: 1,
        name: "joe-re",
        favoriteArticles: null
      },
    ]
  },
  "errors": [
    {
      "message": "Failed to fetch references",
      "path": ["users", 0, "favoriteArticles", 0, "references"]
    }
  ]
}

referencesでエラー -> 親(Article.references)のreference fieldはnon-null -> さらにその親(User.favoriteArticles)はnullable

ということでエラーの伝播はそこで止まり、User.favoriteArticlesがnullで設定されます。

これが親のタイプにエラーが伝播するという仕様です。postedArticlesはnon-nullで設定しているので、同じようにreferencesでエラーが発生した場合にはrootオブジェクトまでエラーが伝播することになります。この場合はdataをnullにした上で、errors entryでエラーを表現しないといけません。

GraphQLではクライアントに必要な情報を選択させるべき(Demand-Driven)という思想に基づいているので、返せるべきデータは部分的にでも返すべきという考えです。

non-nullを使うとこの部分で不都合があります。

もう一点のnon-nullからnullableへの変更がSchemaの破壊的変更を引き起こす点についてです。

これは単純な話で、nullable前提でハンドリングしているクライアントコードは後からnon-nullableに変更されても動作しますが、non-nullableからnullableへの変更はエラーハンドリングを追加しないといけないことになるので動作しなくなります。

この2点を考慮して、nullableなフィールドの定義は慎重になるべきという議論になります。

これらの問題を解決するために、True Nullability Schemaという議論があります。

https://github.com/graphql/graphql-wg/discussions/1394

本来エラーになるべきでないものはsemantics的にnon-nullと表現し、エラーが発生してしまったケースのみnullを返すことを許容し、その場合はerrors entryを使って理由を返すという仕様です。

この議論は @semanticsNonNull を新しい構文とすることで議論が進んでいます。

https://graphql.org/conf/2024/schedule/8daaf10ac70360a7fade149a54538bf9/

実装もRelayとApollo Client(kotlin)で実績があります。

これを踏まえて筆者の考え方

Semantics non-nullを使わない場合に、システムが正常な場合にはnon-nullを表現したい場合、private APIで用途が限定されていればnon-nullにしてしまって良いのではないかというのが筆者の考えです。

private APIであれば用途は限定されていて、かつ予期せぬエラーであれば拾いたいことがほとんどなので、partialにデータを返せる仕様を優先する必要は薄いと考えています。

とは言え、外部APIに依存するフィールドだったり、privateでも自分たちとは別のチームからも呼ばれる汎用的なAPIを提供している場合には考える必要があります。

Public APIであれば多くのフィールドをnullableにします。

用途が狭ければ狭いほどnon-nullフィールドを許容し、広ければ広いほど許容しないというのが筆者の基本的な考えです。

Cursor-Based Paginationが何かという説明は以前に書いた記事あるのでそちらを参照してください。

https://qiita.com/joe-re/items/e3610d1ee8130da05288

Cursorはpaginationにおける要件の変化に柔軟に対応できるようにするため、あえて不透明にして、必要な情報を入れてbase64エンコードした文字列とすることが公式で推奨されています。

https://graphql.org/learn/pagination/#pagination-and-edges

これを踏まえて筆者の考え方

ここではCursorはどういう形式で生成するべきかという点について自分の考えを述べます。

必要な情報というのが何かを具体的に考えると、ほとんどの場合でこれはsort条件による値とIDを条件を含めることになります。

例えば名前、IDの順にソートしているとすると、以下のような値をエンコードします。

このデータからは、以下の条件をSQLで表現することができます。

WHERE (name > 'joe-re') OR (name = 'joe-re' AND id > 1)

afterでcursorを指定した時、取得したいのは次の位置のレコードからになります。
複合キー(name, id)での「次の位置」を表現するには、「nameが大きい」または「nameが同じでidが大きい」という条件になります。

これに限らず、paginationで必要な情報があれば自由な値を入れられるためにbase64にしてあえて不透明さを持たせているのがcursorの文字列になります。

五月雨でしたが、自分がよく聞かれた記憶があり、かつ初見では分かりづらそうなスキーマ設計のポイントを解説しました。

まだ他にもあると思いますので、コメントなどいただければ自分の分かるものに関しては追記しようと思います。

どなたかの参考になれば幸いです。



Source link

Views: 1

「新発見!酸素吸収結晶の秘密」

📌 ニュース:
北海道大学と釜山大学の共同研究で、酸素を「呼吸する」新しい金属酸化物結晶が開発されました。ストロンチウム、鉄、コバルトを組み合わせたこの結晶は、酸素を放出すると色が薄く、再吸収で元の色に戻ります。安定して酸素を出し入れできるため、燃料電池やスマートウィンドウなど省エネルギー技術への応用が期待されています。この新しい材料は、約400℃で機能し、従来の高温条件を必要としない点が特長。研究詳細は2025年に発表予定です。

  • この記事のポイントは以下の3つです✨:

    1. 酸素を「呼吸」する結晶の発見

      • 北海道大学と釜山大学の共同研究により、ストロンチウム、鉄、コバルトを含む新しい金属酸化物結晶が開発されました。この結晶は酸素を吸収・放出することができ、その色が変わる特性を持っています🌈。
    2. 低温での酸素出し入れの安定性

      • この結晶は、約400℃という比較的低い温度で酸素の出し入れが可能です。従来の材料は高温が必要でしたが、新しい結晶は安定して機能し、構造が壊れにくいという利点があります🔧。
    3. 未来の応用可能性

      • 新しい結晶は、燃料電池やスマートウィンドウなど省エネルギー技術への応用が期待されています。これにより、効率的なエネルギー利用と環境保護につながる可能性があります🌍。

    この発見は今後のエネルギー技術に大きな影響を与えるかもしれません!💡


※以下、出典元
▶ 元記事を読む

Views: 0

藤原さくら、武道館で史上初ライブ!チケット先行受付中

藤原さくらがキャリア初の日本武道館公演「藤原さくら 10th Anniversary 武道館大音楽会」を2026年2月23日に開催することが発表されました。これは彼女のデビュー10周年を祝う特別なライブです。

藤原さくらの公演告知画像

この公演は、藤原が12月に30歳を迎えるにあたり、人生の重要な節目を迎えるものでもあります。彼女がこれまでリリースしてきた楽曲を振り返りながら、ファンと共に素晴らしい時間を過ごすことが期待されています。

藤原さくらは、多くのファンに愛され続けており、これからの活動にも注目が集まります。公演に向けて準備が進められる中で、彼女の音楽キャリアの新たな一歩が踏み出されることでしょう。

🧠 編集部より:
藤原さくらが2026年2月23日に開催する『藤原さくら 10th Anniversary 武道館大音楽会』は、彼女のデビュー10周年を祝う特別なイベントです。この公演は、ただのライブにとどまらず、彼女の音楽の軌跡と成長を振り返る重要な機会となります。 ### 背景情報 藤原さくらは2016年にデビューし、以降シンガーソングライターとして多くの人気曲をリリースしています。特に、ドラマの主題歌や映画の音楽に携わることで、幅広いファン層を獲得しました。今後の音楽の進展が楽しみですね。 ### 豆知識 実は、日本武道館は多くのアーティストにとって夢の舞台と言われています。広いステージと素晴らしい音響環境は、パフォーマンスを一層盛り上げる要素となります。藤原さくらにとっても、特別な意味を持つ会場でのパフォーマンスは、彼女のキャリアの新たな一歩となるでしょう。


  • キーワード: 日本武道館公演

藤原さくら をAmazonで探す 日本武道館 をAmazonで探す 楽器 をAmazonで探す

※以下、出典元 ▶ 元記事を読む

Views: 0

「カービィのエアライダー」に新キャラ登場!

任天堂、2025年発売予定の「カービィのエアライダー」を発表

2025年8月19日に放送された配信番組「カービィのエアライダー Direct」で、任天堂は新たなレースゲーム「カービィのエアライダー」を発表しました。このゲームは次世代のNintendo Switch 2向けに開発されており、ファンにとって期待が高まる内容となっています。

新たなライダー選択システム

今作の特筆すべき点は、カービィ以外のキャラクターも選べるライダー選択システムです。参戦キャラクターとして、デデデ大王、メタナイト、ワドルディ、コックカワサキが紹介されました。これにより、プレイヤーは多彩なキャラクターの特性を活かしてレースを楽しむことができます。

公式映像の紹介

さらに、公式の紹介映像も公開されており、ゲームの内容やキャラクターを確認することができます。動画は以下のリンクから視聴可能です。

まとめ

「カービィのエアライダー」は、ファンに新たな体験を提供する期待の作品です。多様なキャラクターとレースの楽しさが詰まったこのゲームに、今後も目が離せません。

(C) Nintendo / SORA
(C) Nintendo / HAL Laboratory, Inc.

🧠 編集部より:

「カービィのエアライダー」についての補足説明

ゲームの概要

任天堂が発表した「カービィのエアライダー」は、2025年にNintendo Switch 2向けに発売予定のレースゲームです。このゲームでは、主人公カービィをはじめ、人気キャラクターたちがライダーとして選択可能です。参戦キャラクターには、デデデ大王、メタナイト、ワドルディ、コックカワサキが含まれています。各キャラクターには独自の特性やスキルがあり、プレイヤーが戦略を考えて選ぶ楽しさが魅力です。

背景と豆知識

  • カービィシリーズの人気: カービィは1992年に初登場して以来、任天堂の顔とも言えるキャラクターとなっています。シリーズには多様なゲームジャンルがあり、アクションからパズル、レースにまで広がっています。
  • レースゲームの進化: レースゲームは身近な親しみのあるジャンルですが、「カービィのエアライダー」のようにキャラクターの個性を生かした内容はファンにとって新たな楽しみです。

関連リンク

このゲームは、ファンだけでなく新たなプレイヤーにも楽しんでもらえる内容になっているでしょう。ますますの情報に注目です!

  • キーワード: カービィ

Nintendo Switch 2 をAmazonで探す

カービィのエアライダー をAmazonで探す

デデデ大王 をAmazonで探す



※以下、出典元
▶ 元記事を読む

Views: 0