今日推荐英文原文：《Why Should I Even Bother With Full-Stack Development?》
推荐理由：相信玩了有些时日的 Minecraft 世界都已经在不少地方被玩家改造过了，而想要一口气看清这些变化在游戏内似乎并不是那么容易。这个项目可以为你的世界生成一个美观的可交互的 html 地图，可以轻松的一览地表全貌，看看自己已经完成的建筑或者是大家瞎造的奇观都很方便，虽然一个服务器里的大家都有弃坑的时候，但是 MC 服务器里的地图就像现实世界里的团队合影一样，是大家一起相聚过的证据。
今日推荐英文原文：《Why Should I Even Bother With Full-Stack Development?》作者：Frank Zickert
Why Should I Even Bother With Full-Stack Development?Writing code has long been the biggest challenge of software development. How do you combine if-then-else-structures with loops to solve a business problem?
The user interface design was done on the side. The developer was the decisive factor. What she was able to build was what the software looked like. Some developers had talent concerning user interfaces. Some did not.
This changed with the rise of the internet. Graphical user interfaces moved into focus. Even more importantly, those user interfaces did not need to be programmed. The Hypertext Markup Language (HTML) and Cascading Style Sheets (CSS) enabled designers to build websites. These designers were technically skilled. Of course. But they did not need to be programmers.
For heaven’s sake, no!
Implementing business logic was left to the back-end developers. These developers took the styled HTML and inserted it into the business logic that they wrote. PHP became popular for making it quite easy to render HTML on the server-side.
But something happened!
Supposedly, front-end development became more of software engineering than back-end development is today! Back-end got reduced to work with databases, provide the data through APIs and take care of DevOps. They cope with all the things that require interconnectivity and integration. Working with different APIs sometimes is… hacky! They need to make sure that all the details work together. They implement specific code for a very specific API.
But moving business logic to the front-end did not free the capacities at the back-end. For plausibility, security, and integrity, all the logic still had to run at the server-side. Because the front-end could be edited by attackers. The code had to be duplicated!
Of course, writing code twice comes with problems. There is the avoidable effort of doing things twice. And there is the risk of inconsistencies between the logic at the front-end and the back-end side.
Full-stack development promises to avoid duplicate code and thus, prevent those inconsistencies.
There is a good chance that this promise will be kept.
Styled-Components added a convenient way of styling your React-components. There’s no need for global style sheets anymore.
With Infrastructure-Components, you can write REST-services, as well as database schemes and queries. You can even configure your serverless infrastructure.
The following picture depicts how the React.js-stack (including libraries) covers pretty much the full technology stack.
Now, you can use React from the very front-end of your application to the back-end and even DevOps. Within the same code. Without duplicates.
The technology stack has never been so homogenous. From that perspective, it has never been easier before to become a full-stack developer.
With the technology stack moving closer together, the demand for full-stack developers even rises. Consider isomorphic React apps. These are apps that use the same React-components to run on the server and the client-side. If you considered yourself as either a pure front-end or a back-end developer, you would not be up for that challenge.
This is less of a programming challenge. It is not about learning many different programming languages. This is rather a challenge to the skills and the mindset.
Writing business logic requires more than combining if-then-else-structures with loops. You need to understand the implications of the logic you implement.
Writing full-stack applications requires you to understand software architectures. You need to understand how to compose your software. The code of your front-end and back-end might be identical. But it matters whether the code runs on the front-end or the back-end. It matters for performance, security, and sometimes even meaning.
The demand for full-stack developers does no longer result from the businessmen’s urge to hire fewer developers who can do more. The demand for full-stack developers stems from the increasing power of the tools. React is no longer a front-end library. Today, you can use React to write back-end software and to configure your infrastructure.
Full-stack development does no longer require multiple programming languages. But it still requires versatile skills. It requires you to think and act like a full-stack developer.