期間: 2015

ドキュメントを読み込むためのコードのリファクタリング

最近の多くのWebサーバーコードは、JSONデータを返すアップストリームサービスと通信し、そのJSONデータを少し変更し、流行のシングルページアプリケーションフレームワークを使用してリッチクライアントWebページに送信します。このようなシステムで作業している人々と話すと、これらのJSONドキュメントを操作するためにどれだけの作業が必要かという不満をよく耳にします。この不満の多くは、読み込み戦略の組み合わせをカプセル化することで回避できます。

マーティン・ファウラー著

2015年12月17日

続きを読む…

記事

リファクタリング

リストとハッシュ

多くのプログラミング環境では、データ構造をリストとハッシュマップの複合体として表現するのが一般的です。ほとんどの主要な言語は、これらのデータ構造の標準バージョンと、特にそれらを操作するためのコレクションパイプラインを含む、豊富な操作を提供するようになりました。これらのデータ構造は非常に柔軟性があり、ほとんどの形式の階層を処理および操作しやすい方法で表現できます。

マーティン・ファウラー著

2015年12月3日

続きを読む…

bliki(ブリキ)

言語機能

進化する出版

私が執筆活動を始めた頃は、技術雑誌の記事を書いていました。今では、記事の長さの作品を書くときは、すべてWeb向けに書かれています。紙の雑誌はまだ存在しますが、縮小する少数派であり、おそらく絶滅する運命にあります。しかし、紙の雑誌が衰退しているにもかかわらず、紙の雑誌の多くの前提は、依然として作家や出版社を支配しています。これは、私のサイトに公開したい記事に取り組んでいる人々との最近の会話で特に話題になりました。

マーティン・ファウラー著

2015年12月3日

続きを読む…

bliki(ブリキ)

ライティング

リーンエンタープライズにおけるエンタープライズアーキテクトの役割

組織がアジャイルマインドセットを採用する場合、エンタープライズアーキテクチャはなくなるわけではありませんが、エンタープライズアーキテクトの役割は変化します。エンタープライズアーキテクトはもはや選択を行うのではなく、他の人が正しい選択を行うのを助け、その情報を発信します。エンタープライズアーキテクトは依然としてビジョンを形成する必要がありますが、その後、チーム間の橋渡しをして学習コミュニティを構築する必要があります。これにより、チームは新しいアプローチを模索し、互いに学び合うことができます。エンタープライズアーキテクトはその成長のパートナーとなります。

適応モデルへのリファクタリング

ソフトウェアロジックのほとんどはプログラミング言語で記述されており、これらはロジックを記述および進化させるための最適な環境を提供します。ただし、そのロジックを、命令型コードが解釈できるデータ構造(適応モデルと呼ぶ)に移動すると便利な場合があります。ここでは、JavaScriptの製品選択ロジックを示し、JSONでエンコードされた単純なプロダクションルールシステムにリファクタリングする方法を示します。このJSONデータにより、異なるプログラミング言語を使用するデバイス間でこの選択ロジックを共有し、これらのデバイスのコードを更新せずにこのロジックを更新できます。

マーティン・ファウラー著

2015年11月19日

続きを読む…

記事

リファクタリング ドメイン特化言語

リモートワークとコロケーションワーク

リモートワークとコロケーションワークの単純な二分法はなく、代わりに、チームの分散にはいくつかのパターンがあり、それぞれに異なるトレードオフと、それぞれに適した効果的な手法があります。決定的な証拠を決定することは不可能ですが、ほとんどのグループは、コロケーション方式で作業する方が生産性が高いと感じています。ただし、分散型作業モデルを使用することで、より生産性の高いチームを構築できます。これは、より幅広い人材プールにアクセスできるためです。

マーティン・ファウラー著

2015年10月19日

続きを読む…

記事

アジャイル 生産性 チーム環境 チーム編成 コラボレーション COVID-19

モジュール依存関係のリファクタリング

プログラムのサイズが大きくなるにつれて、小さな変更を加えるためにすべてを理解する必要がないように、プログラムをモジュールに分割することが重要です。多くの場合、これらのモジュールは異なるチームによって提供され、動的に組み合わせることができます。このリファクタリングエッセイでは、プレゼンテーション-ドメイン-データレイヤリングを使用して小さなプログラムを分割します。次に、これらのモジュール間の依存関係をリファクタリングして、サービスロケーターパターンと依存性注入パターンを導入します。これらは異なる言語に適用されますが、見た目が異なるため、JavaとクラスレスJavaScriptスタイルの両方でこれらのリファクタリングを示します。

マーティン・ファウラー著

2015年10月13日

続きを読む…

記事

