Live data from Hacker News

What I'm Up to Now

martinfowler.com

111–120 of 142 posts

Re: What I'm Up to Now

#111
post #43

Martin, if you are reading this, here's something you could do: Revisit REST (and the Richardson Maturity Model[1]) and explain why REST has failed so spectacularly in the JSON API world. It's worth doing because REST-ful hypermedia systems are using an interesting and distinctive network model, and most younger web engineers don't know much about it and end up using the client-server approaches that have become so c…

> explain why REST has failed so spectacularly in the JSON API world Could you elaborate on this?

Essentially no-one implements REST APIs as defined by Fielding and Fowler because what software developers and architects actually find valuable is an HTTP CRUD API. The widespread adoption of microsystems architectures required the selection and standardization of a format for the transfer and modification of resource representations between services, and CRUD over HTTPs serves that purpose pretty well.

Unfortunately, REST is the buzzword under which HTTP CRUD APIs were proposed and promulgated, so now we have a schism between theorists who consider HATEOAS a requirement but can't explain any benefit to the common real-world use case, or give any practical examples, and engineers who now just roll their eyes when the theorists say they're not really building REST APIs.

We know we're not, but if we tell our managers that we've implemented HTTP CRUD APIs for the backend services, they'll ask us why we're didn't choose REST...

Re: What I'm Up to Now

#112
post #89

Earlier quoted context omitted.

Rather, perhaps people should take a look at the thoughts about REST from the researcher who wrote the original dissertation: https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypert...

Someone please help here, im reading all the links here and still drawing a blank on what is and is not REST! Can someone link to an API that’s truly RESTful? And perhaps one that’s barely not?

There are some example links in this post about HATEOAS

https://engineering.3ap.ch/post/using-hateoas-with-rest/

I think the main distinction according to the original paper is if you are doing just HTTP CRUD ( not REST) or also HATEOAS

Re: What I'm Up to Now

#113
post #61

Probably not necessarily on topic - but I really want to say that this guy has been the #1 source of pain in my developer career so far. There've been so many projects where I had to implement some solution some way because the "architect" said "that's how Fowler recommends it, so that's how we're doing it", even if the solution was so bad that everyone saw it coming back to bite us from miles away. I read his books…

Everybody reads Fowler and does horrible things thereafter for a while. Hopefully, you come out of that phase and learn what is worth bothering with and what is not, without too many years and without too many scars and too many failed projects. Some never do though... The phase of my career where I drank the SOLID kool-aid and studied and tried to apply the hip architectural patterns is one of the darkest and most r…

I think the best use in studying patterns and approaches is thinking about where they are applicable and where they aren't and reflecting that on what you've done.

You can't really use architectural patterns as shortcuts before you've accumulated enough experience to internalise their requirements and caveats, but just knowing about them gives your brain more to work with when you design systems, allowing you to think more broadly.

Re: What I'm Up to Now

#114
post #103

Earlier quoted context omitted.

What's remarkable to me is that Fowler is telling an interesting story about a technical decision, includes an entertaining diagram, but in the end doesn't provide any proof either way. There's not a single piece of hard data in that article, not even how many of his colleagues are making the specific recommendation.

What proof would you expect him to bring? It's an article about his experience as a technical expert brought in to consult on many projects.

> What proof would you expect him to bring?

Data. Data about software projects.

What bugs me most about Fowler is his reception, not his writing. If we take his writing in the spirit you've outlined (an experienced developer sharing his anecdotes), there's no problem. But that just isn't how he's seen in the industry. There is a whole class of developers who take his writings as gospel, without the critical sense to wonder whether Fowler's experience/insight actually matches the project at hand.

Re: What I'm Up to Now

#115
post #89

Earlier quoted context omitted.

Rather, perhaps people should take a look at the thoughts about REST from the researcher who wrote the original dissertation: https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypert...

Someone please help here, im reading all the links here and still drawing a blank on what is and is not REST! Can someone link to an API that’s truly RESTful? And perhaps one that’s barely not?

REST has 6 constraints, the 6th constraint has 4 elements, the last of those four is a useless thing called HATEOAS.

If you call your API REST, some zealots will open up your API and look if your beautiful response is polluted with any "links". If it is instead pristine, they will claim your API is not REST.

It's really ridiculous, the links system is only barely useful in some GUI data exploration tools, that are not even that comfortable to use.

