当前位置: 首页 > news >正文

[译] 每天一段 Spring 5 官方文档(5.1.4.RELEASE)—— Spring Framework Overview 10

Spring 框架概览

开始时间 10:53,结束时间 11:04,用时 9 mins。

3. Design Philosophy

When you learn about a framework, it’s important to know not only what it does but what principles it follows. Here are the guiding principles of the Spring Framework:

  • Provide choice at every level. Spring lets you defer design decisions as late as possible. For example, you can switch persistence providers through configuration without changing your code. The same is true for many other infrastructure concerns and integration with third-party APIs.

  • Accommodate diverse perspectives. Spring embraces flexibility and is not opinionated about how things should be done. It supports a wide range of application needs with different perspectives.

  • Maintain strong backward compatibility. Spring’s evolution has been carefully managed to force few breaking changes between versions. Spring supports a carefully chosen range of JDK versions and third-party libraries to facilitate maintenance of applications and libraries that depend on Spring.

  • Care about API design. The Spring team puts a lot of thought and time into making APIs that are intuitive and that hold up across many versions and many years.

  • Set high standards for code quality. The Spring Framework puts a strong emphasis on meaningful, current, and accurate javadoc. It is one of very few projects that can claim clean code structure with no circular dependencies between packages.

翻译

设计原理

当你学习一门框架的时候,重要的不仅仅是学会使用,更是这个框架所遵循的原则。下面是 Spring 框架遵循的指导原则: -你提供每个级别选择,Spring 允许你尽可能晚的决定设计方案。比如,你可以通过配置选择持久化框架而不是改变代码。集成第三方 API 和其他基础设施问题也是如此。

  • 容纳不同的观点。Spring 包容灵活性,而且不像 Spring Boot 那样固执己见地决断应该怎么做。她支持广泛应用需要的不同观点。
  • 持续且强大的向后兼容性。Spring 精心设计着发展,来阻止不同版本之间的冲突。Spring 支持多个 JDK 版本和第三方库,以便于维护依赖于 Spring 的应用程序和库。
  • 关注与 API 的设计。Spring 团队花费了很多精力和时间来让设计直观的 API,并且可以持续多个版本和时间。
  • 高标准的代码质量。Spring 框架强调有意义的、当前的以及精确的文档。她是少数可声明简洁的代码结构,在各个包之间没有循环依赖。

词汇

  1. Philosophy [fɪ'lɒsəfɪ] 哲学;Design Philosophy 设计原理
  2. trivial ['trɪvɪəl] 不重要的,琐碎的
  3. innovate ['ɪnəveɪt] v. 创新
  4. infrastructure ['ɪnfrəstrʌktʃə] 基础设施
  5. concerns [kən'sɜːn] 关心 n.
  6. Accommodate [ə'kɒmədeɪt] 容纳
  7. diverse [daɪ'vɜːs; 'daɪvɜːs] 多种多样的、不同的
  8. Maintain [meɪn'teɪn; mən'teɪn] 持续
  9. compatibility [kəm,pætɪ'bɪlɪtɪ] 兼容性
  10. perspective [pə'spektɪv] 观点
  11. intuitive [ɪn'tjuːɪtɪv] 直觉的
  12. emphasis ['emfəsɪs] 重点,强调
  13. accurate [ˈækjərət] 精确的

转载于:https://juejin.im/post/5c700ce7e51d453aaa1d30fd

相关文章:

  • P3398 仓鼠找sugar (一道LCA的裸题)
  • 创建一个 Django 项目
  • GitHub如何下载clone指定的tag
  • 技术面试感觉什么都会,面试官一问回答不上来怎么办?
  • 性能测试总结(二)---测试流程篇(转载)
  • servlet,javabean,客户端跳转和服务端跳转。
  • 启动从Windows Server 2016发布的应用程序时,黑屏在应用程序可见之前出现几秒钟...
  • 如何自己制作iconfont
  • URL与URI的不同
  • Dubbo 安装监控中心
  • 实习面试笔记
  • spring-boot List转Page
  • Python 之网络式编程
  • 最新人脸识别开发经验demo
  • 2019年3月
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • canvas 高仿 Apple Watch 表盘
  • ECMAScript入门(七)--Module语法
  • idea + plantuml 画流程图
  • JavaScript-Array类型
  • Javascript基础之Array数组API
  • js面向对象
  • leetcode46 Permutation 排列组合
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 技术胖1-4季视频复习— (看视频笔记)
  • 马上搞懂 GeoJSON
  • 前端学习笔记之观察者模式
  • 前嗅ForeSpider采集配置界面介绍
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • UI设计初学者应该如何入门?
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #13 yum、编译安装与sed命令的使用
  • (11)MATLAB PCA+SVM 人脸识别
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (二)换源+apt-get基础配置+搜狗拼音
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (算法)求1到1亿间的质数或素数
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET MVC 验证码
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET 事件模型教程(二)
  • .net连接oracle数据库
  • .NET序列化 serializable,反序列化
  • ?php echo ?,?php echo Hello world!;?
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • []C/C++读取串口接收到的数据程序
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [ACM] hdu 1201 18岁生日
  • [Android Pro] AndroidX重构和映射