觉得有必要记录一下这类问题,都打个[design decision]的标签吧。
目前项目中遇到这么个问题:
我们build system的用户,需要为他的每个项目提供一个文件,用来描述该项目产生的libary,以及依赖的其他项目。 这个文件很重要,需要在install的时候与最终产生的库文件放在一起,以便被其他项目使用时访问,从而把整个依赖链串起来。 已知该文件总是放在一个固定的位置,之后gmake install时会被安装到一个固定的位置。
好,问题来了,既然文件在哪里,要被安装到哪里都是已知的,是不是build system可以自动把这步包含进来,无须用户做任何事,从而提供了方便?
我一开始的想法是这样的: 这的确非常天经地义,何乐而不为呢?
但和同事们讨论之后,觉得从另外一个角度来考虑:user awareness也是非常靠谱的:
这个文件是用户提供的,如果build system在用户不知情的情况下,自动(magically)帮用户做了这个事,可能对用户来说是个supprise(least supprise?),会造成一定的混淆,所以这不一定是个好事情, 有用户显示指定这个操作为好。 相反来讲,如果某个文件是build system产生的, 比如最终的library,或者中间产生的库依赖信息文件,那么build system自动安装是比较合理的。
当然,对于这个具体的问题,是否自动我并没有强烈的偏向,但从user awareness来考虑问题是个不错的角度。

转载于:https://www.cnblogs.com/baiyanhuang/archive/2012/12/07/2807849.html

[design decision] user awareness: 自动安装还是不自动安装?相关推荐

  1. RIS服务器的安装和远程自动安装操作系统(二)

    RIS服务器的安装和远程自动安装操作系统 在完成了安装RIS服务器之后,需要做一些设置才能够让RIS正常工作. 第二步设置: 1.首先需要创建一个或多个用户使用具有使用远程安装计算机的权限(这些实在服 ...

  2. 解决Jupyter notebook安装后不自动跳转网页的方法

    解决Jupyter notebook安装后不自动跳转网页的方法 参考文章: (1)解决Jupyter notebook安装后不自动跳转网页的方法 (2)https://www.cnblogs.com/ ...

  3. PXE高效批量安装和Kickstart无人值守安装——真正完成批量自动安装

    PXE高效批量安装和Kickstart无人值守安装--真正完成批量自动安装 一.PXE概述 二.PXE的优点 三.搭建PXE的前提 四.部署PXE远程安装服务 1.安装TFTP服务 2.修改TFTP服 ...

  4. .NET平台下WEB应用程序的部署(安装数据库和自动配置)

    .NET平台下WEB应用程序的部署(安装数据库和自动配置)   李洪根 在.NET平台下,部署 Web 解决方案是比较方便的.我们可以利用Visual Studio.NET 2003添加一个WEB安装 ...

  5. linux svn 自动部署,linux下svn安装和自动部署

    liunx系统下安装svn并自动更新到项目中 三部分:[1.安装 2.建立svn库 3.配置文件]html 查看是否安装了svn [svn –version] 若是安装了svn能够先进行卸载 [sud ...

  6. php 代码 自动检查工具下载,PHP_CodeSniffer安装和使用教程(自动代码检查规范工具)...

    在我们开发中都会讲究代码规范,若是个人开发者,代码规范与否,只要自己看得懂便可以了,但是在团队协作中,代码规定尤为重要,下面,我们介绍一款PHP_CodeSniffer,自动检查代码规范的工具. PH ...

  7. tim怎么设置检测到新版本自动安装 tim安全自动更新的开启方法

    TIM想要开启自动检测新版本并下载安装,该怎么设置呢?下面我们就来看看详细的教程. 1.首先,在你的 电脑中找到TIM; tim怎么设置检测到新版本自动安装?tim安全自动更新的开启方法 2.打开TI ...

  8. 如何使用CloudFormation自动在AWS EC2上安装Anaconda

    by Daniel Barker 丹尼尔·巴克(Daniel Barker) 如何使用CloudFormation自动在AWS EC2上安装Anaconda (How to automate Anac ...

  9. 自动安装虚拟机之网络安装和pxe安装

    ####1.kickstart脚本 Kickstart 概述 使用 kickstart, 系统管理员可以创建一个包含安装期间所有常见问题的答案的文件 , 以自动安装 Red Hat Enterpris ...

  10. .NET平台下WEB应用程序的部署(安装数据库和自动配置,启动条件)

    转自:http://blog.csdn.net/lihonggen0/article/details/13654 首先,创建一个安装和部署项目.步骤如下: 1.在 "解决方案资源管理器 &q ...

最新文章

  1. Kattis之旅——Prime Reduction
  2. 队列的基本操作_如果让你手写个栈和队列,你还会写吗?||CSDN博客精选
  3. dalvik Java类库中本地类
  4. php新手用7.2,总结PHP升级7.2之后需要注意的事情
  5. 口语化讲某些软件如BT,电驴,向日葵等穿透内网原理
  6. 计算机网络-自顶向下方法(7th) 第二章 Review Questions 英文题目+中文答案
  7. ES6躬行记(3)——解构
  8. 图书馆占座系统(SSM,JQUERY-EASYUI,MYSQL)
  9. 2022-2028年中国奶茶店行业竞争策略研究及未来前景展望报告
  10. W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.lis
  11. 小世界网络 Small-world networks
  12. Huilder连接Android逍遥模拟器
  13. 【论】Strategic sourcing selection for bike-sharing rebalancing: An evolutionary game approach
  14. 维和步兵营~傻逼的戈瑞-冷酷的林皓南~装逼的海蓝
  15. nvidia-docker的安装
  16. phpfpm怎么连接mysql_配置nginx、mysql、php-fpm的方法
  17. 多个pdf文件如何合并为一个文件?怎样将多个pdf文件合并到一个文件?
  18. 搭建vue项目环境以及创建一个简单的vue的demo
  19. C++控制台模拟 骇客帝国数字飞屏
  20. vuex报错 this.$store显示undefined

热门文章

  1. 这个PHP无解深坑,你能解出来吗?(听说能解出来的都很秀)
  2. API RSA签名颁发证书
  3. 【.bash_profile 与 .bashrc 的区别】
  4. [LeetCode] Rotate Array
  5. TVideoGrabber如何将网络摄像头影像实时发布到网络
  6. ESC键居然有这样的妙用!!!你知道吗?
  7. 0.42-0.5+0.08与0.08-0.5+0.42是不完全相等,Why is 0.3 - 0.2 - 0.1 (or similar) not equal to zero?
  8. unistd.h中定义函数
  9. 第二季-专题6-点亮指路灯
  10. Mysql优化(出自官方文档) - 第十篇(优化InnoDB表篇)