29

迈向全栈开发,程序员必须知道的19个框架和库

 4 years ago
source link: http://developer.51cto.com/art/202003/612922.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

全栈开发是程序员圈子中最炙手可热的话题之一,关于全栈应用程序开发需要掌握哪些技能的讨论从未间断过。全栈开发者是指具有综合能力的开发人员,他们掌握各种技能并使用这些技能来独立完成产品。

那么,程序员就需要了解各种堆栈流,包括移动堆栈,Web堆栈或本机应用程序堆栈。如果你是初学者,需要对编程语言有基本的了解,才能开始使用框架和库。在本文中,我们将讨论可用于创建商业用途的、功能全面的Web和移动应用程序的各种框架或库,也许有的已经位于你的常用堆栈序列,有的或可为你所用。

一、前端开发

如果仅需要某些Web组件的可重用性,则小型js库可能是你的最佳选择。随着前端的发展,库可以节省编程时间并有助于代码维护。当然,作为全栈应用程序开发人员,你不能忽略时间管理和代码的可伸缩性。

1. Mustache

当遇到复杂的项目时,你可能希望使用这个框架。大多数项目都需要在客户端加载HTML和JavaScript操作。例如,一家发展迅速的代理商,希望将新的服务或产品组合动态添加到你的应用中。可能想尝试安全地修改DOM,类和属性,以免其他组件自行移位。最好的办法是创建可放入任何项目或页面中的超轻DOM库。这就是Mustache JS库发挥作用的地方。

由于Mustache鼓励使用多种语言,因此我们在服务器端不需要单独的模板系统。

2. EJS

当你必须使用很多JavaScript输出HTML时,或者要处理动态内容时,或者提供与实时更新有关的内容时,EJS可能是最佳选择。

ymA3ieZ.jpg!web

3. HandleBars

如果通过REST API从服务器获得的数据增长很快,或者从客户端获得的数据增长很快,可使用HandleBars.js。

yU7Rjiz.jpg!web

现在,需要进行巨大的DOM操作才能实现更改。为了轻松管理HTML内容,你不需要JavaScript代码即可保留较大的HTML标记。一个好主意是保持JavaScript和HTML充分的分离,并使用客户端模板,因为它通常比服务器端模板执行得更快。

4. Svelte

代码越长,理解代码所需的精力就越大,并且出现错误的机会也就越高。任何有助于以更少的代码添加更多功能的工具,对于经验丰富的开发人员来说都是很好的助手。

ymq6F3e.jpg!web

Svelte是在构建步骤中向下编译组件的工具和框架。这样,你就可以在单个页面上加载每个组件以呈现你的应用程序。这意味着没有虚拟DOM,没有框架之上的框架,并且在运行时没有额外的负载。

二、服务器端渲染

众所周知,“JavaScript太多,你的应用程序加载就会缓慢。” 当应用同时接收大量流量时,情况更加糟糕。

现在,用户可没有更多时间等待应用程序长时间来加载。针对类似情况,开发人员可以使用服务器端的解决方案。有了这个概念,JavaScript应用程序就可以在服务器而不是浏览器上运行。

从技术上讲,应该在后端编程模板中实现这些库。这样,页面是在服务器端生成的,但是与页面的所有交互一旦加载,都将在客户端进行处理。

5. Next.js

Next.js使事情变得简单。尽管是客户端平台,React应用程序仍存在一些与在客户端上呈现所有内容有关的问题。与应用质量相关的突出因素之一是你遇到了SEO的问题。

EVn2Eny.jpg!web

尽管搜索引擎在运行和索引JavaScript应用方面变得越来越有能力,但是如果可以更进一步呢?使用Next.js后,可以在将HTML发送到客户端之前在服务器端呈现React组件。此外,Link用于将多个页面链接在一起的组件还支持prefetch道具,该道具隐藏地预读取页面资源。

6. Nuxt.js

