系统在此应用程序堆栈溢出_Web应用程序:在开始之前选择正确的技术堆栈

系统在此应用程序堆栈溢出

You have a great online business idea along with investors and a team ready to get behind your plan. You are looking for a software development company to build a minimum viable product (MVP) to showcase your business goal. The successfulness of your MVP will affect how you place yourself in the market. As a business professional, you know a business application will boost your growth.

您和投资者以及一个随时准备支持您的计划的团队一起,都有一个很棒的在线业务构想。 您正在寻找一家软件开发公司来构建最低可行产品(MVP),以展示您的业务目标。 MVP的成功将影响您如何进入市场。 作为业务专业人员,您知道业务应用程序将促进您的增长。

Yet, sometimes business dexterity may not always cover technicalities in putting a business on the Internet. This is especially the case in the development and construction of an app. Regardless, businesses must strive to learn as much about the online world as possible. Hence, when aiming for an app, they should be discussing questions like:

但是,有时业务敏捷性可能并不总是涵盖将业务放在Internet上的技术。 在开发和构建应用程序时尤其如此。 无论如何,企业必须努力学习尽可能多的有关在线世界的知识。 因此,在开发应用程序时,他们应该讨论以下问题:

  • What technology stack is the best?

    哪种技术堆栈最好?
  • Which language will the software development company use? Why?

    软件开发公司将使用哪种语言? 为什么?

  • Are there more options or alternatives? Why this?

    还有更多选择或替代方案吗? 为什么这个?

In this article, the discussion will be on technology stacks. Here I will discuss what businesses must consider when choosing web application development. Aimed at entrepreneurs and businesses, the discussion will guide to the perfect software framework for a product.

在本文中,讨论将在技术堆栈上进行。 在这里,我将讨论企业在选择Web应用程序开发时必须考虑的事项。 该讨论针对企业家和企业,将指导产品的完美软件框架。

Web应用程序中的技术堆栈是什么? (What Is A Technology Stack In Web Application?)

There are always two sides of a technology stack in web development: the client-side and the server-side. The client-side is everything that the client and their customers would see when they would use the application. This relates to everything from the front-end, to design, the UI UX, and responsiveness. In short, it is all about HTML, CSS and JavaScript. These all combine to create an experience for users when they interact with your web product.

Web开发中技术堆栈总是有两个方面: 客户端服务器端客户端是客户端及其客户在使用应用程序时将看到的所有内容。 这涉及从前端到设计,UI UX和响应性的所有内容。 简而言之,它全都涉及HTML,CSSJavaScript 。 当用户与您的Web产品进行交互时,所有这些都可以为用户创造一种体验。

The server-side is everything that end users cannot see; it’s happening in the background. The server-side is what powers the application as a whole. It consists of major app development components like programming languages, database system, and the server.

服务器端是最终用户看不到的所有内容。 它在后台发生。 服务器端是整个应用程序的动力。 它由主要的应用程序开发组件组成,例如编程语言,数据库系统和服务器。

The programming language creates a logic and database stores all data collected from users. The server is what powers web-based applications, a general design for any app. There are many types of languages, like Java, Python, PHP, and Ruby. There are many databases as well, like MySQL, PostgreSQL, and MongoDB. For servers, some of the most popular choices include IBM Server, Apache Tomcat, and Nginx. The web application team must be well aware of what they choose as all are great at specific tasks.

编程语言创建逻辑,数据库存储从用户收集的所有数据。 服务器是为基于Web的应用程序提供动力的工具,它是任何应用程序的通用设计。 有很多类型的语言,例如JavaPythonPHPRuby 。 还有许多数据库,例如MySQLPostgreSQLMongoDB 。 对于服务器,一些最受欢迎的选择包括IBM ServerApache TomcatNginx 。 Web应用程序团队必须充分了解他们的选择,因为所有人都擅长于特定任务。

This is like ordering food from a restaurant. The restaurant ambience, service, and food are all front-end. The chef’s team cooking at the back, management staff and the equipment are all server-side. While some may argue that back-end is more important than the front-end, it is better to say that one cannot exist without the other. Hence, the restaurant business is a perfect example to prove this.

这就像从餐厅订购食物。 餐厅的氛围,服务和食物都是前端。 后面的厨师团队,管理人员和设备都在服务器端。 尽管有些人可能认为后端比前端更重要,但最好说一个没有另一个就不可能存在。 因此,餐饮业是证明这一点的完美例子。

