一次和老总去吃饭,等了很长时间,饭菜却迟迟没有上来。我们俩都很生气,这时候老总借景抒情的说:“我们做软件的时候,就象开饭店一样,要尽量满足”吃客“的要求,尽管后来,饭菜还比较可口,但是因为等了老长时间,以后我们就再没有去过那家店。
     作为一个程序员,尤其是一个水平比较高的程序员,他的思维逻辑一般是比较抽象。而在设计软件的时候往往会出现想当然的想法。比如,在角色权限设计方面,一般情况,角色权限可以分为两种1)针对行和列的权限策略,这种权限策略非常详细。2)针对模块的权限策略,这种权限策略比较宽泛。只是限制对模块级别的访问。两种方法个有千秋,不能说那个好,那个不好,但是如果在错误的环境下应用了错误的策略的话,最终用户使用起来可能就比较吃力。比如,在一个银行系统中,出纳可以查看客户的卡号和帐户余额,还有一些其他信息,而绝对不能查看用户的密码,此时如果采用针对模块的权限,那实现起来就比较困难。而对于类似给一个规模较小,职责比较集中的OA系统来说,如果采用行,列授权,当然能够严格保证系统的安全性和操作性,但这样的环境一般不会有专门的系统维护人员,而系统配置起来,就可能比较麻烦。
这时候,我们复杂的实现也许给客户带来的是繁琐和不解。最后相反会被一些简单的系统所淘汰,就像java中间件里面,spring大有代替ejb趋势一样。同样是权限管理,在授权的时候,可以单一为角色授权,另一种可以为角色授权,也可以为单独用户授权,从实现来说,单一为角色授权比较简单,但是在使用的时候,由于设置权限的方法比较单一,用户容易上手,某种环境下,可能比复杂实现的系统更加受欢迎。
   敏捷软件开发宣言中有一句话:”相应变化,胜过 遵循变化“。原则中也有一项:”即使到了开发的后期,也欢迎改变需求,敏捷过程利用变化来为客户创造竞争优势“,其实这些都是要求我们以客户的需求来设计我们的软件。如果能在遵循需求的基础之上,加上自己的经验,设计出即简单,又满足功能要求的系统,那就更好了,但是千万别单单评自己的直觉,设计出一些”符合程序员的逻辑,不符合人类的逻辑“的程序。这样,我们可能很费力,但用户还可能不喜欢。

