引言
每年的数字化转型涵盖了越来越多不同的生活和业务领域。 如果企业想要提高竞争力,那么常规的信息站点已不再足够,则需要移动和Web应用程序,这些应用程序不仅可以向用户提供信息,还可以让您执行某种功能:接收或订购商品和服务,提供工具。

因此,例如,对于现代银行来说,拥有一个具有信息的网站是不够的,您需要为客户提供在线工具,一个个人帐户,用户可以在其中管理帐户,投资和贷款。 甚至小型企业也需要方便的工具,例如与医生或美发师约会,在餐厅或儿童游戏室预订餐桌作为生日,以提高转化率。
所有者自己需要根据公司的状态以方便的形式及时接收信息,例如,收集不同生产部门的统计数据和分析数据,或者部门的生产率。 通常,每个部门都以自己的方式收集这些数据,甚至可以使用不同的工具,并且所有者需要花费大量个人时间来间接或直接地解决所有问题,这可能会影响公司的效率并最终影响其利润。 数字转换和Web或移动应用程序开发也将对此有所帮助。
技术不会停滞不前,并且会不断发展,几年前使用的技术可能与今天无关,或者几年前无法使用的技术已经成为现实。 有更多现代工具可帮助您更快更好地创建Web和移动应用程序。 根据个人的观察和经验,我想就不久的将来将需要哪种技术和工具以及为什么在创建现代Web应用程序时要注意它们的问题分享我的看法。
单页申请
让我们定义一些术语。 单页应用程序(SPA)是一个Web应用程序,其组件一次加载到一页上,并且根据需要上载内容。 当在应用程序的各个部分之间切换时,页面不会完全重新加载,而仅加载数据并显示必要的数据。
单页应用程序在速度和可用性方面优于传统的Web应用程序。 使用SPA,您可以将网站作为桌面应用程序使用,而无需重新启动和明显的延迟。
如果几年前单页应用程序实际上不支持搜索引擎优化,并且主要用于创建个人仪表板和管理面板,那么今天,创建一个完全支持搜索引擎优化(SEO)的单页应用程序要容易得多。 在服务器渲染中使用单页应用程序,今天这个问题已经完全消失。 换句话说,这是同一个页面的应用程序,但是在第一个请求下,服务器不仅生成数据,还创建了一个准备显示HTML的页面,搜索引擎获得了具有所有元信息和语义标记的就绪页面。
随着用于创建客户端Web应用程序的工具的开发,在此后的几年中,开发和向单页应用程序的过渡只会增长。 如果您有一个过时且运行缓慢的旧应用程序,并且即使在各节之间切换时也可以完成整个页面的重新加载,那么今年您可以安全地更新到快速的一页应用程序-现在是个好时机,技术已经可以使您快速高效地完成此任务。
拥有一个现代化且快速的网站非常好,但是我想老实告诉您:并非所有的应用程序都可以轻松转换为单页应用程序,并且转换成本很高! 因此,您需要了解谁需要此过渡以及原因。
为了帮助您理解,在下表中,我将提供一些示例,说明何时开发和过渡到SPA是适当且合理的,什么时候不可行。
渐进式Web应用程序
渐进式Web应用程序是本机应用程序和网站共同发展的产物。 实际上,这是一个Web应用程序,其外观和行为类似于真正的本机应用程序,可以接收推送通知,脱机工作等。 在这种情况下,用户无需从AppStore或Google Play下载应用程序,而只需保存到桌面即可。
PWA作为一种技术或开发方法,自2015年以来一直在发展,最近在电子商务领域也得到了极大的普及。
一些现实生活中的例子:
- 去年,最佳西方河北酒店在启动了启用PWA的新网站之后,将收入提高了300%;
- 阿拉伯语Avito OpenSooq.com在其网站上创建了对PWA的支持后,其访问该网站的时间增加了25%,潜在客户数量增加了260%;
- 著名的约会服务商Tinder通过开发PWA能够将下载速度从11.91s降低到4.69s,此外,该应用程序的重量比其本机Android轻巧90%。
作为创建电子商务项目Magento的最大引擎之一,该公司在2018年推出了PWA Studio的早期开发版本,这也表明该技术值得关注。 该平台允许“开箱即用”为基于React的具有PWA支持的电子商务解决方案创建前端。
对那些已经拥有Internet项目或仅对支持移动设备的新服务有想法的人的建议:不要急于编写完整的本机应用程序,而是先了解PWA技术。 也许这将是您产品的最佳价格/质量比解决方案。
有点练习。 要创建一个简单的本地移动新闻应用程序,只要已经有现成的REST服务器,则每个平台大约需要200-300个工时。 每小时开发的平均市场价格为每小时1,500-2,000卢布,一个应用程序的成本约为100万卢布。 如果您开发的Web应用程序完全支持PWA:推送通知,脱机模式和其他功能,则开发将花费200-300个工时,但是该产品将立即在所有平台上可用。 也就是说,节省了大约2倍,更不用说您无需支付任何费用即可放入应用程序商店。
无服务器
这是另一种现代发展方式。 由于名称的原因,许多人认为这实际上是无服务器开发,您不需要编写后端代码,任何前端开发人员都将能够制作出完整的Web应用程序。 但是事实并非如此!
创建无服务器应用程序时,仍然需要服务器,数据库也仍然需要。 这种方法之间的主要区别在于,后端代码以云功能的形式(无服务器的另一个名称是FaaS,功能即服务或功能即服务)来表示,并允许应用程序快速轻松地扩展。 在创建这样的应用程序时,开发人员可能会专注于业务任务,而不考虑扩展和配置基础结构,从而加速了应用程序开发并降低了成本。 此外,无服务器方法将有助于节省服务器租金,因为它使用的资源与完成任务所需的资源完全相同,并且如果没有负载,则根本不会使用服务器时间,也不会支付任何时间。
例如,大型美国媒体公司Bustle在切换到Serverless时能够将托管成本降低60%以上。 可口可乐在开发一种通过自动售货机销售饮料的自动化系统的同时,通过改用Serverless,可以将托管成本从每年13,000美元降低到4,500美元。
在过去的几年中,由于其新颖性和局限性,Serverless主要用于小型项目,初创企业和MVP,但是如今,由于软件的发展,服务器容器化的多功能性和强大功能,出现了可让您消除限制,简化并加速云应用程序开发的工具。
这意味着以前认为无法进行云升级(例如,对于外围设备,传输的数据或有状态的应用程序)的公司业务场景现在已成为现实。 很有前途的工具是kNative和无服务器企业。
但是,尽管如此,Serverless并不是开发Web应用程序的灵丹妙药。 像其他任何技术一样,它也有其优点和缺点,您需要选择具有理解力的工具,并且“不要用显微镜敲钉子”,因为它是技术上更先进的工具。
为了帮助您弄清楚,以下是一些示例,您在开发新的或改进现有的Web服务时应考虑无服务器:
- 如果服务器上的负载是周期性的,您需要支付空闲容量。 例如,我们有一个带有咖啡机网络的客户,有必要每天仅处理数百次或数千次请求并收集统计信息,而在晚上,请求数量下降到几十个。 在这种情况下,仅支付资源的实际使用效率会更高,因此我们在Serverless上提出并实施了该解决方案。
- 如果您不打算深入研究基础架构的技术细节,并为服务器和平衡器的配置和支持多付钱。 例如,在开发市场时,您不确切知道流量是多少,反之亦然-您计划了很多流量,因此您的应用程序可以承受负载,因此Serverless是绝佳的选择。
- 如果有必要在主应用程序的操作中执行一些流事件,请将辅助数据写入表中,然后执行一些计算。 例如,要收集用户操作的分析数据,以某种方式进行处理并将其保存到数据库中;
- 如果您需要简化,统一或加速当前应用程序。 例如,当用户将视频上传到云时,创建用于提高性能的服务以处理图像或视频,并且在转码中涉及单独的功能,而主服务器则继续照常工作。
如果您需要处理来自第三方服务的事件。 例如,处理来自支付系统的响应,或将用户数据重定向到CRM,以加快处理潜在客户的请求的速度
如果您有一个大型应用程序,并且使用与主要语言不同的一种语言,则可以更好地实现应用程序的某些部分。 例如,您有一个Java项目,需要添加新功能,但是没有腾空的手,或者使用这种语言,实现可能会花费更长的时间,并且已经有了另一种语言的解决方案,那么Serverless可以提供帮助。
这并不是值得关注的全部工具和技术,我只是分享了我们自己每天在工作中使用的工具,并且确切地知道它们如何帮助业务。