Hacker Newsnew | past | comments | ask | show | jobs | submit | pixelworm's commentslogin

I think nearly every definition of MVC I've read has been different. At this point it just means you split something into three classes as far as I can tell.




Oh, I think I see the problem now. He doesn't want views to know anything about concrete inputs, but our modern GUIs are so closely connected to input that that's pretty much impossible. And really if you want to click on a sub element of a view, that's hardly avoidable.

So modern Controllers can only do their most basic job with these Editor objects that are tightly bound to views, were supposed to be ephemeral, and that LITERALLY NO ONE TALKS ABOUT.


Thanks! I appreciate it!


Are there any books or websites you'd recommend I read to learn more about design instead? I 100% need to learn by doing, but wouldn't it also be good to learn what has already been discovered so I don't have to reinvent the wheel? Or is it best to discover good design on your own?


I learned on my own. If I were to recommend anything to read it would be to find a good book on refactoring or dealing with legacy code.

I read design patterns books when i was younger but in retrospect that was a hindrance more than a help.


I agree that the internals of my code should be abstracted away from my users. But don't I still want the internals to be well designed so they are maintainable and extendable?


The design will reveal itself to you the more you wrestle with the data and logic of the problem you are trying to solve. Full stop-- nobody on Earth would be more qualified than you at that point to say, unless they've already solved your problem


Thank you!


Yeah, I guess without the context I wouldn't really understand why it was designed that way. Or know what situations a design like that would be good for.

Is there any documentation or literature that has helped you?


Once upon a time there was an email MTA (email server) called qmail. It had an architecture that was surprising and Daniel Bernstein documented his philosophy. It left an impact on me by showing me how we can rely on the OS-supplied facilities to accomplish a lot. I don't think qmail is some shining star that will teach you everything you need to know about software design. It is an interesting case study to add to your repertoire.

See https://en.wikipedia.org/wiki/Qmail


This is pretty much how I've learned up to this point (and will of course continue). Trying to learn from real world code will be a new experience for me. Not sure how valuable it will be but should be fun either way.


I would be interested in recommendations for those who have a poor example or no examples

In my case, I'm a junior engineer that has recently been given more responsibility designing aspects of our product. I'm just trying to learn all I can so my designs will be good!


I haven't considered time to implement as a metric for evaluating design, but it makes a lot of sense.

I definitely learn so much from my team's codebase. Most of what I learn is either from the good designs I see in there or from my googling trying to fix the not so good parts.


Yeah, as I've been learning more about software design, it's become pretty clear there is no silver bullet. It would be nice though. I find it a bit overwhelming to try to find the best solution for a problem when there are so many different architectures and programming paradigms.

That being said, taking into account the requirements does eliminate quite a few of the options. Right now, I work on safety-critical embedded systems which requires us to make some decisions that would most likely be way different in other environments.


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: