-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.xml
More file actions
202 lines (142 loc) · 12.2 KB
/
index.xml
File metadata and controls
202 lines (142 loc) · 12.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>DDD concepts with Ruby</title>
<link>https://ddd-ruby.github.io/index.xml</link>
<description>Recent content on DDD concepts with Ruby</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<copyright>Released under the MIT license</copyright>
<lastBuildDate>Fri, 06 Jan 2017 21:07:13 +0100</lastBuildDate>
<atom:link href="https://ddd-ruby.github.io/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Quest for Quality</title>
<link>https://ddd-ruby.github.io/quality/</link>
<pubDate>Fri, 06 Jan 2017 21:07:13 +0100</pubDate>
<guid>https://ddd-ruby.github.io/quality/</guid>
<description>
<p>We continuously strive to provide best quality in our work. And we like to keep it transparent, because it helps us to stay accountable.</p>
<p>When you find anything worth improving, please tell us and we will work through that issue together. Here is the overview of the <code>ddd-ruby</code> organization status for different quality metrics.</p>
<h2 id="builds-status">Builds Status</h2>
<ul>
<li><a href="https://travis-ci.org/ddd-ruby/">https://travis-ci.org/ddd-ruby/</a></li>
</ul>
<h2 id="code-coverage">Code Coverage</h2>
<ul>
<li><a href="https://codecov.io/gh/ddd-ruby">https://codecov.io/gh/ddd-ruby</a></li>
</ul>
<h2 id="dependencies-overview">Dependencies Overview</h2>
<ul>
<li><a href="https://gemnasium.com/ddd-ruby">https://gemnasium.com/ddd-ruby</a></li>
</ul>
</description>
</item>
<item>
<title>Additional Information</title>
<link>https://ddd-ruby.github.io/additional-information/</link>
<pubDate>Wed, 04 Jan 2017 00:00:00 +0000</pubDate>
<guid>https://ddd-ruby.github.io/additional-information/</guid>
<description>
<h2 id="videos">Videos</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=CjNBnkMHjh4">Domain-Driven Design for the Database Driven Mind - 2015</a> + <a href="https://github.com/julielerman/DomainDrivenDesignforDatabaseDrivenMind">code</a></li>
<li><a href="https://channel9.msdn.com/Events/TechEd/Europe/2014/DEV-B411">Entity Framework Model Partitioning in Domain-Driven Design Bounded Contexts - 2014</a></li>
</ul>
<h2 id="podcasts">Podcasts</h2>
<ul>
<li><a href="http://www.devdiscussions.com/episodes">http://www.devdiscussions.com/episodes</a>
Dev Discussions are recorded conversations between web-application developers as we discuss relevant topics.
With topics like DDD / Event Sourcing.</li>
</ul>
</description>
</item>
<item>
<title>DDD in Ruby</title>
<link>https://ddd-ruby.github.io/</link>
<pubDate>Tue, 08 Mar 2016 21:07:13 +0100</pubDate>
<guid>https://ddd-ruby.github.io/</guid>
<description>
<h2 id="beautiful-highly-adaptable-and-maintainable-ruby-applications-only-a-dream">Beautiful, highly adaptable and maintainable Ruby applications - only a dream?</h2>
<p>At some point of your career you have probably heard about DDD (Domain Driven Design) and dismissed it quickly as overly complex and too <code>enterprisy</code>. After all, MVC and CRUD seem so much simpler and why would you go through the trouble of introducing new layers of complexity to your Ruby / Rails application? It just works and is really easy do maintain for many years to come, right?</p>
<p>Well&hellip; If you have ever worked on a successful Rails application, you probably experienced firsthand the problems that grow, when you apply MVC / CRUD to more complex requirements. You might start to introduce some extra layers, like <code>services</code>, <code>interactors</code> and such. While doing this, you have to invent new patterns, that are not quite popular in the Ruby community and there is little guidence, where this path will lead you.</p>
<p>We developers / builders / business-owners want similar things:</p>
<ul>
<li>maintainable applications</li>
<li>correct software</li>
<li>good developer experience</li>
<li>this thing should run in production without major problems</li>
</ul>
<p>&hellip;</p>
</description>
</item>
<item>
<title>Ruby libraries supporting DDD</title>
<link>https://ddd-ruby.github.io/libraries/</link>
<pubDate>Tue, 08 Mar 2016 21:07:13 +0100</pubDate>
<guid>https://ddd-ruby.github.io/libraries/</guid>
<description>
<h2 id="rdm-the-missing-dependencies-manager-for-ruby-apps">Rdm: the missing dependencies manager for Ruby apps</h2>
<ul>
<li><a href="https://ddd-ruby.github.io/rdm/" target="_blank">Rdm</a></li>
</ul>
<p>With RDM you can split up one big Ruby application into multiple lightweight packages with explicit dependencies. You can do it before going the <code>microservices</code> road, because this would be a much smoother transition. Going from explicit dependencies graph to proper SOA / microservices is also more straightforward. In DDD it helps to define clearer <a href="http://martinfowler.com/bliki/BoundedContext.html">Bounded Contexts</a>, where each package can only access explicit dependencies. Contrast this with a monolithic Rails application with one global Ruby memory space, and you might understand the benefit of having stricter, more explicit way of managing dependencies.</p>
<h2 id="smartioc-a-declarative-dependency-injection-library">SmartIoC: a declarative dependency Injection library</h2>
<ul>
<li><a href="https://ddd-ruby.github.io/smart_ioc/" target="_blank">SmartIoC</a></li>
</ul>
<p>SmartIoC is a smart and really simple IoC container for Ruby applications.</p>
<p>It allows you to create your dependencies on demand, supports lazy-loading of Ruby files, also allows different contexts for each dependency, so you get test/lightweight implementations in development / tests enviroments. It works great in combination with <code>Rdm</code>.</p>
<h2 id="hashcast-hash-attributes-caster-in-declarative-way">HashCast - Hash attributes caster in declarative way</h2>
<ul>
<li><a href="https://ddd-ruby.github.io/hashcast/" target="_blank">HashCast</a></li>
</ul>
<p>In the DDD context it helps to convert user input to a properly casted Ruby object / hash. It is a lightweight dependency-free Ruby library, with a nice DSL for for specifying the structure of expected input with Ruby types.</p>
<h2 id="purevalidator-ruby-domain-object-validation-library">PureValidator - Ruby domain object validation library</h2>
<ul>
<li><a href="https://ddd-ruby.github.io/pure_validator/" target="_blank">PureValidator</a></li>
</ul>
<p>PureValidator is a simple, mostly dependency-free (except <code>i18n</code>) library to validate your domain Ruby objects. It is an excellent companion to <a href="https://ddd-ruby.github.io/hashcast/" target="_blank">HashCast</a> to validate your Ruby objects against specific domain rules. What makes PureValidator special is the separation of validation rules from the object to validate. After countless fights against <strong>one-size-fits-all</strong> <code>ActiveModel::Validations</code>-style validations that mix domain/value object with its valudations, we came to prefer this simpler and more flexible approach.</p>
<p>This approach is more popular in functional programming and leads to maintainable, easily unit-testable code. You are free to use multiple different validators for the same object in different situations. For example your validation rules during creation of an object are different from validations when user is changing a single boolean flag on it.</p>
<h2 id="contracts-contracts-for-ruby">Contracts - Contracts for Ruby</h2>
<ul>
<li><a href="https://ddd-ruby.github.io/contracts.ruby/" target="_blank">Contracts</a></li>
</ul>
<p>Contracts let you clearly – even beautifully – express how your code behaves, and free you from writing tons of boilerplate, defensive code.</p>
<p>We have a forked version of <code>contracts</code> with nice diff output for KeywordArgs type (Hash).</p>
<h2 id="active-serializer-a-simple-objects-to-hash-serializer">Active Serializer - a simple objects to hash serializer.</h2>
<ul>
<li><a href="https://ddd-ruby.github.io/active_serializer/" target="_blank">ActiveSerializer</a></li>
</ul>
<p>ActiveSerializer is a lightweight dependency-free objects serializer with a nice declarative DSL.</p>
<p>In our <a href="https://github.com/ddd-ruby/json_serialization_benchmark" target="_blank">Serializers performance benchmark</a> it places on a solid middle ground right after plain Ruby presenters while sporting a declarative DSL, providing you the same convenience as <code>ActiveModel Serializers</code> do.</p>
<p>Compared to <code>ActiveModel::Serializers</code>-dependencies (activemodel / actionpack), that move with the corresponding Rails version, you get non of the potential headaches of conflicting transient dependencies, that are the horror and bane of many biggish Rails applications.</p>
<h2 id="apiview-friggin-fast-serializer-gem">ApiView - Friggin&rsquo; fast Serializer gem</h2>
<ul>
<li><a href="https://ddd-ruby.github.io/api_view/" target="_blank">ApiView</a>
Another lightweight dependency-free objects serializer. Its <code>DSL</code> is less involved, because its main focus is performance.</li>
</ul>
<p><code>ApiView</code> is currently the fastest known Ruby-based object serializer. If you are generating huge JSON payloads in your Ruby application, it will bring you 5-10X fold performance improvements, as demonstrated in our <a href="https://github.com/ddd-ruby/json_serialization_benchmark" target="_blank">Serializers performance benchmark</a>.</p>
<h2 id="values-values-is-a-tiny-library-for-creating-value-objects-in-ruby">Values - Values is a tiny library for creating value objects in ruby.</h2>
<ul>
<li><a href="https://github.com/tcrayford/Values" target="_blank">Values</a></li>
</ul>
<ol>
<li>Constructors require expected arguments</li>
<li>Instances are immutable</li>
</ol>
<h2 id="overview-on-travis-ci">Overview on Travis.CI</h2>
<ul>
<li><a href="https://travis-ci.org/ddd-ruby" target="_blank">DDD-Ruby libs on Travis</a></li>
</ul>
</description>
</item>
<item>
<title>Getting started</title>
<link>https://ddd-ruby.github.io/getting-started/</link>
<pubDate>Sat, 29 Mar 2014 00:00:00 +0000</pubDate>
<guid>https://ddd-ruby.github.io/getting-started/</guid>
<description><p>Motivate the reader to dive deeper in DDD concepts by gently introducing him to some basic material. Also explain how Ruby and DDD applied together help to maintain agile and flexible applications.</p>
</description>
</item>
</channel>
</rss>