• 约定优于配置的概念与思考


    概念

    约定优于配置(Convention over Configuration),又称按约定编程,是一种软件设计范式。

    本质上是说,系统、类库或框架应该假定合理的默认值,而非要求提供不必要的配置。比如说模型中有一个名为User的类,那么数据库中对应的表就会默认命名为user。只有在偏离这一个约定的时候,例如想要将该表命名为loser,才需要写有关这个名字的配置。

    简单来说,如果你所用工具的约定和你的期待相符,就可以省去配置;不符合的话,你就要通过相关的配置来达到你所期待的方式。

    思考

    约定优于配置简单来理解,就是遵循约定。

    想象一下,在软件的世界里如果每个程序员都定义一套自己的规范,这样的话,当你要看他写的程序就要先学习他的规范,看一个程序员的代码就要学习一套规范,是不是想想都头疼?举个现实的例子,浏览器。各个版本的浏览器的兼容性问题让众多程序员焦头烂额。想到这,你有没有觉得其实Java的成功、XML的成功或Maven的成功都有其必然性,它们的设计里面中都包含了一个简单但很深刻的道理,那就是通用。通用是标准和接口的所有意义。

    为什么通用?因为它们都遵循了同一套约定。这样,当一个程序员要看另一个程序员写的程序的时候,就会很容易上手,因为他了解同一套规定,减少了重新学习的成本。

    可能会有人质疑,我就是不愿意遵循约定,就是愿意多写配置,就是个性怎么了?然而个性意味着什么?个性意味着没有通用性。没有通用性意味着什么?没有通用性意味着死亡。你可能会举例来反驳,比如说微软做的很多东西都没有通用性,只能在Windows平台上运行,但是照样活得好好的。可是全球的Windows用户有那么多,间接使运行在它之上的软件拥有了一定的通用性。平台的流行性决定了它软件的通用性。另外,个性还意味着复杂,没有人会喜欢复杂的东西。

    如果你自身的实力不够坚强,那就老老实实按照规范走吧,等到你实力坚强而有话语权的时候,再来创造属于你的规范,然后让人家遵循你制定的规范。只是等到大家都遵循你制定的规范的时候,你的规范可能已经成为了一种约定了。

    "人的一生就是从简单到复杂,从复杂到简单。"

  • 相关阅读:
    【C/C++】最长公共子序列(LCS)/动态规划
    【C/C++】vector 动态二维数组
    【C/C++】string的长度
    【C/C++】最长不下降子序列/动态规划
    【C/C++】最大连续子序列和/动态规划
    【C/C++】输入:连续输入,以逗号隔开
    【C/C++】链表/ListNode/数据结构
    【Matlab】abs不支持复整数
    获取正在运行的服务
    从源码的角度分析Volley加载数据的过程
  • 原文地址:https://www.cnblogs.com/yanggb/p/10589073.html
Copyright © 2020-2023  润新知