如果你是Vue.js开发者,现在你应该可能已经发现了Nuxt.js。你可以将Nuxt.js用作Vue编程的堆叠层。它简化了通用或单页Vue应用程序的开发。那是Nuxt.js的独特卖点-创建通用应用程序的过程变得更加容易。JavaScript代码可以在客户端和服务器端执行。通用应用程序与单页应用程序(SPA)有关。

JBnmIvi.jpg!web

使用SPA,必须在服务器端和客户端都进行大量配置,Nuxt.js能解决Vue应用程序的瓶颈。这看起来很简单,让框架完成其在客户端和服务器之间共享代码的工作,然后你专注于应用程序的逻辑。

Nuxt.js的架构图如下:

Rb2uiaz.jpg!web

三、CSS框架和库

使用CSS框架的目的就是流畅,整洁地构造布局。

7. Semantic UI

Semantic UI在两个方面是独特的:—是获得结构化的布局,并且它使用五个描述性类别来定义可重复使用的UI组件。如果你能够以某种期望的方式操作组件的格式,那么将很快获得真正的效果,而不必为创建组件本身而进行编程。

u2uaYbF.jpg!web

另一个优点是,它不仅在命名类方面而且在命名,定义和描述其组件方面都有优势。其次,你将获得当代框架中不存在的各种现成的组件。例如,可以在UI Views组件中获得Feed和Comment,或者从UI Modules获得侧边栏和图形。

8. Bulma

Bulma是基于Flexbox构建的现代CSS框架。

9. Bootstrap

Bootstrap是专注于移动优先的开发者。当CDN或在本地下载库文件以使它们在HTML文件中排队时,就可以访问大量的预先编写的类和属性。要做的就是根据需要自定义它们。

四、后端开发

后端编程的一个典型示例是当你在博客上阅读文章时。字体,颜色,设计等构成了页面的前端。文章的内容是从服务器中提取的,并是从数据库中提取的,这就是应用程序的后端。如图所示:

FRRNb2r.jpg!web

10. Django

Django是高级Python Web框架,可促进干净的开发过程和实用的设计。以下是入门的基本要求:

  • Python(最新版本)
  • easy_install和Pip
  • Git
  • 虚拟环境
  • Django
  • 数据库(SQLite,MySQL,PostgreSQL,MongoDB等)
  • South(适用于1.7之前的Django版本)
  • 文本编辑器(Sublime,vim,Komodo,gedit)

QFnYfq6.jpg!web

easy_install和pip是Python包管理器。这些使安装和升级Python软件包以及软件包依赖关系变得更加简单。通过Python Package Index获取设置工具。找到packaged egg(.egg),然后直接从文件中安装。然后,对于版本控制,可能需要利用到Git。

11. Laravel

Laravel是一个基于PHP的框架,它表现力强,优雅。使用Laravel服务器管理不再是头疼的事。已经与DigitalOcean,Linode,Vultr和Amazon合作,以帮助你实现这一目标。所要做的就是提交Laravel forge。

2m2meub.jpg!web

诸如Artisan的CLI这样的功能,对多个数据库系统的支持以及迁移功能增加了框架的无缝性,使其在后端开发人员中倍受欢迎。此外,打包系统很强大,它具有多种支持软件或库,可帮助Web应用程序实现流程自动化。这样,可以加快开发速度以提供快速功能。Laravel带有一个称为Blade Template Engine的内置模板引擎。

所有这些使Laravel框架具有开箱即用的功能,并且适合于各种应用程序开发。

12. Android SDK

从技术上讲,它不是框架,而是完整的操作系统。它具有存储访问框架(SAF),使用户可以在其所有首选的文档存储提供程序中轻松浏览和打开文档,文件和其他图像。SDK中包含以下内容:

  • Android API:这部分构成了SDK的核心。该API是一堆库,可为开发人员提供对Android堆栈的访问权限,这些库与创建本机android应用程序的库相同。
  • 开发工具:为了将Android源代码转换为可运行的Android应用程序,SDK利用了一些开发工具。这些使你可以编译和调试Android应用程序。
  • Android模拟器:该仿真器具有许多其他外观,可以通过它们查看真实设备中应用程序的外观和行为。
  • 在线支持:可以利用Google网上论坛,通过Google Android开发团队的定期输入得到更新。

