6 ms·
Ask HN: Interested in collaborating on a small site using this novel style?
I want to build a small website using a do-the-right-thing approach, near-to-pure functional style, in a dynamic language, without any existing frameworks i.e. minimal and back to basics. This is as an learning / experimental exercise or, in other words, for fun! Anyone, ideally in the London area, interested in collaborating with me on it? Or know someone who might be?
I've been programming since 2002 but design and architecture has always been my thing. I'm not fussy who I work with as long as you are nice. Just want to do something with someone else for a change
What the website does doesn't matter much to me. I was going to do a Twitter clone because that's very simple and everyone gets what it is supposed to do/be. But it could be anything really
I really want to try using a layers-based architecture where data goes through a pipeline starting with the database and HTTP request, through various stages, until a response is formed and sent to the client; sort of analogous to the way a compiler works. It's a bit different from MVC and I think it could be pretty sick :)
Here's a rough rundown of the architecture: http://pastebin.com/he89yYHC
I could explain it in more detail to anyone interested
I also have a flexible design process that would allow the design within each of these layers to emerge quite naturally so it's not big design up front
If interested please tweet at me @parallelist_ or respond to this thread here
Thanks!
- edem 13y agoDo you plan to use clojure?
- parallelist 13y agoI was thinking a scripting language really: JavaScript/CoffeeScript/TypeScript (presumably using Node), Lua, Python, etc. Even PHP is acceptable because I have evolved a particular style in that language that I find makes it significantly less unpleasant than most would imagine I’m not completely against Clojure. I tried it for a couple of weeks many years ago and found it kind of difficult somehow. I’ve done a reasonable bit of Haskell since so it would probably be better now. My first choice for a lisp would be Racket. I’m not saying no, we’d have to discuss it more I think. Isn’t the big justification for Clojure the Java libraries?
- ricardobeat 13y agoThe architecture doesn't look much different from MVC/MVP: controllers (interfacing layer), models with query methods, views/presenters (bridge layer/rasterization). Do you have a more detailed write-up of those ideas?
- parallelist 13y agoInteresting point. I’m not familiar with MVP but I guess I associate MVC with OO which I’m so over. I don’t see MVC as a pipeline of values but just kind of a way of vaguely separating things out and one that is easily and often corrupted. By contrast this would as pure (as in functions) as possible so each layer would communicate with each other layer exactly once for each request. I guess the principles are largely the same I’m just trying to do it with more rigor
- parallelist 13y agoOh, I’ve just realized another difference. The model, as I refer to it is different from that in MVC. In MVC the model is usually a representation of database tables or "an interface defining the data to be displayed or otherwise acted upon in the user interface" (WikiP). For me it is the bit that preforms whatever work the user requested. So it’s pretty misleading of me to call it the model really because I’m not really all that concerned with modelling anything, I shall refer to it as the action layer from now on, I think
- ricardobeat 13y agoThe common MVC project uses "fat models", where each Model encapsulates it's respective business logic. Then the Controllers simply decide which methods to call from the Model, call other necessary services and manipulate the data to respond with a specific format; what you describe would be a "fat controller/skinny model", or maybe a service layer. You'll end up with some kind of Model either way, data structures will have to be defined somewhere. I'm conflicted whether dropping the known patterns and established terms for this architecture is a good or bad idea, but it's interesting nonetheless. It's quite hard for a newcomer to grasp and implement MVC correctly, an architecture with clearer nomenclature and concepts might be helpful.
- noname123 13y agoNot in London, but gl man! Sounds like a interesting endeavor.