博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己开发框架和用开源的框架_每个应用程序开发人员都应该知道的5大开源框架
阅读量:2527 次
发布时间:2019-05-11

本文共 2936 字,大约阅读时间需要 9 分钟。

自己开发框架和用开源的框架

软件已经吞噬了世界 。 但是开发人员对软件的看法有所不同。 就我们 ,我们 。 随着问题变得越来越大,解决方案变得更加复杂,务实的(而不是过于泄漏的)抽象比以往任何时候都变得更加重要。

结果:从注重生产力的开发人员的角度来看, 框架正在吞噬整个世界。 但是,哪些人正在吞食世界上哪些地区?

考虑到可用的一流开放源码框架的疯狂变化,我不是从单个排名而是从堆栈的各个级别中选出了2015年排名前5位的开放源代码框架。 (对于前端,我专注于Web以及更狭窄的是真正的客户端框架,这是因为浏览器和移动设备的功能越来越强大,并且SPA [单页应用程序]等避免了通过不必要的电线。)

1.演示:引导程序

让我们从堆栈的顶部开始:表示层,开发人员和我们共同接触的东西。 在这里,明显的赢家仍然是 。 该 以及诸如类的新产品。 Bootstrap主导了使用趋势,在GitHub上,它仍然很容易成为 和 。

而且Bootstrap仍在积极开发中。 8月,Bootstrap推出了第 ,庆祝了它的第四个生日,这是对已经强大的功能集的 。 更新的要点:一切都变得更具编程性。 Bootstrap从Less转移到Sass,将所有HTML重置集中在一个模块中,将样式自定义的负载直接扔到Sass变量中,并对所有JavaScript插件进行ES6标准化。 该团队甚至启动了 ,以补充已经庞大的 。

2. Web MVC:AngularJS

随着Web平台的不断 ,开发人员享受着与仍标记了颜色的DOM精心设计的抽象距离。 通过XMLHttpRequest的开始工作达到其在现代单页面应用程序(水疗)天顶,以及 迄今为止SPA框架 。

AngularJS有什么特别之处? 一言以蔽之: 。 只需一点点ng-就可ng- (动态,JavaScript执行)生活带来一个(静态,标记)标签。 (依赖注入也非常简洁,就像Angular的许多功能旨在简化维护并更全面地从DOM进行抽象一样。)基本原理只是将声明式视图与命令式域逻辑完全合理地分隔开,这对任何拥有此功能的人都是熟悉的扫描了POM文件或与ORM争斗(嘿,我们中有些人也曾经喜欢XAML)。 这既令人振奋,又自由,而且有点怪异—赋予了HTML确实不该具有的功能。

也许令人遗憾的是背后最激进的概念-双向数据绑定,它毫不费力地使视图和模型保持同步- ,它 。 因此,一点魔力将消失,但是大规模的性能头痛和大规模的令人费解的调试工作也将消失(只是想一想双向 ,就会感觉到悬崖从脚下掉下),这是一个折衷方案随着页面大小和SPA复杂性气球的增长,其价值越来越大。

3.企业Java:Spring Boot

Java有什么优点? 快速,成熟,全面的类库,巨大的生态系统,到处运行一次写入,活跃的社区-但不是很容易的自举。 甚至核心的Java开发人员都使用Ruby或Python编写快速的一次性程序( 承认 )。 但是,由于上述其他原因,Java仍继续主导企业。

输入样板蒸发器Spring Boot,这是一个框架,可让您在一个鸣叫中适合运行的Spring应用程序:

没有令人不快的XML配置,没有草率的生成代码。 这怎么可能? 简单:Spring Boot有一些非常强烈的意见。 阅读上面的那条推文,突然之间一切都变得有意义了! 当您意识到该框架会自动启动一个嵌入式Servlet容器以处理端口8080上的传入请求时-您没有明确配置它进行的决定,而是常规(对防火墙友好)的调用。

Spring Boot有多热? 到目前为止这是和下载最多的Spring项目(不包括主框架本身)。 并且在2015年,Google首次 。

4.数据处理:Apache Spark

曾几何时(2004年),谷歌开发了一种编程模型( ),该模型对许多分布式批处理工作结构进行概括,然后 。 然后,一些Yahoo员工编写了一个Java框架( ),该框架实现了MapReduce和一个以简化MapReduce任务的数据访问。

