並び順

ブックマーク数

期間指定

  • から
  • まで

401 - 440 件 / 740件

新着順 人気順

設計の検索結果401 - 440 件 / 740件

  • 悪いコードから知る変更容易性の真価

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

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

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

        Unit of Workパターンで永続化とトランザクションを制御する
      • 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
          • 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
            • ジョインしたチームのマイクロサービスたちを再計装した話 / Getting started tracing instrument micro service with OpenTelemetry

              OpenTelemetry Meetup の登壇スライドです。 https://opentelemetry.connpass.com/event/296353/

                ジョインしたチームのマイクロサービスたちを再計装した話 / Getting started tracing instrument micro service with OpenTelemetry
              • Yahoo! 知恵袋フロントエンドをリアーキテクトしている話

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

                  Yahoo! 知恵袋フロントエンドをリアーキテクトしている話
                • 関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう

                  ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメインの例とF#のコードで、ビジネスに焦点を当てた、柔軟で高品質なソフトウェアを構築する方法を紹介します。たとえば、F#の型システムを使って複雑なドメインをモデル化し、読みやすいドキュメントにもなるコードを作成します。また、ビジネスルールをエンコードして「コンパイル時ユニットテスト」を作成することで、不正な状態を表現できないようにして潜在的なバグを排除します。関数型プログラミングの核となる原則を適用することで、実世界の要求をエレガントかつ簡潔にモデル化したソフトウェア設計を実現できます。 ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメイン

                  • AIによる爆速開発:画面設計からプログラミングまで自動化!? - Qiita

                    近年、AIの進化によりソフトウェア開発のプロセスが大きく変化しています。これまで手作業で行われてきた画面設計やプログラミング作業も、AIの登場により驚異的なスピードに進化しています。今回は、その中でも私が実際に使っている2つのAIツール、UizardとUI Sketcherについて紹介します。 なお、本記事では医師と患者を繋ぐマッチングサービスという架空のサービスを例に話を進めます。 Uizard: サービス概要からUIデザインを自動生成 Uizardは、画面設計作業を劇的に短縮する革新的なAIツールです。このツールを使えば、サービス概要を入力するだけで、わずか数分で美しく洗練されたUIデザインが生成されます。つまり、開発者は時間をかけてUIデザインを考える必要がなくなり、その時間を他の重要な作業に集中することができます。 Uizardの使い方 メニューから Generate with A

                      AIによる爆速開発:画面設計からプログラミングまで自動化!? - Qiita
                    • サーバーレスアーキテクチャの数理的理解と分析 #devsumi / Developers Summit 2023 Summer

                      Developers Summit 2023 Summer で使用したスライドです。 サーバーレスアーキテクチャは強力ですが、同時に冪等性やトランザクションなど特有の考慮事項が必要であり、高い設計力が求められます。ところで、安全なプログラムを書く上で、静的型付き言語は広く利用されていますね。型はいわば実行前に間違いを検出できる仕組みであり、その背後には「プログラムの正しさ」を厳密な数式で記述し分析する理論が存在します。では、同様に「サーバーレスの正しさ」も厳密な数式で記述することは可能でしょうか?本講演ではAWS Lambdaを用いた設計を例として取り上げながら解説します。 イベント概要:https://event.shoeisha.jp/devsumi/20230727/session/4486/ ブログ記事:https://ccvanishing.hateblo.jp/entry/20

                        サーバーレスアーキテクチャの数理的理解と分析 #devsumi / Developers Summit 2023 Summer
                      • Kafka Streamsで作る10万rpsを支えるイベント駆動マイクロサービス

                        CNDT2023 プレイベント 登壇資料

                          Kafka Streamsで作る10万rpsを支えるイベント駆動マイクロサービス
                        • 『ソフトウェアアーキテクチャの基礎』島田浩二氏が語る、エンジニアが最初に知っておくべきアーキテクチャリテラシー

                          ソフトウェアアーキテクチャはシステムの成功に不可欠な要素であり、ソフトウェア開発者にはこの分野における効果的なスキルが求められる。しかし、その学習資料はまだ十分ではないのが現実である。株式会社えにしテックの代表取締役 島田浩二氏は、ソフトウェアアーキテクチャに関する書籍を多数翻訳している。Developers Summit 2023 Summerに登壇した島田氏は、数々の書籍から学んだソフトウェアアーキテクチャの重要なエッセンスを紹介した。 ソフトウェアアーキテクチャとは? 3つの定義を紹介 島田氏は2009年に株式会社えにしテックを設立。2011年からは一般社団法人日本Rubyの会の理事を務めている。島田氏が翻訳に携わった書籍には、『進化的アーキテクチャ』『ソフトウェアアーキテクチャハードパーツ』、『ソフトウェアアーキテクチャの基礎』『Design It!』(いずれもオライリージャパン)

                            『ソフトウェアアーキテクチャの基礎』島田浩二氏が語る、エンジニアが最初に知っておくべきアーキテクチャリテラシー
                          • 巨大なタスクに圧倒されそうな時は“分割統治”で征服せよ ゴールまで走り続けるために有効な考え方

                            大きな問題も分割すればなんとかなる まつもとゆきひろ氏:次のことわざにいきましょうね。4番目は、これもことわざじゃないと言われちゃうんですが、「分割統治」という言葉です。英語だと「Divide and Conquer」。「分割して征服せよ」という感じです。大きな問題もね、分割すればなんとかなるというやつですね。 (スライドを示して)これは最近見た漫画です。巨大なタスクが存在して、圧倒されそうな気持ちになった時には、タスクを取り上げて細かく分解すると、細かく分解されたタスクは無視しやすいので、タスクは片づかなくても気分は楽になるという漫画なんですけども(笑)、実際、そういうところもあるんですよね。 非常に巨大なことをしろと言われると大変なんだけど、手に負える範囲に分割して1つ1つ話をしていくと問題を解決できるというのは、どこにおいても応用可能な原則だと思います。 クイックソートは一応現時点で

                              巨大なタスクに圧倒されそうな時は“分割統治”で征服せよ ゴールまで走り続けるために有効な考え方
                            • PlayStation Programming with MIPS Assembly and C

                              This course is a deep dive into the world of PlayStation programming! We'll explore the PS1 hardware, understand its sub-components, and learn how to code games using MIPS assembler & the C programming language. We'll also learn how to use a PS1 SDK library paired with a modern development toolchain to be more productive and push fast polygons out of our console. We are about to enter the 5th gene

                                PlayStation Programming with MIPS Assembly and C
                              • 一休.com 宿泊管理システムのフロントエンド設計と改善の変遷 - Developers Blog - 一休.com Developers Blog

                                宿泊の管理システムについて 新しい管理システムについて 開発初期のフロントエンド設計 コンポーネントは4レイヤー方式を採用 UIのコンポーネントライブラリを採用 これ以上の設計、方針は決めなかった 初期ローンチ後の課題 改善した内容 1. コンポーネント設計の見直し ディレクトリ構成の変更 大きくなったコンポーネントの分割 Fragment Colocationを導入してコンポーネントのインターフェースとFragmentを整理 2. 業務処理(composables)の分割 3. 型安全に開発できるように厳しいlint設定に変更 4. 秩序を保てる開発体制、ドキュメントの整備 現在と今後 今後やりたいこと 改善を継続するためのポイント まとめ おわりに 宿泊プロダクト開発部の田中(id:kentana20)です。 このエントリーは一休.com Advent Calendar 2023の14

                                  一休.com 宿泊管理システムのフロントエンド設計と改善の変遷 - Developers Blog - 一休.com Developers Blog
                                • Screwtape / sqlite-schema-diagram · GitLab

                                  GitLab.com

                                    Screwtape / sqlite-schema-diagram · GitLab
                                  • チーム開発の生産性が向上する良いコードの書き方:強いエンジニアになるための思考法 - Qiita

                                    概要 この記事では、エンジニアにとって重要な、 「良いコードとはなにか? どうすれば良いコードが書けるのか?」について、 基礎の考え方から、私なりに頑張ってまとめて記載してみようと思います。 ターゲット 新卒~1年目のエンジニア向けにわかるように、なるべくかみ砕いて説明をしようと思います。 第1章:良いコードとは? まず初めに、良いコードとは何でしょうか? ここでは会社に所属するエンジニアの視点から考えてみましょう。 会社に所属するエンジニアに求められるのは、 利益のあるソフトウェア(ゲーム) を作ることです。 言い換えれば、良いコードとは ソフトウェア(ゲーム)が生み出す利益を最大化するためのコードと言えます。 ここから、推論を進めてみましょう。 ⇒ 良いコードとは? ⇒ ソフトウェア(ゲーム)が生み出す利益を最大化するコード ⇒ 利益を最大化するためには? ⇒ 少ないコスト(時間・人件

                                      チーム開発の生産性が向上する良いコードの書き方:強いエンジニアになるための思考法 - Qiita
                                    • メール送信者がone-click unsubscriptionを実装する方式を検討します - Pepabo Tech Portal

                                      訂正 2024-01-31: 指定するメールヘッダの用法を訂正しました。訂正以前はList-Unsubscribe-Post ヘッダにエンドポイントのURLを記載するとしていました。正しくはList-Unsubscribe ヘッダにエンドポイントのURLを記載します。また、List-Unsubscribe-Post ヘッダには List-Unsubscribe=One-Click と記載します。 はじめに こんにちは、新卒 13th の@donokunです。12 月は SUZURI 事業部に参加して、いちごジャムとたまごペーストがトーストにあうことを学びました。騙されたと思って喫茶店のモーニングで試してください。ジャムが塗ってあるトーストにたまごペーストを上から塗って食べるのです。 この記事ではワンクリックでの配信停止(one-click unsubscription)という E メール送

                                        メール送信者がone-click unsubscriptionを実装する方式を検討します - Pepabo Tech Portal
                                      • ビジネスインパクトのない新機能に費やす時間とコストを低減する|mtx2s

                                        リリースした新機能がビジネス指標に何の影響も与えていない。ユーザーからの評判も芳しくない。いや、そもそも反応すらない無風状態。我々が費やした努力と時間はなんだったのか。 このような失敗は、ソフトウェアプロダクト開発に携わっていると何度でも経験します。むしろ、期待通りの成果を得られることの方が少ないでしょう。 失敗から得られる知見もありますが、それと引き換えに費やしたコストと時間は戻せません。それが繰り返されると、組織全体の士気が落ち、学習性無力感に支配されていきます。ソフトウェアプロダクトは、そのマネジメントにおいて、常にこれらのリスクを抱えています。 本記事では、機能リリースに伴うこのようなリスクを制御する方法について考えます。 期待する成果が得られないことを前提に計画する機能リリースが期待どおりのインパクトをビジネスにもたらすかどうか。それを事前に予測し、世の中に送り出すべきアイデアを

                                          ビジネスインパクトのない新機能に費やす時間とコストを低減する|mtx2s
                                        • テストコードを負債化させない上手な付き合い方 / Test Code Management

                                          XUnit Test Patterns に筆者の経験則を落とし込んでまとめています。 2024/01/25 TechBrew in 東京 〜技術的負債と共に歩むプロダクトの成長〜 の登壇資料です。 https://findy.connpass.com/event/306451/

                                            テストコードを負債化させない上手な付き合い方 / Test Code Management
                                          • 【Terraform🧑‍🚀】tfstateファイルの分割パターンとディレクトリー構成への適用 - 好きな技術を布教したい 😗

                                            この記事から得られる知識 この記事を読むと、以下を "完全に理解" できます✌️ Terraformのtfstateファイルを分割する目的と、オススメの分割パターンについて (★) Terraformのリポジトリやリモートバックエンドのディレクトリ構成の設計について 記事のざっくりした内容は、以下のスライドからキャッチアップできちゃいます! この記事から得られる知識 01. はじめに 02. なぜ tfstate ファイルを分割するのか 分割していない場合 分割している場合 分割しなくていい場合 03. tfstate ファイルの分割 分割の境界 状態の依存関係図 依存関係図とは 依存関係の表現 ▼ 依存関係の表現記法 ▼ 依存関係がない場合 ▼ 依存関係がある場合 04. tfstate ファイルに基づくその他の設計 リポジトリ 🐱 の設計 リポジトリ分割 ディレクトリ 📂 構成 リ

                                              【Terraform🧑‍🚀】tfstateファイルの分割パターンとディレクトリー構成への適用 - 好きな技術を布教したい 😗
                                            • 「DNSに対する最悪の攻撃」 DNSSEC設計の根幹に関わる脆弱性「KeyTrap」が見つかる

                                              「DNSに対する最悪の攻撃」 迅速なパッチ適用を推奨 ATHENEによると、KeyTrapを悪用した場合、単一のDNSパケットが結果的にCPUの使い果たしを誘導し、「Google Public DNS」やCloudflareのDNSなど広く使われているDNS実装やパブリックDNSプロバイダーを全て停止させることが可能だ。発表によると「BIND 9」を16時間ダウンさせたとされている。なお、この欠陥は「CVE-2023-50387」として特定されている。 この攻撃はインターネットの基本的な機能に深刻な影響を与え、世界中のWebクライアントの大部分が利用不能になる可能性がある。主要なDNSベンダーはこの攻撃を「これまでに発見されたDNSに対する最悪の攻撃」と呼んでおり、状況の重大さが指摘されている。 KeyTrapを悪用するサイバー攻撃者は、DNSSECを検証するDNSリゾルバを利用する全ての

                                                「DNSに対する最悪の攻撃」 DNSSEC設計の根幹に関わる脆弱性「KeyTrap」が見つかる
                                              • 深いドメインと統合型経営プラットフォームを支えるモジュラモノリスの事例 / Modular Monolith That Support Deep Domains And Integrated Management Platform

                                                freeeにおけるモジュラモノリスの事例を大規模プロダクトから新規プロダクトまで紹介します。

                                                  深いドメインと統合型経営プラットフォームを支えるモジュラモノリスの事例 / Modular Monolith That Support Deep Domains And Integrated Management Platform
                                                • 続・変更に強いコンポーネント設計の方針と規約(Webフロントエンド)

                                                  ■イベント コンポーネント設計のすゝめ 〜ベストプラクティスを学ぶLunch LT〜 https://findy.connpass.com/event/296449/ ■登壇概要 タイトル:続・変更に強いコンポーネント設計の方針と規約(Webフロントエンド) 登壇者:技術本部 データ戦略部 木田 悠一郎 ■データ戦略部 エンジニア 採用情報 https://media.sansan-engineering.com/data-strategy

                                                    続・変更に強いコンポーネント設計の方針と規約(Webフロントエンド)
                                                  • 入社1ヶ月目でやったこと 〜ソフトウェアテストプロセスに基づいたテストケース作成を行ってみた〜 - ブロッコリーのブログ

                                                    はじめに この記事は10X 創業6周年アドベントカレンダーの15日目の記事になります。 昨日はアプリケーション開発部のjojoさん*1が、「10Xに入社した、そして4ヶ月後…」という記事を公開しています。 本記事では2023年5月に10Xに入社した私が、入社1ヶ月目に実際に行った、ソフトウェアテストプロセス(以下、テストプロセスと表記)に基づいたテストケース作成についてお話しします。 目次 はじめに 目次 テストプロセスに基づいたテストケース作成を行おうとしたきっかけ 前提:プロセスとは何か? プロセスの例 テストプロセスを考えよう 今回定義したテストプロセス テスト分析 テスト対象分析 テスト要求分析 テスト設計技法の選択 テスト設計 テスト実装 記事冒頭の例が分かりづらかった理由 実際に適用した例 レビュー内容 今後の展望 おわりに テストプロセスに基づいたテストケース作成を行おうとし

                                                      入社1ヶ月目でやったこと 〜ソフトウェアテストプロセスに基づいたテストケース作成を行ってみた〜 - ブロッコリーのブログ
                                                    • CQRS設計パターンをモダナイズする

                                                      CQRSとは CQRS(Command Query Responsibility Segregation、コマンド・クエリ責務分離)は、ソフトウェアアーキテクチャパターンの一つで、つまりシステムのコマンド部分をクエリ部分から分離します。基本的な考え方は、データの書き込み操作(コマンド)と読み取り操作(クエリ)を異なるモデルで扱うことです。これにより、スケーラビリティ/パフォーマンス/セキュリティの観点で柔軟な設計が可能となり、クエリ要件に合わせて最適化が実現できます。 CQRSの基本構成としては、 コマンドモデル(書き込みモデル):データの作成、更新、削除といった書き込み操作を担当します。このモデルは、データの整合性と一貫性を確保するために最適化されています。 クエリモデル(読み取りモデル):データの読み取り操作を担当します。このモデルは、クエリのパフォーマンスを最大化するために最適化され

                                                        CQRS設計パターンをモダナイズする
                                                      • Go言語によるクリーンアーキテクチャの実装例紹介

                                                        はじめに CastingONEでバックエンドエンジニアをやっている清水です。 この記事ではクリーンアーキテクチャについて学んだけど具体的にどのように実装すれば良いのかという悩みがあったので実装例をまとめてみた記事になります。 クリーンアーキテクチャで実装されたサンプル実装のうちGitHubのスター数が多いリポジトリをピックアップして、設計内容を紹介していきます。 具体的にどこにどんな実装をするべきなのかも含めて紹介していきます。 処理を一部省略して紹介するため実際の処理内容を確認したい場合はGitHubでご確認お願いします。 クリーンアーキテクチャとは クリーンアーキテクチャは、ソフトウェア設計の原則を適用して、依存性の方向性を逆転させ、ビジネスロジックから詳細(フレームワークやデータベース)を分離するアーキテクチャパターンです。これにより、テストしやすく、メンテナンス性が高く、柔軟性のあ

                                                          Go言語によるクリーンアーキテクチャの実装例紹介
                                                        • TypeScriptでクリーンアーキテクチャを実践する

                                                          概要 本記事は、スクラムを管理するアプリケーションをクリーンアーキテクチャの考え方で実装し、WebからもCLIからも動かせるようにしたという実践を紹介するものです。学習のための個人開発で作成したサンプルアプリケーションの設計と実装を適宜紹介することで、クリーンアーキテクチャに対する理解を深めることが目的です。 モチベーション なぜ現代の開発現場で定着しているクリーンアーキテクチャのアプリを手元で実装してみようと思ったかというと、私自身Webエンジニアとして働く中で、クリーンアーキテクチャの実践例は入出力をWebに限定したものばかりだったからです。 しかし、「詳細に依存せず抽象に依存すること」と唱えるクリーンアーキテクチャにとって、Webはただの詳細です。そこで、入力元、出力先を問わないアプリケーションはどのような書き味になるのか、自分で確かめてみたくなりました。 例えば、「ドメイン層は独立

                                                            TypeScriptでクリーンアーキテクチャを実践する
                                                          • WebアプリケーションにGoの並行処理アーキテクチャを導入してSLOを改善し、WebAPIを100倍速くした話 - スタディサプリ Product Team Blog

                                                            こんにちは。スタディサプリの小中高プロダクト基盤開発グループでProduct Platform Engineer兼テックリードをやっている@tooooooooomyです。 今回は、WebアプリケーションにGoの並行処理機構を導入してSLOを改善し、WebAPIを100倍速くした話をしたいと思います。 前提条件 システムを0から作らない場合、アーキテクチャの改善の際には前提条件が付きものです。そこでまずは今回のシステムの前提条件をお話します。 対象となるシステムと、アーキテクチャ 今回対象とするシステムは、ここでは security-tracker と呼び、Webアプリケーション本体はGoで書かれています。 スタディサプリの各アプリケーションにおけるユーザーのログ1を、Amazon Kinesis Firehoseを通して、リクルート全体のセキュリティチームが管理するS3バケット(スタディサ

                                                              WebアプリケーションにGoの並行処理アーキテクチャを導入してSLOを改善し、WebAPIを100倍速くした話 - スタディサプリ Product Team Blog
                                                            • ミラティブでのアウトゲーム設計の紹介 - Mirrativ Tech Blog

                                                              こんにちは。ミラティブUnityエンジニアの菅谷(tetsujp84)です。 今回はミラティブのライブゲーム開発で行ったアウトゲームの設計について紹介します。 以前アウトゲーム設計に関してXでポストしたらレスポンスをいただけたのでできるだけ丁寧に解説してみました。こんな話も聞きたいよというのがあったら是非教えてください。 よくありそうなソシャゲアウトゲームの設計について今更記事化してるんだけどどれだけ需要あるんだろう。MVPの概念とかクリーンアーキテクチャライクな知識って業界的な浸透率どんなもんなんだ。— 鉄 -TETSU- (@tetsujp84) 2023年8月28日 アウトゲームについて ゲーム開発者にとっては馴染み深いと思いますが、ゲームにはインゲームと呼ばれる部分とアウトゲームと呼ばれる部分に別れます。インゲームはゲーム体験のコアでキャラクターを操作したり、アクションがあったりと

                                                                ミラティブでのアウトゲーム設計の紹介 - Mirrativ Tech Blog
                                                              • グノシーのプッシュ通知基盤を紹介します - Gunosy Tech Blog

                                                                こんにちは, プロダクト開発部の今村です. ここ一年ほど, 主にグノシーのプッシュ通知基盤の部分的なリプレイスや機能追加をしていました. この記事ではプッシュ基盤の構成を紹介したいと思います. 概要 FCMのAPIを呼び出す部分 サーバーのスケーリング 送信対象の読み込み 送信の流れ その他の工夫 重複配信の防止 パフォーマンス調整 おわりに 概要 まずはプッシュ通知の種類を整理します. 今回扱うのは, 多数のユーザーに同じ内容を送るような通知です. 重要なニュースが発生したときに送る速報や, キャンペーン情報の通知などが該当します. 対照的に, ユーザーごとに異なる内容を送る通知もあります. 例えば社内で定時プッシュと呼ばれている機能では, ユーザーごとにパーソナライズされた記事を毎日決まった時間に送ります. このような通知はこの記事では (ほぼ) 扱いません. プッシュ通知基盤に求めら

                                                                  グノシーのプッシュ通知基盤を紹介します - Gunosy Tech Blog
                                                                • 「技術力が高い」という幻覚|zy

                                                                  こんな言葉を聞いたことあるだろうか。 「あの人は技術力が低い」 「あの人は技術力が高い優秀なエンジニアだ」 「あの人は偉いポジションにいるが技術力は低い」 「あの有名な人は,きっと技術力が高いから働いたら色々と学べそうだ」 ある人が言った。 「この会社の従業員は自分より技術力が低い。技術力が高い俺の言うことが正しい」 どうやらその人にとっては設計力含め幅広い技術的な知見を持っていることが技術力らしい。 だが,その人の技術力をプロダクトに適用している姿を見たことがない。その上での主張だった。 主張と行動が相反しているようだが,と尋ねると 「この会社のコードがクソだからだ。」 そして「一から作ればできる」「(業務での)決裁権を与えてくれればできる」 などという反応もあった。 普通に考えれば,ネゴシエーションを取りながらリーダーシップを発揮して進めるべきなのではないか。別にそこに決裁権も何も関係

                                                                    「技術力が高い」という幻覚|zy
                                                                  • Hotwire的な設計を追求して「Web紙芝居」に行き着いた話

                                                                    Kaigi on Rails 2023での「Hotwire的な設計を追求して「Web紙芝居」に行き着いた話」のトーク資料です。

                                                                      Hotwire的な設計を追求して「Web紙芝居」に行き着いた話
                                                                    • 擬人化で完全に理解するクリーンアーキテクチャ

                                                                      PHPカンファレンス関西2024 の発表資料になります

                                                                        擬人化で完全に理解するクリーンアーキテクチャ
                                                                      • 需要がなくならないエンジニアであり続けるために 生涯現役で活躍するために必要な“設計力”の鍛え方【一問一答】

                                                                        江草陽太 大阪府生まれ。ネットワーク、データベース、情報セキュリティのスペシャリスト。 洛星中学・高校のロボット研究部創立メンバー。ロボカップジュニアジャパンなどのロボコンに出場。 その後、大阪大学工学部電気電子情報工学科に進学。NHK大学ロボコンに出場。学生時代より個人事業としてシステム開発を行う。 2014年10月、新卒採用によりさくらインターネットに入社。「さくらのVPS」等のバックエンド開発を担当。IoTプラットフォーム「sakura.io」の開発責任者を担当し、サービス設計と開発を行う。 2016年7月、執行役員に就任。現在は、さくらインターネット全体の技術統括とコーポレートIT、情報セキュリティを担当。宅急便をSlackから発送できるサービスを開始するなど、コーポレートITに関わるDXのサービス化も行っている。 需要がなくならないエンジニアであり続けるために必要なスキルとは何で

                                                                          需要がなくならないエンジニアであり続けるために 生涯現役で活躍するために必要な“設計力”の鍛え方【一問一答】
                                                                        • リアクティブプログラミングについて考える | フューチャー技術ブログ

                                                                          前回のエントリーで、コンポーネント単位のステートをがちゃがちゃ更新していくという、オブジェクト指向型(オブジェクトの境界がコンポーネント)の考え方から、より小さな状態のインタラクションになっていくよ、という話を紹介しました。 ビジネスロジックのアーキテクチャとしては、DDD本には以下の2つが書かれています。 ドメインオブジェクト(オブジェクト指向) トランザクションスクリプト(手続き型) DDD本はご存知のようにドメインオブジェクト押しなのですが、現実にはトランザクションスクリプトもよく使われますね。ただ、リアクティブな設計はこの2つとも違いますね。2つの要素A, Bがあって、Aの処理の結果を受けて処理Bを走らせる場合。だれがこの関連を知っているか、というところが違います。 オブジェクト指向だと、AがBを知っていて、AからBに通知します。「オブザーバーパターン」というのはありますが、あれも

                                                                          • 年収が1000万円以上のエンジニアの求人をまとめてみた - Qiita

                                                                            近年優秀なエンジニアに対して報酬を多く支払う企業が増えてきています。 実際アメリがのAmazonも大幅な賃上げを行い、話題となりました。 日本国内でもエンジニアの年収が高い企業を知りたい!と思っている エンジニアの皆様お待たせいたしました。 年収1000万以上の求人をまとめてみましたので、参考までにご覧ください。 フリービット株式会社 【募集ポジション/年収】 エンジニアリングマネージャー候補:1000万円〜1500万円 【求める人材】 当社の Vision に共感いただき、プロダクトの継続的な成長を支える開発体制を実現するため、エンジニア組織の強化を担っていただける方を募集しています。 組織づくりや人員のマネジメントなどの組織拡大を一緒に担っていただける方を探しています。 【具体的な業務内容】 ・エンジニア組織としての課題発見・解決、及び成長戦略の立案・実行 ・開発チームの体制構築と、そ

                                                                              年収が1000万円以上のエンジニアの求人をまとめてみた - Qiita
                                                                            • レビューで跡形なく直されるのはなぜ - Qiita

                                                                              はじめに 先日こんなツイートを見かけました。 期待値を大きく外してきた成果物に対してどのように対応するかという問題についてのツイートでした。 このツイートのレビュー依頼者は「まずい点」を指摘してもらって修正すれば成果物として成立すると考えているけれど、レビュワーから見ると評価できる点がなくこのままでは成果物として成立させることができないと考えているように読み取れます。 7-8割程度期待値を満たしているものに対してのレビューであれば、レビューによって修正して成果物として成立させることができ、また、考え方を伝えることで次回からの成果物の質も上げられるでしょう。 一方で、期待値を全く満たしていない成果物に対してのレビューは、レビュワー、レビューイともに大きな苦痛を与えます。 懸命に作ったものを跡形なく直されるのは辛いですが、懸命に作ったものを跡形なく直すのも同じぐらい辛いです。 7-8割程度期待

                                                                                レビューで跡形なく直されるのはなぜ - Qiita
                                                                              • マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入

                                                                                LINE株式会社 古田 大志 京都開発室 / 出前館マーチャント部 クーポンサービス チームリード 2023.9.12「モジュラモノリス徹底解剖vol.2〜実践者から学ぶLunch LT〜」の登壇資料です https://findy.connpass.com/event/293748/

                                                                                  マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
                                                                                • 運用コストを低く抑えつつ全文検索機能を実現したい: SQLite3 で全文検索を実現する fts5 、ベクトル検索を実現する sqlite-vss

                                                                                  運用コストを低く抑えつつ全文検索機能を実現したい: SQLite3 で全文検索を実現する fts5 、ベクトル検索を実現する sqlite-vss 2024-02-22 ドキュメント数が 1 万件に満たない状況で全文検索をしたいドキュメントは頻繁に更新はされずに日時の更新で十分オンラインでのインデキシングを考えなくてよいので、バッチで十分みたいな状態でポータビリティが高く運用コストが低い状態で全文検索を実現したいなと調べていたら SQLite3 が良さそうだったというお話。 全文検索を実現する拡張機能: https://www.sqlite.org/fts5.htmlfts5 から relevancy による order by が使えるようになったらしく、version 4 以前は、relevance をチューニングして改善するのは難しそうだなと思った。この拡張機能が作成された経緯としては

                                                                                    運用コストを低く抑えつつ全文検索機能を実現したい: SQLite3 で全文検索を実現する fts5 、ベクトル検索を実現する sqlite-vss