需求决定设计,设计来源于需求相关推荐

  1. C++轮子队-第三周(需求改进原型设计)

    需求改进&原型设计 一.需求完善 (一)系统功能(补充) 图形界面(图片如下图所示:) 根据需求与组内讨论结果,现归纳图形界面方面需要的设计与相应功能: 数据-图形界面中间类: 数字方块类 N ...

  2. 三、数据需求与数据库设计

    数据需求与数据库设计 数据需求 项目中主要包含了用户.权限(菜单).角色三种类型的数据,各种数据包含的数据项如下: (1)用户:用户名.密码.生日.头像.简介.用户类型 (2)权限:权限名称.描述.链 ...

  3. 2 大数据电商数仓项目——项目需求及架构设计

    2 大数据电商数仓项目--项目需求及架构设计 2.1 项目需求分析 用户行为数据采集平台搭建. 业务数据采集平台搭建. 数据仓库维度建模(核心):主要设计ODS.DWD.DWS.AWT.ADS等各个层 ...

  4. 莪的拽、像省田各号①样没尽頭队——需求改进原型设计

    需求改进&原型设计 1. 需求&原型改进 经过老师的指导以及组内成员的讨论后,我们认为之前的需求分析已经比较准确完备. 根据电子宠物的形象结构特点,以及模拟屏幕的空间限制,我们设计出了 ...

  5. 仿联想商城laravel实战---1、仿联想商城需求和数据库设计(lavarel如何搭建项目)...

    仿联想商城laravel实战---1.仿联想商城需求和数据库设计(lavarel如何搭建项目) 一.总结 一句话总结: composer引入lavarel.配置域名.配置apache 1.项目名 le ...

  6. 大数据项目之电商数仓、数据仓库概念、项目需求及架构设计

    文章目录 1.数据仓库概念 2. 项目需求及架构设计 2.1 项目需求分析 2.1.1 采集平台 2.1.2 离线需求 2.1.3 实时需求 2.1.4 思考题 2.2 项目框架 2.2.1 技术选型 ...

  7. 复古像素风游戏设计之:需求文档

    复古像素风游戏设计之:需求文档 引言 在这个流行运用3D建模重现现实世界.使用大量精美贴图渲染视觉效果的游戏时代,或许大多数人会被那些震撼逼真的场景设定所吸引,而习惯性的对那些画面略显粗糙的游戏嗤之以 ...

  8. 尚硅谷数据仓库实战之1项目需求及架构设计

    尚硅谷数据仓库实战之1项目需求及架构设计 第2章 项目需求及架构设计 需求分析 项目框架 技术选型 数据流程设计 框架版本选型 服务器选型 集群规模 集群资源规划设计 第3章 数据生成模块 目标数据 ...

  9. 产品设计(1) – 产品需求文档(PRD)介绍

    产品设计是一个由抽象的概念到具体形象化的处理过程,通过文字或图像等方式将我们规划的产品需求展现出来.它将产品的某种目的或需求转换为一个具体的物理或工具的过程,把一种计划.规划设想.问题解决的方法,通过 ...

  10. UX结合需求实例化进行设计开发

    技  术  文  件 技术文件名称:实例化+UX需求分析实践:场景监控需求实例化 技术文件编号: 版        本:V1.0 共 32 页 (包括封面) 拟  制    廖开蒙.刀锋团队 审  核 ...

最新文章

  1. 电大工商管理计算机考试,东方电大工商管理专科计算机期末复习EXCEL五题.docx...
  2. 浅谈对离散型随机变量期望的理解
  3. P5007-DDOSvoid的疑惑【树形dp】
  4. 《构建之法》读后感 二
  5. 这个网站收集了很多杂志的审稿周期和收稿、拒稿意见,值得看看
  6. linux系统创建lvm卷,Linux逻辑卷LVM实现
  7. Git合并分支代码到主分支的方法总结
  8. 分享一个好看的邮件html模板
  9. 百度网盘提取码_百度网盘无提取码分享方法
  10. thinkphp6代码生成器
  11. 洛谷 p4234 最小差值生成树
  12. 矩阵分析:三角分解,QR分解,秩分解,奇异值分解
  13. 华为手机日历倒计时_倒计时软件app哪个好 苹果倒计时软件推荐
  14. 蓝桥杯基础练习之 闰年判断 、 01字串 、查找整数、数列特征 、字母图形
  15. 微博图片去水印,自动去处微博图片水印方法
  16. mac bigsur python3.8 安装pillow失败
  17. 德国电信疫情期间净赚9个亿
  18. 羊皮卷之五:假如今天是我生命中的最后一天
  19. Kafka+Scram认证+eagle管理
  20. python:neat-python遗传拓扑神经网络初步使用

热门文章

  1. linux自动化安装oracle,ftp的客户端软件 Linux环境一键自动化安装oracle软件的构想(附she...
  2. ambari hdfs 启动报错_HDFS 运维常见问题处理
  3. 雷蛇灯光配置文件_消费降级?不我只是体验灯光,雷蛇萨诺狼蛛V2开箱
  4. build 之前执行task_Android Gradle新增buildtypes以及编译前执行自定义task
  5. python整人程序_python—做一个恶搞程序
  6. 数组元素的修改会影响到转换过来的结合_数组长度属性背后有什么魔力?
  7. wpf使用入式mysql_使用 WPF 和 MySQL 搭建小型人资管理系统——主要页面
  8. 计算机系统化科学化和什么,自动化概论复习资料
  9. sort list java leetcode_[LeetCode] 148. Sort List Java
  10. idea打开ini文件以记事本方式修改