DEV Community

loading...

Discussion on: Full-Stack Development Should Be Easier

Collapse
crtl profile image
crtl

This is an antipattern.

Collapse
mvila profile image
Manuel Vila Author

Could you expand, please?

Collapse
crtl profile image
crtl

TLDR: Your creating your own problems and then develop solutions to solve them.
The "Liaison stack" is actually the default stack for any small company and if you are running a larger application you probably are seperating your services by default at least for the reason because they are running in the cloud and therefore are seperated by nature.
If you have not reached the scale which requires to split your architecture in such a manner you are fine with running a backend server with database and whatnot serving your frontend client which communicates with the backend api (monolithic).
"Cross-Layer Inheritance" is done by extracting shared code into packages (typescript with interfaces is helpful) and install them as dependencies which is one of the reasons why people are so hyped about node in the first place (I can use JavaScript on Frontend and Backend).
You dont want any of your business logic on the client anyway.
Given the examples you gave and the requirement to have a SPA I can just implement it easily with plain PHP, JavaScript and HTML without having expertise knowledge of it precompiling anything etc..

Sometimes developing is just tedious and you have to write stuff bc of reasons.

Thread Thread
mvila profile image
Manuel Vila Author

Thanks for your detailed answer but I'm afraid you didn't get the point of Liaison.

Obviously, if you can implement everything in the backend in PHP, you don't need Liaison.

But if you have a user interface with some rich user interactions, then you need to manage the user interface in the frontend and you need to build a web API to communicate with the backend.

Liaison removes the need to build a web API but doesn't enforce any type of architecture. You can break down your application into as many layers as you want and you can run your components in multiple execution environments.