並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 279 件 / 279件

新着順 人気順

状態管理の検索結果241 - 279 件 / 279件

  • フロントエンドとオブジェクト指向

    フロントエンドの実装にオブジェクト指向をどのように取り入れるかを考えます。 動機 近年のフロントエンドは、Reactなどのフレームワークを使ったコンポーネントベースの設計が主流だと思います。コンポーネントは、HTMLによるマークアップ、CSSによるスタイリング、JavaScriptによる振る舞いがひとまとめにされた、再利用可能な部品です。 コンポーネントの設計を考えていると、次のような疑問が生じます。 何を基準にコンポーネントで分割すればよいか。 コンポーネントの粒度はどれくらいが適切なのか。 どのタイミングで抽象化すれば開発コストが無駄にならないか。 分業した際にコンポーネントの分割や粒度の基準をどのように統一するべきか。 そこで、いろいろ調べたり試したりしたところ、フロントエンドの設計にオブジェクト指向を取り入れることが、これらの答えの一つになるのではないかと考えました。 この記事では

      フロントエンドとオブジェクト指向
    • 進化し続けるフロントエンド技術「Web Components」はライブラリ不要!――気軽に始めて開発の生産性を高めよう

      再利用可能なUI部品を組み合わせて画面を構築していくのは、多くのGUIアプリケーションにとって効率の良い開発手法です。ブラウザ向けにも多くのライブラリが再利用性を担保するための工夫を重ねてきましたが、実はブラウザ自身が再利用可能なUI部品を作成するための機能を備えていることはご存知でしょうか。本記事では、Web Componentsという名称で総称されるブラウザの機能について解説します。 対象読者 AngularやReactなどのフレームワークに頼らずに再利用可能なHTMLやCSSを整備したいマークアップエンジニア AngularやReactなどのフレームワークとWeb Componentsを併用する利点を学びたいJavaScriptエンジニア 前提環境 筆者の検証環境は以下の通りです。 macOS Monterey 12.3.1 Google Chrome 100.0.4896.127

        進化し続けるフロントエンド技術「Web Components」はライブラリ不要!――気軽に始めて開発の生産性を高めよう
      • メンタルヘルスのための個人的アジャイルの導入

        原文(投稿日:2021/01/21)へのリンク 高い品質の成果物を高い完成度で、常に提供しなければならないという意識は、ストレスを生み出し、燃え尽き症候群(burnout)の原因になる可能性がある。何よりもまず、燃え尽き症候群に陥るのを避ける問題を自分が抱えている、ということを受け入れなければならない。個人レベルでアジャイルを適用することが、ストレスを低減し、燃え尽き症候群の可能性を低めながら、高い目標を達成する上で一助となるはずだ。 Thought Machineで品質管理の責任者を務めるMaryam Umar氏は、Agile Testing Days 2020で、メンタルヘルスのためのアジャイル導入について講演した。 燃え尽き症候群のサインは外部からは分からない、とUmar氏は言う。風邪や咳とは違い、自分の内にある心から来るものだからだ。疲れを感じたり、頻繁に頭痛がしたり、仕事に対する

          メンタルヘルスのための個人的アジャイルの導入
        • Vueユーザーが感じたSvelteのおもしろい機能を紹介する - SMARTCAMP Engineer Blog

          スマートキャンプでエンジニアをしている瀧川です! 2月に育休を取得し、3月に復帰したと思ったらコロナでリモートワーク、そしてチーム異動となかなか落ち着かない今日このごろ。 みなさんいかがお過ごしでしょうか? 今回家にいる時間が多くなり、せっかくだから新しいことしたいよなーということで、以前から気になっていた Svelteを触ることにしました! Svelteの紹介記事では、「Vue.jsと構文が似ているため習熟が簡単」「Vue.jsの50倍早い」みたいなところにフォーカスされることが多いかなと思いますが、本記事ではSvelteのTutorialをやるなかで、フレームワーク(ライブラリ)の機能として普段Vue.jsを利用している私がおもしろいなーと思ったものをご紹介したいと思います。 Svelteとは 基本文法 特徴的な機能 propsやclassの省略記法 Await Block React

            Vueユーザーが感じたSvelteのおもしろい機能を紹介する - SMARTCAMP Engineer Blog
          • HTML Centricで行きたい私たち - LIFULL Creators Blog

            LIFULLの中島です。 近頃、LIFULL HOME'Sのフロントエンド(ここではJavaScriptのみを焦点とします)もようやく進む道を見出し、そろそろ設計方針を一新しようと試みています。 今回はそれについて話したいと思います。 現在の私たちの課題感 私たちの管理する多くのレガシーコードはDOM操作ライブラリとしてjQueryを、UI設計の格子としてBackbone.Viewのような設計方式を導入しています。 (もちろんそうでないマイクロサービスも多くありますが) 具体的なコード例を示すことこんな感じになります let Slider = Backbone.View({ events: { '.next click': 'next', '.prev click': 'prev' }, next() { this.$(...).css({left: '111px'}); }, ... }

              HTML Centricで行きたい私たち - LIFULL Creators Blog
            • 求人メディアGreen の Flutterの構成について - Atrae Tech Blog

              こんにちは、エンジニアの @muttsu_623 です。 最近、開発を頑張っている自分へのご褒美として念願だった『左右分離型キーボード』のMISTEL『Barocco MD770 静音赤軸』を購入しました。 Mistel BAROCCO MD770 RGB メカニカルキーボード 英語配列 85キー 左右分離型 CHERRY MX RGB 静音赤軸 ブラック MD770-PUSPDBBT1 発売日: 2020/01/30メディア: Personal Computers 購入してからまだ2週間くらいなのでまだ効果を実感できているわけではありませんが、肩が開かれた状態で姿勢良く開発を行うことができるため、長期的にみればいいお買い物になったかなと思います。 さて本題ですが、先日弊社の「求人サイト Green」のAndroidアプリをFlutterで作成しリリースしました。 Flutterでアプリを

                求人メディアGreen の Flutterの構成について - Atrae Tech Blog
              • Next.js と Server-side Rendering をプロダクト環境で3年運用してきた知見と率直な所感 | MEDLEY Developer Portal

                2024-07-23Next.js と Server-side Rendering をプロダクト環境で3年運用してきた知見と率直な所感こんにちは、医療プラットフォーム本部・プロダクト開発室・第1開発グループ所属の加藤です。 オンライン診療・オンライン服薬指導アプリ「CLINICS」の開発を担当しています。 今回は CLINICS で採用している Next.js と Server-side Rendering (SSR) についてお話ししたいと思います。 Next.js は昨今注目を集めている React ベースの Web フレームワークです。 これから Web フロントエンドの開発を始めるにあたって採用を検討している方も多いのではないでしょうか。 Next.js といえば React コンポーネントをサーバー上で実行して HTML を返す SSR に対応しているのが大きな特徴です。 SSR

                  Next.js と Server-side Rendering をプロダクト環境で3年運用してきた知見と率直な所感 | MEDLEY Developer Portal
                • Reactを使うならRecoilも学べば良いと思うって話 - Grooves開発ブログ

                  こんにちは、 tbaba です。元々 Rubyist として入社していますが、ここ2〜3年はフロントエンド力の向上にも力を注いでおります。 突然ですが、React で状態を管理する時に何を使っていますか?クラスコンポーネントにしてクラスに状態をもたせている、Redux を使って管理している、React Hooks で管理している、などなど色々な選択肢があるかと思います。 そんな中で自分たちのチームは、現在社内向けのアプリケーションにおいて、フロントエンド開発をする際に Recoil という状態管理ライブラリを使うことが多いです。そこで、今日は「なんでそれ使うの」「何が便利なの」みたいな話ができれば良いなと思います。 先に言っておくと、自分のスキルセットとしては「 TypeScript を利用した開発2年目」「React を利用した開発3年目」「基本は Ruby on Rails が得意なバ

                    Reactを使うならRecoilも学べば良いと思うって話 - Grooves開発ブログ
                  • はじめてのReactで都道府県を当てるゲームをつくりました

                    (映像もつくりました) prizmという、市町村から都道府県を当てる新感覚クイズゲームをReactで個人開発した話です。 内容 今までPHPやjQueryなどで開発をしてきた18歳です。 モダンなフロントエンド技術の習得を目的に、今回React・TypeScriptで初めて作った成果物です。 制作期間は1ヶ月弱ほどです。 もしよければ、読んで・遊んでもらえるとうれしいです! TypeScript React Redux Firebase Realtime Database UIデザイン・ロゴデザイン つくったもの 「市町村から都道府県を当てる」 リアルタイム性のある新感覚クイズゲームです。 ランダムなある1つの都道府県から次々と市町村※が出題される中で、一番早く都道府県を答えられた人が勝ちの、地理力と反射神経が問われるゲームです。 モードは初級(市町村)・中級(市町村の頭2字)・上級(市町

                      はじめてのReactで都道府県を当てるゲームをつくりました
                    • 「エンジニアDB」というサービスを開発しました!【Next.js / Rails / AWS / Terraform / Docker / GitHub Actions】 - Qiita

                      3.インフラ(全体構成)について ここから技術的なことについて話していきます。 まず大前提として、プロジェクトの全体構成は、Happiness Chain の卒業課題の条件に基づいて決めれらていました。これらの条件には以下が含まれます Rails APIモード / Reactで完全SPAのポートフォリオを作る。 本番環境と開発環境にDockerを使う。 本番環境にはECS Fargateを使う。 GitHub Actionsを使ってAWSに自動デプロイする。 Terraformでインフラをコード化する。 なので、これに倣って実装しています。 アーキテクチャの全体像 フロントエンドはVercelにデプロイして、バックエンドはAWSのECSにデプロイしています。 ブランチ運用は、GitHub flowを採用しています。 プルリク時にテストが走り、mainブランチにマージされるとデプロイされる感

                        「エンジニアDB」というサービスを開発しました!【Next.js / Rails / AWS / Terraform / Docker / GitHub Actions】 - Qiita
                      • JS 状態管理ライブラリ探索記 - Introduction

                        これから何回かに分けて、Redux に代表される JS の状態管理ライブラリをいくつか見ていきます。 早速本題に入りたいところですが、その前になぜいくつもライブラリを知っていた方がいいのか、当たり前のように思うことをあえて考えてみる必要があります。 なぜなら、状態管理ライブラリがたくさんあるために、次のような疑問が出てくるからです。 どれでも好きなものを使えば開発がうまくいくのか? 今までうまくいっていたライブラリを使い続ければ今後もうまくいくのか? 選ぶとしても、何を基準に選べば良いのか? 今回は少し立ち止ってこういった疑問について考えてみます。 ではそもそも状態管理とは、一体何のために、何をすることなのでしょうか? 状態管理が目指すもの – 読みやすさの基本定理 状態管理をする目的は様々ですが、最も大切なことはリーダブルコード(読まれて無い方は是非一読を!)の中で「読みやすさの基本定理

                          JS 状態管理ライブラリ探索記 - Introduction
                        • MobX作者による、RecoilとMobXについての簡単なまとめ - console.lealog();

                          http://github.com/facebookexperimental/recoil 先日のReactEuropeで発表されたてホヤホヤの、ExperimentalなReact向けの状態管理ライブラリであるRecoil。 ただAPIとかやりたいことを見てると、「MobXファミリーとの違いってなんぞ・・?」って個人的になってました。 インターネットでも同じような印象を受けた人はいるらしく、なんやろな〜と思っていた矢先。 MobXの作者である `@mwestrate` 氏が、さくっとTweetしてるじゃありませんか! なのでこの記事では、そのTweetを引用して、翻訳+ざっくりまとめをしておきます。 元Tweetはこちら #MobX or @recoiljs? Saw a lot of questions on whether they're the same, so a quick t

                            MobX作者による、RecoilとMobXについての簡単なまとめ - console.lealog();
                          • 風船屋さんを支える技術。200時間でゼロからweb検索システムを構築した裏側のすべて。(Next.js, Firebase...)

                            はじめに こんにちは、フロントエンドエンジニアの多田です。 フロントエンド領域の勉強をはじめて 1 年が経ち、今回個人でゼロからアニプラさん(バルーンショップを経営してる会社)のバルーンサイトの検索システムを作らせていただく機会に恵まれました。 開発にかけられる総時間が 200 時間(つまり工数 1 人月ちょいぐらい、、)というだいぶヤバめなチャレンジングな時間的制約の中、要件定義・デザイン・フロントエンド・バックエンド・インフラ周りまで通して全て 1 人で開発し、完成させることができました。 はじめてfigmaでデザインしてみた アニプラさんより記事を書く許可をいただいたので、開発の裏側の話を記事にまとめます。 開発したサイトはこちら ↓ (今回の記事のメインとなる Next.js で作ったバルーンプラン一覧検索画面) 本記事の内容 (ほぼ)個人開発においての、要件定義 → デザイン →

                              風船屋さんを支える技術。200時間でゼロからweb検索システムを構築した裏側のすべて。(Next.js, Firebase...)
                            • Flutter+Firebaseで課員の勤怠管理アプリを開発した話

                              2023年9月17日追記 内容は結構古くなっています。特にRiverpodはV2から変更が多くあります。 現在はStateNotifierよりNotifierが主流になっていたり、riverpod_generatorを使用したコード生成方式の方がriverpod_lintの恩恵を受けられるのでメリットもあります。 昔話として読んでください。 なぜ開発したのか?? 勤怠管理は恐らく、どこの企業さんでも専用の勤怠管理システムを利用しているのではないかと思います。実際、私が所属している企業でも勤怠管理システムがあり、普段はそれを利用しています。 11月末ごろの話... (部長) { 12月から2ヶ月間、この課だけフレックスタイム制のトライアルが始まります。} (課員の脳内) { まじっ!!?うちの会社が時代に追いつこうとしてる...なんか裏がありそう。} (部長) { あくまでもトライアルなので

                                Flutter+Firebaseで課員の勤怠管理アプリを開発した話
                              • チーム全員がフルスタックになるためのフロントエンド開発Tips - LayerX エンジニアブログ

                                こんにちは!LayerXバクラク事業部エンジニアの加藤 (@tatane616) です。 本記事では、私の所属するバクラク申請・経費精算チームで主に展開しているフロントエンド開発Tipsについて紹介します。 ※本記事は LayerX Tech Advent Calendar 2022 4日目の記事となります。 背景 バクラク申請・経費精算チームでは、以前「半年で3倍以上にスケールしたプロダクトチームを支える文化|tatane|note」で紹介させていただいたように、2022年12月時点で5名のエンジニアがいます。 LayerX では厳密に専門性で業務を縛ることは少ないです。プロダクトチームのエンジニアであれば、フロントエンドもバックエンドも(今後はおそらくアプリも)書きます。 その中には今までバックエンドやモバイルアプリを専門にやってきた方もいますが、上記引用の通り、LayerXの開発では

                                  チーム全員がフルスタックになるためのフロントエンド開発Tips - LayerX エンジニアブログ
                                • 2021年お世話になったReact関連ライブラリ10選 #techtekt Advent Calendar 2021 - techtekt

                                  この記事は techtekt アドベントカレンダー2021 の 12日目の記事です。 こんにちは! テクノロジー本部 エンジニアリング統括部 サービス開発部でエンジニアをしている Yuto SAGAWA です。*1 皆様今年もReactライフを満喫できていますでしょうか? 個人的にはたくさんReactに触れる機会があり、非常に満喫することができました! そんな2021年の個人的にお世話になったReact関連のライブラリ、フレームワーク、ツールなどの紹介をしたいと思います。 next nextjs.org Next.jsはReactのフレームワークで、昨今では使用例も多く人気のフレームワークであることが伺えます。 SSR / SSG だけではなく、ISR(Incremental Static Regeneration)など、 Webアプリケーションのパフォーマンス改善の手助けとなることが期待

                                    2021年お世話になったReact関連ライブラリ10選 #techtekt Advent Calendar 2021 - techtekt
                                  • Electronを使ったPC向け将棋アプリ開発 - Qiita

                                    はじめに 2022 年 1 月から、趣味で PC 向けの将棋アプリを開発しました。その中で取り組んだことや学んだことについて簡単にまとめます。 作ったもの ShogiHome 背景 最近ではスマホやタブレットでも将棋の対局や研究ができるようになりましたが、本格的に将棋の勉強や研究をするには必ずしも十分ではなく、特に将棋 AI を動す上で PC の処理能力やカスタマイズ性は有用です。 2010 年あたりからオープンソースの将棋 AI が増えましたが、その多くは GUI や通信対局機能を備えておらず GUI のアプリケーションと組み合わせて使う必要があります。AI と GUI がやりとりするための USI という共通仕様があり、 USI に対応しているものどうしなら任意の GUI と AI を連携させることが可能です。 USI 対応の GUI は何種類か存在しており、かなり良く作り込まれたアプ

                                      Electronを使ったPC向け将棋アプリ開発 - Qiita
                                    • 【Flutter】個人開発でゲームレビューアプリをリリースした話

                                      個人開発でゲームレビューアプリ「clip-games」 をリリースしました! 今回の記事はサービスの紹介と技術周りの話をまとめたいと思います。 同じように個人開発している人の参考になったり、モチベーションを上げられたりすると嬉しいです! リリースしたサービス ダウンロードはこちら: iOS: Android: 何が出来るの? 自分が遊んだゲームの感想・レビューを残すことが出来ます。 ファミコンからPS5まで、5000本近くのタイトルからあなたが遊んだゲームのレビューを残すことが出来ます。 他の人のレビューやそのゲームの評価も見ることが出来ます。 遊びたいと思ったゲームや気になっているゲームをクリップすることが出来ます。 クリップしたゲームはいつでもプロフィールからすぐに確認できるので、ふとゲームがやりたくなったときにすぐに思い出すことが出来ます。 書いたレビューはSNSでシェアすることが出

                                        【Flutter】個人開発でゲームレビューアプリをリリースした話
                                      • Mirrativ のWebフロントエンドで使っているライブラリを紹介する! - Mirrativ Tech Blog

                                        こんにちは、フロントエンドエンジニア 兼 バックエンドエンジニアの駒木です。 iOS / Android / バックエンドのライブラリ紹介に引き続き、MirrativのWebフロントエンドで使用しているライブラリをご紹介します! JSフレームワーク: React with TypeScript / Vue.js 8割以上のアプリケーションはReact + TypeScriptで実装されていますが、数年前に立ち上げた一部のイベントページはVue.js + Vanilla JSで実装されています。 ビルド・バンドルツール: Vite / Parcel / webpack 2021年5月くらいからViteを利用し始め、以後立ち上げたプロジェクトはViteベースとなっています。 Vite 8割、Parcel + webpackが2割といったところでしょうか。 webpack → Parcel →

                                          Mirrativ のWebフロントエンドで使っているライブラリを紹介する! - Mirrativ Tech Blog
                                        • Flutter を MVVM で実装する

                                          (この記事は 2020/08/28 時点での記事になります。設計のトレンドは日々変わりますので最新のトレンドを確認してください。) はじめにこの記事は Flutter Architecture Blueprints の解説記事です。 今回は Flutter アプリを MVVM で実装する上でどういう形にしていったかを解説していきたいと思います。Android エンジニアにとって脳内変換出来そうなキーワードも使っていきます。 実はアーキテクチャを解説するのはあまり好きではなく、この形が合理的だと言っても、そのエンジニアの経験と趣味思考の違いで話が合わなくなることがあると思っていて、それが押しつけになっていることがあります。なのでこれが完璧だと捉えないでください。私も勉強中の身です。 Flutter Architecture BlueprintsMVVM は Model–View–ViewMo

                                            Flutter を MVVM で実装する
                                          • フロントエンド未経験のSREエンジニアが挑んだ技術選定のリアル体験 - RAKUS Developers Blog | ラクス エンジニアブログ

                                            こんにちは!株式会社ラクスの@kzak_24と申します。 インフラ開発部 SRE課に所属しております。 さて今回は、現在アサインされている新規システムの開発プロジェクトにて、フロントエンドの技術選定を担当した時の経験をまとめようと思います。 フロントエンドは未経験だった為、色々と試行錯誤を行いました。 未経験なりにどのような基準を設けて技術選定を行なったか、皆さまの意思決定の参考になれば幸いです。 目次 SREチームの紹介 前提 チームの背景 検討内容と採用理由 言語 / FW 状態管理 スタイル テスト まとめ 最後に SREチームの紹介 まず始めに、少しだけSREチームについて紹介させてください。 ラクスのSREチームは2021年に発足した比較的新しい組織であり、下記の2つのチームに分かれています。 BP(Business Platform)チーム 社内業務システムの開発/保守/運用を

                                              フロントエンド未経験のSREエンジニアが挑んだ技術選定のリアル体験 - RAKUS Developers Blog | ラクス エンジニアブログ
                                            • SoundCloudみたいなサービスを個人で開発した

                                              サービス概要 タイトル通り、現状はSoundCloudみたいに自分の作った曲を投稿できるサービスです。 現在実装されている機能は以下の通りです。 楽曲投稿 アルバム ランキング メッセージ(DM) フォローとフィード(タイムライン) いいねとブックマーク タグ・キーワードによる検索 このようにとりあえずSoundCloudのような楽曲投稿サービスとしての機能は最低限備えていますが、ゆくゆくはミュージシャンの活動拠点になることを目指しています。というのは、例えばYouTubeへの投稿や各種サブスク配信へのリンク、またライブなどイベントへの参加日程など、活動の実績/予定などがすべて1ページでわかるようにしたいと思っています。 また、ミュージシャン同士の交流/発見の場にしていきたいです。バンドメンバーや演奏を依頼する相手を見つけるのに適した場所はあまりありません(いわゆるメン募サイトは機能不全だ

                                                SoundCloudみたいなサービスを個人で開発した
                                              • Webアプリパターンの歴史 - SST、AJAX、CSR、SSR、SSG、そしてISR - Qiita

                                                はじめに (1/2) Webアプリの動作するパターンをまとめました。歴史を振り返ることで JAMStack といったモダンなスタックがどういった点で有用なのか理解していきましょう。 発表者:@kimizuy 日々スプラのXPをどう上げるかに頭を悩ませています。ブログもあります。 はじめに (2/2) これは2020年9月16日開催のりあクト! TypeScriptで始めるつらくないReact開発 第3版Ⅰ. 言語・環境編 読書会のLT用資料として作成しました。 ※ 続きの会も企画する予定です。どちらかというと初学者〜中級者向けです。興味のある方はお気軽にご参加ください。 SST (1/3) 概要 Server Side Templating の略 基本的にはサーバサイドのフレームワークとテンプレートエンジンの組み合わせ 完成した HTML をクライアントに返すため正確にはサーバサイドレンダ

                                                  Webアプリパターンの歴史 - SST、AJAX、CSR、SSR、SSG、そしてISR - Qiita
                                                • Headless Component開発をはじめよう (Headless UI + React Spectrum)

                                                  はじめに この記事ではライブラリを活用したHeadlessなReact Component開発について紹介します。 Not Headless Component Headless Component の紹介の前にHeadless ComponentではないComponentとはなんでしょうか。 ReactでComponent を作成する際に Material-UIやAnt Designを使ったことがある人も多いのでは多いのではないでしょうか。 これらのライブラリは<Button />や<Menu />といったスタイル付属のReactコンポーネント集になっています。 自前でスタイルを書かずに使えるので便利ではあるのですが以下のような欠点があります。 細かい見た目の調整が難しい。 ライブラリにもよるのですが、細かい調整が難しいものが多いです。 例えばAnt DesignのButtonコンポーネ

                                                    Headless Component開発をはじめよう (Headless UI + React Spectrum)
                                                  • 【Recoil】Reactの状態管理ライブラリ基礎学習 ~リファクタ編~ - RAKUS Developers Blog | ラクス エンジニアブログ

                                                    こんにちは、ラクス入社1年目のkoki_matsuraです。 本日は前回記事の「【Recoil】Reactの状態管理ライブラリ基礎学習 ~第三部~」で作成したToDoアプリのRecoil部分をリファクタするとともにパフォーマンスを上げるためにどうするかについてご紹介させていただきます。 もし、前回の記事を読んでいない方は下記のリンクから読んでいただけると嬉しいです。 tech-blog.rakus.co.jp アジェンダは以下の通りになっています。 Recoilを用いたToDoアプリの問題点 複数人でRecoilを使うときに意図しない状態変更が行われる可能性 無駄な部分まで走る再レンダリング 解決方法 「複数人でRecoilを使うときに意図しない状態変更が行われる可能性」の解決方法 「無駄な部分まで走る再レンダリング」の解決方法 コード修正 TodoStateの修正 Atomの正規化 変更

                                                      【Recoil】Reactの状態管理ライブラリ基礎学習 ~リファクタ編~ - RAKUS Developers Blog | ラクス エンジニアブログ
                                                    • 髪型別コーデ検索におけるSPAの開発 - ZOZO TECH BLOG

                                                      こんにちは、WEAR部の繁谷です。 普段はバックエンドのエンジニアとしてWEARの開発を行っています。 ZOZOテクノロジーズは4月7日に「髪型別コーデ検索」をリリースしました。 プレスリリースは是非こちらを御覧ください。 髪型別コーデ検索のフロントエンドはSPA(Single Page Application)でつくられており、こちらの開発を行った際に意識した設計について紹介します。 はじめに 髪型別コーデ検索は、ZOZO研究所の福岡チームが研究・開発したAIを活用し髪型からコーディネートを検索するAPIを利用して、SPAのWebサービスとして提供しています。 こちらは髪型別コーデ検索のアーキテクチャを簡単に示したものです。 今回私は研究所が提供するAPI以外のエンジニアリングに関する部分である、バックエンドのAPI開発、フロントエンドの開発、それらのインフラ構築を担当しました。 その中

                                                        髪型別コーデ検索におけるSPAの開発 - ZOZO TECH BLOG
                                                      • Webフロントエンドの複雑な状態同士の依存をzustandを使ってリアーキテクチャする - KAKEHASHI Tech Blog

                                                        この記事は秋の技術特集 2024の 7 記事目です。 カケハシのAI在庫管理チームでフロントエンドエンジニアをしているNokogiri です。今回はAI在庫の入庫ダイアログを zustand を使ってリアーキテクチャした事例を元に取り入れたプラクティスを紹介したいと思います。 イントロ AI在庫では、ユーザーの入力を伴うフロントエンド部分で多くのケースに React Hook Form を利用しています。 React Hook Form は、入力フォームの状態管理やバリデーションを簡単に実装でき、パフォーマンスにも優れた素晴らしいライブラリです。 しかし、ユーザーの操作に応じてインタラクティブに変化する UI では、状態管理が複雑化し、コードの可読性が低下することがあります。その結果、バグが発生し、予測しにくい動作を引き起こすことも少なくありません。 そこで今回は、 zustand を導入

                                                          Webフロントエンドの複雑な状態同士の依存をzustandを使ってリアーキテクチャする - KAKEHASHI Tech Blog
                                                        • Next.js(SG) + SWR + Recoil + TypeScript でAPIグルメ検索(自動更新機能付き)

                                                          私はこうして文章を書いていますが、去年書いた文章はすべて不満であり、いま書いている文章も、また来年見れば不満でありましょう。それが進歩の証拠だと思うなら楽天的な話であって、不満のうちに停滞し、不満のうちに退歩することもあるのは、自分の顔が見えない人間の宿命でもあります。自分の文章の好みもさまざまに変化して行きますが、かならずしも悪い好みから良い好みに変化してゆくとも言いきれません。それでもなおかつ現在の自分自身にとって一番納得のゆく文章を書くことが大切なのであります。 ―― 三島由紀夫『文章読本-新装版』 (中公文庫) p.195 制作したもの。 API を用い、グルメ検索ページを作ります。 使用する API は、リクルート社のホットペッパーグルメ グルメサーチ API です[1]。 主な技術構成は、 Next.js / Static Generation SWR[2] Recoil Ty

                                                            Next.js(SG) + SWR + Recoil + TypeScript でAPIグルメ検索(自動更新機能付き)
                                                          • React の状態管理ライブラリ9選

                                                            はじめに 次から次へと登場する状態管理ライブラリですが、それだけ React (に限った話ではないが) において状態管理というのは大きなテーマであり、最も実装難易度の高いトピックの一つでしょう。適切な設計ができないとアプリケーションの規模が大きくなるにつれ負債は増え続けます。 状態管理の難しさをよく表した文章が Redux の公式サイトにあるためお借りしたいと思います。(Redux の公式サイトは読み物としても面白いです) JavaScript のシングルページアプリケーションの要件がますます複雑になるにつれて、コードはこれまで以上に多くの状態を管理する必要があります。この状態には、サーバーのレスポンスやキャッシュされたデータ、まだサーバーに永続化されていないローカルに作成されたデータなどが含まれます。UI の状態も複雑化しており、アクティブなルート、選択されたタブ、スピナー、ページネーシ

                                                              React の状態管理ライブラリ9選
                                                            • 迫り来る絶望的状況からの脱却物語 / #CEDEC2021

                                                              CEDEC2021にて発表した資料になります。 タイトル 弊社クラウドゲーミングサービスにおけるサーバーの割り当てと状態管理方法の実例を徹底紹介! セッション概要 https://cedec.cesa.or.jp/2021/session/detail/s60646bfc23188 …

                                                                迫り来る絶望的状況からの脱却物語 / #CEDEC2021
                                                              • 【Ansible】メンテナンスしやすいPlaybookの書き方 | 電算星組

                                                                Playbookは外部ファイルのインポートや条件分岐やループなどの制御構文が使えるため、プログラミングと同様にソースコード品質管理の考え方を活用できます。 本記事では、筆者がPlaybookを作成する際に、後々メンテナンスしやすいように気を付けていることを紹介します。(もっと良い方法がある場合は、コメントいただけると助かります) インベントリ(Inventory) ターゲットノードにはホスト名とIPアドレスを書く インベントリ(Inventory)には、構成管理対象のノード(以下、ターゲットノード)を記載します。IPアドレス、ホスト名(FQDNも可)どちらの書き方も可能ですが、それぞれ以下の問題があります。 IPアドレス: ターゲットノードが何のサーバなのか分からず可読性が悪い ホスト名: Ansibleを動かすサーバがホスト名を名前解決できる必要がある 上記の問題を解決するため、ターゲッ

                                                                • Flutterに入門して疑問に思ったことと、そのとき調べたこと - くらげになりたい。

                                                                  前々から気になってたFlutter。 Flutter for Webが統合されたっぽいので、そろそろはじめたいなと(´ω`) www.publickey1.jp せっかくなので、 「なにを疑問に思って、なにを参照したか」 をまとめておこうと思ったので、整理してみた(´ω`) 疑問に思ったことを時系列にまとめてます。 注意 初期段階の理解度なので、正しくないこともあります。。 どう理解したかだけを書いていく予定です。 公式ドキュメントとか このあたりをベースに、いろんな記事を調べていく感じ。 Flutter公式ドキュメント: Flutter Documentation - Flutter Flutter公式ドキュメントの日本語訳版: Flutter Guide JP | Flutter Doc JP Dart公式ドキュメントLanguage tour | Dart 公式ドキュメント以外には本

                                                                    Flutterに入門して疑問に思ったことと、そのとき調べたこと - くらげになりたい。
                                                                  • 日経電子版での自作 SSR フレームワーク基盤について — HACK The Nikkei

                                                                    こんにちは、Web チームの井手です。今日は私たち Web チームが作っている SSR フレームワーク(以下 FW)にについて紹介します。 記事を書くモチベーション 私たちのメインプロダクトである日経電子版においては k2 という自作 SSR 基盤を 2020 年から運用しています。SSR FW といえば多くの方が Next.js を想起すると思いますが、私たちは自作しています。一方で最近は Next.js の進化が凄まじく、自作 SSR 勢としても意識せざるを得なくなっています。もしかしたら「あぁ Next.js で作っておけばよかった」と思う時が来るかもしれません。特に k2 を保守する際には Next.js では実現できない機能を実現するために様々な手法や工夫を編み出していましたが、Next.js の進化に伴ってその必要性はだんだん減ってきているのを実感しています。そのためいつか N

                                                                      日経電子版での自作 SSR フレームワーク基盤について — HACK The Nikkei
                                                                    • GraphQL実践ノウハウv2

                                                                      GraphQL実践ノウハウ https://speakerdeck.com/sonatard/graphql-knowhow 宣言的UIの状態管理とアーキテクチャSwiftUIとGraphQLによる実践 https://speakerdeck.com/sonatard/swiftui-grap…

                                                                        GraphQL実践ノウハウv2
                                                                      • エンジニアのがんばりを可視化する社内システムを作った話 - ecbeing labs(イーシービーイング・ラボ)

                                                                        はじめに こんにちは!ecbeing の太田です。新卒 2 年目で、普段は新たな SaaS サービスの開発・保守に携わっております。最近は、ちょっとしたツールやバッチなら片手間で作れるようになって、楽しくエンジニアリングしています! さて今回は、社内向けのシステムを 1 から作った話を紹介したいと思います。 はじめに 作った背景 コンピテンシーとは 既存システムの課題解決のため 制作過程 ユーザーストーリーマッピング システム構成 API フロントエンド フレームワーク BootstrapVue の採用 アトミックデザイン の採用 データ移行 リリース アップデート 週次アップデート リファクタリング 学び すぐ使わないものは作らない 自分で作ったものは愛着が湧く 好きに触れる土台があるのは強い 最後に 作った背景 今回、社内向けのシステムを作るにあたっての背景からまず説明します。 コンピ

                                                                          エンジニアのがんばりを可視化する社内システムを作った話 - ecbeing labs(イーシービーイング・ラボ)
                                                                        • ミラティブ エンジニアチーム四季報(創刊号) - Mirrativ Tech Blog

                                                                          こんにちは Mirrativ CTOの夏です。 現在、ミラティブでは事業部単位でチームや目標を管理しており、エンジニアが所属するチームとして以下の6つがあります。今回はこのうち、エンジニアチームについて、2019年度に行ってきた取り組みの振り返りをしたいと思います。 ライブプラットフォームチーム ユーザの定着を追う マーケ連携チーム ユーザの新規獲得を追う エモモチーム 3Dアバターであるエモモを使った新体験の創出・基礎体験の向上を追う ストリーミング改善チーム モバイル端末でのライブストリーミングの配信・視聴の品質改善を追う インフラチーム クラウド上での安定したインフラ基盤の設計・構築を追う エンジニアチーム お問い合わせ調査、不具合・障害の再発防止、開発体験の向上を追う AI技術部 コミュニティやストリーミングとAI活用の可能性を追う 毎週定例で振り返りを行っており、Confluen

                                                                            ミラティブ エンジニアチーム四季報(創刊号) - Mirrativ Tech Blog
                                                                          • コンポーネントの分類について考えたことをまとめた

                                                                            どのようにコンポーネントを分類していくか 個々のコンポーネントがが単一の責任のみ負っている状態であれば、コードの見通しも良くなる上、後々のメンテナンスも容易です。 まずは「複数の関心ごとを1つにまとめない」という原則(単一責任の原則)から分類の指針を考えていきます。 フロントエンドにおける関心ごとですが、大別すると APIとの接続 View(表示とイベント実行) 状態管理 以上3つに集約されるのではないでしょうか。 では、これらの関心ごとをどの様に切り分けていけば良いのか考えていきます。 APIとの接続 まずはAPIとの通信ですが、こちらはコンポーネントの外で管理した方が良いと考えています。 各コンポーネントに通信に関わる処理がベタ書きされている状態だと、エンドポイントの変更等に弱くなり、通信処理の再利用も面倒です。 それに、「フロントの状態管理 / 表示」と「外部との接続」はそれぞれ別種

                                                                              コンポーネントの分類について考えたことをまとめた
                                                                            • Androidのアーキテクチャガイドから学ぶ、UIの状態管理手法

                                                                              2021年末頃にAndroid公式ドキュメントにある アーキテクチャガイド が大幅にアップデートされました。 今回はその中でも UI Layerについての章 を取り上げて、アプリにおいてUIの状態をどのように管理するのが適切かについてまとめます。 UIとは? そもそも UI とは、TextやButtonのような視覚的に表現される UI Elements に、ユーザーが目にするべきアプリの状態を示す UI State を反映することで構築されています。 状態とイベントの管理 UI Stateはユーザーインタラクションなどのイベントの発生によって、時間と共に変化していきます。 各イベントを適切にハンドリングしつつ、Data Layerから渡ってきたデータを適切な形に変換する必要があります。 これらをUI Elementsで行うことも可能ですが、責務が集中して複雑度が増し、手に負えなくなっていく

                                                                                Androidのアーキテクチャガイドから学ぶ、UIの状態管理手法
                                                                              • iOS 14以降をターゲットにiOSアプリ開発するならどんな構造設計をするか 2021初夏

                                                                                はじめに この記事はiOS 13以降にもSwift Concurrency(つまりasync/awaitやActorなど)が使えるようになると思っていなかったときに書いたものです。 はなしの準備 雑談として「最近はどんなアーキテクチャでiOSアプリ作るの?」という話題があったので整理の文章を書いてみます。 Appleの性質上、2021年7月でもまだ決め手のようなものはないし、私だったらTCAやVIPERを候補にモジュール分割してなるべくDB使わずに作って必要になったらCore Dataを採用すると思います。 それはそれとして、Android BlueprintのREADMEかなにかでGoogleのソフトウェアエンジニアが「チームが生産性を最大化させるアーキテクチャを選べばいい」なんてことを書いてあったのを読んだ記憶があるんですが、それは最もですねと思いつつも、しかしそもそも選択肢がわからな

                                                                                  iOS 14以降をターゲットにiOSアプリ開発するならどんな構造設計をするか 2021初夏