並び順

ブックマーク数

期間指定

  • から
  • まで

401 - 440 件 / 877件

新着順 人気順

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

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

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

        Next.jsを4年間使用してたどりついた、エンタープライズアプリケーションのフロントエンド開発・構築手法 | POSTD
      • DDDを実践するためのリポジトリ層の設計(Go言語による例)

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

          DDDを実践するためのリポジトリ層の設計(Go言語による例)
        • 研究室のフリーアドレス化でトラブル

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

            研究室のフリーアドレス化でトラブル
          • シン・Kafka / shin-kafka

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

              シン・Kafka / shin-kafka
            • オープンソースらしくソフトウェアを設計する

              This post is also available in the following languages. English, Korean

                オープンソースらしくソフトウェアを設計する
              • 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つの方式による実装- - インプレスブックス
                  • マイナ制度は「なりすまし犯罪の温床」 情報システム学会が「制度設計に根本的な問題」と提言:東京新聞 TOKYO Web

                    トラブルが相次ぐマイナンバー制度について、情報システムの専門家でつくる学会が今月、「制度設計に根本的な問題がある」と指摘する提言をまとめた。政府が目指すマイナンバーカードと健康保険証や運転免許証との一体化などについて、「このまま推進すると国民にとって不利益が大きくなる」と警鐘を鳴らし、見直しを求めた。

                      マイナ制度は「なりすまし犯罪の温床」 情報システム学会が「制度設計に根本的な問題」と提言:東京新聞 TOKYO Web
                    • 「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで

                      2024.05.28 『データモデリングでドメインを駆動する』読書感想会 https://kichijojipm.connpass.com/event/315276/

                        「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで
                      • モダンな開発環境のBtoB SaaSアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools

                        公開日 2024/06/25更新日 2024/07/01モダンな開発環境のBtoB SaaSアーキテクチャ特集 技術選定のポイントと今後の展望 ご好評頂いているアーキテクチャ特集の第三弾となる今回は、BtoB SaaSを提供する企業10社にご協力頂き、技術選定のこだわりや今後の展望をご寄稿いただきました。アーキテクチャを通して、各社の事業特性や設計思想にも触れられる内容となっております。※ご紹介は企業名のアルファベット順となっております 株式会社あしたのチーム あしたのチームは「誰もが "ワクワク" 働ける世界を創る」をビジョンに掲げ、人事評価制度の構築・運用・クラウド化で "人と組織の成長" を支援しています。今回は、2024年4月にリリースされた同社の新サービス:パフォーマンスマネジメントプラットフォーム『Cateras™』のアーキテクチャについてご説明します。 アーキテクチャ選択の背

                          モダンな開発環境のBtoB SaaSアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools
                        • オブジェクト指向で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
                            • 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パターンで永続化とトランザクションを制御する
                                  • 【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
                                      • 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
                                        • Yahoo! 知恵袋フロントエンドをリアーキテクトしている話

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

                                            Yahoo! 知恵袋フロントエンドをリアーキテクトしている話
                                          • goのエラーをスタックトレースも含めて構造化ログで残したい - エムスリーテックブログ

                                            こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 golangでずっと課題に思っていたエラーの処理について試行錯誤してみました。 イオンモール センソックシティは、カンボジアにある商業施設。本文には関係ありません。 エラー処理のベストプラクティスは? ぼくがかんがえるエラー処理の要件 検討したパッケージ 構造化ログ パッケージの検討 pkg/errors cockroachdb/errors goark/errs go-errors/errors go-errors/errors がよさそう? pkg/errors や cockroachdb/errors は使えないのか ラップして使う errors.WithStack(err) と呼びたい slogで使う errors.Join() に対応したい まとめ We are hiring! エラー処理のベス

                                              goのエラーをスタックトレースも含めて構造化ログで残したい - エムスリーテックブログ
                                            • 君たちの知らないAPIデザインパターンの話をしよう

                                              このように、RESTの設計原則に従ってAPIを構築することで、ほとんどのAPI設計は直感的に、かつ問題なく行うことができます。 デザインパターンの紹介 ここからが本題です。大抵の場合、上の例で示したようなAPI設計で十分です。 ただ、複雑な要件では、上のような典型的なAPI設計のみでは良いAPIを設計するための4つの特性を満たせないことがあり、そのような場合のためにデザインパターンが有効です。 カスタムメソッド 概要 カスタムメソッドは、標準的なCRUD操作(作成、読み取り、更新、削除)では対応できない特定の操作が必要になる場合に便利です。例えば、メールの送信や即時の文書翻訳など、通常の create や update メソッドでは処理が難しい操作がこれに該当します。 参考までに、以下にGoogleが出しているカスタムメソッドの記事を示します。 実装例 以下は、カスタムメソッドを扱うAPI

                                                君たちの知らないAPIデザインパターンの話をしよう
                                              • 関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう

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

                                                • ジョインしたチームのマイクロサービスたちを再計装した話 / Getting started tracing instrument micro service with OpenTelemetry

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

                                                    ジョインしたチームのマイクロサービスたちを再計装した話 / Getting started tracing instrument micro service with OpenTelemetry
                                                  • AIによる爆速開発:画面設計からプログラミングまで自動化!? - Qiita

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

                                                      AIによる爆速開発:画面設計からプログラミングまで自動化!? - Qiita
                                                    • 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
                                                              • テストコードを負債化させない上手な付き合い方 / Test Code Management

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

                                                                  テストコードを負債化させない上手な付き合い方 / Test Code Management
                                                                • Screwtape / sqlite-schema-diagram · GitLab

                                                                  GitLab.com

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

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

                                                                      チーム開発の生産性が向上する良いコードの書き方:強いエンジニアになるための思考法 - Qiita
                                                                    • 「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」が見つかる
                                                                      • メール送信者が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
                                                                          • TypeScriptでクリーンアーキテクチャを実践する

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

                                                                              TypeScriptでクリーンアーキテクチャを実践する
                                                                            • 深いドメインと統合型経営プラットフォームを支えるモジュラモノリスの事例 / 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フロントエンド)
                                                                                • CQRS設計パターンをモダナイズする

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

                                                                                    CQRS設計パターンをモダナイズする