並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 586件

新着順 人気順

ValueObjectの検索結果321 - 360 件 / 586件

  • 自炊画像の傾き修正(紙の端走査&反復法編) - Qiita

    要約 紙の端を利用して自炊画像が何度傾いてるか検知できたというお話。 緑色の線が紙の端として検知した直線です。この直線の傾きが画像の傾きそのものです。 最下部にソース(Java)を掲載しています。 【追記】 この記事の手法で検知できるのはスキャン時の「紙の傾き」です。「印刷の傾き」は検知できません。 印刷の傾きを検出するにはもう少し高度な画像処理手法(特徴抽出とか)が必要になると思います。 背景 最近、自炊(本のほう)をはじめました。が、どうも傾きが気になることがあります。スキャナの本体、もしくは読み取りソフトに傾き補正機能がついているのですが、精度がいまいちな気がします。そこで、自分で傾き検知用のプログラムを書いてみたのでメモします。 手順 (1)紙の端を走査 (2)最小二乗法で直線近似 (3)誤差の集計 (4)誤差平均が許容範囲内なら(7)へ (5)誤差の大きい点を除去 (6)(2)に

      自炊画像の傾き修正(紙の端走査&反復法編) - Qiita
    • lt;?php symfonyとフランチョスのスレ ?gt;

      1 :nobodyさん:2006/11/18(土) 08:05:59 ID:??? ■symfony http://www.symfony-project.com/ ■askeet http://www.symfony-project.com/askeet ■The symfony book http://www.symfony-project.com/content/documentationHome.html ■symfonyで作られたサイトはこちら http://www.symfony-project.com/trac/wiki/ApplicationsDevelopedWithSymfony#Japan ver.1まで間近 がんばれフランチョス & ファビエンヌ フュージョンで 開発パワー2倍だ! 2 :nobodyさん:2006/11/18(土) 09:32:09 ID:???

      • DDDをJavaScriptでやってみる PART 1 - Qiita

        はじめに Domein Driven Development (ドメイン駆動設計)はEvansの Domain-Driven Design: Tackling Complexity in the Heart of SoftwareやVernonの実践ドメイン駆動設計で紹介されているように、大規模システムを作るときにとても有効な設計手法です。 これらの本ではJavaのコード例を紹介しています。 一方で、近年Java以外にも様々な言語でバックエンドのシステムは設計されるようになり、JavaScript(node)で書くという企業も増えてきています。 ところが、DDDのコード例は本を見てもネットを見てもJavaScriptのものはほとんどないです。 JavaScriptでAPI作らなきゃいけないけど、DDDは実現したい! っていうときにどうすれば良いの? というときに役立つような実装例をこの記事

          DDDをJavaScriptでやってみる PART 1 - Qiita
        • 「レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡」に参加しました。 - SE(たぶん)の雑感記

          2018/9/26(水)、「レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡」というイベントに参加しました。 ddd-alliance.connpass.com BIGLOBE様の販売システムに対して、ドメイン駆動設計を適用していった実際のお話が聞けるイベントでした。 「ブログ書きます」枠で参加させていただきましたので、イベント内容等について書きます。 ドメイン駆動設計(DDD)とは 私なりの説明ですが。 説明するのは難しいのですが、システムが対象とするドメインに集中するための一連の技法、といえます。 ドメインを正確に表現するために、 開発者とドメインエキスパート間で使うユビキタス言語の作成 ユビキタス言語とソースの用語を一致させる レイヤー化 等の手段が取られます。 上の説明が正しいかどうかわかりませんが、実際は非常に難しいです。 いわゆる「エヴァンズ本」といわれる以下の書籍

            「レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡」に参加しました。 - SE(たぶん)の雑感記
          • 【AI駆動開発】ChatGPTに簡単なトランプゲームを作らせてみた #ChatGPT - クリエーションライン株式会社

            ChatGPTはプログラミングもできるということなので、実際にプログラムを作成させてみましょう。 プログラマーが不要になる世界は、近いうちに来るのでしょうか? TL;DR 指示に従って、それなりのプログラムを書いてくれる。 たまにバグがある。(初級プログラマーと同等程度という印象。) 指示していない機能を勝手に追加してくることもある。 変更指示も、それなりに対応してくれる。 変更を依頼していない箇所まで勝手に変更してくることがある。 以前変更した箇所が元のコードに戻されてしまうことがある。 ゴミコードが残ってしまうことがある。(初級プログラマーと同等程度という印象。) それなりに高度なこともできる。(中級~上級プログラマーと同等程度という印象。) ValueObjectへの変更を指示するだけで、ある程度適切に実現してくれた。 TypeScriptには標準でシャッフル機能がないが、Fishe

              【AI駆動開発】ChatGPTに簡単なトランプゲームを作らせてみた #ChatGPT - クリエーションライン株式会社
            • SIOS Tech. Lab - エンジニアのためになる技術トピックス

              2024-06-24 DomainObjectからValueObjectを自動生成するOSS作ってみた ~ ts-vo-generator~

                SIOS Tech. Lab - エンジニアのためになる技術トピックス
              • DDDを.NETでやるならドメイン層はF#が良いんじゃないか、という話 - Qiita

                動機付け お勉強のために.NETでDDDっぽく開発していたらドメイン層はF#で記述したほうが(C#より)より良いんじゃないかぁと思ったので投稿してみます。とんちんかんなこと書いてたらすいません。 以下、良いところ。 値オブジェクトの作成が便利 値オブジェクトって不変だったり等価性だったり交換可能性がないとダメじゃないですか。 C#でこれを担保しようと思うと値オブジェクトの実装に記載されているValueObjectを継承するかオレオレでEqualsをオーバーライドしないといけないから実装が億劫になるんですよね。 上記リンクに載っているAddressを例にすると public abstract class ValueObject { protected static bool EqualOperator(ValueObject left, ValueObject right) { if (Re

                  DDDを.NETでやるならドメイン層はF#が良いんじゃないか、という話 - Qiita
                • C# 9.0で加わったC# Source Generatorと、それで作ったValueObjectGeneratorの紹介 - Qiita

                  この投稿では、C# 9.0で加わったC# Source Generatorとそれを使って開発したValueObjectGeneratorを紹介します。 コードはこちら! 背景 次のProductクラスは、2つのint型のプロパティProductIdとProductCategoryIdを持っています。 public class Product { public Product(string name, int productId, int productCategoryId) { Name = name; ProductId = productId; ProductCategoryId = productCategoryId; } public string Name { get; } public int ProductId { get; } public int ProductCateg

                    C# 9.0で加わったC# Source Generatorと、それで作ったValueObjectGeneratorの紹介 - Qiita
                  • Scalaのコードレビューサービスを利用してみた話 - Adwaysエンジニアブログ

                    こんにちは、VGMの岡村です。 前回はZIOというScalaライブラリに関する記事でしたが、今回は自分が所属しているアドテクノロジーDiv(以後アドテク)でのソフトウェアコードに対する取り組みとして、がくぞ (@gakuzzzz)さんにScalaコードをレビューしていただいた話をご紹介させていただきます。 導入の経緯・動機 アドテクではScalaを導入してから5年以上経っているのですが、実は「Scalaにすごく詳しい人」は少数のスペシャリストしかいません。 結果、レビューなどチーム内の動きだけでは改善や品質担保に限界がある状態になっており、四半期毎に「棚卸し」と称してScalaのスペシャリストが全てのGitLabマージリクエストをレビューしてフィードバックすることになっています。 また、そのスペシャリストもDDDやドメインモデリングについてはさほど詳しくなく、現在まで模索を続けている状態で

                      Scalaのコードレビューサービスを利用してみた話 - Adwaysエンジニアブログ
                    • Unity3dのC#でGenericな演算子を定義するプラクティス - diary

                      2014-12-15 Unity3dのC#でGenericな演算子を定義するプラクティス 概要 C#でValueObject量産していると、単純なオブジェクトは比較可能にしたい気分になることがままある。 しかし、C#では型パラメータを持つGenericなoperatorは素直に定義出来ない。 Unity3dにおいてはiOS環境でのAOTの相性&Monoのバージョン上dynamicも式木もロクに使えない。*1 ので、Curiously Recurring Template Patternを使って"比較可能な物体を内包するオブジェクト"のoperatorを気持ちで実装していこうというお話。 ちなみに結構使う機会があるわりにCuriously Recurring Template Patternという名前自体はこの前星一に聞いて初めて知ったので、今まで"あの気持ち悪い再帰的なアレ"みたいな謎の言

                      • スレッドセーフにするべきクラスについて - OKWAVE

                        Servletにメンバ変数を持たせる という発想自体やらない方がいいわ。 別に悪ではないけど。 極論を言うを、 ValueObject以外、すべてのクラスはメンバ変数を持たない でスレッドセーフを保てるわ。 それといまさら気づいたんだけど あなたは「スレッドセーフなクラス」に焦点を当てているようね。 スレッドセーフはクラスではなく、 全体の構造で考えるべきだわ。 つまり、すべての層でスレッドセーフが保てていて、 初めてそのスレッド(アクセスとかアクションとかServletリクエストとか表現はなんでも)は スレッドセーフであるといえるわ。 >(例えばexecuteの戻り値にEntityを返却するように変更するなど) そうね。 でもそもそもServletのメンバ変数にするほうが問題なんだけど。 >public DataBaseAccessor extends Thread { DataBase

                          スレッドセーフにするべきクラスについて - OKWAVE
                        • 続:金融アプリサンプルでよちよちDDDを学ぶ - 勘と経験と読経

                          オンライントレードのサンプルシステムでDDDを学ぶという海外ブログ記事を読みながら、よちよち学習する話の続き。今回も参考情報をなぞっているだけなので、あまり役に立つ記事にはなっていない。 前回記事はこちら。 金融アプリサンプルでよちよちDDDを学ぶ - 勘と経験と読経 説明記事をまず丁寧に読んでみる https://archfirst.org/domain-driven-design/ 元ネタ記事では システム構成の概略 ユビキタス言語について ドメインモデルについて コンテキスト境界について コマンドクエリ分離原則(CQS)について 階層化アーキテクチャについて ドメイン層について まとめ という構成になっている。 とりあえず、記事を読んでみた。 システム構成の概略 https://archfirst.org/domain-driven-design/ システム構成はこんな感じ。 複数チ

                            続:金融アプリサンプルでよちよちDDDを学ぶ - 勘と経験と読経
                          • 社内で「良いコード/悪いコード」の輪読会を開催した話

                            こんにちは! koideです。 シェルフィーではチーム内の有志で輪読会を定期開催しており、今回は「良いコード/悪いコード」を読みました。 実際に開発したときに輪読会が役立ったエピソード 輪読会前後に担っていたIssueが外部サービスとの連携バッチのコード改善でした。 弊社にはDDDを取り入れたリポジトリがいくつかあり今回もその内のひとつでしたが、私はこの本を読むまではDDDが雰囲気でしか分かってなかったので、初めは理解するのが大変でした。 例えば、DDDの中でも「値オブジェクト(ValueObject)」といった概念がありますが、最初はこのクラスがある意味をちゃんと理解するのに苦労しました... 本書では値オブジェクトは以下のように説明されています。 値オブジェクト(Value Object)とは、値をクラス(型)として表現する設計パターンです。アプリケーションでは金額、日付、注文数、電話

                              社内で「良いコード/悪いコード」の輪読会を開催した話
                            • Flutter製の個人開発アプリ「禁欲サポーター」の技術的まとめ - TetsuFeの個人開発ブログ

                              はじめに 8月にFlutter製の個人開発アプリ「禁欲サポーター」をリリースしました。今回はそこで使った技術についてのまとめです。Flutterで個人開発がしたいと考えている人の参考になれば嬉しいです。 はじめに 1. 禁欲サポーターについて 「オ○禁」を選んだ真面目な理由 2. 使用した言語・フレームワーク等 dart-defineの活用 3. アーキテクチャ パッケージ分割(ディレクトリ構成) 4. テストコード 5. 静的解析 6. CI/CD 7. その他 最後に おまけ:FIrebase以外で使用したライブラリ flutter_riverpod esys_flutter_share freezed sqflite shared_preferences flutter_launcher_icons rxdart flutter_cupertino_date_picker flutt

                                Flutter製の個人開発アプリ「禁欲サポーター」の技術的まとめ - TetsuFeの個人開発ブログ
                              • Thymeleafでセレクトボックスを使う - Qiita

                                セレクトボックス <select> の生成 Thymeleafでは繰り返し出力をする要素に対して th:each 属性を記載します。 JSTLのforeachとは異なり、繰り返し出力を行う要素を別のタグで囲うのではなく、繰り返し出力をする要素そのものに記載しますので、HTMLのインデントで悩むことはありません。 実装例 <div class="col-md-3"> <select id="jobId" name="jobId"> <option th:each="job : ${jobList}" th:value="${job.id}" th:selected="${job.id == id}" th:inline="text">[[${job.name}]]</option> </select> </div> この例では、jobList は java.util.List型で、この中身の

                                  Thymeleafでセレクトボックスを使う - Qiita
                                • リフレクションでオブジェクトのDeep Copy - The dawn of modern programmers

                                  制約はあるけど簡単なValueObjectであればこれでDeepcopyできたり。 使いすぎるとパフォーマンスに影響出ますね。 using System; using System.Reflection; namespace HogeHoge { public class CloneGenerator { public static T Clone<T>(T target) where T: new() { T clone = new T(); FieldInfo[] fields = target.GetType().GetFields( BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); foreach (FieldInfo field in fields) { field.SetValue(cl

                                    リフレクションでオブジェクトのDeep Copy - The dawn of modern programmers
                                  • SIOS Tech. Lab - エンジニアのためになる技術トピックス

                                    2024-06-24 DomainObjectからValueObjectを自動生成するOSS作ってみた ~ ts-vo-generator~

                                      SIOS Tech. Lab - エンジニアのためになる技術トピックス
                                    • SIOS Tech. Lab - エンジニアのためになる技術トピックス

                                      2024-06-24 DomainObjectからValueObjectを自動生成するOSS作ってみた ~ ts-vo-generator~

                                        SIOS Tech. Lab - エンジニアのためになる技術トピックス
                                      • PureMVCの表現領域であるView層について記述していきます

                                        PureMVCの表現領域であるView層について記述していきます。 この層で利用されるクラスは以下の通りです。 ・ MXML ・ Mediatorクラス これらについても概要は既に述べていますので、 サンプルを見てみましょう。 まずはMXMLファイルからです。 このMXMLファイルは先に記述したMXMLファイルの中ではなく、 Viewコンポーネントとして作成したMXMLファイルです。 先に記述されたMXMLファイルの解説の中の⑤にあたります。 「CalclationPanel.mxml」 <?xml version="1.0" encoding="utf-8"?> <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml"       ・・・・・・・・・・・・・・・・・・・・・・・・・・・・① layout="vertical" width="4

                                        • Layered Design for Ruby on Rails Applications を読んだ時のメモ用

                                          Layered Design for Ruby on Rails Applications 気になっていたので読んでみる。 zennのスクラップを使ってみたかった && 気になった箇所とか軽くメモしたり、感想を書いてみようかなと思った。 Chapter1: Rails as a Web Application Framework 概要 この章はRailsが用意してくれてる抽象化についての説明。 Railsがwebリクエストを処理するときの抽象化レイヤー バックグラウンド処理の抽象化レイヤー データベース周りの抽象化レイヤー の大枠3つ 気になったことメモ & 感想 trace_location (https://github.com/yhirano55/trace_location) のgem使ってみたい。 # こんな感じで特定の処理をtraceしてくれるっぽい TraceLocation

                                            Layered Design for Ruby on Rails Applications を読んだ時のメモ用
                                          • SIOS Tech. Lab - エンジニアのためになる技術トピックス

                                            2024-06-24 DomainObjectからValueObjectを自動生成するOSS作ってみた ~ ts-vo-generator~

                                              SIOS Tech. Lab - エンジニアのためになる技術トピックス
                                            • C# Free Code - Download Microsoft Spain - Domain Oriented N-Layered .NET 4.0 Sample App

                                              Download Microsoft Spain - Domain Oriented N-Layered .NET 4.0 Sample App DescriptionLocal initiative driven by Microsoft - Spain IconsSource FilesThe download file microsoftnlayerapp.zip has the following entries. BuildProcessTemplates/DefaultTemplate.11.1.xaml BuildProcessTemplates/DefaultTemplate.xaml BuildProcessTemplates/LabDefaultTemplate.11.xaml BuildProcessTemplates/UpgradeTemplate.xaml NLa

                                              • https://longliveruby.com/articles/rails-value-object-design-pattern

                                                  https://longliveruby.com/articles/rails-value-object-design-pattern
                                                • 軽量DDDでもやったほうがいい理由、けどやらない理由 - Qiita

                                                  記事のターゲット DDD(ドメイン駆動設計)に興味がある人 DDD系の本読んだけど掴み所がないなと思った人 戦術的DDD(軽量DDD)を取り入れようとしている人 戦術的DDD(軽量DDD)とは ドメイン駆動設計の文脈で語られる技術的要素のみを取り入れる設計手法です Google検索などで引っかかる情報の多くは技術的要素の内容です (過去記事でも部分的にまとめていますので興味があれば是非) レイヤードアーキテクチャの視点 ValueObjectという考え方 Serviceクラスの意義と勘所 「技術的要素のみ?DDDってそういうものじゃないの?」と思ったかも知れません DDDの本質は問題解決のための手法なので、技術的要素はその一つでしかないのです 完璧じゃなくても軽量だけでもいい DDDに関わらず、プログラミング含めたテクノロジーも問題解決のツールの一つです そのツールが万能になるとき、問題は

                                                    軽量DDDでもやったほうがいい理由、けどやらない理由 - Qiita
                                                  • PofEAA's Wiki - ページ一覧

                                                    : 2007-11-19 (月) 16:12:51 20040228: 2009-10-11 (日) 17:15:27 AboutReadingPofEAA: 2004-03-16 (火) 18:13:36 ActiveRecord: 2007-05-16 (水) 17:40:54 ApplicationController: 2005-08-09 (火) 15:40:44 AssociationTableMapping: 2005-05-23 (月) 18:19:11 BBS: 2009-04-21 (火) 11:19:39 CatalogOfPofEAA: 2005-04-03 (日) 23:26:06 ClassTableInheritance: 2005-06-04 (土) 23:18:58 ClientSessionState: 2005-11-15 (火) 17:26:35 C

                                                    • Evans本を読んで学ぶ、本当のドメイン駆動設計 - Qiita

                                                      Help us understand the problem. What is going on with this article? はじめに ドメイン駆動設計を理解するためにEvans本を読了したのですが、 多くの方に本当のDDDを知って頂きたいと思い、要点を翻訳してみました。 『Domain-Driven Design Tackling Complexity in the Heart of Software - Eric Evans』 (注意: このような括弧書きの説明は私の意見を意味し、翻訳ではありません) Index FOREWORD PREFACE I. Putting the Domain Model to Work Chap.1 Crunching Knowledge Ingredients of Effective Modeling Chap.2 Communicatio

                                                        Evans本を読んで学ぶ、本当のドメイン駆動設計 - Qiita
                                                      • 51b1b6997fd3f980076b8081f7f1165ccc2a4008 - platform/libcore.git - Git at Google

                                                        Initial import of OpenJdk files. Create new libcore/ojluni directory with src/main/java and src/main/native subdirectiories. Build ojluni into core-oj jar. Use openjdk classes from java.awt.font package. Copy all files from jdk/src/share/classes and jdk/src/solaris/classes directories in openjdk into libcore/ojluni/src/main/java. Copy following native files from openjdk to libcore/ojluni/src/main/

                                                        • Python3.7でCrean Architectureを実現する - Qiita

                                                          先日あるプロジェクトで、python 3.7を利用したクリーンアーキテクチャの設計を行いました。 その時に得た知見を紹介したいと思います。 基本的に、この記事ではDDDに関しての説明はこの連載を参考していきます。 Domainモデル ValueObject 参考記事によるとValueObjectでは、次の6つの要素を持つものである、と定義されています。 No 値オブジェクトの特徴 説明

                                                            Python3.7でCrean Architectureを実現する - Qiita
                                                          • Code Smell

                                                            A code smell is a hint that something has gone wrong somewhere in your code. Use the smell to track down the problem. KentBeck (with inspiration from the nose of MassimoArnoldi) seems to have coined the phrase in the "OnceAndOnlyOnce" page, where he also said that code "wants to be simple". Bad Smells in Code was an essay by KentBeck and MartinFowler, published as Chapter 3 of RefactoringImproving

                                                            • SQL Maps

                                                              Data Mapper (a.k.a SQL Maps) Version 2.0 Developer Guide August 9, 2006 Developer Guide iBATIS Data Mapper 2.0 Table of Contents Introduction.......................................................................................................................................................3 Data Mapper...............................................................................................

                                                              • DDDをJavaScriptでやってみる PART2 - Qiita

                                                                前回のおさらい + 今回の内容 前回、エンティティと値オブジェクトをJavaScriptでどう実装していくかを説明しました。 引き続き今回はDDDで登場するドメインサービス、リポジトリ、ファクトリーについてみていきます。 そして、それぞれどのように実装していくかを説明します。 目次 PART1 ドメインモデルの実装方法(前記事) DDDとは何かをざっくり知り、ドメインモデルとドメインオブジェクトを知る。 ValueObject Entity PART2 ドメインサービス、リポジトリ、ファクトリーの実装方法(本記事) Domain Service Repository Factory PART3 集約の実装方法(次回記事で書きます) 集約とは 集約の実装方法 ドメインサービス ドメインサービスとはドメインモデルの振る舞いのうち、エンティティと値オブジェクトで表現しきれない範囲の振る舞いを表現

                                                                  DDDをJavaScriptでやってみる PART2 - Qiita
                                                                • 「PHPで列挙型(enum)を作る」を参考にValueObjectを作ったので一つ一つのメソッドの役割や意味をまとめてみた - Qiita

                                                                  「PHPで列挙型(enum)を作る」を参考にValueObjectを作ったので一つ一つのメソッドの役割や意味をまとめてみたPHPDDDenumマジックメソッドValueObject 前提 PHPでEnum型を作りたくて以下の記事を参考にした。 (記事の方ではなく、コメントに追記されている方のコードを利用) https://qiita.com/Hiraku/items/71e385b56dcaa37629fe ただ、コピペ芸人になりたくなかったので、 Enumクラスで使われているメソッドが何をしているのか、 一つ一つ自分なりに解釈してみたのでここにメモ。 コード 上記記事にあるコードを参考に自分が使う形に修正した。 予約のステータスを表すクラス。 このStatusクラス(ValueObject)は別途定義したReservationクラス(Entity)のプロパティとして定義している前提。 /

                                                                    「PHPで列挙型(enum)を作る」を参考にValueObjectを作ったので一つ一つのメソッドの役割や意味をまとめてみた - Qiita
                                                                  • DDD に入門するなら、まずは ValueObject だけでもいいんじゃない? - Qiita

                                                                    今日は 『ドメイン駆動設計#1 Advent Calendar 2019』の 11日目 です。 昨日は mejileben さんの 『Laravelでドメイン駆動設計を実践し、Eloquent Model依存の設計から脱却する』 でした。 みなさん初めまして、こんばんは! C# をこよなく愛する静岡エンジニアの t2-kob です。 本日のテーマは、 「DDD に入門するなら、まずは ValueObject だけでもいいんじゃない?」 です。 ■ なぜこの記事を書いたか? ・理由の1つ目は、勉強のためアウトプットしたいと思ったからです。 最近 DDD コミュニティの DDD-Comunity-jp(Discord) に参加して、色々なオンライン勉強会に参加させて頂いています。 この勉強会へは色々下調べして臨んでいますが、その後の振り返りが出来ていませんでした。 このため、勉強を兼ねてアウト

                                                                      DDD に入門するなら、まずは ValueObject だけでもいいんじゃない? - Qiita
                                                                    • DDD/Side -Effect-Free Functions - Java EE勉強会

                                                                      「操作」は、大きく「命令(Command)」と「問い合わせ(Query)」の二種類に分けられる。 問い合わせは、システムから情報を取得する。 命令(modifierとしても知られる)は、システムに何らかの変更を及ぼす。 英語で「SIDE-EFFECT」は「意図しない結果」を意味するが、コンピュータサイエンスでは、システムの状態に関するあらゆる影響を指す。 ここではさらに「SIDE-EFFECT」の意味を狭め、「将来の操作に影響を及ぼすような、システム状態に関するあらゆる変更」と定義する。 問題 † 操作が引き起こすきわめて「意図的な変更」に対しても「SIDE-EFFECT」という用語が採用されたのはおそらく、複雑なシステムでの経験から来ている。 ほとんどの操作は他の操作を呼び出すが、呼び出し階層が深くなると、結果を予測するのが難しくなってしまう。 クライアントの開発者は、第2層や第3層の操

                                                                      • SQL Maps

                                                                        Data Mapper (a.k.a SQL Maps) Version 2.0 Developer Guide November 30, 2006 翻訳:iBatis マニュアル日本語訳グループ (ibatis_manual_japanese_translation_group@googlegroups.com) Developer Guide iBATIS Data Mapper 2.0 目次 序文................................................................................4 Data Mapper..........................................................................4 インストール......................

                                                                        • [ThinkIT] 第1回:時代は今「DIxAOPコンテナ」 (3/4)

                                                                          DI(依存性の注入)についての解説を行ってきましたが、ではDIxAOPコンテナが提供する依存性の注入はどのようなシステムを構築する時に利用すればよいでしょうか。 DIxAOPコンテナが解決する依存性の注入は、ステートレスつまり値を持たないオブジェクトをつなぐのに向いています。このようなステートレスなオブジェクトを利用した設計パターンをトランザクションスクリプト(図4)といいDIxAOPコンテナはトランザクションスクリプトを実現するのに向いています。 トランザクションスクリプトで扱うドメインオブジェクトは、振る舞いを持たないシンドメイン(やせたドメイン)です。シンドメインに値を設定するのは、DIxAOPコンテナではなくデータベースにアクセスして値を取得するDAO(Data Access Object)です。またDAOが値をセットするシンドメインのことをTO(Transfar Object)や

                                                                          • Ruby Tidbit: String, the original value object

                                                                            No, I don't work in NYC, DC, or the valley, and I'm cool with that. Recently, a really great article was published over on the Code Climate Blog. Titled “7 Patterns to Refactor Fat ActiveRecord Models”, it’s a must read for everyone who works with Rails. If you haven’t read it, go do so. Seriously. I’ll wait. Anyway, at the very top of this list is a recommendation to extract value objects, and it

                                                                            • SIOS Tech. Lab - エンジニアのためになる技術トピックス

                                                                              2024-06-24 DomainObjectからValueObjectを自動生成するOSS作ってみた ~ ts-vo-generator~

                                                                                SIOS Tech. Lab - エンジニアのためになる技術トピックス
                                                                              • デザインパターン: Value Object

                                                                                デザインパターン: Value Object Created at Sun, Feb 22, 2015 Value Object(値オブジェクト)は, メンバとメソッドを持ちクラスとしての特徴を持つが, immutableであり, identityキー(RDSでいうところのautoincremental id)を持たないオブジェクトのことです. 異なるオブジェクト同士であっても値が等しければ等しいとみなされます. immutableなので, primitive(int, floatなど)な値と同等に扱うことが出来ます. immutableであるメリット immutableであるメリットとしては 状態を持たないので, 呼び出し順序を考慮しなくて良い 値が書き換わらないため, thread safeである プログラムの途中でオブジェクトの特徴が変わることがないため, プログラムをreadabl

                                                                                • PHPでValueObjectを実装してみる - はむはむエンジニアぶろぐ

                                                                                  ValueObjectは、getterしかないオブジェクトです。 getterしか無いって何が嬉しいの?って感じかもしれませんが、特定の概念を説明する集合体として表現できます。 ようは、コードに概念の集合を語らせることが出来ます。 簡単なパターンなので、覚えることも少ないです。 ですが、Valueobjectを覚えることで表現力を向上することが出来ると思います。 今回、PHPで実装してみました。 ValueObjectとは? コンストラクタで、オブジェクトの生成時のみ値をセットできるオブジェクトです。 オブジェクトの生成時のみというのがミソで、それ以降は値を変更することは出来ません。 つまり、イミュータブルであることを担保できる。 例えば、連想配列とかだといつでもどこでも中身を書き換えられる。 それは、デバッグする時に困難になる。 その連想配列のライフサイクルを全てチェックせねばならない。

                                                                                    PHPでValueObjectを実装してみる - はむはむエンジニアぶろぐ