全栈开发和web开发_全栈开发仍然有效。 并且有充分的理由。

(32) 2024-03-23 22:01:02

全栈开发和web开发

In recent years, we started drawing two separate career paths for developers: front-end and back-end. But we often forget about the third option — full-stack.

近年来,我们开始为开发人员绘制两条单独的职业道路: 前端后端 。 但是我们经常忘记第三种选择- 全栈

Full-stack development has been around for quite a while. It used to just be called “development.”

全栈开发已经存在了一段时间。 它曾经被称为“发展”。

But due to increasing complexity, our user interfaces are now decoupled from much of the logic behind them. We now have the two distinct worlds of front-end and back-end development.

但是由于复杂性的增加,我们的用户界面现在已经从其背后的许多逻辑中解耦了。 现在,我们拥有前端和后端开发两个不同的世界。

Let’s explore the idea of full-stack development, and see whether it’s still a relevant option considering all the challenges associated with going down this path.

让我们探索全栈开发的想法,并考虑到与走这条道路相关的所有挑战,看看它是否仍然是一个相关的选择。

I work as a full-stack developer at a company called Fortech, and a big part of my job is leading a team of full-stack web developers.

我在一家名为Fortech的公司担任全职开发人员,而我的大部分工作是领导一支由全职Web开发人员组成的团队。

Our team culture is built around the idea that everyone should be able to switch between back end and front end as necessary. We do this based on the needs of the projects we’re working on.

我们的团队文化建立在这样一个思想之上,即每个人都应该能够根据需要在后端和前端之间进行切换。 我们根据正在处理的项目的需求进行此操作。

但是什么是全栈? (But what is full stack?)

Full stack is not specific to web development, or any form of development for that matter.

全栈不是特定于Web开发或与此有关的任何形式的开发。

Full stack means that you’re engaged on every level of a system. You understand the bigger picture, no matter how well-separated the subsystems are.

全栈意味着您正在参与系统的每个级别。 您了解更大的情况,无论子系统之间的分隔程度如何。

Today you’ll work on a fancy drop-down menu. Tomorrow, you might have to adjust the API interface for that menu. The day after tomorrow, you might have to go further down to the database to improve the underlying queries your API uses to get its data.

今天,您将在一个精美的下拉菜单上工作。 明天,您可能必须调整该菜单的API接口 。 后天,您可能必须进一步深入数据库,以改善API用于获取其数据的基础查询。

I’ve talked with a lot of people at tech events and noticed increasing skepticism towards full-stack development.

我在技术活动上与很多人进行了交谈,并注意到人们越来越对全栈开发产生怀疑。

Opponents of the idea say that you need to become highly specialized in a specific sub-domain in order for your skills to remain relevant.

反对者说,您需要在特定子域中变得高度专业化,以使您的技能保持相关性。

I tend to disagree with this.

我倾向于不同意这一点。

I believe that technology will evolve in a way in which it becomes easier for us to stay relevant, as long as we have the right set of skills to start with.

我相信,只要我们具备正确的技能 ,技术就会以一种使我们变得更容易与时俱进的方式发展

怀疑论者的一些答案 (A few answers for the skeptics)

Over time, I’ve explained the reasons why I believe full-stack development is the way to go — or at least a very good way.

随着时间的流逝,我已经解释了为什么我认为全栈开发是必经之路的原因,或者至少是一个非常好的方法

问题1:拥有一支全栈开发人员团队的优势是什么? (Question 1: What are the advantages of having a team of full-stack developers?)

As a full-stack developer, you can jump from one part of your application to another without significant overhead. This is a huge advantage when planning ahead or when designing new features.

作为一个全栈开发人员,您可以从应用程序的一部分跳到另一部分而没有太多开销。 在预先计划或设计新功能时,这是一个巨大的优势

The true value of full stack arises when you’re able to understand the business requirements behind a feature, then take full ownership over its implementation.

当您能够了解功能背后的业务需求,然后对功能的实现拥有完全所有权时,完整堆栈的真正价值就会显现出来。

Having a team of multidisciplinary people means that you can adapt fast, branching your team when a new opportunity appears.

拥有一支由多学科组成的团队意味着您可以快速适应,并在出现新机会时分支您的团队。

It’s also something that helps create chemistry within your team. Developers work together longer. Even if a project starts with building an API, then moves to mobile and web clients, the same people can make that journey together.

这也有助于在团队中建立化学React。 开发人员的合作时间更长。 即使一个项目从构建API开始,然后转移到移动客户端和Web客户端,同一个人也可以一起完成这一旅程。

问题2:如何找到与最新技术和框架保持同步的时间? (Question 2: How can I find time to stay up to date with so many technologies and frameworks?)

I’d argue that even staying up to date on the front-end or on the back-end is impossible. So let’s push this off the table for now, and focus on what you actually can do.

我认为即使在前端或后端保持最新状态也是不可能的。 因此,让我们暂时将其推迟讨论,并专注于您实际可以做的事情。

Any good full-stack developer should start with a well developed core set of skills. You should be able to perform basic tasks: writing a cookie, connecting to a REST endpoint, performing a database query, etc.

任何优秀的全栈开发人员都应从一组完善的核心技能开始。 您应该能够执行基本任务:编写cookie,连接到REST端点,执行数据库查询等。

You can then build on top of those skills by adding new tools and new abstractions over time.

