Skip to content

Instantly share code, notes, and snippets.

View mcintyre321's full-sized avatar

Harry McIntyre mcintyre321

View GitHub Profile
@mcintyre321
mcintyre321 / Linqpad script.cs
Last active May 18, 2016 14:58
Simple Event Sourcing using NMF
void Main()
{
var events = new ObservableCollection<Event>();
var state = new NotifyCollection<object>();
events.OnAdd(next =>
{
if (next is UserWasAdded)
{
.request{
background-color: aliceblue;
}
.response.status200{
background-color: f5fff0
}
@mcintyre321
mcintyre321 / tryjsil.cs
Created December 13, 2016 11:44
JSIL LINQ error
using System;
using JSIL;
using JSIL.Meta;
using System.Collections.Generic;
using System.Linq;
public static class Program {
public static void Main () {
Dictionary<string, string[]> data = new Dictionary<string, string[]>(){
@mcintyre321
mcintyre321 / gist:5bb6291dfe41054b7393394c46a792ff
Last active April 11, 2018 15:54
ways to improve your c# code
  • use nsdepcop instead of project dependencies for layering so you can keep things in the same project
  • generic action result in controllers instead of base type
  • explicitly register your controllers rather than letting Controller Activator use them
  • ditch your IOC container entirely
  • use ValueOf for ids instead of ints
  • hard code all non-secret config values each environment in your source code (using code, not json) and choose the right one based off a single 'env' variable
  • use OneOf instead of custom Result objects/ Exceptions for control flow
  • partition by feature vertical, not layer
  • use delegates for your ports/adapters
  • isolate your domain and use composition root
@mcintyre321
mcintyre321 / Comment.cs
Last active January 8, 2019 10:03
Siren from IQueryable
namespace _10PrintHello.Apps.Things.SirenTables
{
public class Comment
{
public int postId { get; set; }
[Sortable]
public int id { get; set; }
[Sortable]