リファクタリング API設計 アプリケーションアーキテクチャ

必須インターフェース

必須インターフェースとは、相互作用のクライアントによって定義されるインターフェースであり、サプライヤーコンポーネントがその相互作用で使用できるようにするために何を行う必要があるかを指定します。

マーティン・ファウラー著

2015年10月12日

続きを読む…

bliki(ブリキ)

API設計 オブジェクトコラボレーション設計

ソフトウェアコンポーネント

ソフトウェア開発を、コードを苦労して作成することから、コンポーネントの簡単な組み立てによって強力なシステムを構築することへと変更するという概念は、私がこの職業に就いて以来の目標でした。多くのテクノロジーが産業 재사용のニンジンをつるしてきましたが、それは時々垣間見られるものの、実際には達成されることはありません。

マーティン・ファウラー著

2015年9月13日

続きを読む…

bliki(ブリキ)

チーム編成 カプセル化 アプリケーションアーキテクチャ

プレゼンテーションドメインデータレイヤリング

情報量の多いプログラムをモジュール化する最も一般的な方法の1つは、プレゼンテーション(UI)、ドメインロジック(ビジネスロジックとも呼ばれます)、およびデータアクセスの3つの広範なレイヤーに分割することです。そのため、Webアプリケーションは、HTTPリクエストの処理とHTMLのレンダリングについて知っているWebレイヤー、検証と計算を含むビジネスロジックレイヤー、およびデータベースまたはリモートサービスで永続データを管理する方法を分類するデータアクセスレイヤーに分割されることがよくあります。

マーティン・ファウラー著

2015年8月26日

続きを読む…

bliki(ブリキ)

チーム編成 データベース カプセル化 アプリケーションアーキテクチャ Web開発

アンチパターン

アンドリュー・ケーニッヒは、JOOPの記事で「アンチパターン」という用語を初めて造語しましたが、残念ながらインターネットでは入手できません。重要なアイデア(私が覚えている限り)は、アンチパターンは、始めるときは良いアイデアのように思えるが、トラブルに巻き込まれるということでした。それ以来、この用語は単に悪いアイデアを示すために使用されることがよくありますが、元の焦点の方が有用だと思います。

マーティン・ファウラー著

2015年8月25日

続きを読む…

bliki(ブリキ)

悪いこと ライティング

アライメントマップ

アライメントマップは、進行中の作業とビジネス成果の整合性を視覚化するのに役立つ、組織の情報ラジエーターです。作業は、通常の機能追加、または再構築、技術的負債の返済、ビルドおよびデプロイパイプラインの改善などの技術的な作業である可能性があります。チームメンバーは、アライメントマップを使用して、日々の作業がどのビジネス成果を改善することを目的としているかを理解します。ビジネススポンサーとITスポンサーは、それらを使用して、進行中の作業が彼らが気にかけているビジネス成果にどのように関連しているかを理解します。

スリラム・ナラヤン著

2015年8月18日

続きを読む…

bliki(ブリキ)

チーム編成 プロジェクト計画 コラボレーション

ループとコレクションパイプラインを使用したリファクタリング

ループはコレクションを処理する古典的な方法ですが、プログラミング言語でファーストクラス関数が採用されるにつれて、コレクションパイプラインは魅力的な代替手段となっています。この記事では、一連の小さな例を使用して、ループをコレクションパイプラインにリファクタリングする方法を検討します。

マーティン・ファウラー著

2015年7月14日

続きを読む…

記事

オブジェクトコラボレーション設計 リファクタリング

DevOps文化

アジャイルソフトウェア開発は、要件分析、テスト、開発の間のサイロの一部を打破しました。展開、運用、および保守は、ソフトウェア開発プロセスの残りの部分から同様に分離されている他のアクティビティです。DevOpsムーブメントは、これらのサイロを取り除き、開発と運用のコラボレーションを促進することを目的としています。

ルーアン・ウィルセナッハ著

2015年7月9日

続きを読む…

bliki(ブリキ)

継続的デリバリー アジャイル導入 チーム編成 コラボレーション

マイクロサービストレードオフ

多くの開発チームは、マイクロサービスアーキテクチャスタイルがモノリシックアーキテクチャよりも優れたアプローチであることを発見しました。しかし、他のチームは、それらが生産性を低下させる負担であることを発見しました。どのアーキテクチャスタイルと同様に、マイクロサービスにはコストとメリットがあります。賢明な選択をするには、これらを理解し、特定のコンテキストに適用する必要があります。

マーティン・ファウラー著

2015年7月1日

続きを読む…

記事

マイクロサービス

コレクションパイプライン

