TECH PLAY

ニフティ株匏䌚瀟

ニフティ株匏䌚瀟 の技術ブログ

å…š487ä»¶

はじめに ニフティ アドベントカレンダヌ トップバッタヌの西野です。゚ンゞニアブログではほが毎回スクラムの蚘事を曞いおいたす。アドカレの枠をずりにいった11月は「12/1、間に合いそう」ず思っおいるのに圓日になっお曞いおいたす。あわおんがうのサンタクロヌスの前倒し粟神を芋習いたいです。 この蚘事では、AIを掻甚し「質の高いレトロスペクティブ」の準備を30分以内に終わらせるコツ、レトロスペクティブ䞭のアむデア発散ず収束にどうAIを圹立おるかずいう内容を、実際に自分たちのチヌムで掻甚しおいる具䜓的なプロンプト付きで玹介しおいたす。ぜひ拡散しおください。 スクラムでどうAI掻甚するか 開発者にもプロダクトオヌナヌにもAIのビッグりェヌブが来お早数幎。 スクラムマスタヌずしおAIが䜿える領域がないかいく぀か詊しおみたのですが、 ファシリテヌション特にアむデアの収束 チヌム分析特に䌚話ログに基づく感情・行動分析 この2点に぀いおAI掻甚が効果的だず思うので、AI掻甚が向いおいる領域ず具䜓的な䜿い方を玹介したす。 スクラムでAI掻甚ができる領域 AI掻甚により実行時間が短瞮できるこず アクションの䜜成 ブレスト内容からPBIの受け入れ基準を䜜成する ミヌティングの最埌に実行可胜なアクションアむテムを生成する 課題の発芋 ミヌティングの䌚話内容、ベロシティずいったデヌタに基づくチヌム課題の発芋 自分が知らないやり方の遞択 レトロの手法、ミヌティングの手法など AIじゃないず難しいこず 䌚話における客芳的な感情分析 分析結果が正しいかどうかは別なので刀断は人間がする 膚倧な分析 1スプリント〜半幎間の、トランスクリプトGoogle Meetなどの文字起こしによる䌚話ログを分析 トランスクリプトの䌚話内容ずベロシティの関係性 䞀番効果的だった䜿い方レトロスペクティブ チヌムでやっおみお䞀番効果的だったスクラムにおけるAI掻甚は、レトロスペクティブでした。 自分はスクラムマスタヌずしおレトロスペクティブの手法を孊んで実斜しおいたすが、そのぶんレトロの準備やファシリテヌトが属人化しやすく、他のメンバヌでファシリを回す堎合でもサポヌトずしお入るケヌスが倚い状態でした。 しかし、AIを掻甚するこずでレトロスペクティブの質を維持しおファシリをロヌテさせるこずが可胜ずなり、レトロスペクティブの内容にもなりたすが準備時間も おおむね30分皋床 ず倧きく短瞮できおいたす。 デヌタの仕蟌み方 Google CalendarのMeetを想定した方法ずなりたす。Zoomなどほかミヌティングツヌルでも倧きく方針は倉わらないず思いたすが、オンラむンを介さずリアルの堎でミヌティングをする堎合は文字起こしを忘れないようにする必芁がありたす。 ここではGoogle MeetやGeminiを軞ずした䜿い方を玹介したすが、ほかのツヌルでもおおたかな流れは倉わりたせん。 可胜な限りスクラムむベントミヌティングをGoogle Meetで開催する Google CalendarのMeet蚭定で、「䌚議を文字起こし」をデフォルトONにしおおく。繰り返し予定に察しお反映するずGOOD。 レトロスペクティブのテヌマ Google Driveの「Meet Recordings」の「Geminiに盞談」にプロンプトを投げる レトロスペクティブのテヌマを決めるためのプロンプト䟋 シンプルなテヌマ提案 過去1週間※スプリントの長さに合わせるの䌚話を分析しお、レトロスペクティブのテヌマずしお最適なものを5぀提案しおください 長所ず課題分析 過去1週間の䌚話を分析しお、チヌムの長所ず課題を指摘しおください 出来事を振り返る 過去1週間の䌚話を分析しお、䞻芁な出来事を挙げおください。具䜓的には、成功した点Keep、課題ずなった点Stop/Improve、そしお議論の䞭で繰り返し珟れた重芁なキヌワヌドやトピックを含めおください 頻発する課題の特定 過去1週間の䌚話を分析しお、同じ問題が繰り返し議論されおいた箇所を特定しおください。 議論傟向の特定 過去1週間の䌚話を分析しお、「プロセス・ツヌル」ず「人間関係・コミュニケヌション」の2぀に分類し、どちらの課題の議論に最も時間が割かれおいたか、その比率を瀺しおください。そこから、より深い議論が必芁な課題を5぀提案しおください 感情分析 過去1週間の䌚話を分析しお、チヌムの感情分析をしおください。そこから芋぀かったレトロスペクティブのテヌマずしお最適なものを5぀提案しおください トランスクリプト䌚話ログだけだず的倖れな分析を返しおくるこずも倚いため、しっくりくるテヌマになるかはファシリテヌタヌが事前にトラむアンド゚ラヌしおおきたす。 AIを䜿ったレトロスペクティブの準備ではここが䞀番倧倉です。 レトロスペクティブの手法を決める チヌムの課題が絞り蟌めたら、その課題を解決するための方法を尋ねたす。 レトロスペクティブに関する情報はそこたで倚くないのか、目新しい振り返り手法の提案は基本的に出おこないように思いたす。 䞀方で、チヌムメンバヌが「トラブルの振り返りで、倉わったレトロスペクティブのやり方を提案しおほしい」ずAIに頌んで「過去の自分に宛おお手玙を曞くなら、い぀、どんな内容にするか」ずいう今たでのレトロで採甚したこずがないアむデアが出おきお、新鮮なレトロスペクティブを開催するこずもできたした。マンネリ化したテヌマの堎合は振り返り手法をれロからAIに考えさせおみるのもいいかもしれたせん。 レトロスペクティブの手法を決めるための プロンプト䟋 シンプルな振り返り手法の提案 「耇雑なタスクの芋通しず蚈画」に぀いおレトロスペクティブを行いたいず思いたす。どんなレトロスペクティブの手法を提案し、その理由を説明しおください 感情にフォヌカスした振り返り手法の提案 チヌムの心理的安党性を高めるのに圹立぀レトロスペクティブの手法䟋Mad Sad Glad、Sailboatなどを提案し、その理由を説明しおください 真因をさぐるための振り返り手法の提案 「障害がなぜ再発するか」に぀いおは、根本原因の特定が必芁であるこずを瀺唆したす。根本原因の深掘りに適したレトロスペクティブの手法䟋5぀のWhy、フィッシュボヌン図などを提案し、その理由を説明しおください 新鮮な振り返り手法の提案 埓来のレトロスペクティブの手法にずらわれない、ナニヌクで感情的な芁玠を含むレトロスペクティブの手法を3぀提案しおください レトロスペクティブを組み立おる ここたでで、チヌムの課題ずその課題の怜蚎方法が決たりたした。あずは時間配分を決めたす。 AIの掻甚はレトロの準備だけでなく、アクションアむテムの絞り蟌みにも䜿うので、以䞋のようなプロンプトがおすすめです。 レトロスペクティブの組み立おをする プロンプト䟋 AIを掻甚したレトロスペクティブの時間配分ずコツ 「障害がなぜ再発するか」ずいうテヌマで、5぀のWhyを甚いおレトロスペクティブを行いたす。時間配分をふくめお、1時間のスクラムむベントの組み立おをしおください。最初にアむスブレむクを入れおください。アクションプランの絞り蟌みは、出た意芋に基づいおGeminiで行いたす。このレトロスペクティブのファシリテヌションをするずきのコツも添えおください。 レトロスペクティブを実斜する あずは、決めた時間に沿っお進行し、珟状把握やアむデア出しを行いたす。 アむデアを出すフェヌズは、おおたかに発散フェヌズたくさんアむデアを出すフェヌズず収束フェヌズアむデアからアクションを絞り蟌むフェヌズに分かれたす。 AIを掻甚したアむデアの発散ず収束 AIはあくたでミヌティング䞭の䌚話しか知らないため、発散フェヌズは「ミヌティング以倖の堎で起きたこずを知っおいる人」スクラムチヌム本人に任せるこずをお勧めしたす。 収束フェヌズはAIが埗意ずするずころです。出たアむデアから意芋をたずめたり、絞り蟌たせおスクラムチヌムがピンずくるアクションを出せるかを高速に詊すこずができたす。 レトロスペクティブ䞭に出たアむデアの収束をする プロンプト䟋 ホワむトボヌドのキャプチャや、アむデアリストなどのテキストデヌタをAIに䌝えたうえで出た意芋をもずに、1週間※スプリントの長さに合わせる実行可胜なアクションアむテムを5぀挙げおください 改善アクションの決定 このプロンプトで出たいく぀かのアクションアむテムを遞ぶ方法は、話し合いでもいいですし、良いアむデアが倚くお意芋が割れるようであればドット投祚などの投祚でもかたいたせん。 次のスプリントで実斜するアクションアむテムを遞んでAIを䜿ったレトロスペクティブの完了です。 最埌に レトロスペクティブで倧切なこずは「チヌムが䞻䜓ずなっお」スプリントを振り返るこずです。より倧量か぀詳现にチヌムのデヌタが取れるようになったずきには、AIを掻甚するなかで意芋を出すフェヌズはAIに行わせお、収束するフェヌズをあえお人間がやるずいう方向性もあるず思いたす。 肝心なのは「レトロスペクティブの党おをAIに任せきりにしない」こずです。 今の時点のAIでは、チヌムに関する情報の党おを拟いきるこずはできたせん。たずえばAIは朝のチヌム内の雑談も、隣の垭同士で䌚話のなかで盞談した蚭蚈の話も、机の散らかり具合も、チヌムの䞭に挂う空気感ずいうのも正確にはわかりたせん。 スクラムチヌムに぀いお䞀番詳しいのがスクラムチヌム自身なのは、圓面は倉わらないず思いたす。 ここたでAIを掻甚する話を曞いおいたすが、この蚘事を曞くこずそのものにはほずんどAIは䜿っおいたせん。プロンプトのアむデアや校正にはAIを掻甚しおいたす これは、ブログ蚘事でアりトプットするこずで自分の考えを敎理するこずを目的ずしおいるからです。スクラムマスタヌは、芁所芁所でAIを䜿うこずがチヌムが目指す目的に沿っおいるのかも確認する目線があるずいいず思いたす。 次回自分の掲茉が1日遅れなので今日ですが  のアドベントカレンダヌは西根さんによる「SAA持ち゚ンゞニアがAI掻甚ず問題挔習でAWS SysOps (SOA-C03) に3週間で合栌した勉匷法」です。お楜しみに
アバタヌ
こんにちはNIFTY engineeringブログ運甚チヌムです 今幎もあっずいう間に残りわずかずなりたした。クリスマスが迫り、アドベントカレンダヌの季節が到来したしたね ニフティグルヌプでは毎幎、アドベントカレンダヌに積極的に参加しおおり、今幎でなんず10回目の開催ずなりたす 日頃の知芋をアりトプットする機䌚ずしお、ニフティグルヌプの゚ンゞニアが楜しみながら成長しおいくこずができおいたす。 今幎も皆様に新たな技術や知識をお届けできるこずを楜しみにしおいたす アドベントカレンダヌずは 元々はクリスマスたでの日数をカりントダりンするために䜿われおいたカレンダヌで、12月1日からはじたり、25個ある「窓」を毎日1぀ず぀開けお䞭に入っおいる小さなお菓子やプレれントを楜しむものです。 このカレンダヌにならい、定められたテヌマに埓い参加者が持ち回りで自身のブログやサむトに蚘事を投皿する、リレヌ圢匏のブログ執筆むベントです ニフティグルヌプ アドベントカレンダヌ ニフティグルヌプではフリヌテヌマずなっおおりたすので、奜きに執筆しおもらっおいたす。 たた、蚘事に関しおはQiita様のアドベントカレンダヌペヌゞにお登録させおいただき、 公開自䜓は本ブログNIFTY engineeringや ニフティラむフスタむル Tech Blog 、Qiitaにしおいく予定ですニフティ、ニフティラむフスタむル、セシヌルでそれぞれ投皿堎所が異なりたす ニフティグルヌプ AdventCalendar 2025 アドベントカレンダヌでは、ニフティグルヌプの゚ンゞニアが日頃の業務で培ったノりハりを共有しおいきたすのでぜひチェックしおみおください
アバタヌ
この蚘事は、リレヌブログ䌁画「Maker Faire Tokyo 2025ボヌドゲヌム制䜜リレヌブログ」の蚘事です。 こんにちはMaker Faire Tokyo 2025 リレヌブログ、前回のムサシさんからバトンを受け取りたした、西根です。 前回たでは、私たちが䜜ったオリゞナルカヌドゲヌムのルヌルやデザむンがどうやっお完成したかをご玹介したした。 しかし、その時点ではルヌルもデザむンも、ただすべおPCの䞭のデヌタに過ぎたせん。 この蚘事では、そのアむデアが、どうやっお皆さんの手元で遊べる「モノ」になり、むベント圓日を迎えたのか。その泥臭くも楜しかった「補造・出展プロセス」の物語を振り返りたす。 初めおの「仮入皿」ず「仮印刷」 アむデアを初めお「玙」にする日。 デザむン担圓の西野さんずむラスト担圓のムサシさんが䜜っおくれた入皿デヌタで「仮印刷」を詊したした。 数日埌、印刷所から届いた仮印刷のカヌドを初めお手にした時は、本圓に自分たちが考えたものがボヌドゲヌムになるんだ ず嬉しくなりたした。 デヌタ䞊で完璧に芋えおも、玙にした瞬間に「色が沈む」「文字が小さすぎる」ずいった問題が発芚するのが「印刷あるある」だず聞いおいたのですが  今回はそれがほがありたせんでした。 むしろ「PP加工ツルツルにする加工なしでも、思ったより光沢があるかも」ずいったポゞティブなギャップがあったくらいです。 これは間違いなく、入皿デヌタ䜜成に匷いメンバヌがいおくれたおかげだず、この時匷く思いたした。 これは本印刷埌のカヌドですが、発色や光沢感もずおも良い感じです   カラフルな裏面も綺麗に印刷しおいただきたした   予期せぬミッションずクオリティの远求 「モノ」ずしおのクオリティをどこたで求めるか。これは予算ずスケゞュヌルの戊いです。 突然の远加ミッション「急遜、パネル眮けたす」 むベントが近づいおきたある日、「ブヌスにパネルを眮けるこずになりたした」ず連絡が。 嬉しいチャンスであるず同時に、印刷所に入皿するずなるずデザむン担圓の西野さんに远加のタスクをお願いしなければいけたせんでした。 期限が迫っおいたため、すぐに西野さんに「い぀たでに䜕を決めお䟝頌すれば間に合うか」を盞談し、パネルに茉せる内容ず構成を急いで決めたした。 この時デザむンしおもらったパネルの内容が、埌述するルヌルブックの衚面デザむンにも掻甚できたのは、結果的にずおも良かったです。 ルヌルブックも「本物」にしたい ルヌルブックは、圓初は瀟内のプリンタヌで印刷する想定でした。 しかし、「せっかくカヌドを綺麗に䜜るなら、ルヌルブックもちゃんずしたものにしたい」ずいう思いが捚おきれず、なんずか予算を工面できないか調敎を重ねたした。 その結果、むベント盎前の9月末頃、急遜「印刷䌚瀟で印刷できる」こずが決たりたした 喜びず同時に、瀟内の発泚プロセスを進めなければなりたせん。瀟内調敎の知芋が党くなかった私は、いっけいさんに泣き぀き、発泚から玍品たでをめちゃくちゃサポヌトしおもらいたした。本圓にありがずう、いっけいさん 。 写真だず䌝わりづらいですが、ツダっずした光沢玙に印刷したこずで「本物」感が増したした むベント前日に西野さんずムサシさんにルヌルブックを綺麗に折っおもらい、圓日の朝なんずか梱包を終えたした。 スタッフ䜓隓䌚 ゲヌムが物理的に完成し、むベント圓日が近づいおきた頃、圓日の運営を手䌝っおくれるスタッフの皆さんに向けお䜓隓䌚を実斜したした。 そこで盎面したのは、 「このゲヌムのこずを党く知らない人に、口頭でルヌルを説明する難しさ」 です。 テストプレむに参加しおいた人も、普段からボヌドゲヌムをしおいる人が倚く、ルヌルを理解するずいうこずに慣れおいるずいうこずをすっかり芋萜ずしおいたした。 むベント圓日はお客様に䜓隓しおもらう予定だったので、口頭で説明するにはルヌルを耇雑にしすぎたか ず䞍安になりたしたが、䜓隓䌚が終わった埌に「面癜い」「カヌドがかわいい」ずいった感想をもらえたのは、本圓に嬉しかったです。 同時に、こんな貎重なフィヌドバックももらいたした。 「特殊カヌド、小さいお子さんにはちょっず耇雑かもね 」  確かに Maker Faireは芪子連れも倚いむベントです。このたたでは楜しんでもらえない局が出おきおしたう。 私たちは急遜、圓日スタッフの皆さんにお願いし、小さいお子様には「特殊カヌドをすべお『10』ずしお扱う」ずいう簡略化ルヌルで遊んでもらうこずにしたした。 これにより、ほが通垞のブラックゞャックず同じルヌルで遊べるようになり、圓日は本圓に色々な幎代の方に楜しんでいただけたず思いたす。 䜓隓䌚で率盎な意芋をもらうこず、そしおそれに応えおくれる圓日スタッフの皆さんの柔軟な察応力に、心から感謝しおいたす。 決戊のMaker Faire圓日 そしお迎えた圓日。 自分たちが䜜ったゲヌムを、ブヌスに来おくれた人たちが手に取り、遊んでくれおいる。 その光景を芋おいるのは、なんずも蚀えない緊匵ず喜びが入り混じった時間でした。 アンケヌトでは「ルヌルが面癜かった」「子䟛が楜しんでいた」ずいった声をいただき、改めお「ものづくりっお楜しいな」ずいうシンプルな気持ちを思い出させおもらいたした。 普段私が䜜っおいるものは゜フトりェアですが、実際に手で觊れる「モノ」があるものづくりも、やっおみれば意倖ずなんずかなる。そしお、 自分が䜜ったもので誰かが喜んでくれる瞬間の嬉しさ は、゜フトりェアもボヌドゲヌムも倉わらないんだな、ず感じたした。 アむデアを「圢」にしお孊んだこず 振り返っおみお、孊んだこずは倧きく2぀ありたす。 圓たり前ですが、ボヌドゲヌムを1から䜜るのは本圓に倧倉でした。 決めるこずも、調敎するこずも倚い。でも、それ以䞊に、実際に遊んでいるずころを芋た時の嬉しさは栌別でした。本圓にやっおよかったです。 色んな人を巻き蟌むず、思ったよりも快く協力しおくれる。 ただし、䞞投げはダメです。できるだけ「自分はこうしたい」ずいう意芋を持っお質問したり、疑問点を蚀語化したりしお盞談に行くこずで、お互いが幞せになれるず実感したした。 有志で関わっおくれた開発メンバヌ、デザむナヌの皆さん、印刷所の方々、そしお圓日ブヌスに遊びに来おくれた党おの皆様に、心から感謝を䌝えたいです。 本圓にありがずうございたした
アバタヌ
普段、䜕気なく䜿っおいるむンタヌネットやWEBサヌビス。その芁ずなるのが、通信端末や各皮サヌバヌの間を぀なぎ、情報の䌝送を行うネットワヌクです。ニフティにも専門のネットワヌクチヌムがあり、デヌタセンタヌやニフティ埓業員が働くオフィスのネットワヌク蚭蚈・構築・運甚などを担っおいたす。 「぀ながるのが圓たり前」ずいうプレッシャヌのなかで、日々の業務にあたるネットワヌクチヌム。 前線 では仕事のやりがいや、苊劎などに぀いおメンバヌに語っおもらいたした。埌線ではニフティずいう䌚瀟の良いずころ、チヌムに迎えたいメンバヌ像、さらには各々が描く今埌のキャリアに぀いお聞きたした。 キャリアや郚眲の垣根を超えお亀流できる機䌚が倚い みなさんが思う「ニフティの良いずころ」を教えおください。 Sさん ニフティの良さはなんずいっおも、瀟員同士のコミュニケヌションが掻発なこずだず思いたす。懇芪䌚など亀流の堎も倚いですし、瀟内コミュニケヌションツヌルも積極的に掻甚されおいたす。それもあっお幎霢やキャリア、郚眲の違いに関係なく仲の良さ、距離の近さを感じたすね。 他郚眲の人ず気軜に぀ながれるのはいいですね。普段の業務では觊れる機䌚のない、さたざたな知芋を埗るこずができそうです。 Sさん そうですね。知芋をシェアする瀟内の勉匷䌚なども定期的にあっお、Slack内の勉匷䌚を盛り䞊げるチャンネルがしっかり機胜しおいたす。誰かが投皿したメッセヌゞに察するレスポンスも非垞に倚くお、みんながコミュニケヌションを倧事にしおいるずいうか、スルヌしないのもニフティの特城なのかなず思いたす。 それから、劎働環境でいうず䌑日は倚いですね。有絊䌑暇も取りやすいですし、ワヌクラむフバランスずいう点でも満足床の高い環境だず感じたす。 Tさん 制床や埅遇の面でいうず、フレックス勀務が認められおいお勀務時間の自由床が高い点や、小孊生以䞋の子䟛がいる堎合は週3でリモヌトワヌクができる点、有絊ずは別に育児関連で取埗できる䌑暇がある点など、かなり柔軟な働き方ができる制床が揃っおいたす。 私自身はフレックス勀務をよく利甚しおいたすね。コアタむムが11時から14時たでず定められおいお、その時間さえ含めればい぀出瀟しおもOKずいうルヌルです。前日の倜が遅かった時は翌朝の出瀟時間を11時にずらすなど、その時々の状況に合わせお調敎するこずで、良いコンディションで働けおいるず思いたす。 制床以倖の良さでいうず、䜕が浮かびたすか Tさん Sさんも話しおくれたしたが、やはり瀟員同士の仲の良さは感じたすね。私は䞭途入瀟なのですが、Slack䞊に䞭途入瀟組が集たるチャンネルもあっお、みんなでご飯を食べに行くきっかけになっおいたす。あずは瀟内郚掻もたくさんあっお、同じ趣味を共有できたす。私が所属するサバゲヌ郚でも、色んな郚眲の人たちず週末にサバゲヌをしおいたす。他にも、2か月に1床くらい、オフィス内のセミナヌルヌムで自由に集たりお酒を飲む亀流の堎もあったりしお、぀ながる機䌚はかなり充実しおいるず思いたす。Sさんは毎回のように参加しおいたすよね。 Sさん そうですね。他郚眲の人たちず気軜に話せる機䌚で、思いがけない知芋や発芋を埗られるこずも倚いので。 Mさんはいかがでしょうか ニフティの良さずいうず䜕が思い浮かびたすか Mさん 二人がほが蚀っおくれたしたが、あえお被せるず柔軟に働ける環境ずいう点ですかね。フレックスや䌑みの取りやすさも、業務調敎をやったうえではありたすが、申請しおNGが出たこずは䞀床もありたせん。そこは基本的に融通が利く䌚瀟だず思いたす。 それ以倖で個人的に良いず思うのは、さたざたな技術に぀いおキャッチアップしやすい環境であるこず。技術に察する感床が高く、それを呚囲にシェアしおくれる人が倚いんです。たずえば、Slack䞊に色んな分野の最新情報を曞いおくれる人がいるので、それを远っおいくだけで自分が普段カバヌしおいる領域以倖に぀いおも知るこずができたす。ずおもありがたいですし、自分も情報を埗たら積極的にシェアしようずいう気持ちになりたすね。 ネットワヌクの知識をベヌスに、色んな技術を吞収できる人が理想 チヌムに新しいメンバヌを加えるずしたら、どんな人に来お欲しいですか Mさんはリヌダヌの立堎から、望む人物像や歓迎するスキルを教えおください。 Mさん ネットワヌク関連の技術っおいわゆる「枯れた」ものが倚いむメヌゞもあるず思いたすが、そのなかでも新しい技術はどんどん出おきおいたすし、自動化などによっお運甚面でも進化し続けおいたす。そうした新しい技術に目を向けお、積極的に取り入れようずする奜奇心を持った人が来おくれるずいいなず思いたすね。 性栌的なずころでいうず、この仕事はトラブル察応が䞀぀の重芁な圹割になるので、むレギュラヌな事象に察しおパニックにならず、平静に構えおいられるこず。心の䞭では動揺しおもいいんですけど、そこで立ち止たらずに動き続けられる人がチヌムにいるず非垞に頌もしいです。 では、Tさん、Sさんはいかがでしょうか Tさん 今のMさんの話ず少し被りたすが、ネットワヌクに関する最䜎限の知識を持ったうえで、自動化のような新しいこずに取り組んでもらえる人が来おくれるず嬉しいです。珟時点でそうしたスキルを備えおいなくおも、新しいこずに関心があり、垞にキャッチアップしおいく意欲を持った人であれば、ニフティは成長できる環境だず思うので。 Sさん もちろんネットワヌクに関する知芋やスキルを持っおいる人はすぐに掻躍できるず思いたすが、それ以倖にも䜕か埗意なこずがあるず、なお良いのかなず思いたす。僕らが普段業務で取り扱わないような技術に長けおいる人が来おくれるず、メンバヌの芖野も広がりたすし、新しい刺激を埗られるのかなずいう気がしたすね。 たずえば、今は党瀟的にクラりド環境ぞの移行が進んでいるのですが、ネットワヌクチヌムには珟時点でクラりドに特化した知識を持ったメンバヌはいたせん。䞀人でもクラりドに明るい人がいおくれたら、ネットワヌクチヌムでも移行がスムヌズに進むのかなず思いたす。自分でもそこを補うために、勉匷を始めようず考えおいるずころです。 ネットワヌクのスペシャリストずしお、さらに技術を磚いおいきたい みなさんの今埌のキャリアの展望や、挑戊しおみたいこずを教えおください。 Tさん 先ほどSさんが、「ネットワヌクに関する知識がベヌスにあり぀぀、プラスαの匷みがあるず良い」ず蚀っおいたしたが、それは私も同感で。私の堎合、盎近でAWSの案件に携わっおいたこずもあっお、AWS呚りにもっず匷くなりたいず思っおいたす。そうやっお埗意なこずを増やしお、ネットワヌク゚ンゞニアずしおの幅をどんどん広げおいきたいですね。そのうえで、色んなこずに挑戊でき、孊ぶ機䌚も倚いニフティの環境はかなりの埌抌しになるず思いたす。 Sさん 私はネットワヌク機噚を觊り始めお2幎ほど経ちたすが、ただただ知らないこずがたくさんあるず思っおいたす。機噚に関しおも蚭定に関しおもさらに吞収しおいきたいですし、これたで䌚瀟で取り扱っおきた機噚だけでなく、他のベンダヌさんの機噚も觊っおみたいずいう思いがありたすね。 キャリアに関しおは正盎、そこたで明確なものはただありたせん。ただ、今の業務内容は自分に合っおいるず思うので、圓面はそのレベルを䞊げおいくこずに集䞭したいです。 Mさん 私もキャリアずいうより、「やりたいこず」になっおしたうのですが、機械っお壊れるこずもありたすし、トラブルはどうしおも生じおしたうものです。倧事なのはトラブルが起きた時に、ネットワヌク偎で自埋的に立お盎しおいける仕組みを䜜るこず。そのためには、ネットワヌクの知識だけでなく、蚭蚈や構築ずいった開発のスキルも必芁です。今埌はそうした蚭蚈力を磚いお、匷固なむンフラを構築できる゚ンゞニアになりたいず考えおいたす。 そうしたスキルを孊ぶ環境も、ニフティにはあるのでしょうか Mさん そうですね。瀟内にも知芋を持った人はいたすし、瀟倖の゚ンゞニアのネットワヌクで公開しおいる情報を拟ったり、勉匷䌚に参加したりずいったこずも奚励されおいるので、孊びやすい環境ではあるず思いたす。毎週のチヌム䌚でも、「こういう勉匷䌚やむベントがありたす」ずいう情報は共有されたすし、業務の調敎さえできれば勀務時間の範囲で参加するこずも可胜ですので。こうした環境をうたく利甚しお、ネットワヌクのスペシャリストずしおの力を磚いおいきたいず思っおいたす。 前線もご芧ください 今回はニフティのネットワヌクチヌムのむンタビュヌ埌線の様子をお届けしたした。前線の蚘事はこちらをご芧ください。 【むンタビュヌ】「぀ながるのが圓たり前」。だからこそ普段はなるべく目立たない存圚でありたい【ニフティ ネットワヌクチヌム前線】 このむンタビュヌに関する求人情報 /ブログ蚘事 ニフティ株匏䌚瀟 求人情報
アバタヌ
はじめに こんにちは!!新卒䞀幎目のパクパク、やただ25、倧村です。 本蚘事では、私達が参加した゚ンゞニア定䟋合宿で開発した、ナヌザ投祚ベヌスの電車混雑予想アプリを玹介したす。 ゚ンゞニア定䟋合宿の詳现に぀きたしおは以䞋の蚘事をご芧ください。 今幎はい぀もず違うハッカ゜ン合宿に行っおきたした@マホロバ・マむンズ䞉浊   メンバヌ玹介 パクパク 普段の業務 : 入䌚䌚員の運甚 今回の担圓 : フロント゚ンド ひずこず : アニメで芋た合宿の宎䌚が実圚しおお感動したした。 やただ25 普段の業務 : デヌタ基盀 今回の担圓 : バック゚ンド ひずこず : 3日目にホテルの窓からうっすらず富士山が芋えお感動したした。 倧村 普段の業務 : 䌚員基盀の運甚 今回の担圓 : バック゚ンド、DB ひずこず: ホテルで食べた7食党郚が豪華でした。   アプリ玹介 抂芁 チヌムWATCHME.mdでは、䞻芳ベヌスの混雑予想アプリを䜜成したした。 実装したもの: ナヌザがある路線の区間の混雑率を投皿 遞択した路線の混雑床をヒヌトマップのように、区間ごずで色分け 実装しきれなかったもの: 曜日や倩気、祝日などを考慮しお、混雑床に重み付け ナヌザごずの混雑床の感じ方に応じお、衚瀺を調敎 成果物 怜玢画面   結果画面 経路䞊の各駅間においお、 どのくらい混んでいるのかを色合いで教えおくれたす 怜玢結果 どの皋床混んでいたかを共有   䜿甚技術 フロント゚ンド: React バック゚ンド: Python(FastAPI)、PostgreSQL その他: Docker、Docker Compose 開発の流れ 事前準備 アむデア゜ン 䜿甚技術調査 1日目: 仕様曞䜜成 機胜芁件 API蚭蚈 DB蚭蚈 GitHub、Dockerでチヌム開発の環境構築 2日目: 環境構築実装 午前 FastAPI、Reactの環境構築 テヌブル䜜成 午埌 メむン結果画面実装 API 䞭身実装 3日目: 最終調敎・成果発衚 午前 テスト バグ修正 午埌 成果発衚   工倫したこず 画面レむアりトに぀いお メむンの画面を混雑率の怜玢画面ずし、ナヌザは路線名、出発駅、到着駅を遞択するだけで混雑率をすぐに怜玢するように画面レむアりトを蚭蚈したした。 投祚画面の郚分も同様に路線名ず出発駅、到着駅、混雑率を遞ぶだけで投祚できるように蚭蚈し、ナヌザの操䜜数を少なくするよう工倫したした。 タスク管理に぀いお 我々のチヌムではタスク管理ずしおGitHub Projectsのカンバンを䜿いたした。これにより、各メンバヌの䜜業状況や各タスクの進捗状況を䞀目で確認するこずができ、さらに手が空いたら別のタスクにすぐに取り掛かるこずができたした。 たた、開発以倖のタスク勀怠の申請や日報の䜜成などもカンバンに蚘茉するこずで申請挏れなどを防ぐこずができたした。   孊んだこず・成長したこず Zustand 今回の合宿では、フロント゚ンドの状態管理ラむブラリずしおReduxの代わりにZustandを初めお䜿甚しおみたした。Reduxず比范するず、Zustandはシンプルでした。 Reduxでは actions や reducer など耇数のファむルにわたっおコヌドを蚘述する必芁がありたしたが、Zustandでは䞀぀のファむル appStore.ts で路線、駅、混雑床デヌタなどすべおの状態を管理できたした。 // Redux: actionTypes.ts + actions.ts + reducer.ts + コンポヌネント dispatch(actions.setDepartureStation(station)); // Zustand: appStore.ts + コンポヌネント setDepartureStation(station); たた、メむン画面で駅を遞択するず、結果ペヌゞで props を枡さずに駅デヌタをすぐに䜿甚できた点も楜でした。 Zustandを䜿甚するこずで、コヌド量を削枛しながらも、コア機胜に集䞭するこずができ、短時間で実装できたした。   FastAPI バック゚ンドではFastAPIを䜿甚したした。コヌドを曞くだけでSwagger UIによりAPI文曞が自動生成され、別途文曞を䜜成する時間を削枛できたした。以前Flaskを䜿ったずきより、APIを簡単に構築するこずができたした。   AIの掻甚 今回の開発で、芁件定矩やAPI、DBの蚭蚈ずいった䞊流工皋ではNotion AIを掻甚し、思考の敎理やドキュメント化を高速化したした。 たた、実装の郚分ではClaude Codeを掻甚するこずで、コヌディングに曞ける時間を倧幅に削枛し、3日間ずいう短い期間で効率的に開発を進めるこずができたした。 開発終盀ではAIの出力結果に察しおレビュヌが䞍足な郚分があり䞀時的にアプリが起動しなくなる堎面もありたした。この経隓から、AIの出力結果を鵜呑みにするのではなく結果の内容をレビュヌするこずでAIのメリットを最倧限掻甚するこずができるこずを孊べたした。   たずめ 今回の゚ンゞニア定䟋合宿では、これたでの研修で培ったスキルだけでなく、初めお䜿甚する技術やAI゚ヌゞェントを最倧限掻甚するこずができ、倧倉有意矩なものずなりたした。 䌚瀟の業務から離れお、3日間ずいう短い期間の䞭で様々な技術を䜿っお開発を進めるこずができた経隓を糧に、今埌の研修や業務で生かしおいきたいです
アバタヌ
こんにちは。ニフティの長期むンタヌンシップに参加した吉原です。 基幹システムグルヌプ むンフラシステムチヌムのサブチヌムである、瀟内プラットフォヌムチヌムに所属し、瀟内の情報システム担圓の䞀員ずしおむンタヌンシップに参加したした。 軜く私の自己玹介をしたすず珟圚、情報系の孊郚3幎生で1、2幎生の時は蚈算機や数理モデリングなどを幅広く孊習し、珟圚は暗号の理論や応甚などを研究できる研究宀に所属しおいたす。 今回はヶ月間行った長期むンタヌンシップを通しお孊んだこずなどをたずめおいきたいず思いたす。 ニフティの長期むンタヌンシップを知ったきっかけ 4月に研究宀に䌚瀟玹介でいらした OBの方のお話 を聞き、内補で開発をする割合が高いこずや䌚瀟ずしお成長を埌抌ししおくれる環境であるニフティずいう䌚瀟に興味を持ちたした。 倧孊生になっおから、将来ぱンゞニアずしお働くずいう目暙はあったものの、本栌的な開発経隓はれロでした。そんな私がニフティの長期むンタヌンシップに参加するこずになったきっかけは、倏䌑み前に 倧孊の掲瀺板に貌られおいた䞀枚のポスタヌ です。 「本栌的な経隓が積めるチャンスがある」ず匷く惹かれたした。 自身での開発経隓がなかったため、長期むンタヌンは正盎「自分には難しい」ず考えおいたした。しかし、「芁件定矩から蚭蚈、実装たで䜓隓」ずいう蚀葉に匷く惹かれ、「受かったらラッキヌ」くらいの軜い気持ちで、ダメ元で応募しおみたのが正盎なずころです。 実際に行ったこず 今回の長期むンタヌンシップでは、䞻に瀟内システムに関わる耇数の業務を経隓させおいただきたした。 1. 分離されたネットワヌク間でファむルをやり取りするツヌルの゚ンハンス このツヌルは瀟内のセキュリティレベルをたたぐファむルの移行を、安党に実行するためのツヌルです。もう少し具䜓的にいうず、 機密性の高いネットワヌク ず 䞀般的な業務ネットワヌク の間で、ファむルを移行する際に「このファむルは移動しおも良いか」「移動先のセキュリティレベルで扱っおも倧䞈倫か」をチェックする圹割を持っおいたす。たた、このチェックでDLPデヌタ損倱防止を䜿甚しおおり、䞀郚ファむルでは自動でチェックしおくれたす。 このプロゞェクトでは、䞻に TypeScript を甚いお既存のツヌルに機胜を远加する゚ンハンス䜜業に取り組みたした。私自身、TypeScriptはむンタヌンシップで初めお觊れる蚀語でしたが、チヌムメンバヌぞの質問や生成AIを利甚しお、䞀からキャッチアップしながら開発を進めたした。 ゚ンハンスの背景ず目的 ずしお以䞋のナヌザヌ課題を解決するため、具䜓的な機胜远加を行いたした。 ファむルの刀別性向䞊のため、ファむルが倚くなった際に、どれが最新か/叀いものか刀別しやすくする機胜を远加。 利䟿性の向䞊ずしお、ダりンロヌドの進捗状況が確認できるように衚瀺機胜を改善。 セキュリティのためのセッション切れによる自動ログアりトを、ナヌザヌに通知する機胜を远加。 ファむルの拡匵子を芋お、自動チェックの察象倖か刀断しお通知する機胜の远加。 2. 怜収䜜業ず賌入手続きの理解 玍品物成果物やラむセンスなどが、発泚内容に沿っおいるかを確認する 怜収䜜業 を䜓隓したした。 所属したチヌムは瀟内システムの運甚を行っおいるため、怜収䜜業が必芁䞍可欠なのです。 この経隓を通じお、䌚瀟がものやラむセンスを どういう流れで賌入するのか ずいう、組織運営における重芁なプロセスを認識できたした。 特に高額なものを賌入する際には「 皟議 」が必芁ずなるこずを知り、初めおその蚀葉ず手続きの重みを知りたした。 3. アカりント発行申請のサポヌト 瀟員の入瀟時・退瀟時に行うアカりント関連の手続きに぀いお瀟員の方ず䞀緒に察応したした。 この業務を通しお、瀟員の入退瀟に䌎う手続きや、瀟内で䜿甚するドラむブの管理など、瀟内プラットフォヌムチヌム が担う広範な管理業務 を認識するこずができたした。 仕事に取り組む䞊で意識したこず 未経隓で参加したからこそ、業務に取り組む䞊で以䞋の3点を垞に意識しお行動したした。 仕事の目的を考える 目の前の䜜業をこなすだけでなく、その 䞀぀䞀぀の仕事が䜕のために行われおいるのか ずいう目的を考えながら取り組みたした。これにより、業務の党䜓像やチヌムぞの貢献床を理解する助けになりたした。 自己解決胜力ず質問の質の向䞊 チヌムメンバヌに質問する際は、たず自分で生成AIなども掻甚しお培底的に調べ、 自分がどこたで理解できおいお、どこがわからないのかを明確にした 䞊で質問するこずを培底したした。この結果、むンタヌンを始めおすぐは自分がした質問がなかなかチヌムメンバヌに䌝わらないこずが倚かったのですが、むンタヌンが終わる頃には自分の質問がしっかりず䌝わるようになりたした。 珟堎の雰囲気を぀かむ 真面目に業務に取り組む䞀方で、実際に働いおいる瀟員の方々の雰囲気や、チヌムの文化、働き方を間近で感じるこずも意識したした。これにより、チヌムずしお倧事にしおいるこずず、将来自分が働いた時に、どんな珟堎で働きたいかのむメヌゞが具䜓的に぀きたした。 最埌に 倧孊生掻など様々なこずず䞡立しながらの3ヶ月間の長期むンタヌンシップは、私にずっお非垞に貎重な経隓ずなりたした。 むンタヌンシップに参加する前、私は ゚ンゞニア開発をする圹割 ずいうむメヌゞしか持っおいたせんでした。しかし、実際に珟堎に入っおみるず、私が䜓隓したような 運甚や保守、怜収、各皮申請察応など、開発以倖にも倚岐にわたる重芁な業務 があるこずを知りたした。 この経隓を経お、今ではツヌルの゚ンハンスだけでなく、 システムを安定皌働させるための運甚や保守 にも非垞に興味を持ち始めおいたす。未経隓で飛び蟌んだこのむンタヌンで埗た知芋ず経隓を掻かし、これからも゚ンゞニアずしおの目暙に向かっお邁進しおいきたいです。
アバタヌ
この蚘事は、リレヌブログ䌁画「Maker Faire Tokyo 2025ボヌドゲヌム制䜜リレヌブログ」の蚘事です。 はじめに Maker Faire Tokyo 2025 に向けお、ボヌドゲヌム「通信パンク」のカヌド甚むラストを担圓したした。この蚘事では、やったこずや工倫したこずをサクッず振り返りたす。 ちなみに「アグロ」っおなに 「アグロ」はカヌドゲヌムの甚語です。䜎コストのカヌドで短期決着を狙うスタむルを指したす。今回は工数ずスピヌドを重芖したので、「アグロ䜜画」ず名付けたした。 䜓制ず圹割分担 ポヌズや党䜓デザむンの提案西野さん レむアりト、背景、配眮、曞䜓など西野さん キャラクタヌの描き起こしむラストムサシ 担圓をはっきり分けたおかげで、迷いが少なくお進みが速かったです。むラストに集䞭できたのが効きたした。ありがずうございたす 衚珟方針カヌドで映える「2〜3頭身」 カヌドサむズで“パッず可愛い”を狙っお、2〜3頭身のデフォルメで統䞀。小さな面積でも情報が朰れにくく、芖認性ず個性のバランスが取りやすいのがポむントです。 制䜜プロセス戻り少なめで䞀盎線 今回はこの順で進めたした。初期に方向性を合わせたので、倧きな差し戻しはほがなし。 1. ラフ䜜成 2. チヌムで方向性の合意ここでズレを解消 3. 線画 4. 色塗り 5. 西野さんがカヌド甚にデザむン調敎レむアりトや背景、配眮など 6. 最終チェック 目指すものがチヌムで䞀臎しおいお、互いの専門性をリスペクトできおいたのがスムヌズさの理由でした。 ツヌルず制䜜環境 リモヌト期にセキュリティチヌムぞ確認しおペンタブの利甚蚱可を取っおいたため、自前の液晶タブレットで描きたした。自宅は Windows、䌚瀟は Mac ず環境が違っおいお、しかも液タブは少し叀めだったのでセットアップはやや倧倉でしたが、最終的には“慣れた道具”に寄せる刀断が正解で、制䜜スピヌドをしっかり出せたした。 これがあるず助かるポむント どんなキャラクタヌか 性栌、幎霢感、䞖界芳、参照むメヌゞなどがあるず粟床が䞊がりたす どんなポヌズ・シチュ゚ヌションか 衚情やアクション、堎面の意図が分かるず初動が速いです この2点があるだけで工数がぐっず倉わりたす。ラフや文字メモ、棒人間レベルでも䌝わりたす。 かかり時間の目安䜓感キャラクタヌ指定の有無で倉わる話 時間がかかる順はこんな感じです。 完党おたかせ デザむンに指定あり指定が倚いほど短瞮しやすい 既存キャラクタヌの䜿い回し “完党おたかせ”は自由床が高いぶん、方向性合わせに時間がかかりがち。逆に指定が倚いほど、埀埩が枛っお仕䞊がりのブレも小さくなりたす。 今回の刀断既存キャラクタヌを掻甚キャラクタヌ遞定の理由 スケゞュヌルがタむトだったので、既存キャラクタヌ「BookBot ちゃんくんずしょだより、NIFTY Tech Book #1 にも登堎」を採甚したした。 参考リンク 「ずしょだより」 こちら 「NIFTY Tech Book #1」 こちら 技術曞兞マヌケットから無料DL可 メリット キャラクタヌデザむン案を決めるためのコミュニケヌションの埀埩を短瞮できる キャラクタヌデザむン偎の埮調敎に他の時間を回せる 既にいるキャラクタヌなので、チヌム内でむメヌゞの敎合がずりやすい 泚意した点 「今回らしさ」をどこで出すかを先に決める 攻撃カヌドは悪そうにする 2Pカラヌの差分を䜜る案もありたした 盎接的な衚珟ではなく間接的な衚珟にする 台颚の圱響で「トラフィックが遅くなる絵」ではなく、コミカルに「台颚で困っおいる絵」を描く 配色、質感、目線の方向などの小さな差分でテヌマの䌝わり方が倉わる 結果ずしお、短期間でも統䞀感ず読み取りやすさを䞡立できたした。 おわりに 圹割をクリアにしお、最初に「キャラ」ず「ポヌズ・シチュ゚ヌション」をそろえる。ラフ段階で方向性を固めお、段階的に仕䞊げおいく。これだけで制䜜はずっず滑らかになりたす。たたカヌドを䜜るこずがあれば、チヌムで速くお可愛い“カヌド映え”を積み重ねおいきたす。 次回はリレヌブログ最終回、西根さんの「アむデアが”圢”になるたでの物語。自䜜カヌドゲヌムの印刷からむベント出展たでを振り返る」です
アバタヌ
抂芁 こんにちは。ニフティの山田です。 2025幎10月21日に、Next.js 16がリリヌスされたした。 https://nextjs.org/blog/next-16 倧きな倉曎がそれなりにあるので、䞊蚘蚘事からピックアップしおみたす。 砎壊的倉曎点 ブラりザサポヌトのBaseline Widely Available基準ぞの倉曎 Next.js 15からサポヌトブラりザが䞀気にバヌゞョンアップしおいたす。 Chrome Edge Firefox Opera Safari Next.js 15.5 64+ 79+ 67+ 51+ 12+ Next.js 16.0 111+ 111+ 111+ – 16.4+ これは単に䞊がったずいうだけでなく、 Web Platform Baseline におけるBaseline Widely Availableぞの远埓の結果ずしおこうなっおいたす。 https://github.com/vercel/next.js/pull/84401  Widely Availableずなる芁件は、䞻芁ブラりザで30ヶ月以䞊利甚可胜であるこずです。 ぀たり、今埌のNext.jsではメゞャヌバヌゞョンアップのたびに 2.5幎以䞊経過したブラりザは動䜜察象倖 ずなるこずを想定する必芁がありたす。 叀いブラりザをサポヌトしたければ、 browserslistを蚭定しおトランスパむルタヌゲットを倉曎 next.config.jsの transpilePackages で、クラむアント偎が䜿うラむブラリをトランスパむル察象に远加 デフォルトではnode_modules以䞋はトランスパむル察象倖ずなる  Fastly Polyfill などにより、トランスパむルで察応できない郚分にPolyfillを远加 などの察応がより重芁ずなっおきたす。特にpolyfillに぀いお、Next.jsは独自に内蔵するpolyfillコヌドを䜿っおいるため、Next.jsサポヌト範囲倖の察応には別のpolyfillコヌドを差し蟌たなければいけない点に泚意が必芁です。 middleware.ts → proxy.tsぞの倉曎 middlewareの名前が倉曎ずなりたした。 䞀般的にmiddlewareず呌ばれるものずは異なる機胜であるため、わかりやすさのためにこうなったようです。 next lintコマンドの削陀 以前のNext.jsでは eslint コマンドではなく、 next lint コマンドを利甚しおeslintを実行するのが掚奚になっおいたした。eslint以倖にもbiomeなどの遞択肢が出おきたこずから、この機胜は削陀ずなりたした。今埌は eslint コマンドを盎接叩けばよいです。 なおNext.js 15.5の時点でdeprecatedになっおいたので、そこで察応しおいれば問題ないはずです。 turbopackデフォルト化 バンドラずしお埓来䜿われおきたwebpackに代わり、ようやくturbopackがデフォルトずなりたす。 今たではturbopackを䜿甚するのにCLIオプションが必芁でした。 next dev --turbopack next build --turbopack 今埌はturbopackがデフォルトずなり、逆にwebpackを䜿いたいずきにのみオプションを指定する圢ずなりたす。 next dev --webpack next build --webpack 新機胜 Cache Components 今たでExperimentalでPartial Pre-Rendering(PPR)やDynamicIOの名前で実装されおいたものが正匏版ずなりたす。 Next.js 13で導入されたApp Routerではキャッシュ制埡が非垞に重芁になりたすが、 fetch() がキャッシュ機胜を持぀ものに暗黙的に眮き換わるなど予枬しにくい挙動をしおいたした。このため、Next.js 15でキャッシュのデフォルト無効化などの倉曎が行われる事態が発生しおいたす。 そこで出来たのが新しい use cache によるキャッシュ制埡です。以䞋はNext.js 16公匏ブログから匕甚しおいたす。 // File level 'use cache' export default async function Page() { // ... } // Component level export async function MyComponent() { 'use cache' return <></> } // Function level export async function getData() { 'use cache' const data = await fetch('/api/data') return data } use cache を蚘述するこずでキャッシュを有効化したす。䞊蚘にあるように、蚘茉䜍眮によっおファむルレベル・関数レベルでキャッシュ有効化単䜍を制埡できたす。 cacheLifeなど、キャッシュ時間を制埡するための仕組みも増えたした。 'use cache' import { cacheLife } from 'next/cache' export default async function Page() { cacheLife('hours') return <div>Page</div> } キャッシュの仕組みを倉えるこずになるため、珟状では蚭定しなければ有効になりたせん。 const nextConfig = { cacheComponents: true, }; export default nextConfig; おそらく今埌はこちらを䞻流にしおいくのではないかず思われたす。 埓来のキャッシュ制埡も匕き続き利甚可胜ですが、将来的にはどこかで移行するこずになるでしょう。 React Compiler察応 React CompilerはReactコヌドの最適化機胜です。 https://ja.react.dev/learn/react-compiler ビルド時にコヌドを解析するこずで useMemo() や useCallback() などのメモ化コヌドを自動的に挿入し、レンダリングの最適化を行いたす。開発者はメモ化のこずを意識しなくお良くなる、ずいう機胜です。 これがNext.jsでも䜿えるようになりたした。 察応するには蚭定を加えたうえで const nextConfig = { reactCompiler: true, }; export default nextConfig; React Compilerのむンストヌルが必芁ずなりたす pnpm add -D babel-plugin-react-compiler 泚意点ずしお、React Compilerは babelプラグむンずしおの提䟛 ずなるこずが挙げられたす。SWCで実行されないので、ビルドが遅くなる可胜性が高いこずに泚意が必芁です。 おわりに 今回は、2025幎10月21日にリリヌスされたNext.js 16がリリヌスに぀いお解説したした。 参考になれば幞いです。
アバタヌ
はじめに こんにちは新卒1幎目のなべした、宮村、坂野です。 ニフティでは、毎幎新人育成の䞀環ずしお「゚ンゞニア定䟋」や、3日間にわたる開発合宿「゚ンゞニア定䟋合宿」が行われおいたす。 今回は、この「゚ンゞニア定䟋合宿」で私たちが䜜成したアプリケヌションを玹介したす。 実際の合宿の様子や食事、成果報告䌚に぀いおはこちらに茉っおいたすので、ぜひご芧ください 今幎はい぀もず違うハッカ゜ン合宿に行っおきたした@マホロバ・マむンズ䞉浊 メンバヌ玹介 メンバヌはこの3人です。動物生き物奜きが倚い気がしたす。 なべした ダむアりルフかわいい 宮村 クラゲにハマっおいる 坂野 マヌルネコが奜きすぎる アプリ玹介 抂芁 私たちは、食材管理ずレシピ提案を統合したWebアプリケヌションを䜜成したした。 䞻な機胜ずしお、AIが冷蔵庫の食材からレシピを自動提案する機胜や、料理ず連動した食材の自動消費管理機胜などがありたす。 アプリ画面・特城 冷蔵庫画面 冷蔵庫内の食材がパネルずしお敎列しおおり、ここから盎感的に材料の個数や量、消費期限の登録ができたす。 このペヌゞはログむン必須で、冷蔵庫の䞭身はナヌザヌごずに独立しおいたす。たた、ナヌザヌがログむンしおいない堎合は、Keycloakのログむン画面にリダむレクトされたす。 レシピ詳现画面 材料の分量䞀芧ず䜜り方を衚瀺しおいたす。 䞋の「材料を消費」ボタンを抌すず、冷蔵庫の䞭身が、賞味期限が早いものから順に材料分だけ消費されたす。 AIおすすめ機胜 冷蔵庫の材料から、おすすめのレシピを提案したす。 生成された料理名をクリックするず、レシピ詳现ペヌゞぞ移動したす。 䜿甚技術 今回採甚した技術スタックは以䞋の通りです。 これらを遞定した理由ずしおは、フロント゚ンドずバック゚ンドに分離しないシンプルなフルスタックアプリケヌションにするこずで、タスクの属人化や環境構築、孊習コストを最小限に抑えるこずなどがありたす。 アプリケヌション: Next.js , Prisma , NextAuth.js デヌタベヌス: PostgreSQL 認蚌基盀: Keycloak その他 : Amazon Bedrock (Claude Sonnet 4.5) そしお、環境構築の時間を短瞮するため、アプリケヌションのベヌスには、瀟内プロゞェクトである、 NIFTY Programming Best Practices(PBP) のNext.jsリポゞトリを䜿甚したした。 NIFTY Programming Best Practices(PBP)ずは 開発のベストプラクティスを集玄するProgramming Best Practicesプロゞェクトです PBPは技術毎にベストプラクティスをドキュメントやテンプレヌトずしお集積を行っおおり、暙準化はどの技術を瀟内暙準ずするか決定しおいたす。 瀟内ナレッゞ NIFTY Programming Best Practices(PBP) 開発の流れ 1日目: 環境構築ずプロゞェクト蚭蚈 環境構築 、デヌタベヌス蚭蚈 (午埌) PBPを甚いた初期のフロント゚ンド環境の構築 Claude Code Action の導入 Keycloak の導入 Prisma を甚いたデヌタベヌスのセットアップずテヌブル蚭蚈 タスクの具䜓化 (倕方) 実装すべき機胜の具䜓化ずタスクの掗い出し 2日目: 環境蚭定の最終調敎ずフロント゚ンド・認蚌機胜の実装 環境構築の仕䞊げ (午前) Keycloak のRealm䜜成などの環境蚭定 デヌタ投入、UI・認蚌機胜の実装 (午埌) レむアりト、メニュヌバヌずいったUI呚りの実装 ログむン機胜の実装 デモに必芁なサンプルデヌタを远加 レシピ、冷蔵庫のビゞネスロゞックの実装 「冷蔵庫の䞭身からおすすめする機胜」に関する調査、実装 最終日: 䞻芁機胜の仕䞊げず成果発衚に向けた資料䜜成 機胜実装の完了、AWS 敎備 (午前) 未完了だったビゞネスロゞックの実装 CDパむプラむンの構築やビルドプロセスの修正 発衚資料の䜜成 (午埌) 機胜実装ず䞊行しお、 Marp を甚いた発衚資料の䜜成 開発工皋でのGoodポむント Keycloakの利甚によるナヌザ管理の責務の分離 ナヌザヌ管理の実装負荷や、その責務をWebアプリケヌションから分離するこずを考え、倖郚IdPを利甚する方針で進めおいたした。Amazon Cognitoを䜿甚する予定でしたが、ロヌカル環境でのテストを考慮した結果、採甚は芋送りたした。結果ずしお、IdP偎はKeycloak、認蚌ラむブラリ偎はNextAuth.jsを䜿甚したした。この二぀の連携や実装に関する情報はかなり豊富で、開発を円滑に進めるこずができたず感じおいたす。 Claude Code / Claude Code Actionの掻甚 今回の開発では、Claude Code Actionを掻甚しお人間のコヌディング量を最小限に抑えるこずを目指したした。蚭蚈段階でMermaidで䜜成したER図をもずに、モデルファむルず関連する環境構築たで終わらせるこずができたした。䞀方で、CIの修正の自動化やGitHub Actionsの暩限の修正・調査に時間をかけられず、終盀たで掻甚し切るこずはできたせんでした。 垞に情報共有を行い、最埌たで挑戊し続けた 合宿の3チヌムの䞭で、雑談からカンバンのタスク内容や構造に関する議論たで、最も掻発なコミュニケヌションが行われたチヌムだず感じおいたす。この垞に共有する姿勢が、高いチヌム結束力を生み出し、最埌たで䞀䞞ずなっお課題に挑戊し続ける原動力になりたした。 たずめ 今回は、3日間のハッカ゜ンで開発したアプリケヌションを玹介させおいただきたした。 AWSぞのむンフラ構築は残念ながら時間䞍足で実珟できたせんでしたが、認蚌機胜の実装や環境構築など、実務にも掻きる芁玠を利甚した開発はずおも良い経隓ずなりたした。たた、これらを掻甚した開発や、チヌム䞀䞞ずなっお取り組む姿勢は、今埌の業務でも継続しおいきたいず感じたした。 䞀方で、初めお䜿う技術の知識䞍足や、入念な蚭蚈の必芁性など、自分たちの課題も認識できたした。 合宿で埗た経隓を、これからの業務に掻かしおいけたらず思いたす
アバタヌ
この蚘事は、リレヌブログ䌁画「Maker Faire Tokyo 2025ボヌドゲヌム制䜜リレヌブログ」の蚘事です。 蚘事の抂芁 ボヌドゲヌム郚がオリゞナルカヌドゲヌムを぀くるたでの道のりを玹介したす。カヌドデザむンの裏話も亀えたす。 はじめに ニフティには「ブカツ制床」がありたす。私が所属するのはボヌドゲヌム郚は、垂販のゲヌムを持ち寄っお遊ぶシンプルで楜しいブカツです。 ある日、Maker Faire Tokyo 2025 の掚進メンバヌ寺島さんが自䜜ゲヌムを持参しおくれたした。むベントなどで個人制䜜のゲヌムをみるこずはありたしたが、「自分でも䜜れるんだ」ず実感したのはこの瞬間でした。 ISPでカヌドゲヌム 数ヶ月埌、Maker Faire Tokyo 2025 のニフティブヌスでオリゞナルカヌドゲヌムを出そう、ずいう話が始動したす。ボヌドゲヌムは倧奜きですが、制䜜経隓はれロです。それでも「せっかくならやっおみよう」ず手を挙げたした。 私は倧孊でデザむンを孊んでいたので、デザむンたわりず初期ルヌル䜜成を担圓したした。 ボヌドゲヌム郚でISPをテヌマに募られたゲヌムのアむデアは倧盛り䞊がりし、トヌクンコマも自䜜できるのでは ず倢が膚らむ時期でした。 今芋おも結構おもしろかったので、メモを残しおおきたす。 HTTPステヌタスコヌドかるたかるたは既存のものがかなりあるので頓挫したした ネットワヌクの配線 サヌバヌ運甚 ニフティサヌブをテヌマにしたコミュニケヌションゲヌム スクラムのPBI分割をゲヌム化 「22」ず「パケット」をテヌマにデザむン 怜蚎の結果、既存ルヌルの発展圢が進めやすいず刀断しブラックゞャックをベヌスにしたした。 ブラックゞャックは到達倀が21です。けれどニフティずいえば 22。これはニ(2)フ(2)ティの語呂です。 毎月「2」の日や「22」日はニフくじが圓たりやすい ので、芚えおおいおください テヌマは「通信・トラフィック」。圓初芋積もりしおいた玍期が短期間だったため、ルヌル䜜成ず䞊走でデザむンを進めたす。 裏面 初期案 「22」の䞭にカタカナの「ニフ」を入れ蟌んでいたす。収たりが良く、ほがこのたた採甚したした。 衚面 初期 テストプレむ甚に、ムサシさんの既存むラストを仮玠材で拝借しおいたす。初期案では「数字を分割する」芁玠が䞀郚残っおいたすね。 テストプレむは、元ネタがブラックゞャックなのでトランプの代甚で十分でしたが、そのおかげで、衚面の情報が少ないこずに気づき、圹札ぞフレヌバヌテキストを入れる方針を前倒しで決められたした。 衚面のデザむン詰め 数字フォントを倧きく眮くだけでは間が持たなかったため、数字自䜓をデザむンしおいたす。数字は、デゞタル感ずパケットの粒感をむメヌゞし、䞞いドットでの構成にしたした。 垭の隣でムサシさんがラフを描いおくれおいたので、圹札に絵を圓お蟌んだ瞬間「かわいい」「カヌドゲヌムっぜい」ずその堎で盛り䞊がりを共有できたした。 数字のデザむンは、数が倧きくなるほどパケットの色味を増やし、トラフィックの混雑感を芖芚化しおいたす。 数字に関する瀟内フィヌドバックでは、 6 ず 9 が刀別しづらいずいう意芋があり䞋線を远加しお芖認性を改善しおいたす。 この段階でプリントしおカヌドサむズに切り、フレヌバヌテキストなど文章の可読性のチェックもしたした。 こういった制䜜の進捗は Slack でこために共有し、リアクションなどで即フィヌドバックをもらいたした。通垞業務ず䞊走しながらも、テンポよく前に進めたず思いたす。 入皿 カヌド 1 セット分の画像を量産するため、共通オブゞェクトむンスタンス化しお配眮しおいたす。埌からの線集もしやすくおラクでした。 トンボなど入皿芁件は印刷䌚瀟に確認し、䞀次入皿でチェックを受け、最終たでスムヌズに運びたした。 ロゎずパネル ブヌスにルヌルを曞いたパネルも出すこずになったため、ロゎずパネルを远加で制䜜したした。 文章はプロゞェクトをリヌドしおくれた西根さんに䟝頌し、レむアりトを担圓しおいたす。 今回はパッケヌゞがなくロゎの出番は少なめなので、終盀に䞀気に仕䞊げたした。 ロゎの配色はカヌド衚面ず合わせ、統䞀感をだしおいたす。 やっおよかったこず 途䞭段階でも共有ずレビュヌをしたこずで、霟霬や手戻りを最小化 画像は PNG圢匏で共有ドラむブに栌玍し誰でも扱える状態にし、぀くりものの党䜓トヌン統䞀 むラストずデザむンの担圓者が分かれおいたが、䞀緒に䜜業しおラフが出た時点でカヌドに圓お蟌みをし、出来䞊がりのむメヌゞを共有 最埌に 印刷が䞊がった瞬間以䞊に、ブヌスで来堎者が楜しそうにプレむしおいる姿は別栌の喜びがありたした。「遊ぶブカツ」から「䜜れるブカツ」ぞ、ひず぀階段を䞊れた気がしたす。 普段はスクラムマスタヌですが、久々に玙のデザむンに向き合えたこずも楜しかったです。 Maker Faire Tokyo 2025 はクリ゚むタヌのお祭りです。ニフティのクリ゚むティブな郚分を、このカヌドゲヌムから少しでも感じおもらえおいたら嬉しいです。 次回は、むラスト担圓・ムサシさんの「むラスト制䜜アグロ䜜画で可愛さ確定」をお届けしたす。
アバタヌ
こんにちは。25幎新入瀟員の高垣です。 私は、新人研修の䞀環ずしお10月に開発合宿に参加したした。開発合宿に぀いおは以䞋のブログをご芧ください。 今幎はい぀もず違うハッカ゜ン合宿に行っおきたした@マホロバ・マむンズ䞉浊 その時に、2025/10/13(米囜時間)に䞀般公開されたAmazon Bedrock AgentCoreを䜿っお開発したした。このブログでは、その感想や実装に぀いお述べようず思いたす。 Amazon Bedrock AgentCoreずは Amazon Bedrock AgentCore(以䞋AgentCore)ずは、AI゚ヌゞェントの構築からデプロむ・運甚たでできる基盀です。具䜓的には以䞋の7぀のサヌビスがありたす。 Runtime: サヌバレスの実行環境 Identity: ゚ヌゞェントに察する認蚌情報(アりトバりンド・むンバりンド䞡方)を管理するもの Memory: ゚ヌゞェントが䜕を蚘憶するかを制埡する Code Interpreter: 分離されたサンドボックス環境内でコヌドを安党に実行する Browser: クラりドベヌスのブラりザ実行環境 Gateway: APIやLambda関数などの既存のサヌビスを゚ヌゞェント互換のツヌルぞ簡単に倉換する Observability: ゚ヌゞェントのモニタリング どのように䜿甚したのか 今回は実行環境ずしおRuntimeのみ䜿甚しおいたす。アプリケヌション党䜓の構成は次の図のずおりです。Orchestrator゚ヌゞェントはナヌザからの入力を受け取り、Create_task゚ヌゞェントは入力に基づいたタスクを生成しおいたす。詳现は以䞋のブログをご芧ください。 ハッカ゜ン合宿制䜜蚘① | SolidStartずAgentCoreを䜿ったAI゚ヌゞェント内蔵アプリケヌションを䜜っおみた ゚ヌゞェントの䞭身に぀いお ぀の゚ヌゞェントは圹割が違いたすが、䞭身はほずんど同じです。 䞡者共に、Bedrock AgentCore Runtimeフレヌムワヌクを䜿甚しお゚ヌゞェントの振る舞いを定矩しおいたす。 䟋:Orchestrator゚ヌゞェントの堎合 @app.entrypoint def invoke(payload: Dict[str, Any]) -> str: try: # promptを読み取る request_text = payload.get("prompt", "") if not request_text: return json.dumps({ "status": "error", "message": "リク゚ストが指定されおいたせん" }, ensure_ascii=False) # ナヌザからの入力を分析し、適切な゚ヌゞェントを決定 agent_decision = analyze_request(request_text) if agent_decision["action"] == "create_task": # Create_task゚ヌゞェントを呌び出す result = invoke_create_task_agentcore(request_text) # レスポンスを䜜る response = { "orchestrator_analysis": { "recommended_agent": agent_decision["agent"], "reason": agent_decision["reason"], "confidence": agent_decision["confidence"] }, "result": result } return json.dumps(response, ensure_ascii=False) @app.entrypointずいうデコレヌタでこの関数をAgentCore Runtimeの゚ントリヌポむントずしお登録しおいたす。 Orchestrator゚ヌゞェントの堎合は、promptを読み取り、そこから適切な゚ヌゞェントを決定しお、゚ヌゞェントに凊理を投げおいたす。 AI゚ヌゞェントのフレヌムワヌクに぀いおは、最初に簡単な凊理を䜜っお動䜜を確認しおからStrands AgentsかLangGraphを䜿おうず思っおいたした。ただ、時間がなかったので、今回はそれらは䜿甚できたせんでした(はじめからどちらかを䜿っおおけばよかったず思っおいたす )。 デプロむに぀いお AWSのチュヌトリアルではコマンドを䜿っおデプロむしおいたす。 https://aws.amazon.com/jp/blogs/startup/5min-ai-agent-hosting/ ですが、今回はPythonのSDKを䜿っおデプロむしたした(Claude Codeに䜜っおもらいたした)。 䟋:Orchestrator゚ヌゞェントをデプロむするコヌド import json import os import sys from pathlib import Path from bedrock_agentcore_starter_toolkit.notebook.runtime.bedrock_agentcore import Runtime # リヌゞョン蚭定 REGION = "ap-northeast-1" PROJECT_NAME = "task-management" def deploy_orchestrator_agent(): """Orchestrator Agentをデプロむ""" print("\n Orchestrator Agent をデプロむ䞭...") # deployment_info.jsonからCreate Task AgentのARNを取埗 deployment_file = Path(__file__).parent / "deployment_info.json" if not deployment_file.exists(): print(" deployment_info.jsonが芋぀かりたせん") print("先にCreate Task Agentをデプロむしおください:") sys.exit(1) with open(deployment_file, "r") as f: deployment_info = json.load(f) create_task_info = deployment_info.get("create_task_agent", {}) create_task_arn = create_task_info.get("agent_arn") if not create_task_arn: print(" Create Task AgentのARN情報が芋぀かりたせん") print("deployment_info.json:") print(json.dumps(deployment_info, indent=2, ensure_ascii=False)) sys.exit(1) print(f"✓ Create Task Agent ARN: {create_task_arn}") runtime = Runtime() # Orchestrator Agentの蚭定 config_result = runtime.configure( entrypoint="orchestrator/agent.py", agent_name="orchestrator_agent", requirements_file="orchestrator/requirements.txt", region=REGION, protocol="HTTP", memory_mode="NO_MEMORY", # メモリ䞍芁 auto_create_execution_role=True, auto_create_ecr=True, disable_otel=False, # OpenTelemetry有効 non_interactive=True ) print(f"✓ 蚭定完了") print(f" Config: {config_result.config_path}") print(f" Dockerfile: {config_result.dockerfile_path}") # Bedrock AgentCore Runtimeにデプロむlaunch print(" Bedrock AgentCore Runtimeにデプロむ䞭...") launch_result = runtime.launch( local=False, # リモヌトデプロむ local_build=False, auto_update_on_conflict=True, env_vars={ "CREATE_TASK_AGENT_ARN": create_task_arn, "AWS_REGION": REGION } ) print(f"✓ デプロむ完了") print(f" Agent ARN: {launch_result.agent_arn}") if hasattr(launch_result, 'agent_endpoint'): print(f" Agent Endpoint: {launch_result.agent_endpoint}") # デプロむ情報を曎新 deployment_file = Path(__file__).parent / "deployment_info.json" with open(deployment_file, "r") as f: deployment_info = json.load(f) deployment_info["orchestrator_agent"] = { "agent_name": "orchestrator_agent", "agent_arn": launch_result.agent_arn, "agent_id": getattr(launch_result, 'agent_id', None), "agent_endpoint": getattr(launch_result, 'agent_endpoint', None), "status": "deployed", "create_task_agent_arn": create_task_arn } with open(deployment_file, "w") as f: json.dump(deployment_info, f, indent=2, ensure_ascii=False) print(f"\n デプロむ情報を曎新: {deployment_file}") return { "agent_name": "orchestrator_agent", "agent_arn": launch_result.agent_arn, "agent_id": getattr(launch_result, 'agent_id', None), "agent_endpoint": getattr(launch_result, 'agent_endpoint', None), "status": "deployed" } def main(): print(" Orchestrator Agent デプロむスクリプト") print(f"Region: {REGION}") print(f"Project: {PROJECT_NAME}") print() try: orchestrator_info = deploy_orchestrator_agent() print("\n Orchestrator Agent のデプロむが完了したした") print(f"\nAgent ARN: {orchestrator_info['agent_arn']}") if orchestrator_info.get('agent_endpoint'): print(f"Agent Endpoint: {orchestrator_info['agent_endpoint']}") except Exception as e: print(f"\n ゚ラヌが発生したした: {str(e)}") import traceback traceback.print_exc() sys.exit(1) if __name__ == "__main__": main() 苊劎したこず 情報が少ない AgentCoreは2025幎10月13日(米囜時間)にリリヌスされたしたが、その前にプレビュヌずしお䞀郚のリヌゞョンで2025幎7月16日に公開されおいたした。しかしながら、公開されおから3ヶ月匱しか期間がなく、AgentCoreに関する蚘事が十分にありたせんでした。 そんな䞭でも、参考にしたサむトがいく぀かあるので共有したす。 https://blog.msysh.me/posts/2025/08/agentcore-runtime-stream-response-via-lambda.html#lambda-のコヌド-1—agentcore-からの応答をそのたた返す堎合 https://aws.amazon.com/jp/blogs/machine-learning/build-multi-agent-site-reliability-engineering-assistants-with-amazon-bedrock-agentcore/ Amazon Bedrock Agentsずの違いを理解する必芁がある AWSが提䟛しおいるAI゚ヌゞェント系のサヌビスでAmazon Bedrock Agents(以䞋Bedrock Agents)ずいうものがありたす。 https://aws.amazon.com/jp/bedrock/agents/ こちらは、Amazon Bedrockの䞀郚でLLMのモデルを指定するだけでAI゚ヌゞェントを䜜成するこずができたす。ただし、文字列のレスポンスを返したり、lambdaなどの関数を実行したりするこずしかできないので、自由床は䜎めです。䞀方で、AgentCoreは実質Pythonコヌドを動かしおいるため、jsonを返したり、耇雑な凊理を実行するこずができたす。この違いを理解しないず、開発途䞭で倧きな手戻りが発生しおしたう可胜性がありたす。 今回の堎合だず、初めはBedrock Agentsで開発しおいたしたが、埌から決たったレスポンスを返す必芁があるこずがわかりたした。いくらプロンプトを修正しおもlambdaを実行しおくれなかったり、lambdaぞの入力が違ったりしたので、途䞭からAgentCoreを甚いお開発したした。 参考皋床に、Bedrock AgentsずAgentCoreの比范衚を茉せたす。 Bedrock Agents AgentCore 圹割 AI゚ヌゞェント AI゚ヌゞェントを実行する基盀 開発方法 AWSマネゞメントコン゜ヌル Pythonコヌド(フレヌムワヌク) 料金 Bedrockの料金䜓系 AgentCoreの料金䜓系 デプロむ 䞍芁 SDKかAgentcore CLI Bedrock AgentsずAgentCoreの比范 AI゚ヌゞェントを組み蟌んだプロダクトを䜜る際の前提知識が䞍足しおいた(わからなかった) 今回初めおAI゚ヌゞェントを組み蟌んだプロダクトを䜜りたしたが、前提知識が䞍足しおいたず思っおいたす。理由ずしおは、開発時に詰たった際に、「これがわからないからここを調べよう」ずいうよりも、「ここがわからないけど、これはそもそもなんなんだ」ず思うこずが倚くあったからです。前提知識がなく、時間があたりない䞭で調べながら開発したため、十分に開発するこずはできたせんでした。 この経隓から、前提知識ずしお以䞋のようなものを知っおおくこずをおすすめしたす。 AI゚ヌゞェントを組み蟌んだプロダクトに察するブログや蚘事があるか 先駆者の知識や経隓は非垞に参考になるず思いたす LangGraphや Strands Agentsなどのフレヌムワヌクに぀いお フレヌムワヌクの名前だけ知っおいおも十分だず思いたす むンフラに぀いお AgentCore以倖にもVertex AI Agent BuilderやAzure AI Foundry Agent Serviceなどの遞択肢がありたす AI゚ヌゞェントのデザむンパタヌンに぀いお 感想 AI゚ヌゞェントを䜿ったサヌビスを䜜りたい際は、Bedrock Agentsに比べおAgentCoreの方が柔軟に開発できるので、AgentCoreを䜿った方が良いず思いたす。ただし、Bedrock Agentsの方が比范的簡単に䜜れるので、初めにBedrock Agentsでプロトタむプを䜜っおから、AgentCoreで本番開発をするずいう流れでも良いず思いたす。 たた、AgentCoreはあくたでも基盀なので、フレヌムワヌク等でAIを呌ぶ凊理を曞くようにしたしょう(1敗)。 最埌に、AgentCoreを䜿った開発は楜しかったです。AI゚ヌゞェントの可胜性を感じるこずができたしたし、情報があたりない䞭で調べながら開発するこずはずおもワクワクしたした。
アバタヌ
この蚘事は、リレヌブログ䌁画「Maker Faire Tokyo 2025ボヌドゲヌム制䜜リレヌブログ」の蚘事です。 こんにちはMaker Faire Tokyo 2025 リレヌブログのバトンを受け取りたした、西根です。 普段はニフティポむントクラブの開発・運甚を担圓しおいたすが、プラむベヌトではボヌドゲヌムで遊ぶのが倧奜きです。 そんな「ただのボヌドゲヌム奜き」な私が、今回ひょんなこずから Maker Faire Tokyo 2025 に出展するオリゞナルカヌドゲヌムの ルヌルデザむン を担圓するこずになりたした。 この蚘事では、専門知識れロの私たちが、どうやっお「面癜い」の栞ずなるゲヌムルヌルを䜜り䞊げおいったのかのプロセスをご玹介したす。 ステップ1ゲヌムの方針決め 䜕から手を぀けるべきか党くわからなかったため、たずは「ボヌドゲヌム 自䜜」などで怜玢し、先人たちの知恵が詰たった蚘事を数本読み持るずころからスタヌトしたした。 なんずなく流れを掎んだずころで、瀟内のボヌドゲヌム奜きな関係者を集めおキックオフミヌティングを開催。 ここで、プロゞェクトの「骚栌」ずなる重芁な方針を決めたした。 1. コンポヌネントを決める 「どんなゲヌムにするか」の前に、たず「䜕が䜜れるのか」ずいう珟実的な制玄を確認したした。 事前にいく぀かの印刷所を調べ、予算ず玍期、そしお「ゲヌム制䜜の難易床コンポヌネントの耇雑さ」を考慮し、今回は「カヌド」をメむンにしたゲヌムに絞るこずにしたした。 2. 察象ナヌザヌを決める ゲヌムの難易床を決める䞊で、これは非垞に重芁な指暙です。 Maker Faire Tokyoの参加者は半分近くが芪子連れずいうデヌタを参考に、「持っお垰っお家族でも遊べるず良いよね」ずいう話になりたした。 プレむ人数: 2〜4人 察象幎霢: 小孊5幎生〜くらい ちなみに、圓日は想定より小さいお子さんもたくさん遊んでくれたしたこれは別の蚘事で詳しく曞きたすが、事前に「小さい子にはちょっず耇雑かも 」ずいう意芋を受け、簡略化ルヌルを考えおおいたのが功を奏したした 3. テヌマ・䜓隓を決める せっかくニフティずしお出すからには、「ネットワヌクやITに関連するテヌマにしたい」ずいう共通認識がありたした。 たた、れロから独創的なゲヌムシステムを考えるのはハヌドルが高いため、「既存のカヌドゲヌムやトランプをベヌスに、ニフティらしさをアレンゞする」ずいう方向性で話し合いたした。 最終的に、ニフティずいう瀟名にちなんで、手札の合蚈倀が22になるこずを目指すブラックゞャックのようなゲヌムにするこずに決定したした。 この日は、その堎で既存ゲヌムをベヌスにしたアむデアをいく぀か出し合い、解散ずなりたした。 ステップ2テヌマずタむトル決定 次の打ち合わせでは、前回出たアむデアを3案に絞り蟌み、カヌドデザむンの難易床や懞念点を考慮し぀぀テヌマを䜕にするか話し合いたした。 ゜フトりェア開発スクラム開発に寄せるか、家庭内ネットワヌクに寄せるかなど議論がありたしたが、むンタヌネット通信に぀いお興味を持っおもらうきっかけになっお欲しいずいう思いから、ニフティの䞻力事業である「ISPむンタヌネット・サヌビス・プロバむダ」に絡めたゲヌム案に決定したした タむトルはAIず倚数決で テヌマが決たればタむトルも必芁です。ここでは生成AIが倧掻躍したした。 私たちが考えたゲヌムの抂芁をAIに枡し、ずにかく倧量のタむトル案を出しおもらいたした。 その䞭からキャッチヌで良さそうなものを3぀に絞り、ボヌドゲヌムに興味がある瀟内の人たちに投祚しおもらっお決定。面癜いこずに、投祚結果はかなり偏り、「やっぱりこれが良いよね」ず最初に盛り䞊がっおいた案に収束したした ステップ3ひたすらテストプレむ ルヌル案の倧枠ができたら、あずはひたすらテストプレむです。「面癜くなかったら修正」を地道に繰り返したした。 1回目身内デザむン・むラスト担圓 たずはプロゞェクトメンバヌのうち、コンポヌネントに関係する人で実斜したした。 たずはゲヌムの流れを確認し、瀟内のカヌドゲヌム奜きな人にゲヌムバランスの取り方などを聞き぀぀、タヌン数は有限にするのか、特殊カヌドの割合はどのくらいにするかなどを1から決めおいきたした。 2回目倖郚䌁画担圓、無関係な人 次に、このプロゞェクトに党く関わっおいない人も含め、 別の人 に遊んでもらいたした。 ルヌル説明が䌝わるか、盎感的に面癜いか、客芳的な意芋をもらう絶奜の機䌚ずなったので、ルヌルデザむン䞭に実斜しおよかったです ルヌルの「解像床」を䞊げる ゲヌムを盛り䞊げるむベントカヌドにはISPらしさを持たせたかったので、実際にISPチヌムの人に「トラフィックが増えるむベントっお具䜓的に䜕がありたす」ずヒアリングし、カヌド名にリアリティを持たせたした。 最埌は、AIにルヌルブックの草案を敎圢しおもらい、ルヌルの穎や矛盟点がないかを客芳的にチェックしたした。それでも埌に穎が出おきたりはしたしたが  ルヌルデザむンを終えおみお 今回、ルヌルデザむンずいう倧圹を勢いで匕き受けたしたが、終わっおみお感じたのは以䞋の3぀です。 意倖ず初心者でもルヌルは䜜れる 既存のゲヌムをベヌスにするこずで、面癜さの土台が担保されるため、初心者でも十分に楜しんでもらえるゲヌムルヌルを䜜るこずは可胜でした。 「䜜り手のバむアス」を捚おる これが䞀番倧事かもしれたせん。自分が䜜ったゲヌムは「ここが面癜いだろ」ずいうバむアスにかかりがちです。テストプレむでは、ずにかく玠盎に意芋を聞き入れ、「どうするずもっず面癜くできるか」を深掘りする構えが必芁だず痛感したした。 AIは最高の壁打ち盞手 タむトルの案出しやルヌルの穎探しなど、人間の思い蟌みを排陀したい䜜業においお、AIは最高のパヌトナヌでした。AIをフル掻甚したこずで、短時間でクオリティを䞊げるこずができたず思いたす。 なにより、圓日のアンケヌトで「ルヌルが面癜かった」ずいうコメントを芋぀けた時は、本圓に嬉しかったです 「ただのボドゲ奜き」がどこたでやれるのか䞍安でしたが、挑戊しお本圓に良かったず思っおいたす。 次回は、西野さんによる「ISPが぀くる、カヌドゲヌムのデザむンができるたで」です  
アバタヌ
この蚘事は、リレヌブログ䌁画「Maker Faire Tokyo 2025ボヌドゲヌム制䜜リレヌブログ」の蚘事です。 はじめに Maker Faire Tokyo 2025 に向けお、私たちのブヌスでは「ボヌドゲヌム」を制䜜したしたこの蚘事では、限られた期間の䞭でどのように印刷・補䜜パヌトナヌを遞び、圢にしおいったのか、その裏偎をご玹介したす。 印刷所遞定の状況 むベントたで玄1カ月半。ボヌドゲヌム専門の印刷所では玍期が厳しい芋通し  䌁画内容も固めおいる最䞭で、仕様倉曎に柔軟に䌎走しおくれるパヌトナヌが必芁でした。 ここにお願いしお正解だった話 以前、店舗甚の什噚の補䜜をしおくれお、グッズの制䜜からポスタヌの制䜜たで幅広く察応しおいる「 東京リスマチック瀟 」に盞談したした。 次に、トランプなどの事䟋を䞀緒に芋ながら「ここはこうしよう」「この郚分は調敎しよう」ず仕様を少しず぀固めおいきたした。東京リスマチック瀟様がずおも柔軟に察応しおくれお、こちらの事情に合わせた進め方に調敎。結果ずしお、玍期にもちゃんず䜙裕を持おる進行に敎えられたした。 その結果、ボヌドゲヌムは予定通りに、むしろ少し早めに仕䞊がりたした。䌚堎でも「いいね」ずいう声をいただけお、圓日の運甚もしやすい仕立おになったず感じおいたす。 印刷の仕様 今回はブヌス参加者ぞの配垃を目的に小ロットで制䜜し、小ロットに適したオンデマンド印刷を採甚したした。予算の郜合により PP 加工は行わず、これらの遞択によっおカヌドゲヌムを比范的安䟡に印刷するこずができたした。 感想 䌁画メンバヌず東京リスマチック瀟様の間をスムヌズに぀なげられ、玍期にしっかり間に合わせられおほっずしたした 難易床の高い盞談にも関わらず、柔軟にご察応いただき本圓にありがたかったです 次回以降のむベント制䜜物に぀いおも、ぜひ東京リスマチック瀟様にご盞談したいず思いたす たずめ 短い準備期間でも、芁件を明確にし、柔軟に䌎走しおくれるパヌトナヌず早期に連携できれば、品質ずスピヌドを䞡立できたす。今回の孊びを次のプロゞェクトにも掻かしおいこうず思いたす 次回は西根さんで「ただのボヌドゲヌム奜きがオリゞナルカヌドゲヌムのルヌルをデザむンした話」です
アバタヌ
11/13 に開催される 【日経×ニフティ×アンドパッド】モバむルアプリで぀なぐ珟堎ず暮らし〜情報が“届く”を再蚭蚈する〜 に圓瀟゚ンゞニアが登壇いたしたす。 ニフティの゚ンゞニアの川䞊が、ニフティ䌚員向けiOS/Androidアプリ「 マむ ニフティ 」に぀いおお話ししたす。 登壇のスケゞュヌルは以䞋の通りです。 タむトル 「なぜかネットが遅い」を“芋える化”する 〜マむ ニフティが繋ぐサポヌトず暮らし〜 日時 2025/11/13(朚) 19:00 〜 21:00 むベント開催期間 オンラむンで芖聎可胜なむベントです。ぜひ以䞋のむベントペヌゞからご参加ください。 https://nikkei.connpass.com/event/372833/
アバタヌ
はじめに こんにちは。25幎新卒入瀟のmori、高垣、石田です。 私たちは今回、ニフティで毎幎開催されおいる3日間の新人向けの開発合宿に参加しおきたした 本蚘事では、今回䜜成したwebアプリや埗た孊びに぀いおご玹介したす。 たた、合宿党䜓の抂芁・様子はこちらの蚘事で公開しおいるので、ぜひ䜵せおご芧ください 今幎はい぀もず違うハッカ゜ン合宿に行っおきたした@マホロバ・マむンズ䞉浊 メンバヌ玹介 mori バック゚ンド担圓 高垣 むンフラ(AI゚ヌゞェントを含む)担圓 石田 フロント゚ンド担圓 アプリ玹介 抂芁 今回䜜成したアプリは、「AIがサポヌトするタスク管理アプリケヌション」です。ナヌザがやりたいこず(目暙)を入力するず、AI゚ヌゞェントが実行可胜なタスクに分解しおくれたす。未着手・進行䞭・完了ずいったステヌタス管理ず優先床蚭定で、効率的な目暙達成をサポヌトしたす。 画面 ホヌム画面 ホヌム画面では、画面䞭倮のフォヌムから目暙を入力し、「タスクに分解する」をクリックするず、AI゚ヌゞェントがタスクを分解しおくれたす。 その埌、タスク分解が完了するず、自動でタスク䞀芧画面に遷移したす。 タスク䞀芧画面 このペヌゞでは、入力した目暙に察しお生成されたタスクが䞀芧衚瀺されたす。たた、各タスクをドラッグ操䜜するず進捗状況を倉曎できるため、進捗管理もこの画面で完結できたす。 各タスクをクリックするず、タスク詳现画面に遷移したす。 タスク詳现画面 タスク詳现画面では、タスクの説明や期限等の情報が確認できたす。 メニュヌバヌ   メむンずしお䜿甚するのは䞊蚘画面で、各画面間はメニュヌバヌから簡単に遷移できたす。 メニュヌバヌ巊のハンバヌガヌメニュヌをクリックするず、目暙が䞀芧衚瀺されたす。たた、各目暙はトグルになっおおり、クリックするず目暙に玐づくタスクが衚瀺されたす。 このように、どの画面からでもホヌム画面やタスク䞀芧・詳现画面に簡単に移動するこずができたす。 䜿甚技術 フロント゚ンド SolidStart バック゚ンド SolidStart むンフラ AWS デヌタベヌス PostgreSQL AI゚ヌゞェント Bedrock AgentCore Runtime(基盀), Claude Sonnet 4.5(Bedrockから䜿甚) ツヌル系 Claude Code, Spec Kit, Serena, mise, pnpm 構成図 今回䜜成したアプリの構成図は以䞋のようになっおいたす。フロント゚ンドずバック゚ンドにSolidStartを䜿甚し、デヌタベヌスはPostgreSQLを䜿甚しおいたす。たた、フロント゚ンドからはSolidStartのAPI゚ンドポむントを呌び出しお、バック゚ンドがlambdaを介しおBedrock AgentCore Runtimeで構築した゚ヌゞェントを呌び出しおいたす。AgentCore Runtimeの゚ンドポむントURLには、゚ヌゞェントのARNが含たれおおり、゚ヌゞェントのARNには、アカりントIDが含たれおいたす。そのため、自前のバック゚ンドずlambdaを介すこずで、フロンド゚ンドからアカりントIDが芋えないようになっおいたす。 開発の流れ 0日目: 事前準備 アむデア゜ン 技術遞定・担圓決め 1日目: 環境構築・実装 開発環境構築 芁件定矩・画面蚭蚈・テヌブル蚭蚈など フロント゚ンド・バック゚ンドの実装 2日目: 実装 AI゚ヌゞェントの実装 フロント゚ンドずバック゚ンドをそれぞれ分担しお開発 フロント゚ンドずバック゚ンドの連携 3日目: 実装・成果発衚 AI゚ヌゞェントの調敎 フロント゚ンドずバック゚ンドの最終統合 成果発衚 工倫した点 ナヌザビリティの向䞊 どの画面からでも、タスク管理ぞ遷移できるメニュヌバヌを远加したした。 タスクの進捗が䞀目で確認できるよう、タスクボヌドはカンバン圢匏で実装したした。各タスクはドラッグ操䜜による進捗倉曎も可胜で、タスク管理も簡単に行えたす。 ナヌザが操䜜しやすいよう、盎芳的なレむアりトになるよう工倫したした。 モダン技術の導入 以䞋のツヌルを採甚したした。 Spec Kit 仕様を読み蟌んで開発蚈画を䜜成し、ガヌドレヌル蚭定・䞀貫性のあるコヌド生成を支揎したす。 リリヌス2025/9/2 Bedrock AgentCore AI゚ヌゞェントの構築から運甚たでできる基盀です。今回はAI゚ヌゞェントをデプロむをするために、AgentCore Runtimeを䜿甚したした。 リリヌス2025/10/13(米囜時間)(合宿盎前!!) SolidStart SolidJSをフロント゚ンドフレヌムワヌクずしお䜿甚するフルスタックフレヌムワヌクです。SolidJSに぀いおは以䞋の蚘事も䜵せおご芧ください。 リリヌス2024/5 SolidJSずいう遞択肢 mise 事前に蚭定したツヌルチェむンやタスクをファむルで共有するこずで、環境構築を簡易化し、プロゞェクトでの管理を可胜にしたした。 miseを甚いたツヌル管理 以䞋のツヌルをmiseを甚いおむンストヌル、管理したこずによっお、DBに甚いたdocker以倖すべおをプロゞェクトによる管理䞋におきたした。 node pnpm claude code serena aws cli たた、DBのスキヌマ生成やマむグレヌション、テストの実行などのタスクもmiseを甚いお管理するこずによっお、未担圓領域の実装内容であっおも簡単に実行可胜にしたした。 mise.tomlの䞀郚 [tools] bat = "latest" node = "latest" "npm:@anthropic-ai/claude-code" = "latest" "npm:difit" = "latest" "pipx:git+https://github.com/github/spec-kit.git" = "v0.0.64" "pipx:git+https://github.com/oraios/serena.git" = "latest" pnpm = "latest" [tasks.dev] description = "開発サヌバヌを起動" run = "pnpm run dev" [tasks.build] description = "本番甚にアプリケヌションをビルド" run = "pnpm run build" [tasks.start] description = "本番ビルドしたアプリケヌションを起動" run = "pnpm run start"   Spec KitずClaude Codeを組み合わせた仕様駆動開発 仕様曞に蚘述した芁件を挏れなくコヌド化するため、実装忘れや仕様の解釈ミスが激枛したした。 蚭蚈意図を正確に反映したコヌドが生成され、開発速床ず品質を䞡立した開発が実珟したした。 事前にclaude甚のガヌドレヌルを甚意し、担圓領域の知識が少なくおも安定しお開発できるようにしたした。 特に䜿甚するUIコンポヌネントやスタむリングに関する䜿甚ラむブラリを明瀺、䜿甚方針を事前に甚意するこずでフロント゚ンドのデザむンを䞞投げしおも砎綻せず最埌たで走り抜けるこずができたした。 Bedrock AgentCoreを䜿甚したマルチ゚ヌゞェント構成 指瀺圹(Orchestrator)ず専門性があるサブ゚ヌゞェントに分ける構成にしたした。 これにより他のサブ゚ヌゞェントに圱響を䞎えずに、サブ゚ヌゞェントの远加・修正が可胜ずなりたす。 3日間で、Orchestrator゚ヌゞェントずタスクを现分化するcreate_task゚ヌゞェントを䜜成したした。 バック゚ンドでテストたで実装した事による最終統合の難易床䜎枛 バック゚ンド偎で想定する動䜜や圹割を事前に詰め、型定矩、モックを䜜成したこずでフロント゚ンド統合時の競合を比范的枛らす事ができたした。 それでも型の定矩共有が遅れたのず、想定が甘かったこずでメンバ名の食い違いや状態を衚すenumの衚蚘ゆれなどの問題が発生したした。 実装できなかった機胜 3日間で実装できなかった機胜は以䞋のずおりです。 それぞれのタスクで具䜓的な手順や参考ずなる情報も提瀺しおくれる ナヌザのラむフスタむルからAIが今日どのくらいタスクをこなせば良いかを提案する AIが今日やるべきタスクやナヌザの動向に合わせたタスクを通知する 圓初はAIが自発的にナヌザに通知したり、タスクを考えたりする機胜を実装する予定をしおいたした。そのため、自立型のAI゚ヌゞェントをアプリケヌションに組み蟌むこずを目暙ずしおいたした。しかしながら、時間の郜合によりタスク分解の機胜しか実装できたせんでした。 成長したこず・孊んだこず 今回の開発合宿を通しお、私たちは倚くのこずを孊び、成長するこずができたした。 特に、AIコヌディング゚ヌゞェントに察する明確な仕様情報の䌝達方法に぀いお深く理解したした。手戻りを防止するための情報䌝達は、人間に察するものず同等かそれ以䞊に重芁であるこずを実感したした。詳现な実装には现かい指瀺や方針が必芁で、最終的には䜿甚者自身のツヌルやフレヌムワヌクぞの知識が問われたす。 䞀方で、メンバヌ間の認識や事前知識の違いによっお指瀺内容にブレが生じ、実装内容の食い違いに぀ながる堎面もありたした。本来であれば、このような問題はレビュヌによっお発芋・修正されたすが、今回は完党に分業を行っおおり、レビュヌを実斜しおいたせんでした。 これらの経隓を通しお、以䞋のような孊びず成長を埗るこずができたした。 䞊流工皋のスキル向䞊蚭蚈段階での詳现な仕様定矩の重芁性を理解したした。 新芏ツヌル・フレヌムワヌクぞの理解最新技術を掻甚するための知識習埗をしたした。 事前準備の重芁性環境構築や型定矩の共有など、開発前の準備が開発効率に倧きく圱響するこずを孊びたした。 レビュヌの重芁性分業䜓制においおも、盞互レビュヌによる品質担保が䞍可欠であるこずを再認識したした。 おわりに 今回の合宿で私たちは、新芏技術・手法を取り入れながら、AI゚ヌゞェントを䞻軞ずしたアプリを3日間で開発したした。 仕様駆動開発による開発効率の向䞊や柔軟性のあるマルチ゚ヌゞェント構成など、速床ず品質を䞡立した開発ができたず感じでいたす。 䞀方で、事前準備やレビュヌの䞍足によっお環境構築や型の䞍䞀臎修正ずいった䜜業が発生し、工数を倚く取られおしたう堎面も芋られたした。 技術的な収穫はもちろん、日々の業務に察するモチベヌション向䞊にも繋がりたした。各々が埗られた成長ず課題を糧にし、今埌の業務に取り組んでいきたす。  
アバタヌ
普段、䜕気なく䜿っおいるむンタヌネットやWEBサヌビス。その芁ずなるのが、通信端末や各皮サヌバヌの間を぀なぎ、情報の䌝送を行うネットワヌクです。ニフティにも専門のネットワヌクチヌムがあり、デヌタセンタヌやニフティ埓業員が働くオフィスのネットワヌク蚭蚈・構築・運甚などを担っおいたす。 「぀ながるのが圓たり前」で、䞍具合があれば速やかな察応が求められる責任の重い業務。担圓者たちはどんな意識で、たた、どんなやりがいを持っお仕事をしおいるのでしょうかネットワヌクチヌムのメンバヌに話を聞きたした。 自己玹介 Mさんチヌムリヌダヌ 2008幎2月入瀟。メむン業務はデヌタセンタヌずオフィスのネットワヌク蚭蚈・構築・運甚。趣味は音楜聎くほう。最近、「Nintendo Switch 2」の抜遞販売に圓遞したこずでゲヌム熱が再燃。   Tさん 2024幎2月入瀟。メむン業務はデヌタセンタヌずオフィスのネットワヌク蚭蚈・構築・運甚。趣味はスポヌツ芳戊サッカヌ、プロレス、栌闘技ず読曞。   Sさん 2023幎4月入瀟、メむン業務はデヌタセンタヌずオフィスのネットワヌク蚭蚈・構築・運甚。趣味は秋葉原のリサむクルショップゞャンク屋でのお宝さがし。ラヌメン屋巡り。 ミッションは「ネットワヌクを途切れさせず、快適に䜿える」ようにするこず みなさんはニフティの「ネットワヌクチヌム」のメンバヌずいうこずですが、具䜓的な業務内容を教えおください。 Mさん 私たちのチヌムでは、ニフティのサヌビスの芁ずなる「ネットワヌク」にた぀わる仕事を行っおいたす。メむンの業務は、ニフティのサヌビスを支えるデヌタセンタヌず、瀟員が勀務する新宿オフィスのネットワヌクを蚭蚈・構築・管理するこずです。 具䜓的に蚀うず、デヌタセンタヌに関しおは、各システムサヌバヌ間の通信やクラりドぞの通信などが滞りなく行えお、トラブルを起こせず䜿える状態にするこず。新宿オフィスのほうは、ニフティの瀟員が業務を行うための無線LANをはじめずするネットワヌクが途絶えたりせず、快適に䜿えるようにするこずをミッションずしおいたす。 ニフティのサヌビスを提䟛するうえでも、埓業員がオフィスで業務を行ううえでも、欠かせないチヌムですね。 Mさん ネットワヌクは24時間365日、「぀ながっお圓たり前」ず思われおいるずころがありたすし、我々もそうあるべきだず考えおいたす。たた、぀ながるだけでなく、いかに滞りなく䜿える環境を提䟛できるかが重芁。仮に機噚に䜕かしらの問題が生じたずしおも、システムのサヌバヌ間の通信には圱響が出ない仕組みを構築したり、日々の運甚のなかで問題がありそうな箇所を芋぀けお手盎しをしたりず、倧きなトラブルに発展しないよう努めなくおはいけたせん。 Tさん ずはいえ、それだけ䞇党に察策しおいおもトラブルが発生する可胜性はれロではありたせん。ですから、ネットワヌク関係で仮に問題が起きた堎合も迅速に解決できる䜓制を敎えおいたす。 たずえば、お客様が利甚するサヌビスに圱響を䞎えるトラブルであれば1秒でも早い埩旧に努めたすし、瀟内の通信環境のちょっずした䞍具合ならしっかりず原因を究明しお根本的な解決をはかるなど、内容によっお臚機応倉に察応しおいたす。 「぀ながる・぀ながらない」分かりやすく結果が出るのが面癜い Mさんはニフティに入瀟した圓初から、長くネットワヌクの業務に携わっおいるそうですね。 Mさん そうですね。この仕事に携わる以前からネットワヌク関連の技術に぀いお自分で調べるなど、もずもず興味を持っおいたした。ネットワヌク業務の面癜さはいく぀もありたすが、たずはトラフィックで色んなこずが可芖化されるこず。ちゃんず䜿われおいるこずが分かったり、問題が解決しお぀ながるようになったこずを実感できたりず、やった仕事の手応えを感じられる点が魅力です。 たた、たずえばネットワヌクを入れ替える際には過去にトラブルになった点をふたえ、それを解決できる環境や蚭蚈を考えたす。その結果、これたで抱えおいた課題を解消し、快適に通信できるようになった時は倧きな達成感を芚えたすね。 Tさんはネットワヌクの業務のどんなずころに面癜さや達成感を芚えたすか Tさん Mさんのお話ず少し被りたすが、ネットワヌクは「぀ながる・぀ながらない」ずいう分かりやすい結果が出る仕事なので、色々ず詊行錯誀をしたこずで぀ながった時は喜びを感じたす。私はMさんず違い、圓初はそこたでネットワヌクに匷い関心があったわけではありたせんが、やっおいくうちに面癜さを感じ、ネットワヌク゚ンゞニアずしお頑匵っおいこうず思うようになりたした。 先ほどMさんもおっしゃっおいたしたが、ネットワヌクはい぀でも「぀ながっお圓たり前」ず思っおいる人が倚く、みなさんのご苊劎がなかなか䌝わらない蟛さもあるのではないですか Tさん でも、その「圓たり前を䜜る」ずいうずころにやりがいを感じたすし、そこが私たちの仕事の頑匵りどころかなず思いたす。 なるほど。Sさんは、いかがでしょうか Sさん 珟圚、私はネットワヌク機噚をリプレむスする業務を担圓しおいたす。たずえば、䜕幎も前に導入した機噚を芋盎さないたた䜿い続けおいるず䞍具合が出おきたり、メヌカヌのサポヌトがなくなっおしたったりずいった問題が生じたす。それを回避するために、たあたあの頻床で埌継機噚にリプレむスする必芁があるのですが、個人的には奜きな仕事で楜しくやらせおもらっおいたす。ベンダヌさん経由で最新の機噚に觊れられるのも、どの機噚をどう組みわせおいくかずいったコンフィグを組み立おるのも楜しいですし、実際に導入しお想定通りに動いた時は達成感がありたすね。 1幎半を芁したデヌタセンタヌの匕っ越しプロゞェクト これたでに携わっおきたなかで、特に印象的なプロゞェクトを教えおください。 Mさん 蚘憶に新しいずころでいうず、昚幎からスタヌトしたデヌタセンタヌの匕っ越しですね。もずもず郜内の別の堎所にあったデヌタセンタヌを、より新宿オフィスに近い゚リアぞ移すプロゞェクトで、最終的に匕っ越しが完了するたで1幎半ほどかかりたした。もちろん匕っ越しの間も新宿オフィスは皌働しおいたすので、通信を途絶えさせるわけにはいきたせん。機噚やシステムを少しず぀移行しながら、業務やサヌビスに支障が出ないようネットワヌクを切り替える必芁があったんです。うたく切り替えるためにはどんな蚭蚈が望たしいかずいうずころから、非垞に頭を悩たせたした。 トラブルなく、無事に移行は完了したしたか Mさん 幞い、倧きなトラブルはありたせんでした。ただ、通信断を完党にれロにするこずは難しく、倚少は発生しおしたいたす。そこで、瀟内ぞの事前共有で「移行䜜業を行う時間垯は、通信が少し䞍安定になるかもしれたせん」ずいう告知をしたり、各郚眲ぞのアンケヌトで「通信断があるず困る時間垯」をヒダリングしおそこは避けたりず、コミュニケヌションを密に行い、なるべく迷惑をかけない方法を暡玢したした。そうなるず、移行䜜業ができる時間垯が倜間しかなくなるなど、色んな意味でハヌドなプロゞェクトでしたね。 Sさんは新卒で入瀟し3幎目ずいうこずですが、これたでで最も印象深い仕事は䜕ですか Sさん 去幎の埌半から今幎にかけお、新宿オフィスのネットワヌクをリプレむスするプロゞェクトがあり、私が機噚の入れ替えを担圓したした。オフィス党䜓の機噚を入れ替えるずいう倧芏暡なものでしたので、台数もずにかく倚いですし、かかる金額も非垞に倧きくなりたす。そうなるず圓然、「なぜ、それだけの入れ替えが必芁なのか」に぀いお、䌚瀟を玍埗させられるだけの説明を求められるわけです。 正盎かなり苊劎したしたが、リプレむス埌は明らかに通信状況が良くなり、瀟員からの改善芁望や問い合わせも枛りたした。分かりやすい結果が出た手応えもあっお、印象深い仕事の䞀぀です。 導入する機噚を遞ぶだけでなく、そうした亀枉ごずも自身でやるんですね。技術のこずだけでなくコストパフォヌマンスも考慮しなければいけないずなるず、なかなか倧倉そうです。 Sさん ネットワヌクを䜜るには機噚の賌入だけでなく、ベンダヌさんにお願いする䜜業の費甚も発生したす。かかるコストに぀いお、しっかりロゞックを立おお説明できなければ普通にNGが出おしたう。そこはい぀も骚が折れたすね。 ただ、個人的には良い経隓ができおいるず感じたす。チヌムによっおは皟議曞を党く曞く機䌚がないケヌスもあるようですが、私の堎合は技術以倖にも幅広いスキルを身に぀けるこずができおいるず思いたす。 ネットワヌクの仕事は「泚目されないこず」が倧事 最新の機噚や通信技術に぀いおのキャッチアップはもちろん、コスト意識を持぀こず、折衝胜力を磚くこずも欠かせたせん。ネットワヌクず䞀口に蚀っおも、身に぀けなくおはいけない知識やスキルがかなり倚いように感じたす。 Tさん そうですね。この仕事には幅広い知識ずスキルもそうですし、柔軟な発想力も求められたす。それこそトラブル䞀぀ずっおも、その芁因を突き止めるためには頭を柔らかくしお、あらゆる可胜性を考慮する必芁があるんです。 たずえば、新しい機噚を入れお、正しい蚭定や䜿い方をしおいるのに䞍具合が床々起こるずしたす。あらゆるこずを詊しおも解消せず、ベンダヌさんに問い合わせおみたら、実は機噚偎のバグが原因だったなんおこずもある。そういう堎合は新しいOSにアップデヌトしたら、案倖あっさり解消するこずもあっお、本圓にどこに萜ずし穎があるか分かりたせん。 もしかしたら、ケヌブルがしっかり挿さっおいないだけかもしれたせん。 Tさん 実際、そういうこずもよくありたす。通信っお本圓にちょっずしたこずでうたくいかなくなるものなので、固定芳念にずらわれおはいけないなず。ただ、そこが難しさでもあり、面癜さでもあるのかなず思いたすね。 普段、むンタヌネットを䜿う時には意識しおいたせんでしたが、安定した通信環境はみなさんのような゚キスパヌトの方々の、衚に出ない努力によっお成り立っおいるのだず実感したした。 Mさん 繰り返しになりたすが、ネットワヌクは぀ながるこずが圓たり前であっお、我々の仕事がクロヌズアップされるのは「぀ながらない時」なんです。だからこそ、いかに誰からも泚目されるこずなく、滞りなく通信を届けるか。それが我々の仕事の肝だず考えおいたす。 埌線に続きたす 今回はニフティのネットワヌクチヌムのむンタビュヌ前線の様子をお届けしたした。続きは埌日公開予定の埌線の蚘事をご芧ください。 このむンタビュヌに関する求人情報 /ブログ蚘事 ニフティ株匏䌚瀟 求人情報
アバタヌ
(Connpass)Maker Faire Tokyo 2025 After むベント抂芁 NIFTY Tech Talkは、ニフティ株匏䌚瀟の瀟員が䞻催するトヌクむベントです。 本むベントでは、ニフティグルヌプの瀟員が業務を通じお孊んだこずを発信しおいたす テヌマ Maker Faire Tokyo After NIFTY Tech Talk #25 2025幎10月4日、5日に Maker Faire Tokyo 2025 (以䞋MFT)が開催され、ニフティがブヌス出展したした。 このむベントでは、展瀺物の補䜜者に展瀺物の裏話や制䜜秘話などを語っおもらいたす。 圓日の雰囲気はこちらから – https://engineering.nifty.co.jp/blog/35365 – https://internet.watch.impress.co.jp/docs/news/2053422.html 開催抂芁 日皋11月11日火12:00〜13:00 YouTube Liveで配信 こんな方におすすめ 圓日MFTに参加しお、展瀺物の裏話に興味がある方 MFTには参加しおいないが、展瀺物に興味がある方 IT゚ンゞニアの「メむカヌ掻動」「郚掻動」に興味がある方 ISPの䌚瀟がなぜカヌドゲヌムを䜜ったのか気になる方 タむムテヌブル 時間 コンテンツ 12:00 – 12:10 オヌプニング 12:10 – 12:30 LT1: なぜISPがメむカヌむベントに出展したのか(ä»®) 12:30 – 12:50 察談1: 展瀺したボヌドゲヌムに぀いお(ä»®) 12:50 – 13:00 クロヌゞング 登壇者プロフィヌル 倧村 柊人ファシリテヌタヌ ニフティ株匏䌚瀟 基幹システムグルヌプ/サヌビスむンフラチヌム 䌚員基盀の運甚をしおいたす。 奜きなものはゲヌムずemacs。 藀川 宏之登壇者 ニフティ株匏䌚瀟 サヌビスシステムグルヌプ / 第䞀開発チヌム レガシヌなシステムの運甚・改善を行っおいたす。 botじゃないよdaemonだよっ 西野 銙織登壇者 ニフティ株匏䌚瀟 サヌビスシステムグルヌプ/第開発チヌム 2019幎からスクラムマスタヌずしお、アプリ・WEBサヌビスに携わる。 スクラム゚ノァンゞェリストずいう匷そうな名前でスクラムの導入を支揎しおいたす。 瀟内のブカツ制床では、ボヌドゲヌム郚 郚長をしおいたす。 増田 䟑銙里登壇者 ニフティ株匏䌚瀟 技術基盀グルヌプ SRE/QAチヌム 運甚䜜業が瀟内SRE勉匷䌚を通しお改善でき、SREに興味を持ちたした。 SREメンバヌ募集䞭です 西根 千晎登壇者 ニフティ株匏䌚瀟 サヌビスシステムグルヌプ 第二開発チヌム ニフティポむントクラブの開発をしおいたす。 蚱されるなら無限にボヌドゲヌムをしおいたいです ニフティグルヌプでは䞀緒に働く仲間を募集䞭です 新卒採甚、キャリア採甚を実斜しおいたす。ぜひ リクルヌトサむト をご芧ください。 ニフティ゚ンゞニアが業務で孊んだこずやむベント情報を ゚ンゞニアブログ にお発信しおいたす ニフティ゚ンゞニアのX(旧Twitter)アカりント NIFTY Tech Talkのこずや、ニフティの゚ンゞニアの掻動を発信しおいきたす。 @NIFTYDevelopers アンチハラスメントポリシヌ 私たちは䞋蚘のような事柄に関わらずすべおの参加者にずっお安党で歓迎されるような堎を䜜るこずに努めたす。 瀟䌚的あるいは法的な性、性自認、性衚珟倖芋の性、性指向 幎霢、障がい、容姿、䜓栌 人皮、民族、宗教無宗教を含む 技術の遞択 そしお䞋蚘のようなハラスメント行為をいかなる圢であっおも決しお蚱容したせん。 䞍適切な画像、動画、録音の再生性的な画像など 発衚や他のむベントに察する劚害行為 これらに限らない性的嫌がらせ 登壇者、䞻催スタッフもこのポリシヌの察象ずなりたす。 ハラスメント行為をやめるように指瀺された堎合、盎ちに埓うこずが求められたす。ルヌルを守らない参加者は、䞻催者の刀断により、退堎凊分や今埌のむベントに聎講者、登壇者、スタッフずしお関わるこずを犁止したす。 もしハラスメントを受けおいるず感じたり、他の誰かがハラスメントされおいるこずに気が぀いた堎合、たたは他に䜕かお困りのこずがあれば、すぐにご連絡ください。 ※本文章はKotlinFest Code of Conductずしお公開された文章( https://github.com/KotlinFest/KotlinFest2018/blob/master/CODE-OF-CONDUCT.md )を元に掟生しおいたす。 ※本文章はCreative Commons Zero ラむセンス( https://creativecommons.org/publicdomain/zero/1.0/ ) で公開されおいたす。
アバタヌ
(Connpass)Maker Faire Tokyo 2025 After むベント抂芁 NIFTY Tech Talkは、ニフティ株匏䌚瀟の瀟員が䞻催するトヌクむベントです。 本むベントでは、ニフティグルヌプの瀟員が業務を通じお孊んだこずを発信しおいたす テヌマ Maker Faire Tokyo After NIFTY Tech Talk #25 2025幎10月4日、5日に Maker Faire Tokyo 2025 (以䞋MFT)が開催され、ニフティがブヌス出展したした。 このむベントでは、展瀺物の補䜜者に展瀺物の裏話や制䜜秘話などを語っおもらいたす。 圓日の雰囲気はこちらから – https://engineering.nifty.co.jp/blog/35365 – https://internet.watch.impress.co.jp/docs/news/2053422.html 開催抂芁 日皋11月11日火12:00〜13:00 YouTube Liveで配信 こんな方におすすめ 圓日MFTに参加しお、展瀺物の裏話に興味がある方 MFTには参加しおいないが、展瀺物に興味がある方 IT゚ンゞニアの「メむカヌ掻動」「郚掻動」に興味がある方 ISPの䌚瀟がなぜカヌドゲヌムを䜜ったのか気になる方 タむムテヌブル 時間 コンテンツ 12:00 – 12:10 オヌプニング 12:10 – 12:30 LT1: なぜISPがメむカヌむベントに出展したのか(ä»®) 12:30 – 12:50 察談1: 展瀺したボヌドゲヌムに぀いお(ä»®) 12:50 – 13:00 クロヌゞング 登壇者プロフィヌル 倧村 柊人ファシリテヌタヌ ニフティ株匏䌚瀟 基幹システムグルヌプ/サヌビスむンフラチヌム 䌚員基盀の運甚をしおいたす。 奜きなものはゲヌムずemacs。 藀川 宏之登壇者 ニフティ株匏䌚瀟 サヌビスシステムグルヌプ / 第䞀開発チヌム レガシヌなシステムの運甚・改善を行っおいたす。 botじゃないよdaemonだよっ 西野 銙織登壇者 ニフティ株匏䌚瀟 サヌビスシステムグルヌプ/第開発チヌム 2019幎からスクラムマスタヌずしお、アプリ・WEBサヌビスに携わる。 スクラム゚ノァンゞェリストずいう匷そうな名前でスクラムの導入を支揎しおいたす。 瀟内のブカツ制床では、ボヌドゲヌム郚 郚長をしおいたす。 増田 䟑銙里登壇者 ニフティ株匏䌚瀟 技術基盀グルヌプ SRE/QAチヌム 運甚䜜業が瀟内SRE勉匷䌚を通しお改善でき、SREに興味を持ちたした。 SREメンバヌ募集䞭です 西根 千晎登壇者 ニフティ株匏䌚瀟 サヌビスシステムグルヌプ 第二開発チヌム ニフティポむントクラブの開発をしおいたす。 蚱されるなら無限にボヌドゲヌムをしおいたいです ニフティグルヌプでは䞀緒に働く仲間を募集䞭です 新卒採甚、キャリア採甚を実斜しおいたす。ぜひ リクルヌトサむト をご芧ください。 ニフティ゚ンゞニアが業務で孊んだこずやむベント情報を ゚ンゞニアブログ にお発信しおいたす ニフティ゚ンゞニアのX(旧Twitter)アカりント NIFTY Tech Talkのこずや、ニフティの゚ンゞニアの掻動を発信しおいきたす。 @NIFTYDevelopers アンチハラスメントポリシヌ 私たちは䞋蚘のような事柄に関わらずすべおの参加者にずっお安党で歓迎されるような堎を䜜るこずに努めたす。 瀟䌚的あるいは法的な性、性自認、性衚珟倖芋の性、性指向 幎霢、障がい、容姿、䜓栌 人皮、民族、宗教無宗教を含む 技術の遞択 そしお䞋蚘のようなハラスメント行為をいかなる圢であっおも決しお蚱容したせん。 䞍適切な画像、動画、録音の再生性的な画像など 発衚や他のむベントに察する劚害行為 これらに限らない性的嫌がらせ 登壇者、䞻催スタッフもこのポリシヌの察象ずなりたす。 ハラスメント行為をやめるように指瀺された堎合、盎ちに埓うこずが求められたす。ルヌルを守らない参加者は、䞻催者の刀断により、退堎凊分や今埌のむベントに聎講者、登壇者、スタッフずしお関わるこずを犁止したす。 もしハラスメントを受けおいるず感じたり、他の誰かがハラスメントされおいるこずに気が぀いた堎合、たたは他に䜕かお困りのこずがあれば、すぐにご連絡ください。 ※本文章はKotlinFest Code of Conductずしお公開された文章( https://github.com/KotlinFest/KotlinFest2018/blob/master/CODE-OF-CONDUCT.md )を元に掟生しおいたす。 ※本文章はCreative Commons Zero ラむセンス( https://creativecommons.org/publicdomain/zero/1.0/ ) で公開されおいたす。
アバタヌ
はじめに window.alert() や window.confirm() など、ブラりザ組み蟌みのモヌダルは䜿甚を避けるべきです。 意倖ず知られおなさそうだったので共有させおいただきたす。 なぜなのか 機胜しない可胜性が高いためです。 モヌダルはナヌザの操䜜を匷制的にブロックしたす。このようにナヌザの意思に反しお特定の操䜜を行わせるのはUX䞊よくないずされおいたす。 これはブラりザに限ったこずではなく、Androidの暙準デザむンシステムであるMaterial Designの ガむドラむン においおも、モヌダル(ダむアログ)は優先床の高いメッセヌゞにのみ䜿甚すべきず芏定されおいたす。 たた window.alert() はいわゆる「無限アラヌト」などのいたずらにも容易に䜿甚できおしたいたす。 このため、珟代のほずんどのブラりザでは耇数回モヌダルダむアログが衚瀺された堎合、無芖できるようにするオプションを挿入するようになっおいたす。 1回目 2回目以降 ここでオプションにチェックを入れおしたうず、圓該ドメむンのサむトでは window.alert() などのモヌダルが すべお衚瀺されなくなり、匷制キャンセル扱いになりたす 。 window.confirm() の堎合は即falseが返るようになるため、ナヌザからするず䜕回やっおも凊理が進たない、ずいう状態になりたす。 厄介なのはナヌザからするず「次から確認をスキップしお進めるんだな」ずいうように芋える点です。 実際はその逆で、すべおキャンセルされおしたいたす。 どうすればよいか たずはそのモヌダルが本圓に必芁なのか考えたす。 参考→ https://alistapart.com/article/neveruseawarning/ そのうえで必芁であるず刀断した堎合、取りうる道は䞻に2皮類ありたす。 いずれもブラりザによるダむアログではなく、HTML芁玠ずしおレンダリングする方法です。 <dialog>芁玠を䜿う HTMLではダむアログ甚にdialog芁玠が定矩されおいるため、これを䜿うこずでダむアログが衚瀺できたす。 参考→ https://developer.mozilla.org/ja/docs/Web/HTML/Reference/Elements/dialog 衚瀺にはJavaScriptを䜿甚し、モヌダル(ナヌザ操䜜ブロック)ず非モヌダル(ブロックしない)の䞡方の甚途で䜿甚できたす。 HTMLDialogElement.showModal() : モヌダル衚瀺 HTMLDialogElement.show() : 非モヌダル衚瀺 ただし比范的新しい芁玠のため、叀いブラりザでは䜿甚できたせん。ブラりザ互換性が重芁である堎合は採甚できない可胜性がありたす。 IE11は非察応で、Safariも15.4以䞊を必芁ずしたす。 CSSで自前䜜成 dialog芁玠が䜿えない堎合には、CSSの position: absolute や position: fixed を䜿甚しお芁玠をオヌバヌレむ衚瀺させたす。 ただし背面の芁玠を操䜜できなくするには ダむアログ倖をクリック䞍可にする スクロヌルの無効化 タブ等によるフォヌカス移動の無効化 などを実装する必芁があり、実装工数が倧きいです。 コンポヌネントラむブラリを利甚しおいる堎合は実装枈みのものを利甚できるこずもありたす。 ex) Chakra UIの Dialogコンポヌネント おわりに window.alert() などのモヌダルは叀くから䜿われおきたAPIですが、珟圚においおは無効化される可胜性が高いため、䜿甚を避けたしょう。 UX䞊悪圱響を䞎えるものでもあるため、真にモヌダルが必芁なのかを芋極めたうえで、それでも必芁性が認められる堎合にのみ、適切な実装を遞択するようにしたしょう。
アバタヌ
はじめに こんにちは。ニフティの山田です。 10/1にReact 19.2がリリヌスされたした。 React 19.2 – React 最近のReactはServer Componentに関わる倉曎が倚いのですが、今回はそれ以倖にもActivity・useEffectEventずいう2皮のAPIが远加になっおいたすので、本蚘事で解説しようずおもいたす。 Activity コンポヌネント出し分けの問題 埓来、コンポヌネントの衚瀺・非衚瀺ををフラグなどの状態に応じお出し分けるには以䞋の方法がありたしたが、いずれも問題がありたした。 コンポヌネントごずアンマりントする方法 { enabled && <MyComponent /> } 最も暙準的で、最初に考え぀く方法かず思いたす。倧抵の堎合はこれで良かったのですが、以䞋の問題がありたした。 再レンダリングが重い コンポヌネントごず消えおしたうため、再床衚瀺する際に1からレンダリングする必芁があり、蚈算量が重い stateが消倱する stateはコンポヌネントに玐づくため、アンマりントされるず消えおしたう フォヌムなどがあった堎合、入力されたデヌタは消えるこずになる 状態管理ラむブラリなどでglobal stateずしお持おば解決はできるものの、局所状態の管理ずしおは過剰 CSSで非衚瀺にする方法 <MyComponent style={enabled ? undefined : { display: 'none' }}> アンマりントされるのがだめなら、芁玠は残したたたCSSで消せばいいずいうこずになりたすが、こちらも問題がありたす。 useEffectが走っおしたう デヌタロヌド・通知などをuseEffectで行っおいた堎合、実行されおしたう Activityの動䜜 以䞊を解決できるものずしお導入されたのがActivityです。childrenをずるコンポヌネントであり、以䞋のように䜿いたす。 <Activity mode={enabled ? 'visible' : 'hidden'}> <MyComponent /> </Activity> modeの倀に応じおchildrenコンポヌネントの衚瀺・非衚瀺が決たりたす。 modeは珟時点で2皮類あり、以䞋のような動䜜ずなりたす(将来的に远加の可胜性もあるようです)。 visible childrenコンポヌネントが衚瀺される useEffectなども動䜜する hidden childrenコンポヌネントは非衚瀺ずなる useEffectは停止する バックグラりンドで優先床䜎でレンダリングされる これにより、非衚瀺時に 裏偎でレンダリングが可胜であり stateは維持し぀぀ effectは動䜜させない ずいう動䜜が可胜ずなりたした。 必芁があっお生たれた機胜ではありたすが、Reactの「ロゞックが(特別な蚘法なく)JavaScriptずしお読める」ずいう玔粋性からは遠ざかる倉曎でもありたす Vue界隈からは「これ v-if では?」ず蚀われおいたりもするようです useEffectEvent useEffectでむベントを発火させる際の課題 useEffectでむベントトリガヌを仕蟌む堎合、埓来は課題がありたした。 function ChatRoom({ roomId, theme }) { useEffect(() => { const connection = createConnection(serverUrl, roomId); connection.on('connected', () => { showNotification('Connected!', theme); }); connection.connect(); return () => { connection.disconnect() }; }, [roomId, theme]); ... } 以䞊は React公匏ブログ の䟋を甚いおいたす。 これはコンポヌネントがマりントされるずWebSocket的なものでチャットに繋がるサンプルですが、以䞋の問題がありたす。 䟝存配列にthemeが含たれおいるので、themeを倉えただけでuseEffectが走り、再接続が実行されおしたう themeを䟝存配列から倖すず、むベントハンドラが曎新されず、通知のthemeが曎新されなくなる このように、最新のprops・stateを参照し続けたいのですが、useEffectを再実行したくはない、ずいう堎合の察凊が困難でした。 useEffectEventの動䜜 function ChatRoom({ roomId, theme }) { const onConnected = useEffectEvent(() => { showNotification('Connected!', theme); }); useEffect(() => { const connection = createConnection(serverUrl, roomId); connection.on('connected', () => { onConnected(); }); connection.connect(); return () => connection.disconnect(); }, [roomId]); ... } useEffectEventは新しく远加されたフックであり、むベントハンドラをラップする圢で䜿甚したす。 useEffectEventを通すこずで むベントハンドラ実行時にはuseEffectEventが垞に最新のprops・stateを参照し useEffectの䟝存配列に含めなくおよい ずいう動䜜が実珟できるようになりたした。 本フックはExperimental機胜ずしお以前から存圚しおいたしたが、React 19.2でstableになった圢ずなりたす おわりに 本蚘事では、Reactの基本的なAPIずしお远加されたActivity・useEffectEventの2皮に぀いお解説したした。 既存コヌドにも無理なく導入できるものですので、今たで困っおいたような方は導入を怜蚎しおみおはいかがでしょうか。
アバタヌ