If you use a JSON API that feels weirdly antiquated because of the superfluous fields, this is why. If you disregard HATEOAS basically every JSON API on the web is REST.

Re: What I'm Up to Now

#116
post #61

Probably not necessarily on topic - but I really want to say that this guy has been the #1 source of pain in my developer career so far. There've been so many projects where I had to implement some solution some way because the "architect" said "that's how Fowler recommends it, so that's how we're doing it", even if the solution was so bad that everyone saw it coming back to bite us from miles away. I read his books…

One of the largest financials institutions in the world based some of their main trading systems in Event Sourcing with serialized object storage. It's a massive pain. But the dogma/mantra and sunk cost fallacy pull make any attempt at moving away from it being outright mocked.

Want to see the current state of a trade? Open and deserialize 50 objects and then manually make these classes pick the merging of all those fields.

Not like there are multiple database products out there with temporal support. Let's reinvent the wheel, baby!

Re: What I'm Up to Now

#117
post #86

Somewhat flippant, but also a serious question - do people like Martin Fowler and uncle bob actually do anything or do they just describe systems that do not (and probably will never) actually exist? Have they built real world software, or do they just describe some ideal state that has never actually occurred in reality - some kind of geek porn? I’d much rather listen to people who have actually done things than peo…

Bob Martin has been promoting his iPad PDP-8 emulator which I guess is something. https://github.com/unclebob/PDP8EmulatorIpad

Not to judge anyone by a single repo (I certainly have worse things on my github) but that isn't exactly a shining beacon of good software practices...

One small C file (with... creative indentation) and a 2000+ line lua file apparently written by someone unaware of for loops.

Not bad per se, but definitely not the kind of project that makes me think I should listen to author's advice.

Re: What I'm Up to Now

#118

Earlier quoted context omitted.

What proof would you expect him to bring? It's an article about his experience as a technical expert brought in to consult on many projects.

> What proof would you expect him to bring? Data. Data about software projects. What bugs me most about Fowler is his reception, not his writing. If we take his writing in the spirit you've outlined (an experienced developer sharing his anecdotes), there's no problem. But that just isn't how he's seen in the industry. There is a whole class of developers who take his writings as gospel, without the critical sense to…

What data? Each project is building a different product with a different team. Even if he had data like "Teams that use monoliths complete there projects 20% faster", it'd still be useless because of the confounds.

But let imagine through some miracle he did have data that conclusively proved 75% of the time it was better to build a monolith. This might suggest you should more seriously consider building a monolith first, but still this doesn't make the decision for your project. You have to decide based on your project, teams, goals, and budget if a microservice is right for you.

I think you're 100% right that it's the reception. Our industry is filled with people who take the practice of software as a matter of dogma. But we do that with everything, we'll turn any technique into a cult TDD, microservices, unit testing, immutability, functional programming, BDD, etc..

Re: What I'm Up to Now

#119
post #103

Earlier quoted context omitted.

What's remarkable to me is that Fowler is telling an interesting story about a technical decision, includes an entertaining diagram, but in the end doesn't provide any proof either way. There's not a single piece of hard data in that article, not even how many of his colleagues are making the specific recommendation.

What proof would you expect him to bring? It's an article about his experience as a technical expert brought in to consult on many projects.

I'd expect to see numbers: roughly how many projects he was using to draw his conclusions, how many people he talked to and general details about their level of experience and domain of activity. Additionally I'd be curious to read what the concrete consequences of the monolith vs. microservices decisions were for those projects in delays, budget overruns, personnel churn, etc. Finally I believe that the types of projects are highly relevant - industry, domain, budget and so on.

I would need the above to make my mind precisely because I can't find any indication that Fowler is a technical expert. The fact that they're a SW book author that I can't attribute any well-known software to is a big red flag for me. Likewise that they've been working as a consultant for a very long time.

Re: What I'm Up to Now

#120

Martin, if you are reading this, here's something you could do: Revisit REST (and the Richardson Maturity Model[1]) and explain why REST has failed so spectacularly in the JSON API world. It's worth doing because REST-ful hypermedia systems are using an interesting and distinctive network model, and most younger web engineers don't know much about it and end up using the client-server approaches that have become so c…

He can start by actually developing a major (non-toy) application using HATEOAS and then once we all marvel at his success, we might consider doing things this way.

To me, HATEOAS always seemed like it wants me to basically re-invent the web browser. You know, the fact that basically no one does things this way may give you a hint on how actually useful it is.

Post reply on HN