敏捷开发一千零一问系列之二十四: UI设计怎么做到敏捷呢?(兼谈对UI热的理解)(下)

这是敏捷开发一千零一问系列的第二十四篇。(在这里提问之一之二之三问题总目录

上文


陈勇-咨询-北京(139107533) 13:27:03
这个是我们的组织结构维护视图,本来是一个很简单的树控件,但就Domain而言,一个人只有看到长相如此的东西,才会理解它是一个组织结构图(尽管M就是树)


但是,V里边的代码,不过如此:


真正的代码,被放到M里边了。

如果从这个案例分析,就会看到至少三个人都参与了:

1.   产品经理,他要求不要搞一个树控件,要做一个和平时纸上印刷的一样的组织结构图

2.   UI设计,开始设想了一个方案

3.   但最后实现它的,是程序员。

这也是我为什么最后兼任产品经理、UI设计、程序员的原因。

如果分开三个人,还能实现,但必须有相同的价值观,不要各干各的。

问: 13:30:54
不要各干各的  指的是什么?

陈勇-咨询-北京(139107533) 13:30:55
其实,我们有一个纯Html版本的组织结构图,后来封装到C#里边了。

各干各的,就是程序员说:“哪,你看这是数据读取接口,你自己画你那个组织结构图去吧”

我们有3个地方用到组织结构图,都是这三行代码搞定。如果各干个的,就需要把大约200行Html重新拷贝三遍。

但由于程序帮助封装了ViewModel和View的Helper,一切就这么简单了。

回到问题本身,UI设计怎么敏捷?


陈勇-咨询-北京(139107533) 13:34:03
首先,应该有一个人作为打通跨职能部门的纽带,应该是产品经理。
他综合提出对UI的最终设想,基于的是,用户如何与产品交互,才能最好地完成业务(这个好,不完全是方便、美观这些,而是直接和业务切合

其次,UI和程序应该是跨职能的,或至少处于一个跨职能团队中,不要分到两个部门或团队里边,这样大家才会集体思考最佳做法(比如前面程序帮助UI封装Html为Helper)。

以我三位一体的体会,很难想象如果有三个思想不统一的人做这件事情,最后结果是什么。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中可以使用Array.sort()方法对数组进行排序。对于中文数字的排序,可以先将中文数字转换为阿拉伯数字进行排序,然后再转换回中文数字。以下是一个示例代码: ```javascript // 中文数字转换表 const chineseNum = { 零: 0, 一: 1, 二: 2, 三: 3, 四: 4, 五: 5, 六: 6, 七: 7, 八: 8, 九: 9, 十: 10, 百: 100, 千: 1000, 万: 10000, } // 将中文数字转换为阿拉伯数字 function translate(chinese) { let result = 0 let unit = 1 let stack = [] for (let i = chinese.length - 1; i >= 0; i--) { const num = chineseNum[chinese[i]] if (num >= 10) { if (unit === 1) { unit = num } else { unit *= num stack.push(unit) unit = 1 } } else { result += num * unit } } result += stack.reduce((acc, val) => acc + val, 0) return result } // 将阿拉伯数字转换为中文数字 function convert(number) { const units = ['', '十', '百', '千'] const digits = ['', '一', '二', '三', '四', '五', '六', '七', '八', '九'] const string = number.toString() let result = '' for (let i = string.length - 1, j = 0; i >= 0; i--, j++) { const digit = parseInt(string[i]) if (digit === 0) continue const unit = units[j % 4] const number = digits[digit] if (j > 0 && digit === 1 && number !== '一') { result = '零' + result } result = number + unit + result } return result } const chineseArr = ['五百五十', '三千零五', '二十', '一百', '一千零一', '一千零五十', '一千二百二十三'] const arabicArr = chineseArr.map(translate) const sortedArabicArr = arabicArr.sort() const sortedChineseArr = sortedArabicArr.map(convert) console.log(sortedChineseArr) // ["二十", "一百", "三千零五", "一千零一", "一千零五十", "五百五十", "一千二百二十三"] ``` 这段代码中定义了两个函数:`translate`用于将中文数字转换为阿拉伯数字,`convert`用于将阿拉伯数字转换为中文数字。接下来创建一个包含中文数字的数组`chineseArr`,使用`Array.map`方法将其中每个中文数字转换为阿拉伯数字,然后使用`Array.sort`方法进行排序,再将排序好的阿拉伯数字数组转换回中文数字数组。最后将结果输出到控制台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值