前端侧 (The Front End Side)

The front-end interaction either takes place in a web browser or a web-based mobile app. The front-end web development structures page design. It accounts for how a web page will deal and conform to the business logic. Usually, the developers may use the following components to work on design:

前端交互可以在Web浏览器或基于Web的移动应用程序中进行。 前端Web开发结构页面设计。 它说明了网页将如何处理和符合业务逻辑。 通常,开发人员可能会使用以下组件来进行设计:

  • HTML

    HTML

Hypertext Markup Language (or HTML) is great for developing web content layout and structure. The latest version, HTML5, provides video and audio support along with other elements to produce wonderful web apps. HTML5 is cheaper, faster, more ‘modern’ and mobile-friendly.

超文本标记语言(或HTML)非常适合开发Web内容的布局和结构。 最新版本HTML5提供视频和音频支持以及其他元素,以产生出色的Web应用程序。 HTML5更便宜,更快,更“现代”且对移动设备友好。

  • CSS

    CSS

Cascading Style Sheets (or CSS) works in connection with HTML. Its latest version, CSS3, holds advantages in responsiveness, colours, and alignment. From looks to feel to formatting styles, fonts, animations and colours, CSS has proven to be very handy for developers. In short, the language determines the aesthetics of a web page.

级联样式表(或CSS)可与HTML结合使用。 它的最新版本CSS3在响应速度,颜色和对齐方式方面具有优势。 从外观到格式样式,字体,动画和颜色,CSS已经证明对开发人员非常方便。 简而言之,语言决定了网页的美观。

  • JavaScript

    JavaScript

Javascript (or JS) is one of the most popular languages according to StackOverflow Developer Survey 2019. The reason is that front-end and back-end developers, both, can use it for their work. In the front-end, JS creates dynamic and interactive features in web applications. Whereas, in the backend, developers use its type, Node.Js which enables data update from frontend and build scalable network apps.

根据StackOverflow开发人员调查 2019, Javascript(或JS)是最受欢迎的语言之一。原因是前端和后端开发人员均可将其用于工作。 在前端,JS在Web应用程序中创建动态和交互式功能。 而在后端,开发人员使用其类型Node.Js,它可以从前端更新数据并构建可扩展的网络应用程序。

后端侧 (Back End Side)

The server-side is a powerful side of any web application. It is also an invisible side as far as mentioned earlier. Let’s look at its major components:

服务器端是任何Web应用程序的强大功能。 就像前面提到的那样,它也是看不见的一面。 让我们看一下它的主要组成部分:

Programming Language

程式语言

This is a basic tool that developers need to build a web application. This is like writing a script with a pencil, but it matters what sort of a pencil a developer uses to write. Several types of languages ensure that the developers have the freedom to write any kind of code for applications. Each programming language comes with its pros and cons, and popularity. For example, StackOverflow survey concludes that Python is the most popular in ‘most loved’ and ‘most wanted’ categories.

这是开发人员构建Web应用程序所需的基本工具。 这就像用铅笔写脚本一样,但是开发人员使用哪种铅笔书写却很重要。 几种类型的语言可确保开发人员可以自由地为应用程序编写任何类型的代码。 每种编程语言都有其优点和缺点以及受欢迎程度。 例如,StackOverflow调查得出的结论是,Python在“最受欢迎”“最想要”类别中最受欢迎

Some examples of languages include TypeScript, Kotlin, Go, C# and SQL.

语言的一些示例包括TypeScriptKotlinGoC#SQL

Database

数据库

The database is exactly what it means: a place for storing all data related to the product and its users. Users’ interactions with the product, the information they enter, and everything else is all recorded in databases. There are several types of databases, each with their perks and benefits. You may encounter some of the following:

数据库的确切含义是:一个用于存储与产品及其用户有关的所有数据的地方。 用户与产品的交互,他们输入的信息以及其他所有信息都记录在数据库中。 数据库有几种类型,每种都有其优势和好处。 您可能会遇到以下情况:

  • NoSQL Database (like MongoDB, Apache Cassandra and Oracle)

    NoSQL数据库(如MongoDB,Apache Cassandra和Oracle)

  • Object-Oriented Database (like Smalltalk, LISP and COP)

    面向对象的数据库(如Smalltalk,LISP和COP)

  • Relational Database (like MySQL, Microsoft Access, and PostgreSQL)

    关系数据库(如MySQL,Microsoft Access和PostgreSQL)

  • Cloud Database (like Amazon Relational, IBM Db2, and Google Cloud)

    数据库(如Amazon Relational,IBM Db2和Google Cloud)

