Los Techies

lostechies.com · Group blog · on HN since 2008

Group blog by .NET developers, covering application architecture, CQRS, Backbone.js, git, and Jimmy Bogard's posts on domain-driven design.

What HN saysHN commenters recommend Jimmy Bogard's posts as strong .NET architecture writing and link its posts on ACID 2.0, CQRS, and gitk.
97HN people shared it
32linked it in comments
121stories submitted
1.3Kstory points
4 years agolast shared
2008people per year2026

Most-shared posts

  1. 1
    Zombies RUN (Managing Page Transitions In Backbone.js)
    6 people · 8 points · first shared 2011 · discussion on HN
  2. 2
  3. 3
  4. 4
    Use gitk to understand git
    4 people · 2 points · first shared 2011 · discussion on HN
  5. 5
    Backbone vs Knockout
    2 people · 91 points · first shared 2011 · 61 comments on HN
  6. 6
  7. 7
    CQRS and REST: the perfect match
    2 people · 13 points · first shared 2016 · discussion on HN
  8. 8
  9. 9
    Platform generalists versus framework specialists
    2 people · 6 points · first shared 2015 · discussion on HN
  10. 10
    Resources For, And How I Learned Backbone.js
    2 people · 5 points · first shared 2011 · discussion on HN
  11. 11
    Busting some CQRS myths
    2 people · 2 points · first shared 2016 · discussion on HN
  12. 12
  13. 13
  14. 14
    Double dispatch is a code smell
    2 people · first shared 2014
  15. 15
    Backbone js is not an mvc framework
    2 people · first shared 2013

What HN people wrote when they linked it

