タグ

softwareとpatternに関するItisangoのブックマーク (11)

  • 【Next.js】アクセスコントロールパターン

    はじめに Next.js で MPA を構築していると、ページ単位でアクアセスコントロールを行うニーズやケースがよく発生します。 ここでのアクセスコントロールは、ページごとにアクセス可能な条件を定義したり、ルールにそぐわないアクセスを別のページに転送させるなどの処理を意味します。 例えば、一般ユーザ向けのページと、登録済みユーザ向けのマイページを持つケースを考えてみると… 一般ユーザ向けページは誰でもアクセス可能 マイページはログイン済みのユーザのみアクセス可能 ログインのためのサインイン・アップフォームのページも存在するが、ログイン済みであればマイページにリダイレクトされる ただし、パスワードリセットのフォームは誰でもアクセス可能 今回は上記のルールを実装する上での、いくつかのアクセスコントロールパターンを考えます。 個人的には中規模以上のプロジェクトではパターン3をおすすめします。その

    【Next.js】アクセスコントロールパターン
  • 例えば, Singleton を避ける | Born Too Late

    この記事は TDD Advent Calendar jp: 2011 の 14 日目です. 前日: TDD戦略 -TDDを導入し進化させる方法- #TDDAdventJP (@kyon_mm さん) 翌日: TDDに対して思っていること (@gab_km さん) この記事の概要 TDD で開発することで設計上の問題点に気づきやすくなる Singleton はグローバル変数である Singleton の使用はできる限り避けるべきである テスタビリティを意識しよう TDD では, 原則としてユニットテストを書いてから実際のコードを実装します. なので, 自然と「テストのしやすさ (テスタビリティ)」を意識して実装することになります. そして, TDD においては一般的に, テスタビリティを意識することで, 設計が改善されるとされています. オブジェクト指向には難しい概念がたくさん登場します.

    Itisango
    Itisango 2020/11/14
    「テストのしやすさ (テスタビリティ)を意識して」「意識することで, 設計が改善される」処方箋「状態を初期化できるようにする/依存性の注入 (Dependency Injection) の利用/そのクラスは本当に Singleton なのか」 #antiPattern
  • シングルトンパターンの誘惑に負けない | プログラマが知るべき97のこと

    シングルトンパターンの誘惑に負けない著者: Sam Saariste シングルトン(Singleton)パターンは多くの問題の解決に役立つパターンです。このパターンでは、クラスのインスタンスは必ず1つしか生成されません。そのインスタンスは使用前に必ず初期化されます。そしてシングルトンをグローバルアクセスポイントとすることで、設計をシンプルにできます。こう書いていくと良いことずくめのようですが、この「古典的な」デザインパターンに何か短所はあるのでしょうか 実はたくさんあります。それはよく考えてみるとわかります。確かにシングルトンパターンは魅力的なのですが、私の経験では、このパターンには利点よりも弊害の方が多いと言えます。まずテストの妨げになります。そして保守性の点でも不利です。残念ながらその事実は広く知られているとは言えないため、多くのプログラマを窓きつけているのです。つい使いたい誘惑にから

    シングルトンパターンの誘惑に負けない | プログラマが知るべき97のこと
    Itisango
    Itisango 2020/11/14
    「シングルトンへの直接のアクセスは、あらかじめ定めておいたごく少数の箇所からのみ行うようにします。そして他のコードからは、インタフェースを通じてアクセスするのです」 #antiPattern
  • タスク ベースの非同期パターン (TAP): 概要 - .NET

    .NET では、新規開発に推奨される非同期設計パターンは、タスク ベースの非同期パターンです。 それは、非同期操作を表すために使用される、System.Threading.Tasks 名前空間の Task および Task<TResult> 型に基づいています。 名前付け、パラメーター、および戻り値の型 TAP では、非同期操作の開始と終了を表すために単一のメソッドが使用されます。 これは、非同期プログラミング モデル (APM または IAsyncResult) パターンとイベントベースの非同期パターン (EAP) の両方とは対照的です。 APM では、Begin と End メソッドが必要です。 EAP では、Async サフィックスを持つメソッドが必要であり、1 つ以上のイベント、イベント ハンドラー デリゲート型、および EventArg 派生型も必要です。 TAP の非同期メソッ

    タスク ベースの非同期パターン (TAP): 概要 - .NET
    Itisango
    Itisango 2019/08/18
    #dotNET #Async is difficult:“The Task-based Asynchronous Pattern (TAP) is based on the System.Threading.Tasks.Task and System.Threading.Tasks.Task<TResult> types in the System.Threading.Tasks namespace, which are used to represent arbitrary asynchronous operations.”
  • プログラミング言語標準化のパターン

    Programming Language Standardization: Patterns for Participation By Allen Wirfs-Brock のメモ http://wirfs-brock.com/allen/files/papers/standpats-asianplop2016.pdf Page 2 Introduction Page 2 Typically programming languages are initially created by an individual, a small group of designers, or as a project within a busin 最初は小さな形から始まるが、規模がでかくなると関係者も増えていく。 またlegalな理由からstandardsという形を取ることが多い。 Page 2 es. In

    プログラミング言語標準化のパターン
  • Java Design Patterns

    Software design patterns, principles, and snippetsThe best designers will use many design patterns that dovetail and intertwine to produce a greater whole --Erich Gamma Study the design patterns 💡 # IntroductionDesign patterns are the best formalized practices a programmer can use to solve common problems when designing an application or system. Design patterns can speed up the development proces

  • Goで使える10のテクニック | POSTD

    ここでは、私がたどりついた最善のやり方を紹介しましょう。個人的に過去数年にわたって大量のGoコードと付き合ってきた経験から集めたものです。これらは全て非常にスケーラビリティがあると思っています。私が、スケールする、と言うときは次のような意味があります。 アプリケーションが求める環境は、アジャイル環境の中で変化していきます。開発の3、4か月後に、全てをリファクタリングする必要が出てくるなど、考えたくもないはずです。新しい機能は簡単に追加できなくては意味がありません。 あなたのアプリケーションは多くの人々によって開発されます。可読性が高く、維持しやすいものでなくてはなりません。 あなたのアプリケーションは大勢の人々に使われます。バグは容易に特定でき、修正できなくてはなりません。 長期的にみるとこれらのことが重要になる、ということを私は今までに学んできました。小さなことであっても、多数に影響しま

    Goで使える10のテクニック | POSTD
  • ソフトウェア設計手法 : Google グループ

    Itisango
    Itisango 2013/05/14
    #software #development に関する #Google #group 。
  • SQLアンチパターン

    書はDB設計やSQL記述の際に避けるべき事柄を1章で1つ、25個紹介する書籍です。リレーショナルデータベースを中心に据えたシステム開発には、様々な場面で陥りやすい失敗(アンチパターン)があります。書はデータベース論理設計、データベース物理設計、クエリの記述、アプリケーション開発という4つのカテゴリに分け、それぞれの分野におけるアンチパターンを紹介し、失敗を避けるためのより良い方法を紹介します。複数の値を持つ属性や再帰的なツリー構造の格納から、小数値の丸めやNULLの扱いに起因する問題、全文検索やSQLインジェクション、MVCアーキテクチャなど、実践的かつ幅広いトピックを網羅します。日語版では、MySQLのエキスパートとして著名な奥野幹也氏によるアンチパターンを収録。データベースに関わるすべてのエンジニア必携の一冊です。 書への称賛の声 監訳者まえがき はじめに I部 データベース論

    SQLアンチパターン
  • Hillside.net - Online Pattern Catalog

    These sites have indexes of many patterns available online. Pattern Stories Web maintained at UIUC Portland Pattern Repository maintained by Ward Cunningham. Patterns of Interaction This page provides links to the patterns arising out of this project. Ultimately, we would hope for this to build into a resource for designers to draw upon when thinking about the requirements for coo

  • Design Patterns Library

    Welcome to the patterns home page. It is a source for information about all aspects of software patterns and pattern languages. If you are new to patterns, James Coplien and Richard Gabriel have created a succinct pattern definition. Patterns and Pattern Languages are ways to describe best practices, good designs, and capture experience in a way that it is possible for others to reuse this experie

  • 1