Skip to main content

Jorge Gamba

Jorge Gamba's Public Library

Sep 24, 16

Even if you never contribute to a Microsoft repo, these coding guidelines are good to live by #aspnet5 #aspnetvnext

  • my library. It adds an generic extension method called Match() which is the usual entry point. The match statement is built up using a fluent interface.
  • The Else value is optional but if it falls through without matching and there’s no Else value it throws an IncompletePatternMatchException:

  • interestingly, you can see ML (and F#) exceptions as a single discriminated union and custom exceptions as cases of this union! If we stretch the idea a bit, we can use it and extend the only discriminated union that is available in C# by defining our expressions as custom exceptions:
  • we get the expression as an argument of type Exception, we throw it and we use the limited form of pattern matching provided by C# catch construct:
  • Another nice thing is that this not just checks that the value has the right type, say Multiply, but it also type casts the input to the right type for free

5 more annotations...

  • three cleanly separated parts:
  • This architecture seems to emerge naturally in Elm
  • The architecture seems to be a consequence of the design of Elm itself

2 more annotations...

  • a simple pattern for architecting webapps. It is great for modularity, code reuse, and testing
  • This architecture seems to emerge naturally in Elm
  • The architecture seems to be a consequence of the design of Elm itself

  • node would "just" be a backend application, written in JS, serving the Elm application, and handling client ajax/rest commands, perhaps
    reading and updaing a mongo db.
  • I'd imagine you can use whatever framework you'd like, just get data to the frontend using ajax
  • If you were okay not sharing code between the frontend and the backend (something Node people will promote), you could probably pair Elm with any RESTful API, whether Rails, Node (express?), or Python Django. So it's probably a matter of what you're comfortable with.

  • After installing Elm successfully, you will have the following command line tools available on your computer:
  • builds Elm projects. It can compile Elm code to HTML or JavaScript. It is the most general way to compile Elm code
  • helps you build Elm projects without messing with the command-line too much

16 more annotations...

  • It has influenced projects like Redux that borrow core concepts but add many JS-focused ideas.
  • your code is built around a Model of your application state, a way to update your model, and a way to view your model.
  • This repo is a collection of all the examples

  • Choosing Elm for a customer project made my job nicer than ever and helped maintain project velocity during months of development
    • Elm restricts the way you program, resulting in maintainable code no matter what.
    • There are no runtime exceptions so debugging is way less of an issue.
  • How hard is it to debug compiled Elm code on the browser?

16 more annotations...

  • a functional language that compiles to JavaScript
  • It competes with projects like React
  • has a very strong emphasis on simplicity, ease-of-use, and quality tooling.

  • Just follow this guide :
  • choose the web server. By default it’s hapi
  • This choice will affect how you write your policies and controllers, but we will se this later.

19 more annotations...

  • Elm uses type inference to detect problems during compilation and give friendly hints
  • Elm has its own virtual DOM implementation, designed for simplicity and speed
  • All values are immutable in Elm

2 more annotations...

  • there has been a growing feeling that the development of Sails has become stagnant.
  • Sails has been around for a while, but has never reached a major release
  • backstory relating to the Trails team leaving the Sails project

1 more annotation...

1 - 20 of 20789 Next › Last »
20 items/page

Diigo is about better ways to research, share and collaborate on information. Learn more »

Join Diigo