staticassertion · 2021-04-08
https://lostechies.com/jimmybogard/2013/06/06/acid-2-0-in-action/ If you can build a system with ACID 2.0 life gets really easy. You can reason about your system without worrying about ordering, time, 'exactly once' semantics, etc. Idempotency is usually one of the simplest pieces to implement, and you definitely get a ton of benefit right off the bat - it's worth designing systems from scratch with it in mind.
NicoJuicy · 2020-06-06
Recently I started to use enumeration classes instead of enums ( where it fits) https://docs.microsoft.com/en-us/dotnet/architecture/microservices/mic… If you develop in c#, I would definitely recommend trying it out A better example can be found here actually: https://lostechies.com/jimmybogard/2008/08/12/enumeration-classes/
zdbo · 2017-01-07
Absolutely. I use CQRS fairly regularly, but I've never used ES on production software and I can't think of a case where it would have been appropriate. It's a serious solution that is not trivial to implement. CQRS is a highly understandable, almost always reasonable technique to follow when you strip away all the other things that people tend to associate it with. This is a pretty decent article on that: https://lostechies.com/jimmybogard/2012/08/22/busting-some-cqrs-myths/
Aga · 2015-04-06
Looking at the history tree with all the branches and remote branches is a great way really understand Git. More powerful history browsers to "lola": * gitk (graphical, developed in git's own repo) https://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understan… * tig (console) http://jonas.nitro.dk/tig/manual.html
capkutay · 2014-09-18
Hey quick request! You guys have one heavily-referenced example for your CompositeView. However, I believe some of the things in that tutorial are since deprecated (such as appendHtml): http://lostechies.com/derickbailey/2012/04/05/composite-views-tree-str… The current documentation on composite view actually references that article. Other than that, great work!
jpk · 2012-11-12
If the parent is the only place where there's a reference to the child view, then yes. However like the article says, you often have things like event listeners that, if the child view doesn't clean up, will prevent the child view from getting collected. (And often, the listeners still do stuff causing buggy behavior.) This is fixed by ensuring there's an off()/unbind() for every on()/bind(). I do this by following a pattern like the one in this article: http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-pag…
fellars · 2012-02-02
I'm a big fan of Derick Bailey's stuff. He has a framework on top of Backbone called Marionette that is well documented and makes handling large apps much easier: https://github.com/derickbailey/backbone.marionette He then builds an email client app with it: https://github.com/derickbailey/bbclonemail And has a ton of great articles on backbone: http://lostechies.com/derickbailey/category/backbone/ Definitely worth following his work.
javier_e06 · 2023-04-25
The term clean is somewhat esoteric and leaves room for dissent. We also use the term "code smell" Which Wikipedia refers as: "Smells are certain structures in the code that indicate violation of fundamental design principles and negatively impact design quality" When people asked me about fundamental design principles I point them to S.O.L.I.D https://lostechies.com/wp-content/uploads/2011/03/pablos_solid_ebook.p…
drfrank · 2018-05-27
This is the article that I share with my coworkers when I see them reaching for the Visitor Pattern: https://lostechies.com/derekgreer/2010/04/19/double-dispatch-is-a-code…
RexM · 2016-08-17
StructureMap supports property injection in addition to constructor injection. http://structuremap.github.io/setter-injection/ It's beef awhile since I've used it, but was using it for web forms where we didn't want to deal with creating our own page factory. Also, the way I've typically written unit tests is with StructureMap auto mocking which will automatically inject mocks into your constructor so you don't have a bunch of compile errors if you add a dependency. https://lostechies.com/joshuaflanagan/2009/02/04/auto-mocking-explaine… But, I'm not trying to bash your project, it's always fun to dig into the internals and set this sort of stuff up on your own.
peterwwillis · 2016-07-27
Heh. https://mathiasbynens.be/demo/url-regex https://lostechies.com/chadmyers/2010/11/20/parsing-a-url-with-a-regex… https://stackoverflow.com/questions/27745/getting-parts-of-a-url-regex What do all these have in common? They all demonstrate that it is hard to write a regex that parses URLs. Regex's hide programming mistakes because they not only become harder for humans to parse as they get more complicated, but also there isn't simple programming code to handle potential security vulnerabilities in-line with the code. It also hides the [at least] two considerations of secure programming: designing a secure function, and handling the function securely.
dreamdu5t · 2014-11-11
It's not MVC. There are no controllers, and data in a Backbone app does not flow in a circular fashion. I consider Backbone views describable as presenters, and Backbone describable with the Model-View-Presenter (MVP) pattern. MVP diagram: http://lostechies.com/derickbailey/files/2011/12/NewImage2.png Why Backbone is not MVC: http://lostechies.com/derickbailey/2011/12/23/backbone-js-is-not-an-mv…
derickbailey · 2014-07-30
exposing methods for the purpose of testing is bad design, whether or not you are only doing it in a test environment. if you have a method that is sufficiently complex and warrants its own testing, put it in it's own module file and test that module file on it's own - no need to break your design and modify your runtime module exports based on runtime environment checks http://lostechies.com/derickbailey/2014/01/03/semantics-modules-and-te…
aroman · 2014-07-25
What? Why? I disagree on all of those points. Promises are inconsistent[0], slow[1], and I find them a hassle compared to async. The Node.js core and community convention is to use callbacks and callback-embracing tooling for a good reason. [0] http://lostechies.com/derickbailey/2013/09/20/consistency-problems-wit… [1] http://thanpol.as/javascript/promises-a-performance-hits-you-should-be…
josteink · 2014-06-27
No. Rust is a systems language meant to displace c and c++. Dart is Google's me-too attempt at creating something which compiles to JavaScript. It borrows heavily from java and generates equally bloated code. OK, so maybe last sentence is a bit over the top critical, but last I checked, hello world in dart rendered in at 100kb [1] of js and dependencies. [1] http://lostechies.com/jimmybogard/2011/10/12/the-dart-hello-world/
daigoba66 · 2014-05-12
At present, NHibernate has more features than EF and is quite stable. Although EF does have a much better LINQ provider if that's your sort of thing. Check out http://lostechies.com/jimmybogard/2014/04/22/migrating-from-nhibernate…
StefanKarpinski · 2014-05-01
Precisely. This may sound pedantic or academic, but in practice when static overloading and dynamic dispatch differ, the static behavior is usually not what you want. In my experience, this makes it painful to make code that is polymorphic in multiple arguments behave correctly in C++ (double dispatch [1] is one of the necessary but awkward tactics that's used), whereas multiple dispatch just works. And of course, almost working and actually working are a world apart even though they sound so close. [1] http://lostechies.com/derekgreer/2010/04/19/double-dispatch-is-a-code-…
asolove · 2014-01-23
If you have a list of thousands of items, attaching event handlers to each of those items separately is relatively expensive, although it makes the view code nicer. If you are as serious about performance as these people, you would want to add delegated events on the parent level. There is a writeup about doing this in Backbone [1] although I can't vouch for it. In fairness, getting really good dom performance out of Backbone is hard because of the lack of built-in delegated event support and the non-synchronized redraws. If you have big apps that need to be super-fast, either read up on dom performance practices and adopt some helper libraries along with Backbone, or try a framework that has its own draw cycle and delegated event support. [1] http://lostechies.com/derickbailey/2011/10/11/backbone-js-getting-the-…
tipiirai · 2013-11-05
DOM/HTML represents the "passive view": http://martinfowler.com/eaaDev/PassiveScreen.html in MVP and the Presenter layer makes all the manipulation of the view & widgets. This is almost identical to Backbone which can also be interpreted as MVP, see: http://lostechies.com/derickbailey/2011/12/23/backbone-js-is-not-an-mv…
michaelwww · 2013-04-02
I'm not angry, I just want something better. As Anders Hejlsberg said "you can write large programs in JavaScript. You just can't maintain them." http://lostechies.com/derickbailey/2012/06/04/anders-hejlsberg-is-righ…
ricardobeat · 2013-01-15
Yes, this is (was?) a long standing problem, they are called "zombie events". Here's a famous post on the issue: http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-pag…
bmelton · 2012-10-17
That's treating the application as if it were completely stateless, and mucks with browser history. A good example of when to use state vs. a route is on a delete. If I route to a delete, for example, then it might fire again when I hit my 'back' button, which is obviously a bad idea. Derick Bailey has a good article on it here: http://lostechies.com/derickbailey/2011/08/03/stop-using-backbone-as-i…
prodigal_erik · 2012-01-19
"Client-side MVC" is kind of unfair to backbone.js. I haven't confirmed it myself, but I've seen people explaining how it's also suited to server-side rendering, which means it's not ruled out for competent authors doing progressive enhancement. http://lostechies.com/derickbailey/2011/09/26/seo-and-accessibility-wi…
dmix · 2011-10-31
I found this blog post that seems to provide a more in depth look at what is covered in the screencast: http://lostechies.com/derickbailey/2011/10/25/rebuilding-my-backbone-j…
apaprocki · 2011-08-06
... and now all the random crap financial code out there that simply hard-codes "AAA" as the US credit rating will have problems. I bet a lot of people will be bug testing this change over the weekend. EDIT: This seems to sum it up: http://lostechies.com/johnpetersen/2011/07/16/the-impact-of-united-sta…
DrHankPym · 2011-06-08
What really helped me understand Git was this 2-part tutorial that uses Gitk to show how your commits and merges work. Part 1 - http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand… Part 2 - http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand… I'm surprised how few tutorials mention Gitk.
pseale · 2009-01-30
Jeff is presumably choosing to build his reusable HTML widgets in functions, which is one valid way to do things. Here's a good overview of all options available to ASP.NET MVC: http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/01/27/asp-ne…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close