コレクションパイプラインとは、コレクションを入力として1つの操作の出力として取得し、次の操作にフィードすることにより構成される一連の操作として計算を編成するプログラミングパターンです。(一般的な操作は、フィルター、マップ、および削減です。)このパターンは関数型プログラミングでは一般的であり、ラムダを持つオブジェクト指向言語でも一般的です。この記事では、パイプラインを形成する方法のいくつかの例を使用してパターンを説明します。これは、パターンに慣れていない人にパターンを紹介するためと、人々がコアコンセプトをより簡単に理解できるようにして、ある言語から別の言語にアイデアをより簡単に取り入れることができるようにするためです。

マーティン・ファウラー著

2015年6月25日

続きを読む…

記事

オブジェクトコラボレーション設計 API設計 Ruby 言語機能

ドクター・フーへのチェリーピッカーガイド

ドクター・フーは長期にわたるテレビシリーズですが、楽しむために多くの時間を費やす必要はありません。優れたスタンドアロンエピソードを簡単に選び出すことができます。

マーティン・ファウラー著

2015年6月19日

続きを読む…

記事

気晴らし

技術者向けTor

Torの仕組みと使用方法の概要です。Torブラウザバンドル、Hidden Services、Tailsについても説明し、Torにまつわる論争についても触れます。

Ola Bini著

2015年6月15日

続きを読む…

記事

プライバシー

モノリスから始めるな

ここ数ヶ月、成功するマイクロサービスアーキテクチャを実現する唯一の方法は、まずモノリスから始めることだという話を繰り返し聞いてきました。Simon Brownの言葉を言い換えれば、適切に構造化されたモノリスを構築できないのであれば、適切に構造化されたマイクロサービスのセットを構築できるとどうして思えるのでしょうか? この議論の最も最近の - そして、いつものように非常に説得力のある - 説明は、まさにこのサイトでMartin Fowlerによって行われました。初期の草稿にコメントする機会があったので、このことについて考える時間がありました。そして、私は考えました。というのも、私は普段彼に同意することが多く、私の意見を共有する他の人たちも彼に同意しているように見えたからです。

私は、モノリスから始めることは通常、まさに間違ったことだと確信しています。

Stefan Tilkov著

2015年6月9日

続きを読む…

記事

マイクロサービス

まずはモノリス

チームがマイクロサービスアーキテクチャを使用しているという話を聞くと、共通のパターンに気づきました。

  1. 成功したマイクロサービスのストーリーは、ほとんどすべて、大きくなりすぎたモノリスを分割することから始まっています。
  2. 最初からマイクロサービスシステムとして構築されたシステムについて聞いたケースは、ほとんどすべて深刻な問題に陥っています。

このパターンから、私の同僚の多くは、アプリケーションが十分に大きくなり、マイクロサービスを使う価値があると確信していても、新しいプロジェクトをマイクロサービスから始めるべきではないと主張しています。

マーティン・ファウラー著

2015年6月3日

続きを読む…

bliki(ブリキ)

進化型設計 マイクロサービス

YAGNI

YAGNIは元々「You Aren't Gonna Need It(必要なものは作らない)」の頭文字をとったものです。エクストリームプログラミングのマントラであり、アジャイルソフトウェアチームで一般的に使用されています。将来ソフトウェアが必要になると推測される機能は、「必要ないから」今は構築すべきではないという考え方です。

マーティン・ファウラー著

2015年5月26日

続きを読む…

bliki(ブリキ)

プロセス理論 プロジェクト計画 進化型設計 プログラミングスタイル

マイクロサービスプレミアム

マイクロサービスアーキテクチャスタイルは、昨年最も話題になったトピックです。最近のO'Reillyソフトウェアアーキテクチャカンファレンスでは、すべてのセッションでマイクロサービスについて語られているようでした。皆の「誇大広告検知器」が作動して点滅するほどでした。この結果、チームはマイクロサービスを導入することに熱心になりすぎて、マイクロサービス自体が複雑さを招くことを認識していないことがわかりました。これは、プロジェクトのコストとリスクにプレミアムを追加するものであり、多くの場合、プロジェクトを深刻な問題に陥れます。

マーティン・ファウラー著

2015年5月13日

続きを読む…

bliki(ブリキ)

マイクロサービス

ベックの設計規則

Kent Beckは、1990年代後半にエクストリームプログラミングを開発していた際に、シンプルデザインの4つのルールを考案しました。私はそれらをこのように表現します。

マーティン・ファウラー著

2015年3月2日

続きを読む…

bliki(ブリキ)

エクストリームプログラミング プログラミングスタイル リファクタリング

外部サービスにアクセスするコードのリファクタリング