尽管解决(最佳)批处理的问题空间有限,但是在近十年中,Hadoop主导了“大数据”框架生态系统,部分原因是企业和科学用户习惯于对大型数据集进行批处理分析。 但是,并非所有大型数据集都可以按批次进行优化处理。 特别是,流数据(例如传感器输入)和迭代分析的数据(例如喜欢机器学习算法的数据)不喜欢批处理。 因此诞生了数十个新的大数据框架, 和受到关注(包括针对Hadoop本身的与MapReduce分离的 )。

但是在所有这些新框架中, ( )是2015年的最佳选择。 调查( ; ; )显示,Spark的采用取得了巨大的增长。 ,GitHub提交量一直 ,而Google趋势显示 。

因此Spark很受欢迎。 但是它是做什么的呢? 好,非常快速的批处理; 但这取决于一项杀手级功能,该功能所允许的编程模型比Hadoop多得多。 Spark使数据在弹性分布式数据集中(RDD)中可用,这些数据在处理后仍保留在多个节点上的内存中,但是没有复制 (通过存储有关如何重新创建的信息;与 , , 进行比较)。 这(显然)使算法得以迭代,而无需从分布式内存层次结构中的(较低)梯级重新加载。 这意味着批处理不再需要Nathan Marz的的“长冲程”的尊严。 RDD甚至允许Spark通过足够快地运行小批处理作业以将延迟保持在许多应用程序的“有效流”范围内,从而模拟真实(推送)流处理。

5.交付:Docker

好的,从“慷慨定义的代码库,它强加了一套特定的约定来解决大型且反复出现的问题集”的意义上讲, 并不是一个“框架”。 但是,如果框架只是让您以更合适的抽象级别编写代码的事物,那么Doc​​ker是框架的佼佼者。 (我们称其为外骨骼框架 ,只是为了混淆混淆地使用隐喻。)而且,将“ 2015年开发人员排名前茅”命名为不包含Docker的列表将是一件很有趣的事情。

Docker为什么很棒? 首先,为什么容器(早期:FreeBSD Jail,Solaris Zones,OpenVZ,LXC)很棒? 简单:无需完整的操作系统即可进行隔离; 或者,虚拟机的安全性和便利性,而开销却少得多。 但是隔离采取了多种形式(想到了chroot ,或者实际上是任何虚拟内存系统),并且没有Docker的systemd-nspawn相当容易。 仅能够隔离进程是不够的。 为什么Docker ?

原因有两个:Dockerfiles(“新的tarball”)增加了可移植性; Dockerfile格式现已成为事实上的标准。 第一个减轻了应用程序交付的麻烦(而早期的容器仅创建了较轻的VM)。 第二个使容器共享成为社会性的(而不仅仅是在 )。 我可以尝试您的应用程序,而无需花几个小时尝试您的应用程序。 (还记得如何apt-get自由apt-get感觉吗?)

翻译自:

自己开发框架和用开源的框架

转载地址:http://yvnzd.baihongyu.com/

你可能感兴趣的文章
阶段3 2.Spring_10.Spring中事务控制_6 spring基于XML的声明式事务控制-配置步骤
查看>>
阶段3 2.Spring_10.Spring中事务控制_9 spring编程式事务控制1-了解
查看>>
阶段3 2.Spring_10.Spring中事务控制_8 spring基于纯注解的声明式事务控制
查看>>
阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_07.入门案例中使用的组件介绍
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_1 请求参数绑定入门
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_7 获取Servlet原生的API
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_1 SpringMVC异常处理之分析和搭建环境
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_4 SpringMVC拦截器之介绍和搭建环境
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_01.ssm整合说明
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_3 SpringMVC异常处理之异常处理代码编写
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_03ssm整合之编写Spring框架
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_5 SpringMVC拦截器之编写controller
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_05.ssm整合之Spring整合SpringMVC的框架
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_06.ssm整合之编写MyBatis框架
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_07.ssm整合之编写MyBatis框架测试保存的方法
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_7 SpringMVC拦截器之拦截器接口方法演示
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_09.ssm整合之Spring整合MyBatis框架配置事务
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_04.ssm整合之编写SpringMVC框架
查看>>