系统应用 框架应用
Somewhere in your home you most likely have a toolbox with different tools for when something breaks (such as a screwdriver, a hammer, a measuring tape, and so on). You may not need any of the tools for a while, but sooner or later you’ll need them for solving a specific problem. These tools will save you some time and money.
在你的家里omewhere你最有可能有不同的工具,工具箱时,东西坏了(如螺丝刀,锤子,卷尺,等等)。 您可能会暂时不需要任何工具,但是早晚需要使用它们来解决特定问题。 这些工具将为您节省一些时间和金钱。
In programming, a framework provides the same benefits as a toolbox. It contains handy tools to speed up the development process, especially as most projects come with a tight budget and limited time. The definition of a framework is “a platform for developing software applications… A framework may include predefined classes and functions, guidelines, and structure to make it easier to work with software.” Having a framework that solves common software problems makes you a happy developer as it allows you to focus on adding features (rather than on building things from scratch).
在编程中,框架提供与工具箱相同的好处。 它包含方便的工具以加快开发过程,特别是在大多数项目预算紧张且时间有限的情况下。 框架的定义是“用于开发软件应用程序的平台。框架可以包括预定义的类和功能,准则和结构,以使其更易于使用软件。” 拥有可以解决常见软件问题的框架,使您成为快乐的开发人员,因为它使您可以专注于添加功能(而不是从头开始构建东西)。
Do you need to build a dashboard app to show data in real-time, an endpoint that serves multiple devices, or a mobile app that supports cross-platform? With some time and research, you will most likely find a framework that does the trick for all three.
您是否需要构建一个仪表板应用程序以实时显示数据,为多个设备提供服务的端点或一个支持跨平台的移动应用程序? 经过一段时间的研究,您很可能会找到一个可以解决这三个问题的框架。
什么是框架,为什么我们需要它? (What is a framework and why do we need it?)
The purpose of a framework is to provide generic functionality, structure, and guidelines to build high-quality software. Not every framework makes your life easier, some are pains to work with due to lack of documentation and structure. However, the majority of frameworks are built to simplify things for you. Say for example you need to retrieve a list of employees from a database and you are not sure how to do it. A framework will most likely have some guidelines or tips on how to do this. You can also find documentation or watch online courses that take you deeper into the subject.
框架的目的是提供通用功能,结构和准则,以构建高质量的软件。 并非每个框架都会使您的生活更轻松,但由于缺乏文档和结构,因此有些工作困难。 但是,大多数框架都旨在为您简化事情。 举例来说,您需要从数据库中检索员工列表,但不确定如何操作。 一个框架很可能会有一些指导或技巧。 您还可以找到文档或观看在线课程,从而使您更深入地了解该主题。
Some examples of frameworks used today are Angular, React, VueJS, ASP.NET. These frameworks provide a variety of nice features to help you build flexible and maintainable apps. For example, a typical web framework such as Angular supports features like adding components, data-binding for real-time changes, state management, navigation, and other useful things that would take some time to do with just plain JavaScript (JS).
今天使用的一些框架示例是Angular,React,VueJS,ASP.NET。 这些框架提供了许多不错的功能,可帮助您构建灵活且可维护的应用程序。 例如,典型的Web框架(例如Angular)支持的功能包括添加组件,实时更改的数据绑定,状态管理,导航以及其他仅使用普通JavaScript(JS)便需要一些时间的有用功能。
如何选择框架 (How to pick a framework)
I worked in a company that picked a framework based on popularity. The framework they picked was Angular which was not a bad choice, but the criteria for the selection were based on weak factors. So we started learning Angular, spending time understanding how things worked, and learning the best practices for building an enterprise application. We were taught that having some basic experience in web languages such as HTML, CSS, JS would make it easier to quickly learn the framework. Unfortunately, this was not the case.
我在一家根据流行度选择框架的公司工作。 他们选择的框架是Angular,这不是一个坏选择,但是选择的标准是基于弱因素。 因此,我们开始学习Angular,花时间了解事物的工作原理,并学习构建企业应用程序的最佳实践。 我们被告知,具有一些诸如HTML,CSS,JS之类的网络语言的基本经验将使快速学习框架变得更加容易。 不幸的是,事实并非如此。
A framework is not just a framework, it forces you to follow some guidelines and structure to fully utilize the features it provides.
框架不仅是框架,它还会迫使您遵循一些准则和结构,以充分利用其提供的功能。
While learning Angular, we realized that we had no idea what the customer really needs; we were so busy finding a popular framework that we overlooked the interests of the person responsible for our paycheck. Additionally, we had no design prototypes (sketches), nor requirements that described what features were needed to build an app that satisfied the customer. In the end, we spent the majority of time testing out concepts and features of the framework rather than building a robust app. As a result, the project was stopped because we exceeded the resources that were predefined for the project.
在学习Angular时,我们意识到我们不知道客户真正需要什么。 我们忙于寻找一个受欢迎的框架,以至于忽略了负责薪资的人的利益。 此外,我们没有设计原型(草图),也没有描述构建满足客户需求的应用程序需要哪些功能的要求。 最后,我们花了大部分时间来测试框架的概念和功能,而不是构建强大的应用程序。 结果,该项目被停止,因为我们超出了为该项目预定义的资源。
It is important that factors like how much time is spent on learning a framework and what features it provides are taken into account. It would have been better if we had had someone on the team who had experience with Angular, allowing us to spend less time in the learning phase and more time testing out the app we were building.
重要的是要考虑诸如花费多少时间来学习框架及其提供的功能等因素。 如果我们的团队中有人拥有Angular的经验,那就更好了,这使我们可以在学习阶段花费更少的时间,而将更多的时间用于测试我们正在构建的应用程序。
当已经为您选择了框架时 (When a framework is already picked for you)
In some cases, developers may not be the ones deciding a framework — rather this choice goes to the customer or someone that has little or no experience with programming. I’ve seen, heard, and unfortunately experienced places where a framework is picked for you based on vague criteria. As a result, we need to spend some time learning the new framework which may be doing the same thing as a framework that you already have experience with. In any case, it should not be normal to have someone pick what tools you should use to get the job done.
在某些情况下,开发人员可能不是决定框架的人-而是将选择权交给客户或很少或没有编程经验的人。 我见过,听过和不幸地经历过一些基于模糊标准为您选择框架的地方。 因此,我们需要花一些时间来学习新框架,该新框架可能会与您已有的框架做同样的事情。 无论如何,让某人选择应该使用哪些工具来完成工作是不正常的。
It’s your job to provide the person with the knowledge required to pick the correct framework. Just saying I want to work with “Framework X” because it is my favorite is not enough. Rather, justifying the selection of your framework by explaining how it compliments that end goal makes you sound more professional and respected as a programmer.
为人员提供选择正确框架所需的知识是您的工作。 仅仅说我想使用“ Framework X”是不够的,因为这是我的最爱。 相反,通过解释框架如何满足最终目标来证明选择框架的合理性,使您听起来更加专业并且被程序员尊敬。
摘要 (Summary)
So, when choosing a framework, make sure to look at the documentation and the community behind the framework (as you’ll most likely need some help solving future problems). If you are building a web application,I would personally suggest that you go for a monolithic framework that has easy-to-understand documentation, and that solves typical programming challenges such as handling forms, data-binding, state changes, routing, UI components, and so forth.
因此,在选择框架时,请确保查看框架背后的文档和社区(因为您很可能需要一些帮助来解决未来的问题)。 如果要构建Web应用程序,我个人建议您选择一个具有易于理解的文档的整体框架,并解决典型的编程挑战,例如处理表单,数据绑定,状态更改,路由,UI组件等等。
A framework that provides many ways of doing something typically relies on third-party packages, which is not something that I would suggest especially when working in a team where time and budget are limited. This way we avoid working in a team where everyone has an image of how things should be done and rather focus on the work ahead to build a satisfying app.
一个提供多种执行方式的框架通常依赖于第三方程序包,我不建议这样做,特别是在时间和预算有限的团队中工作时。 这样,我们避免在每个人都有应该如何做的形象的团队中工作,而是专注于构建令人满意的应用程序的未来工作。
In general, we have thousands of frameworks to pick for our next project. It is important that we do some thinking so that the framework we select can help us solve the challenges associated with customer requirements.
通常,我们为下一个项目选择了数千个框架。 重要的是,我们必须做一些思考,以便我们选择的框架可以帮助我们解决与客户需求相关的挑战。
Just picking a framework because it has the highest popularity, or because developers feel most comfortable with it, is not a good decision. There is no ultimate answer to find the perfect framework, but making sure to do your homework and selecting the best framework candidate for the job will make your life a lot easier and the end result superior.
仅选择一个框架是因为它具有最高的知名度,或者是因为开发人员对它最满意,所以这不是一个好决定。 找到完美的框架并没有最终的答案,但是确保做好功课并为工作选择最佳的框架候选人将使您的生活更加轻松,最终结果更加出色。
翻译自: https://codeburst.io/how-to-choose-a-framework-for-your-next-app-cf8744b71a63
系统应用 框架应用