外部サービスを扱うコードを書くときは、そのアクセスコードを別のオブジェクトに分離すると便利です。ここでは、凝集したコードをこの分離の共通パターンにリファクタリングする方法を示します。

データレイク

データレイクとは、ビッグデータの世界におけるデータ分析パイプラインの重要なコンポーネントを説明するために、この10年間に出現した用語です。組織内の誰もが分析する必要があるかもしれないすべての生データを単一のストアに格納するという考え方です。一般的には、Hadoopを使用してレイク内のデータを処理しますが、この概念はHadoopだけにとどまりません。

マーティン・ファウラー著

2015年2月5日

続きを読む…

bliki(ブリキ)

データベース データ分析

2014年末時点のmartinfowler.comのステータスレポート

martinfowler.comサイトの運営は、Thoughtworksでの私の仕事の大きな部分を占めています。従来、私たちのメインサイトよりも多くのトラフィックがありましたが、幸いなことに、メインサイトの改善に伴い、それも変わりつつあります。私のサイトは、私たちがPillar 2の活動の一環として業界に影響を与えるための手段です。

マーティン・ファウラー著

2015年1月28日

続きを読む…

記事

ウェブサイト

マイクロサービストーク

新しいアーキテクチャ用語と同様に、マイクロサービスの適切な定義を得ることは困難です。そのため、この講演では、関心を高めるのに役立ったJamesと私の記事に基づいて、その問題に取り組むことから始めます。次に、マイクロサービスとSOAを比較し、アーキテクチャをよりモノリシックなアプローチと比較し、マイクロサービスアプリケーションをデプロイする前に正しく理解しておくべき重要な点の概要を説明します。

マーティン・ファウラー著

2015年1月15日

続き…

ビデオ

マイクロサービス

多様性凡庸性の幻想

私は、人々の集団の多様性を意図的に高めることについての議論によく参加しています。ソフトウェアで最も一般的なケースは、女性の割合を増やすことです。2つの例は、採用とカンファレンスの講演者リストで、女性の割合を通常のレベルよりも高くしようと議論している場合です。多様性の向上を推進することに対する一般的な反論は、基準が低下し、多様だが凡庸な集団が出現するというものです。

マーティン・ファウラー著

2015年1月13日

続きを読む…

bliki(ブリキ)

多様性

準備リファクタリングの例

変更を容易にするために最初にコードをリファクタリングすることで、変更を容易にすることができる方法の簡単な例です。

マーティン・ファウラー著

2015年1月5日

続きを読む…

記事

リファクタリング


すべてのタグ

API設計 · アジャイル · アジャイル導入 · 分析パターン · アプリケーションアーキテクチャ · アプリケーション統合 · 悪いこと · ボードゲーム · ビルドスクリプト · 資格認定 · コラボレーション · コンピュータの歴史 · カンファレンスパネル · カンファレンス · 継続的デリバリー · COVID-19 · データ分析 · データベース · 設計 · 辞書 · 分散コンピューティングマガジン · 雑談 · 多様性 · ドキュメンテーション · ドメイン駆動設計 · ドメイン特化言語 · 家庭 · カプセル化 · エンタープライズアーキテクチャ · 見積もり · イベントアーキテクチャ · 進化型設計 · 経験レポート · 説明アーキテクチャ · エクストリームプログラミング · フロントエンド · ガジェット · 生成AI · IEEEソフトウェア · インフォデック · インターネット文化 · インタビュー · 言語機能 · 言語ワークベンチ · リーン · レガシー改修 · 法律 · メトリクス · マイクロサービス · モバイル · NoSQL · オブジェクトコラボレーション設計 · パーサジェネレータ · 写真 · プラットフォーム · ポッドキャスト · 人気 · プレゼンテーション技術 · プライバシー · プロセス理論 · 生産性 · プログラミング環境 · プログラミングスタイル · プロジェクト計画 · 採用 · リファクタリング · リファクタリング境界 · 要件分析 · Ruby · セキュリティ · 講演ビデオ · チーム環境 · チーム編成 · 技術的負債 · 技術リーダーシップ · テストカテゴリ · テスト · ThoughtWorks · ツール · 旅行 · UML · バージョン管理 · Web開発 · Webサービス · ウェブサイト · ライティング

2024年 · 2023年 · 2022年 · 2021年 · 2020年 · 2019年 · 2018年 · 2017年 · 2016年 · 2015年 · 2014年 · 2013年 · 2012年 · 2011年 · 2010年 · 2009年 · 2008年 · 2007年 · 2006年 · 2005年 · 2004年 · 2003年 · 2002年 · 2001年 · 2000年 · 1999年 · 1998年 · 1997年 · 1996年

すべてのコンテンツ