然后,随着时间的推移,您可以通过添加新工具和新抽象来建立这些技能。

Staying up to date with the latest tech is not a good indicator of performance. It’s your ability to quickly get up to date as needed that matters.

紧跟最新技术并不是衡量性能的良好指标。 重要的是您有能力根据需要快速更新

问题3:全栈开发人员是否应该在前端和后端之间以50-50的比例分配工作? (Question 3: Should a full-stack developer split their work 50–50 between front-end and back-end?)

No. You should split your work according to the needs of the project. It’s all contextual, and should be addressed case-by-case.

否。您应该根据项目的需求来拆分工作。 所有这些都是上下文相关的,应该逐案解决。

You need to be able to jump in and perform tasks at any time, on any part of the application. This is especially important in today’s rapid-fire environment of agile software development.

您需要能够随时在应用程序的任何部分上跳入并执行任务。 在当今敏捷软件开发的迅猛环境中,这一点尤其重要。

问题4:可以优先选择一种开发而不是另一种开发吗? (Question 4: Is it ok to prefer one type of development over another?)

It’s perfectly fine. Most people will develop a preference over time.

很好 随着时间的流逝,大多数人都会产生偏好。

At some point, you’ll start focusing on one of them — and mastering its ecosystem — but without completely losing sight of the other.

在某个时候,您将开始专注于其中一个,并掌握其生态系统,但又不会完全忽略另一个。

I think this should be a matter of personal choice, and should not be imposed upon you by someone else. Some people enjoy doing front-end work better and as a result, get better at it. Others really fall in love with back-end development.

我认为这应该是个人选择的问题,不应由其他人强加给您。 有些人喜欢做得更好,因此做得更好。 其他人真的爱上了后端开发。

It’s like learning how to use the Force. First you learn how to jump, heal and wield a lightsaber. When you reach a certain maturity you decide whether you’d like to start doing mind tricks or force-choking people.

就像学习如何使用Force一样 。 首先,您将学习如何跳跃,治疗和挥舞光剑。 当您达到一定的成熟度时,您可以决定是否要开始做一些技巧或强迫他人 。

但是不要止于代码 (But don’t stop at the code)

We tend to think of our skill set as the different programming languages we work with, or the tools we know and use.

我们倾向于将我们的技能视为与我们一起使用的不同编程语言,或者我们知道和使用的工具。

But a better way to think of skills — the full-stack approach — is to look at responsibilities you’re able to take on as part of your job.

但是,考虑技能的一种更好的方法(全栈方法)是查看您在工作中能够承担的责任。

Can you perform basic user interface tasks, infrastructure setup, and data analysis? Can you get involved in the product development process itself?

您可以执行基本的用户界面任务,基础架构设置和数据分析吗? 您可以参与产品开发过程本身吗?

My team works closely with our customers. We’ve found that it’s useful to onboard developers into the business process. Once developers understand the problems of our customers, they begin to propose solutions for them.

我的团队与客户紧密合作。 我们发现,将开发人员纳入业务流程非常有用。 一旦开发人员了解了我们客户的问题,他们便开始为他们提出解决方案。

This way, one person can provide a solution for an existing business problem without the overhead of a traditional silo approach.

这样,一个人可以为现有的业务问题提供解决方案,而无需传统的孤岛方法。

I’m not arguing that we should replace all team roles with developers. But empowering developers to be responsible for more than just the code they produce can be beneficial in an agile environment.

我并不是在说我们应该用开发人员代替所有团队角色。 但是,在敏捷环境中, 使开发人员不仅要对他们产生的代码负责,还可以带来好处。

This also helps with the high-level mindset shift from solution-focused approaches to problem-focused approaches. You start by identifying the root problem — not just the symptoms — so that you can design an optimal solution to solve it.

这也有助于高层思维方式从以解决方案为中心的方法转变为以问题为中心的方法。 您首先要确定根本问题(而不仅仅是症状),以便可以设计最佳解决方案来解决它。

最后一点 (One final note)

Full-stack development is about stepping out of your comfort zone and performing tasks that are necessary for the success of a product.

全栈开发是要走出您的舒适区域并执行产品成功所必需的任务。

There are definitely a lot of good arguments against full-stack development culture, but I hope this article has refuted many of the more common, weaker arguments.

肯定有很多反对全栈开发文化的好论据,但是我希望本文能够驳斥许多更常见,更弱的论点。

Approaching the full stack won’t always be the best strategy. Many products are too big for any one person to fully understand. For example, Google’s codebase is two billion lines of code. At that level of complexity, various degrees of specialization will be necessary.

接近完整堆栈并不总是最好的策略。 许多产品太大,任何人都无法完全理解。 例如,Google的代码库是20亿行代码。 以这种复杂性水平,将需要不同程度的专业化。

Full-stack development should be an approach — not a forced way of thinking.

全栈开发应该是一种方法,而不是强制性的思维方式。

What’s your take on the future of full-stack development? Share your opinion by leaving a comment below.

您对全栈开发的未来有何看法? 在下面发表评论,分享您的意见。

If you liked the article, click on the green heart below and I will know my efforts are not in vain.

如果您喜欢这篇文章,请单击下面的绿色心脏,我将知道我的努力没有白费。

翻译自: https://www.freecodecamp.org/news/full-stack-between-reality-and-wishful-thinking-43110005f2a2/

全栈开发和web开发

THE END

发表回复