Web Server

网络服务器

This is server software that runs apps by processing user requests. Apache Tomcat and Nginx are some of the renowned examples. Whereas, Mongrel, Mongoose and HTTP File Server are a few others.

这是通过处理用户请求来运行应用程序的服务器软件。 Apache Tomcat和Nginx是一些著名的示例。 而MongrelMongooseHTTP File Server是其他一些。

Web Framework

网络框架

A web framework is a software equipped with sets of tools to support web and software projects. Its design supports web services, resources, and Application Programming Interfaces (APIs). Modern examples of frameworks include Django, Ruby on Rails (RoR), Angular, Laravel, and Express.Js.

Web框架是一种配有工具集的软件,以支持Web和软件项目。 它的设计支持Web服务,资源和应用程序编程接口(API) 。 框架的现代示例包括DjangoRuby on Rails(RoR)AngularLaravelExpress.Js

选择技术堆栈时要考虑的重要标准 (Important Criteria To Consider While Choosing A Tech Stack)

Unsplash 飞溅

When researching which tech stack is the most suited for your web application, there are a few criteria that you must consider. In all these, one thing that will remain constant is the need to develop a mobile application alongside.

在研究哪种技术堆栈最适合您的Web应用程序时,您必须考虑一些标准。 在所有这些方面,将保持不变的一件事是需要同时开发移动应用程序。

Hootsuite 2018 report suggests that mobile applications are the new trend. They reported that over 52% of the web traffic came from mobile phones. Can your business let go of such a huge percentage of potential users?

Hootsuite 2018报告表明移动应用是新趋势。 他们报告说, 超过52%的网络流量来自手机 。 您的企业可以放开这么大比例的潜在用户吗?

项目复杂性和规范 (Project Complexity And Specification)

You can think of this as having three levels: simple, medium and complex. Examples of a simple web application project would be a one-page website or a small online store. These projects do not need advanced coding and software development experience. In some cases, a CMS, like WordPress and Wix, is all that’s needed to create products for businesses.

您可以认为它具有三个级别:简单,中等和复杂。 一个简单的Web应用程序项目的示例是一页的网站或小型的在线商店。 这些项目不需要高级编码和软件开发经验。 在某些情况下,CMS(如WordPress和Wix)是为企业创建产品所需的全部。

Medium-sized projects could be larger eCommerce online stores or healthcare applications. These projects need API builds, frameworks and a complete team to create a perfect model for a client having a large pool of users.

中型项目可能是较大的电子商务在线商店或医疗保健应用程序。 这些项目需要API构建,框架和完整的团队,才能为拥有大量用户的客户创建理想的模型。

Finally, advanced projects consist of fintech software applications or social media networks. Here, the development team will need large teams of software developers and experts. Developers adept in different programming languages are a preference. Processing loads, ability to share/upload audio/video files, responsiveness and latency issues will be in consideration during development.

最后,高级项目由金融科技软件应用程序或社交媒体网络组成。 在这里,开发团队将需要大型的软件开发人员和专家团队。 精通不同编程语言的开发人员是首选。 在开发过程中,将考虑处理负载,共享/上传音频/视频文件的能力,响应性和延迟问题。

Here, each level of project complexity has different requirements. From manpower, to project time and cost. You must adjust your budgeting accordingly.

在这里,项目复杂性的每个级别都有不同的要求。 从人力,到项目时间和成本。 您必须相应地调整预算。

讨论业务目标 (Discuss Business Goals)

Before embarking on the development side of your web app, ensure that the technology stack aligns with your business goals. One example is when you are looking for growth, choose a stack that is scalable and easy to update. Think about the benefits your online app can provide and what kind of impact it can create. If business growth is an expectation, can your servers and databases handle the increased inflow of users?