13. Phoenix

Phoenix框架与另一个Web开发工具Elixir结合使用,可提供最佳的后端体验,有助于构建具有高可用性,并发性和低延迟的解决方案。

MNvYfun.jpg!web

Elixir基于Erlang VM(BEAM),这使得Elixir和Phoenix都非常耐用。另外,语法确实变得清晰易读。此外,Phoenix最令人兴奋的部分之一是它使与数百万个已连接客户端之间以及彼此之间的软实时通信成为可能。有聊天室和用于消息以及更多内容的API。

14. Spring

如果查看下图的Edureka,则表明Spring具有一个分层的体系结构,该体系结构由具有其功能的不同模块组成。

zm6VfeY.jpg!web

创建Java应用程序的最佳选择。分层结构具有巨大的优势,可以有效地组织你的中间层对象。这使配置在整个应用程序中保持一致。

首先,必须创建一个Spring Boot,该Boot提供了一种快速的方式来创建可用于生产的基于Spring的应用程序。对于执行,所要做的就是构建一个bean类,在其中将显示最终输出,生成XML文件,主类,并加载少量jar文件。此外,可以考虑start.spring.io来组成一个基本项目。

15. Rails

Ruby on Rails与Twitter,Basecamp,Airbnb,Github等众多公司使用的框架相同。基础知识包括有关变量,控制流语句,循环,通过数据结构的数组以及其他类和对象函数的学习。

u2YFri7.jpg!web

当打算组成一个Rails应用程序时,并且要放弃配置和其他任务时,必须执行三个主要任务:

描述应用程序的模型:这可能是音乐商店,大学,地址簿或硬件清单。

确定此域可能发生的情况:这意味着使应用程序动态化,可以将地址添加到地址簿中,从音乐商店购买乐谱。

确定视图的公共可用性:这意味着为用户定制应用程序的页面视图。

16. Tornado

Python结构分为三部分:

  • 全栈框架,可为服务器和客户端提供开箱即用的功能。
  • Microframeworks,主要提供服务器端支持,有时还提供客户端支持。这样就可以仅使用一个Python文件来创建Web应用程序。
  • 异步框架,用于异步处理请求。

Tornado属于python框架的最后一类。

可以使用它来创建诸如Router或WebSockets的SocketHandler之类的应用程序。该文档非常清楚,可以利用它来构建下一个完整堆栈的移动应用程序。

17. Grails

Grails是一个受Groovy和Java启发的Web框架。开发人员可以将此框架部署到任何现有的Java Web服务器上,例如Tomcat或Jetty。关于grails的一件事很重要,那就是它采用了不合常规的方法,而不是通过配置思维。与使用XML文件之类的配置文件相比,这使应用程序可以根据命名方案自动连接自身。

五、数据库

18. MongoDB

如果想成为MEAN(MongoDB,Express,AngularJS和Node.js)的全栈开发人员,则需要学习一项非常需要的技术。作为开源跨平台的数据库,它将数据存储在键值对中。这就像在JSON中使用二进制数据类型一样。为了使你一目了然,MongoDB中的文档类似于OOPS中的对象。

如果要管理具有数百万个数据的大型表,MongoDB是最佳选择。使用MongoDB,可以仅使用一个库(例如JavaScript)来生成整个应用程序。

19. MySQL/MariaDB

创建播放列表时,就是在创建数据库。当拍摄照片并将其上传到网站时,图库就是在网站服务器上的数据库。当浏览电子商务网站以购买鞋子,衣服等时,正在使用购物车数据库。

MySQL是允许你管理关系数据的数据库。在我们的电子商务示例中,产品,类别,标签正在使用表格,并且与购物车数据库以及许多其他商品相关。那是数据库的实时程序。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK