Skip to content

Instantly share code, notes, and snippets.

View Finglas's full-sized avatar

Shaun Finglas Finglas

  • UK
View GitHub Profile
@Finglas
Finglas / ddd.events.example.cs
Created November 23, 2016 07:34
Entity with Events
public void Publish()
{
// Code
DomainEvents.Publish(new PostPublishedEvent(postId, authorId));
}
@Finglas
Finglas / ddd.non.events.complex.cs
Created November 23, 2016 07:33
Entity Non Events - Complex
public void Publish(AuthorService authorService, TwitterService twitterService)
{
// Code
}
@Finglas
Finglas / ddd.non.events.cs
Created November 23, 2016 07:32
Entity Without Events
class Post
{
public void Publish(AuthorService authorService)
{
// Code
}
}
@Finglas
Finglas / named.arguments.cs
Created October 27, 2016 06:58
Named Arguments
// Bad example
blogPost.Publish("Example", "2016-10-26", "Shaun Finglas");
// Better example
blogPost.Publish(title: "Example", date: "2016-10-26", author: "Shaun Finglas");
@Finglas
Finglas / direct.indirect.dependency.cs
Last active October 27, 2016 07:02
Direct/Indirect Dependency C#
// Bad example, uses dependency directly
public void Publish()
{
this.twitterFeed.SendTweet(...);
}
// Better example
public void Publish()
{
this.PostPublished();
@Finglas
Finglas / constant.usage.cs
Created October 3, 2016 06:20
Constant Usage
// Bad use of constant if this was separated.
File.Open(FilePath);
// Local constant. More clarity.
const string FilePath = "...";
File.Open(FilePath);
// Inline, named argument for cases where you want
// readability but also the ability to change at runtime
// or on deployment.
@Finglas
Finglas / Constants.cs
Created October 3, 2016 06:20
Constant Object Anti Pattern
class Constants
{
public const int DaysInWeek = 7;
public const string DefaultDrive = "D";
public const string WelcomeText = "Hello";
...
}
@Finglas
Finglas / gwt.nunit.cs
Created June 6, 2016 14:10
GWT Scenario with NUnit
[TestFixture]
public class Given_A_Blog_Post_With_No_Comments
{
[SetUp]
public void When_Adding_A_New_Comment()
{
}
[Test]
public void Then_A_New_Comment_Notification_Is_Issued()
@Finglas
Finglas / test.fixture.nunit.cs
Created June 6, 2016 14:10
Test Fixture with NUnit
[TestFixture]
public class BlogPostRetrievalTests
{
[Test]
public void Retrieving_No_Posts()
{
}
[Test]
public void Retrieving_A_Single_Post()
@Finglas
Finglas / custom.exception.cs
Last active May 7, 2016 10:16
Custom Exception C#
public class BlogPostNotFoundException : Exception
{
public BlogPostNotFoundException(string message)
: base(message)
{
}
// Note some suggested overloads have been omitted.
}