开始进行Web应用程序的开发之前,请确保技术堆栈符合您的业务目标。 一个例子是,当您寻求增长时,选择可伸缩且易于更新的堆栈。 考虑一下您的在线应用程序可以提供的好处以及它可以产生什么样的影响。 如果可以预见业务增长,那么您的服务器和数据库是否可以处理增加的用户流入?

Next, always remember that all applications are prone to bugs and errors at some point in their life. That is why maintenance, updates and optimization is a big part of software development. Make sure that your testing framework is in top ranks, like Selenium or Robot.

接下来,请始终记住,所有应用程序在其生命中的某个时刻都容易出现错误和错误。 因此,维护,更新和优化是软件开发的重要组成部分。 确保您的测试框架处于最高水平,例如SeleniumRobot

Finally, as recommended by the software community, do not compromise on security. Utilizing the Internet might be a great strategy, but it also harbours great threats. Attacks on user data, servers and other components are common nowadays. Technology might not be 100% safe, but businesses can avoid huge losses.

最后,按照软件社区的建议,请不要牺牲安全性。 利用互联网可能是一个不错的策略,但是它也蕴藏着巨大的威胁。 如今,对用户数据,服务器和其他组件的攻击非常普遍。 技术可能不是100%安全的,但是企业可以避免巨大的损失。

Take it from the experts:

从专家那里得到:

IBM Study reveals that companies with less than 500 employees have suffered data breach losses of up to $2.5 million on average. Even crippling some of them.

IBM研究显示, 员工人数少于500人的公司 平均遭受的数据泄露损失平均高达250万美元 。 甚至残废其中一些。

Web应用程序中的时间范围 (Time Frame In Web Application)

“Time is of an essence”, we all have heard that. In web application projects, this is relatable. Larger applications taking months to release considerably add to the cost of development. Generally, businesses want quick delivery of products. Some even resort to launching MVP and then continue to build through updates. The following are some of the questions that you must ask when beginning:

“时间至关重要” ,我们都听说过。 在Web应用程序项目中,这是相关的。 大型应用程序要花费数月才能发布,因此大大增加了开发成本。 通常,企业希望快速交付产品。 有些甚至诉诸于启动MVP,然后继续通过更新进行构建。 以下是开始时必须问的一些问题:

  • Can the tech stack integrate third-party apps?

    技术堆栈可以集成第三方应用程序吗?
  • Is the tech stack popular enough that you have enough expert developers working on this?

    技术堆栈是否足够流行,以至于您有足够的专家开发人员从事此工作?
  • What about open-source libraries? Do you have access to them?

    那么开源库呢? 您可以访问它们吗?
  • Is writing code using that stack complicated/difficult/time-consuming?

    使用该堆栈编写代码是否复杂/困难/耗时?

Tech stacks that fare better than others in such questions are generally what you may want to choose.

在这些问题上表现最好的技术堆栈通常是您可能想要选择的。

Web应用程序开发的成本 (Cost of Web Application Development)

Take this as a summary of the discussion above. When forming a budget, consider the following:

以此作为以上讨论的总结。 制定预算时,请考虑以下因素:

  • The time a web application takes to release,

    网络应用发布所需的时间,
  • The cost of maintenance and bug fixes,

    维护和错误修复的成本,
  • The cost of hiring experts,

    聘请专家的费用,
  • The type of framework, programming language, and other stack options you choose.

    您选择的框架类型,编程语言和其他堆栈选项。

Generally, if a language is new or trending (for example, Python), its developers will charge more for less. You must be ready to shift to alternate options, like moving to PHP if Python is expensive. Finally, once you release your product, make plans for its quality maintenance in the coming months as well.

通常,如果一种语言是新语言或流行趋势(例如Python) ,则其开发人员将以更低的价格收取更多费用。 您必须准备好切换到其他选项,例如,如果Python昂贵,则转向PHP。 最后,发布产品后,还要计划在未来几个月内进行质量维护。

项目路线图 (Project Roadmapping)

Revolutionary ideas need Time To Market (TTM). In software development, TTM is important when choosing a tech stack. This is a major consideration for small businesses and startups. In short, the faster you develop and release your product the more time you will have to promote it in the market.

革命性的想法需要上市时间(TTM) 。 在软件开发中,选择技术堆栈时,TTM很重要。 这是小型企业和创业公司的主要考虑因素。 简而言之,您开发和发布产品的速度越快,您将有更多的时间在市场上推广它。

