並び順

ブックマーク数

期間指定

  • から
  • まで

361 - 400 件 / 727件

新着順 人気順

設計の検索結果361 - 400 件 / 727件

  • 非同期ジョブをユーザーアクションに組み込まない

    (勤務先に投稿した社内ブログの焼き直しです) ある日同僚から ActiveJob の perform_later で Barbeque にキューした非同期ジョブの起動が遅いと言われた。が、非同期ジョブの使い所について個人的な考えを書いてみることにする。 相談は「非同期ジョブの結果をユーザーに返しているため、高速になって欲しい。現状、最大で数分の時間を要す旨のメッセージを表示している」という内容でした。具体的には {内部 API} が重く、一部の処理を非同期ジョブにしていてユーザー体験の悪化につながっているとのこと。 盲目的に非同期にしても嬉しいことはない 結論としては、非同期にするのであれば丁寧にやれば良いけど、そもそも同期的でよくない? と考えて欲しいと返した。 まず、個人的にはユーザーアクション起因かつユーザーへフィードバックする必要のある処理を非同期ジョブにするのは本当に長時間かかる

    • すべての Web サービス設計者に捧ぐ「RESTful って結局なんなんだ」

      誰もがその戦いの背景にある歴史の深淵と人々の覚悟を見誤っていた。開戦初日に決着が付くと高を括って鼻歌混じりに筆を取った私は、気が付けば夏休みの8割を喪失し、すべての指が腱鞘炎で悲鳴を上げる中で参考文献の海に這いつくばっていた。 —— Josh Nobus —— ぜんぜんわからない 俺たちは雰囲気で REST をやっている 何度調べてもなんだかよく分からない概念ランキングの個人的 Top5 に入る言葉。 それが「REST」だ。 いろんな Web サービスの REST API はよく使わせてもらっているし、REST API が何かと聞かれれば「その Web サービスの機能を HTTP リクエストで呼び出せる API エンドポイントのことだよ」みたいにそれっぽくお茶を濁すことはできると思うが、じゃあ自分で RESTful なサービスを作ってみろと言われたら私は作れない。作れなかった。 だってどん

        すべての Web サービス設計者に捧ぐ「RESTful って結局なんなんだ」
      • DWHにおけるデータモデリングで大事にしている考え方

        こんにちは。データエンジニアリングの支援を行っているstable株式会社の代表の宮﨑(@ikki_mz)です。弊社では、クライアント社内のデータウェアハウス(DWH)におけるデータモデリングをサポート...

          DWHにおけるデータモデリングで大事にしている考え方 
        • ウン十万接続のALB SSL証明書を平和に更新したい - Nature Engineering Blog

          こんにちはSREの黒田です。 これは第2回 Nature Engineering Blog 祭9日目のエントリです。 昨日はCorporate ITのマロニーによる GASを使って社内のSaaSアカウントを可視化しよう - Nature Engineering Blog でした。 昨日に続いて今日のお話も、話題の新製品Remo nanoやMatterとは関係ありません。 TL;DR WebSocketで大量に永続接続されているALBのSSL証明書を更新すると、接続がばっこんばっこん切られて大変なので、ALBを二台用意して緩やかに接続を移行するようにしたら、大変平和になって僕もみんなもハッピーになった。 背景 そもそもNatureではどこに何のためにWebSocketを使ってるの?って話から始めると長いので、詳しくはこちらを見ていただければと思います (結構前の資料なので今とは違う部分も色々

            ウン十万接続のALB SSL証明書を平和に更新したい - Nature Engineering Blog
          • EC2における「管理用VPC」設置の是非について

            こんにちは、SCSKの木澤です。 先日、VPCにおける大きなアップデートが発表されました。 Multi-VPC ENI Attachmentsaws.amazon.com EC2から複数のVPCに対してENIを接続できるようになったよ、という話です。 オンプレミスのネットワーク設計経験者であれば、この話を聞いて「管理用VPCが作れるようになったな」と感じることでしょう。 実際私自身もAWS初心者の頃は管理用のネットワークが構成できないことが気になっていました。 ですが、AWSにおいては安易に管理用VPCを設置すべきではないと考えています。 その理由を下にまとめたいと思います。 オンプレミスネットワーク設計のセオリー オンプレミスにおけるネットワーク設計経験が無い方もいらっしゃると思いますので、丁寧に解説したいと思います。 今回は下図のような一般的なWeb3層のシステムのネットワークを設計す

              EC2における「管理用VPC」設置の是非について
            • 極限環境で最終ビルドを絞るためのフロントエンド設計

              https://3rdpartyjs.connpass.com/event/289558/

                極限環境で最終ビルドを絞るためのフロントエンド設計
              • Four Keysを用いた改善活動のアンチパターンと、本質的な改善のために必要な「なぜ?」 - Agile Journey

                Agile Journeyをご覧のみなさん、はじめまして。株式会社リンクアンドモチベーションの川津(@KawatsuYusuke)です。こちらの記事では主に私たちがFour Keys メトリクスを元に、開発生産性向上を目指した活動に関する話題についてお伝えします。 と言っても、『LeanとDevOpsの科学』をはじめ、Four Keysの運用に関するトピックはすでに多く語られています。また、Four Keysは便利なメトリクスであるがゆえに、ときに「Four Keysを改善する」という手段が目的化してしまうことがあります。本稿では主にこれから開発生産性向上に取り組もうとしている方に向けて、私たちの取り組みと、体験したアンチパターンをもとに、「Four Keys改善の取り組みには "なぜ?" が大事」についてお伝えします。 私たちの開発生産性向上のはじまりと、目指すべき状態の設定 Four

                  Four Keysを用いた改善活動のアンチパターンと、本質的な改善のために必要な「なぜ?」 - Agile Journey
                • 止まらないLinuxシステムを構築する_高信頼性クラスタ入門

                  止まらないLinuxシステムを構築する!高信頼性クラスタ入門 クラウド、オンプレどちらの環境でも障害は不意にやってきます。 そんなときもサービスを継続提供するためのHAクラスタ。 今回は高信頼性を実現するクラスタの考え方の基本から、具体的にLinuxクラスタを設計/構築するコツについて解説します! こんな方にオススメ ・Linux初心者の方 ・Linuxが好きな方 ・高信頼性、高可用性クラスタに興味ある方

                    止まらないLinuxシステムを構築する_高信頼性クラスタ入門
                  • 設計書を書かない設計で開発効率を向上させた話 - Tabelog Tech Blog

                    この記事は 食べログアドベントカレンダー2023 の23日目の記事です🎅🎄 こんにちは。食べログシステム本部 技術部 仕入チームの@shohei-yです。 今回は、新規事業の「食べログ仕入」プロダクト開発において所謂「設計書」を書かない設計に挑戦して開発効率を向上させた話を書きます。 (結局「書くの?書かないの?どっちなんだい!」と感じた人は、ぜひ読み進めてください。) 所属している仕入チームについてはこちらの記事をご覧ください。 目次 なぜ設計書を書かない設計に挑戦したのか 設計書を書かないチーム 設計書を書かないことによる問題 1. チーム協力の課題 2. ソースコードの複雑化 3. チーム変動に関わる問題 設計工程導入のきっかけ 設計書を書かない挑戦の背景 設計書を書かない設計 フロントエンド・バックエンドのインターフェースの明確化 ソースコードのスリム化対策 設計のレビュー方法

                      設計書を書かない設計で開発効率を向上させた話 - Tabelog Tech Blog
                    • 顧客に「要望を聞いて」機能開発してしまっていた過去 解像度を高めて“評価される開発”になるための3つの取り組み

                      顧客に「要望を聞いて」機能開発してしまっていた過去 解像度を高めて“評価される開発”になるための3つの取り組み 新PdM組織での顧客解像度の上げ方 植木氏の自己紹介 植木遼太氏:私からは「新PdM組織で実践した顧客解像度の上げ方」というテーマで発表します。簡単に自己紹介をしてから本題に移らせてください。 私は植木遼太と申します。先ほどの紹介にあったように、今現在は「楽楽精算」のPdMをしています。約2年前に入社しています。キャリアとしては2010年に新卒からインフラエンジニアとしてスタートして、その後、プロジェクトマネージャー、プロダクトマネージャーと役割を変遷させていったかたちのキャリアを歩んできました。 顧客解像度向上のための取り組みBefore/After では本題に移ります。先ほどのテーマにあったように、「顧客解像度の向上って」という話があります。発表の流れとしては、「そもそもこの

                        顧客に「要望を聞いて」機能開発してしまっていた過去 解像度を高めて“評価される開発”になるための3つの取り組み
                      • AWS Transit Gateway を用いて NAT Gateway を集約し、コストを最適化するための経路設計 - サーバーワークスエンジニアブログ

                        マネージドサービス部 佐竹です。 以前 NAT Gateway 集約のためのネットワーク設計においてトラブルを発生させてしまったことがあり、その再発防止のためのブログを記載します。 はじめに 各 VPC ごとに NAT Gateway を構築した場合 NAT Gateway の利用料 AWS Transit Gateway を用いて集約する NAT Gateway 集約と経路設計 Transit Gateway を構築する Transit Gateway Attachment (Type VPC) を各 VPC で作成する 「VPC A」と「VPC C」の Subnet の経路を修正し、 NAT Gateway を削除する 一度ここで経路確認を行ってみる Transit Gateway のルートテーブルに「0.0.0.0/0」を追加する Reachability Analyzer での動作

                          AWS Transit Gateway を用いて NAT Gateway を集約し、コストを最適化するための経路設計 - サーバーワークスエンジニアブログ
                        • チームトポロジーを読んだ感想

                          はじめに 最近、チームってどんな構成にするのがいいんだろうか?と考えたことがあって、参考になる情報がほしかったのでこの本を読んでみた。この本は組織設計について書かれた本で、次のようなことが書かれてる。 どうチームを構成するか? チーム間のコミュニケーション(インタラクション)をどう設計するか? 定義したチーム構成やコミュニケーションの設計をどう変化させていくべきか? チームファースト、コンウェイの法則などの考え方をベースにこういった問いに答えており、具体的な事例も紹介されつつ説明されていたので、わかりやすかった。 個人的に特に知りたかったことが、1つのチーム内で複数のプロダクトを扱うときのアプローチ方法だった。この本はコンウェイの法則推しなので、境界線をみつけてチームを分けた方が良さそうだと思いつつ、よく読んでみると組織のサイズやソフトウェアの規模が小さい場合は、必ずしもこの法則に従わなく

                            チームトポロジーを読んだ感想
                          • TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog

                            Digitization部 Bill One Entry*1グループの秋山です。 はじめに Domain Modeling Made Functionalというスゴ本 補講:Make Illegal States Unrepresentable バックエンドの処理を抽象化する 手続き型プログラミングの典型例 課題1:制約のないエラーハンドリング 課題2:低い可読性 課題3:エラーハンドリングの低い網羅性 Railway Oriented Programming TypeScriptで型安全にエラーハンドリングする ステップ1:サブ関数の出力はResult型で表現する ステップ2:サブ関数にResult型を入力できるようにする ステップ3:サブ関数を連結する ステップ4:網羅的にエラーハンドリングする おわりに 付録 TypeScriptの全文サンプル はじめに エラーハンドリングは重要な処

                              TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog
                            • 「コードがむずかしい」からの脱却

                              コード品質向上のいろは - 先達に学ぶ実践例 Lunch LT https://findy.connpass.com/event/300912/

                                「コードがむずかしい」からの脱却
                              • クラウドネイティブなVPNを構築して運用している話 - Mirrativ Tech Blog

                                インフラストリーミングチームの近藤(@udzura)です。 今日は、ミラティブ社内向けツールの話をします。ミラティブではVPNの仕組みをクラウドをフル活用して自前で構築し、1年ほど運用しています。運用中にいろいろ課題はありつつ、現在かなり安定して動作してます。 今回の記事は、そのVPNの仕組みを紹介します。 既存VPNの課題 災害時に稼働できないリスクを避けたい どこに誰がアクセスできるか楽に管理したい 新しいVPNをハッカソンで開発した話 新VPNの設計思想 災害時でも稼働できる どこに誰がアクセスできるか管理できる 攻撃時の影響を限定する 12時間でインスタンスを停止する クラウドネイティブなVPNである アーキテクチャと技術の説明 WireGuard Google Cloud VPCの各機能 Cloud Functions + Pub/Sub + Slack App API Slac

                                  クラウドネイティブなVPNを構築して運用している話 - Mirrativ Tech Blog
                                • マリオカートのER図について考える - Qiita

                                  さて、 今回はオフィスにて「ER図とは?」を学ぶランチを開催しました🍔 ゲームのDBなんて考えたことが無いので、ER図アウトプットに至るまでを記事に残してあげようと思います。 今回は、リリース時に同僚みんなで遊んでいたスマホゲーム「マリオカート ツアー」を使って マリカーのフレンドランキング画面を出すために必要なDB設計を考えます。 軽いランチなので、事前に参加者が通勤中の電車内で作成できるくらいのボリュームを目指しました。 データベースとは・・・?という初心者メンバーでもイメージしやすいように。 こういうアウトプットは初めてですが、徐々に慣れていきたいです。 【開催概要】 ・参加者:ファッションIT企業のPM、エンジニア、事務・・・などなど ・開催時間:1時間(事前アウトプット作成:20〜30分程度) ・その後:SQLを初心者と書いてみるランチも実施しました。 →BigQueryがSQ

                                    マリオカートのER図について考える - Qiita
                                  • [CEDEC 2023]コーエーテクモ襟川陽一氏へのインタビュー。創業からおよそ半世紀を経て,世界一になる設計図が見えてきた

                                    [CEDEC 2023]コーエーテクモ襟川陽一氏へのインタビュー。創業からおよそ半世紀を経て,世界一になる設計図が見えてきた 編集部:荒井陽介 2023年8月23日から25日まで開催されたゲーム開発者会議のCEDEC 2023で,コーエーテクモホールディングス代表取締役社長の襟川陽一氏が,「シブサワ・コウのゲーム開発」と題した講演を行った。 襟川氏の生い立ちや,光栄(当時)を立ち上げることになったきっかけ,ゲーム開発や経営にかける思いなどが語られた講演の模様はすでにレポートしているが,本稿ではその講演の直後に行った襟川氏へインタビューの模様をお届けしよう。短い時間ではあったが,講演で話された事柄について,さらに詳しく聞いているので,講演のレポートを確認しながら読み進めてほしい。 関連記事 [CEDEC 2023]シブサワ・コウの目標は「もっともっと面白いゲームを作りたい」 クリエイターに「

                                    • 目的を規定せずにモデリングを考えても意味がない - きしだのHatena

                                      オブジェクト指向の本では「自転車をモデリングしてみましょう」「鳥をモデリングしてみましょう」ということが、どういうシステムで使うか規定せずによく書かれています。 けれども、モデリングではどういうシステムで使うかということが大事で、それを決めずにモデリングを考えても意味がありません。モデリングすべきはモノではなくシステムのプロセスです。 よく、オブジェクト指向では現実をモデリングするのようなことが言われますね。 例えば鳥が鳴くとして、その一種であるニワトリをどうモデリングするか、ということを考えるとします。 そうすると、まず void 鳴く() { print("コケコッコー"); } のようなメソッドを考えるのですけど、コケコッコーとうまく鳴けるのは鳴き慣れたニワトリです。そのため、鳴くメソッドにカウンターを用意してどんどんうまくコケコッコーになるようにしたくなります。 いや、そもそも、コ

                                        目的を規定せずにモデリングを考えても意味がない - きしだのHatena
                                      • ドメインや仕様が複雑な開発をうまくすすめるためにやったこと - freee Developers Hub

                                        freee人事労務の開発チームで給与計算関連の機能開発を行っているbanaと申します。最近はポケモンスリープに睡眠を支配されています。 freee人事労務の給与計算チームでは、先日入退社月の日割り計算の機能をリリースしました。この機能開発は自分が経験した中では比較的ドメインや仕様が難しい開発で、学びが多くあったため、プロジェクトを前に進めるためにやったことをこの記事にまとめたいと思います。 1つでも役に立つことがあれば、また、深いドメイン理解が求められるアプリケーション開発の大変さと面白さを少しでも感じていただければ幸いです。 前提 入退社月の日割り計算とは 今回記事で取り上げる内容が伝わりやすくなるよう、簡単に入退社月の日割り計算について説明します。 例えば、給与の締め日が月末(=給与計算期間が月初から月末)の会社に入社するときの基本給について考えます。従業員は月給制とします。 1日に入

                                          ドメインや仕様が複雑な開発をうまくすすめるためにやったこと - freee Developers Hub
                                        • 前工程に参加するだけでは解決しない | ベイジの日報

                                          「企画や戦略の段階から参加できない」 「要件定義に同席させてもらえてない」 「だからアウトプットが適切に作れない」 こうした不満の声は、私が社会人になった20年前からしばしば耳にしていた。これはそれ以前からも存在する「IT業界あるある話」の1つなのだろう。 いわゆる「前工程」「上流工程」に参加できず、仕様を勝手に決められてしまうのは、デザイナーやエンジニアといったクリエイターたちの不満が募りやすいポイントの1つだ。私がデザイナーだった時も、似たような不満を抱いていた時期があった。 ただ、「それは確かに問題だね」と社内で合意が取れたとする。いや、実は合意を取って同席するのは難しくない。なぜならほとんどの関係者は、実際に作る人たちも話に参加してほしい、作り手視点の具体的な意見がほしい、と思っているからである。 なので声をあげれば、いわゆる前工程への参加は割と実現しやすい。しかしそれが実現すると

                                            前工程に参加するだけでは解決しない | ベイジの日報
                                          • 他人がはやく読めるコードを書く ために

                                            2023年8月NE * Linkage合同勉強会セッション

                                              他人がはやく読めるコードを書く ために
                                            • TerraformのStateやModuleに関する設計 - tom-256.log

                                              概要 名前付け 抽象度 インフラアーキテクチャ図 チーム 認証情報 変更(デプロイ)のライフサイクル DRYの誤用 コードの検索性 モジュール間の依存 アプリケーションレイヤーとの違い まとめ 概要 TerraformのStateやModuleに関する設計に関する考慮点をざっくり書く 名前付け ユビキタス言語とディレクトリ名や変数名を合わせて認知不可を下げる リソース名でなく役割・機能ベースのディレクトリ名にして認知不可を下げる プロダクトのコードネームはユビキタス言語なのでディレクトリ名にしても問題ない ModuleやStateのREADME.mdを書く https://github.com/terraform-docs/terraform-docs を使う うまく説明が書けない場合は設計に問題がある可能性がある チームメンバーが利用できるように考慮する いつどのようなときに使えばいいか

                                                TerraformのStateやModuleに関する設計 - tom-256.log
                                              • 失敗知識から学ぶ!クラウドアプリ設計で避けるべき事例とその対策

                                                2023/6/22 AWS Dev Day 2023 Tokyo 登壇資料

                                                  失敗知識から学ぶ!クラウドアプリ設計で避けるべき事例とその対策
                                                • オープンソースらしくソフトウェアを設計する

                                                  こんにちは、出前館のプロダクトを担当しているヨンジェです。私は10余りのオープンソースプロジェクトをディレクションして開発し、チームで新しいソフトウェアを設計するときは、なるべくオープンソースへの移行...

                                                    オープンソースらしくソフトウェアを設計する
                                                  • 研究室のフリーアドレス化でトラブル

                                                    校舎建て替えに当たり個人研究室を廃止し、フリーアドレスの「共同研究室」を設けた大学で、教授らが大学を運営する学校法人を訴える裁判が起こった。原告側は「研究・執務に専念できない」と反発の声を上げた。 日本で初めて、教員や事務職員の執務室をフリーアドレス化した大学校舎を巡り、教授らが大学を運営する学校法人を訴えた。講義に向かうたびに机の上を片付けなければならず、独自の研究や試験の問題作成なども行えないという。原告側は、大学教員には「研究室利用権」があり、被告はそうした環境整備を行う義務を負う、と主張した 今回取り上げる事件は、研究室のフリーアドレス化を巡る裁判だ。トラブルが起こったのは山口県下関市にキャンパスを置く私立大学だ。 問題の「共同研究室」は、校舎老朽化に伴って建て替えられた新校舎に配置されたものだ。大学は著名建築家が代表を務める設計事務所(訴外)と設計契約を締結。また校舎新設に関する

                                                      研究室のフリーアドレス化でトラブル
                                                    • Next.jsを4年間使用してたどりついた、エンタープライズアプリケーションのフロントエンド開発・構築手法 | POSTD

                                                      はじめに 目まぐるしく進化するフロントエンド開発の世界では、常に最新の知識や技術をいち早く取り入れることが、エンタープライズアプリケーションの開発を成功させる上で欠かせません。Tailwind CSS、TypeScript、Turborepo、ESLint、React Queryなどを含む強力なツールキットとNext.jsを4年間使用してきた結果、開発に役立つさまざまな知見やベストプラクティスが得られました。この記事では、大企業向けフロントエンドアプリケーションのパフォーマンス、保守性、拡張性を最大限に高める設計・構築手法を紹介したいと思います。 注記:ここに記載する内容はあくまでも個人的な見解であり、筆者が推奨する手法が必ずしも適さない場合もあります。 効果的なエンタープライズ向けフロントエンドアーキテクチャの基本原則 エンタープライズ規模のアプリケーション向けにフロントエンドソリューシ

                                                        Next.jsを4年間使用してたどりついた、エンタープライズアプリケーションのフロントエンド開発・構築手法 | POSTD
                                                      • シン・Kafka / shin-kafka

                                                        2024/04/10に行われたOCHaCafe Season 8-3「シン・Kafka」で使用したスライドです

                                                          シン・Kafka / shin-kafka
                                                        • DDDを実践するためのリポジトリ層の設計(Go言語による例)

                                                          The Go gopher was designed by Renée French. Illustrations by tottie. はじめに この記事は、ドメイン駆動設計(DDD)の中核概念である「リポジトリ」についての理解を深めることを目的としています。リポジトリの基本的な役割と重要性を確認し、Go言語での実装の例を紹介します。 前提 リレーショナルデータベースからデータを取得(更新)するアプリケーションを想定しています サンプルコードは Go 言語で書かれています リポジトリとは まずは、リポジトリの定義を確認してみましょう。 リポジトリパターンとは: リポジトリは、データベースから取得したデータを構造体にマッピングし、ドメインオブジェクトにアクセスするためのインターフェースを提供します。 これは、一般的なリポジトリの理解と相違ないですね。次に DDDの文脈で、より詳しい定義をみ

                                                            DDDを実践するためのリポジトリ層の設計(Go言語による例)
                                                          • FIDO認証&パスキー総復習(認証の仕組みやパスキー登場までの経緯)

                                                            ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。サービス統括本部ID本部で認証サービスの開発運用を担当している服部です。 パスワードに代わる新たな認証手段としてパスキーが登場し、多くのサービスでも利用ができるようになってきていますが、みなさんはご活用されていますでしょうか。このパスキーとはパスワードに代わる認証情報で、Fast IDentity Online(FIDO)仕様というFIDOアライアンスによって規格策定されている技術をベースとしています。ヤフーでも2018年から「生体認証でログイン」としてFIDO認証に対応し、2023年よりパスキーをつかった認証にも対応しています。 この記事ではこのFIDO認証の技術的な説明から当時の課題と解決方法、そしてその解決方法を

                                                              FIDO認証&パスキー総復習(認証の仕組みやパスキー登場までの経緯)
                                                            • インタプリタの作り方 -言語設計/開発の基本と2つの方式による実装- - インプレスブックス

                                                              5,940円(本体 5,400円+税10%) 品種名書籍 発売日2023/9/26 ページ数776 サイズB5変形判 著者 Robert Nystrom 著/吉川邦夫 訳 ISBN 9784295017875 本書は、言語の開発に興味がある方、プログラミングの知識や技術をさらに磨きたい方、コンピュータの処理系を詳しく知りたい方に最適な書籍です。筆者の豊富なプログラミング経験による解説は、ときに言語の歴史に触れ、ときにコンピュータサイエンスのエッセンスにも言い及ぶもので、たいへん読み応えがあります。言語開発は難易度の高さから敬遠されがちな技術分野ですが、本書ではそれらが、じつはさまざまな要素の集合体であることを紹介し、シンプルな技術の積み重ねとして、楽しんで学べるものとなっています。 目次を見る

                                                                インタプリタの作り方 -言語設計/開発の基本と2つの方式による実装- - インプレスブックス
                                                              • オブジェクト指向でUIを考えられるようになりたい。 - Qiita

                                                                1. 目的 UIデザインを勉強し始めました。現在「オブジェクト指向UIデザイン-使いやすいソフトウェアの原理」を読んでいます。そのため、学習進行の記録と復習を兼ねて、学んだことを記事にしようと思います。 以下「1. オブジェクト指向UIとは何か」という本書のさわり部分についてまとめています。 この記事で載せている例には私が考えたものも含まれていますので、間違い等ありましたらコメントにてご指摘いただけますと幸いです。 2. オブジェクト指向UI(OOUI) UIをオブジェクト(ユーザーが操作する時の対象物)を起点に設計します。GUIももともとオブジェクト指向プログラミングのコンセプトに合わせて考案されました。多くのアプリはオブジェクト指向型のGUIです。 最大の目的は、ユーザーがオブジェクトに対して自由な順序で働きかけながら目的を達成することです。 原則 オブジェクトを知覚でき直接的に働きか

                                                                  オブジェクト指向でUIを考えられるようになりたい。 - Qiita
                                                                • Web API設計時に使われ方の想定を添えると良い。けどより良いやり方を知りたい - valid,invalid

                                                                  先日登壇したイベントにて、仕事で協業したモバイルエンジニアから「Web APIのドキュメントに使われ方の想定が添えられていてありがたかった」とフィードバックをもらった。 具体的にはX post (以下、tweet) に添付した画像のような感じで、Web API (以下、API) が呼び出される画面・タイミングの想定、レスポンスの使われ方の想定などをUIのスクショとともに記述する、というもの。 API設計時にこういう使われ方の想定を添えると認識揃えやすくてありがたい、とモバイルエンジニアに喜ばれました#B43_techtalk pic.twitter.com/XLB3g6fCLZ— ohbarye (@ohbarye) 2023年8月3日 他にもこんなのとか。 APIレスポンスの使われ方の想定を書いているようす このことについて思ったよりもイベント内外で反響があったので書く。 ドキュメントの

                                                                    Web API設計時に使われ方の想定を添えると良い。けどより良いやり方を知りたい - valid,invalid
                                                                  • 開発スピードを維持しながらモブプログラミングを実施した話

                                                                    こんにちは、ユビーでプロダクト開発エンジニアをしている Sosuke Suzuki です。 最近、チームのエンジニア間の連携がいい感じだなーと思ったので、その要因の一つであるモブプログラミングについて、実践したことを紹介します。 はじめに 最近、私の所属するチームでは、データベース、バックエンド、そしてフロントエンドにも大きな変更を加える必要がある、規模の大きなプロジェクトに取り組んでいました(そして、今も同じチームで別の大きなプロジェクトに取り組んでいます!)。 そのプロジェクトの具体的な内容を書くことはできませんが、大雑把に事情を説明します。 数年前に設計されたいくつかのテーブルがあり、それは当時からずっとユビーのビジネスにとって重要でした。しかしそれらのテーブルは、この数年の間に複雑になったビジネス要件には耐えられなくなっていました。 このままではビジネスの機会を毀損することになりま

                                                                      開発スピードを維持しながらモブプログラミングを実施した話
                                                                    • Amazon出禁の高性能すぎる無線操作デバイス「Flipper Zero」でiPhoneを使用不能にする攻撃が発見される、防御方法はBluetoothオフのみ

                                                                      「Flipper Zero」はNFC・Bluetooth・赤外線通信など多種多様な無線通信技術に対応した無線コントロールデバイスで、「テレビリモコンの代わりに使う」「カードキーを複製」といった使い方が可能です。そんなFlipper Zeroを使って「iPhoneにBluetoothペアング要求を連続で送りつけて強制再起動させる」という攻撃が可能であることが判明しました。 This tiny device is sending updated iPhones into a never-ending DoS loop | Ars Technica https://arstechnica.com/security/2023/11/flipper-zero-gadget-that-doses-iphones-takes-once-esoteric-attacks-mainstream/ Flipp

                                                                        Amazon出禁の高性能すぎる無線操作デバイス「Flipper Zero」でiPhoneを使用不能にする攻撃が発見される、防御方法はBluetoothオフのみ
                                                                      • 悪いコードから知る変更容易性の真価

                                                                        TL;DR システム・ソフトウェア製品における品質特性の中でもコードの変更容易性に興味ある人は是非!興味ない人はまたの機会に 👋 「良いコード/悪いコードで学ぶ設計入門」をテーマに、PHP(Laravel)を使用して変更容易性を深掘りします 各トピックごとに「問題のあるコード」例と「改良されたコード」例を提供し、良い設計原則に従う方法を具体的に提示します とても学びのある本ですので、気になった方は是非購入を! はじめに コードは、単に機能を実現するための文字列の集まりではありません。それは、後のメンテナンス、拡張、および改修の基盤となり、製品の品質や開発チームの生産性に直接影響します。悪いコードは、後の段階での修正や追加が難しくなるだけでなく、バグの原因となることが多いです。さらに、新しいメンバーがそのコードを理解する時間が増加します。結果として、プロジェクトの総コストが上昇し、リリース

                                                                          悪いコードから知る変更容易性の真価
                                                                        • Unit of Workパターンで永続化とトランザクションを制御する

                                                                          PHPカンファレンス沖縄2023 Track B での発表資料です。

                                                                            Unit of Workパターンで永続化とトランザクションを制御する
                                                                          • Architecture Decision Record を一年運用してみた - Qiita

                                                                            この記事は、株式会社カオナビ Advent Calendar 2023の2日目です。 カオナビでは2022年9月からArchitecture Decision Record(以下ADR)を導入開始しました。本記事ではADRを導入し実際に一年間運用して見た経過をご報告しつつ、導入のポイントや注意点について紹介します。 ADRをなぜ導入したのか? まずADRについて簡単に説明すると、「アーキテクチャー設計の記録をドキュメントとして残すこと」 です。Michael Nygardのブログ記事が初出のようです。 ソフトウェア開発を行っていく間には、途中で様々な設計決定をする必要があります。例えばウェブアプリケーションであれば、データベースはMySQLにしようとか、キャッシュはRedisを使おうとかという実行環境の決定の話から、実際のプログラムの基本構造といったところまで様々です。 この設計決定は、口

                                                                              Architecture Decision Record を一年運用してみた - Qiita
                                                                            • Yahoo! 知恵袋フロントエンドをリアーキテクトしている話

                                                                              Yahoo! 知恵袋のフロントエンドには26000行を超えるユニットテスト(1つのcontrollerのユニットテスト)や、多くのロジックを含むcontrollerがあります。これらによって追加実装・保守が難しい状況です。この問題を解決するために、リアーキテクトを行いました。以下について主に話そうと思っています。 ・リアーキテクトで取り組んだこと ・リアーキテクトの結果・学び・反省点

                                                                                Yahoo! 知恵袋フロントエンドをリアーキテクトしている話
                                                                              • Simplicity on Rails -- RDB, REST and Ruby

                                                                                Kaigi on Rails 2023の登壇資料です。 https://kaigionrails.org/2023/talks/moro/ 実世界のRailsアプリケーションをシンプルに保つための方法を、Railsが提供する機能群をもとに考察します。 実世界の、特に仕事で開発するRailsアプリへの要求は様々のものがあり、Railsの豊富な機能群をもっても日々苦労して開発しているかと思います。 そんな中でも、Railsが得意とするような設計に落とし込むことで、複雑な要求をシンプルな実装で実現できると感じています。 本講演では、Railsが提供する機能のうち、「RDB」「REST」「Ruby」という要素を軸に、実世界の要求をシンプルに実装するための考え方を紹介します。

                                                                                  Simplicity on Rails -- RDB, REST and Ruby
                                                                                • 【Next.js14】CSR・SSR・SSG・ISRの違いと実装方法 - Qiita

                                                                                  Next.jsでは、レンダリング手法をCSR・SSR・SSG・ISRの中から選ぶことができます。 本記事では、それぞれの特徴に触れつつ、実装方法を紹介します。 CSR (Client Side Rendering) クライアントからのリクエストに対して、サーバーは空のHTMLとJavaScriptを返します。 このJavaScriptがブラウザ上で実行されることにより、実際に表示するHTMlをレンダリングします。 メリット サーバーとの通信が初期遷移時のみに抑えられる ページ遷移が高速 デメリット 初回読み込み時に全てのデータを一括して取得するので、ページが表示されるまでの時間が長い(アプリケーションの規模が大きくなればなるほど、時間が長くなる) JavaScriptはブラウザで実行されているので、ページ表示までの時間(JavaScriptの実行時間)が使用しているマシンスペックに依存して

                                                                                    【Next.js14】CSR・SSR・SSG・ISRの違いと実装方法 - Qiita