Technologies Used To Build Airbnb App 用于构建Airbnb应用程序的技术

In such a scenario, open-source libraries are better than the closed ones. you choose a stack that supports third-party integrations so you don’t have to write every code line yourself. choosing a popular technology is better than using a new one since it will have more experts around you.

在这种情况下,开源库要比封闭库好。 您选择支持第三方集成的堆栈,这样就不必自己编写每行代码。 选择一种流行的技术要比使用一种新的技术更好,因为它将有更多的专家在您身边。

热门网站使用的技术堆栈 (Tech Stacks Used By Popular Websites)

Technologies Used To Build Quora 用于构建Quora的技术

Let’s take a look at what some of the most popular online brands chose for themselves:

让我们看看一些最受欢迎的在线品牌为他们自己选择了什么:

  • Airbnb

    爱彼迎

Airbnb is one of the world’s largest hospitality service providers. It helps millions of people rent apartments and book lodgings. It registered a revenue of $ 2.6 billion back in 2017.

Airbnb是全球最大的酒店服务提供商之一。 它可以帮助数百万人租用公寓和预订住宿。 它在2017年的收入为26亿美元。

  • Quora

    Quora

Technologies Used To Build Pinterest 用于建立Pinterest技术

Quora is an American question-and-answer social media platform. Here, people find answers to their queries, while others respond to queries. The online platform enjoyed a revenue of $ 20 million in 2018.

Quora是美国的问答式社交媒体平台。 在这里,人们可以找到他们的查询的答案,而其他人则可以回答查询。 该在线平台在2018年的收入为2000万美元。

  • Pinterest

    Pinterest

Pinterest is an image-sharing social media network. Over the years it has become a great referral platform for B2C and B2B. It portrays information on the Internet in a very interactive and engaging form.

Pinterest是一个共享图像的社交媒体网络。 多年来,它已成为B2C和B2B的绝佳推介平台。 它以非常互动和引人入胜的形式在Internet上描绘信息。

Technologies Used To Build Facebook 用于建立Facebook的技术
  • Facebook

    脸书

the world’s largest social media network by the famous Mark Zuckerberg. It hosts more than 2 billion active users every month and registered a revenue of more than $ 70 billion.

著名的马克·扎克伯格(Mark Zuckerberg)打造的全球最大社交媒体网络。 它每月拥有超过20亿活跃用户,注册收入超过700亿美元。

结论 (Conclusion)

The long term success of your web application is dependent upon the kind of tech stack you choose during the development phase. It is always good to ask as many questions as you can and then proceed to find their answers. While the above examples have their own stacks, some renowned ready-made options are also present. These are:

Web应用程序的长期成功取决于您在开发阶段选择的技术堆栈类型。 总是问尽可能多的问题,然后继续找到他们的答案,这总是好事。 尽管上面的示例有自己的堆栈,但也提供了一些著名的现成选项。 这些是:

  • LAMP Stack (Linux, Apache, MySQL, PHP/Python/Perl)

    LAMP堆栈(Linux,Apache,MySQL,PHP / Python / Perl)

  • MEAN Stack (MongoDB, ExpressJS, AngularJS, NodeJS)

    MEAN堆栈(MongoDB,ExpressJS,AngularJS,NodeJS)

  • MERN Stack (MongoDB, ExpressJS, React, NodeJS)

    MERN堆栈(MongoDB,ExpressJS,React,NodeJS)

  • MEVN Stack (MongoDB, ExpressJS, VueJS, NodeJS)

    MEVN堆栈(MongoDB,ExpressJS,VueJS,NodeJS)

  • .NET Stack (ASP.NET, WCF, WebAPI, Microsoft SQL Server, etc).

    .NET堆栈(ASP.NET,WCF,WebAPI,Microsoft SQL Server等)。

You can compile your own stack, all depending on what is the perfect fit for your business, your product and the resources you have. As always, time, budget and the available intellectual resource can be a deciding factor.

您可以根据自己的业务,产品和所拥有的资源,完美地编译自己的堆栈。 与往常一样,时间,预算和可用的智力资源可能是决定性因素。

翻译自: https://medium.com/@talha.w29/web-application-choosing-the-right-technology-stack-before-you-start-d9a273eddd45

系统在此应用程序堆栈溢出

你可能感兴趣的