🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 设计可以不用那么纠结 > 如果常理上确定的事情,就无需纠结。(至于其他人,你们会习惯的。) * * * * * ### 业务逻辑与分页设计 **案列1:** 比如为店铺分配管理员,需要选择一个管理员,使用搜索下拉组件,但是搜索匹配可能有很多,那么下拉组件可以做的很复杂,还可以带分页。如果这样做还不如以表格的方式,这样搜索可以下一页。 但不管怎么样,这就是做得很复杂,其实可以以很方便的方式实现,这种下拉搜索的相当于是联想的,跟百度搜索联想一样,这个数目是可以限制的,不需要显示所有的搜索结果再分页,不需要弄的那样复杂。 因为常理上我们就确定我们只能检索出有限的值,只要提高关键词搜索精度就可以不断逼近目标,就一定能找到相关信息。 * * * * * **案例2** 比如常见的列表信息(管理员关联的学校,用户的角色,权限管理的节点等等),有时候明知道这种信息不会很多,业务逻辑(常识上确定的事)决定了它的数据量大小,永远不会用上分页的,这时就没必要做分页的考虑了,直接全部读出来,不要有强迫症(不要纠结),好铁用在刀刃上面,用好的方式解决问题才是最重要的。 你要知道你的目标是什么,就不用纠结,事实上很多人都不知道自己在做什么。 参考:[从铁匠和园丁的故事说起,谈谈技术与业务的关系](http://mp.weixin.qq.com/s/S0u5Z60iYZxdFYzKsgtpxg) * * * * * ### 纠结于正确的数据 —— 不必过度纠结 什么是对,什么是错,这个世界对和错都是相对的,并且任何事物都不能脱离它所在的环境而存在。看不到实际问题,纠结太多就没有意义。 不必过度纠结,事物总有它本身的意义。 过度纠结将会阻碍你要做的事。 比如:日程待办项目,前台生成日期,在一个日期上添加一个待办事项,然后提交给后台保存。 其实后台可以不必对前台数据进行严格的验证,例如验证日期是否合法,不能出现一个不存在的日期,但其实这种验证没必要,你不必太过度纠结。 即使非法用户提交非法的日期信息,那又怎么样呢,这种情况是很少的,即使出现了也不会出现重大的问题。 在我们的数据库里面保存错误的数据又能怎么样呢,很多时候你不必太纠结于这些东西,这些错误并不重要。它只是会导致错误的日期在前台无法显示出来而已。这不完美,可是完美真的有那么重要吗? 重要的是它阻碍了你的发展,阻碍了你要做的事,人生苦短,你有更重要的事情要做,如果你每天纠结于这些事情,那么你将无法做出好的产品。这并不是说细节不重要(我们都知道细节决定成败),而是说对于一些无关紧要的细节你不必投入太多精力,你的关注点应该放在你真正要做的事情上面去。 * * * * * ### 地址ID还是文字 **地址用ID,还是文字?** 两种观点: 1:下单地址只是为了发货而已,做地址选中只是为了方便用户,不然让用户自己填写就可以。 2:出于别的原因,比如数据分析统计(根据地区编码看各地区的订单情况),这时要用正确的ID(地区代码要和国家标准统一,系统要有一个最新的地址库做支持),如果用ID服务端要验证ID合法性(是否存在,层级关系是否正确等) 微信的 [共享收货地址接口](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115) 返回的是地址和油国家码和邮编,没有地址ID。 [全国各省、市、县、镇、村的mysql数据库和JSON格式数据 - 晶晶的博客](http://blog.jjonline.cn/phptech/172.html) [中华人民共和国国家统计局>>统计用区划和城乡划分代码](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/) * * * * * ### 技术的表面 产品可以从多个角度去看,比如从运营,从设计,从技术,一个简单的页面,从不同的角度看是不一样的视角,比如一个背景图片或者logo,从设计上,不管你怎么实现,只要看得到背景或者logo是一个图片就可以了。 从技术上,这个背景图片可以用图片标签插入,也可以使用css背景,不同的实现方式,代码结构不一样,**但是表面看是看不出来的**,不管你技术是怎么实现的,界面外表看起来都是一样的。 那么从运营上呢,如果是用图片标签,那么搜索引擎能抓取到,并且用户右键能保存图片,如果是用css背景实现的就没有这样的效果了,就看有没有这样的需求了,所以还是要看具体有什么要求,再来确定技术实现方案。 只有做技术的人会关注技术实现的细节和方案,其他人是不会关注和在乎你的实现方案和其它想法的,只会站在他的角度和立场看待问题(**每个人都只会站在自己的角度看问题,这是人性**),只在乎他的需求有没有得到满足。所以做技术的不要再试图从技术的角度去给别人讲解技术实现和说服别人了,这样只会浪费口舌和浪费感情,因为别人根本不会在乎,也根本没有听进去,你只需要告诉他,这么做会怎么样,这个能实现什么,不能实现什么就可以。 * * * * * ### 技术实现不必纠结 产品可以从多个角度去看,比如从运营,从设计,从技术,一个简单的页面,从不同的角度看是不一样的视角。 比如一个背景图片或者logo,从设计上,不管你怎么实现,只要看得到背景或者logo是一个图片就可以了,从技术上,这个背景图片可以用图片标签插入,也可以使用css背景,不同的实现方式,代码结构不一样,但是表面看起来是看不出来的,不管你技术是怎么实现的,界面外表看起来都是一样的。 那么从运营上呢,如果是用图片标签,那么搜索引擎能抓取到,并且用户右键能保存图片,如果是用css背景实现的就没有这样的效果了,就看有没有这样的需求了,所以还是要看具体有什么要求,再来确定技术实现方案,只有做技术的人会关注技术实现的细节和方案,其他人是不会关注和在乎你的实现方案和其它想法的,只会站在他的角度和立场看待问题,只在乎他的需求有没有得到满足。 所以做技术的不要再试图从技术的角度去给别人讲解技术实现和说服别人了,这样只会浪费口舌和浪费感情,因为别人根本不会在乎,也根本没有听进去,你只需要告诉他,这么做会怎么样,这个能实现什么,不能实现什么就可以。 并且有时也不要过度纠结哪种技术实现好,只要满足需求就是好了,不要舍本求末的追求代码的美丑,追求一种看不见的完美,人生苦短,那样没有任何意义,这样一不小心就很容易成为 [“民间哲学家”](https://segmentfault.com/q/1010000009586182) 了。 * * * * * ### 完美主义者要对强迫症患者说NO,强迫症不等于完美 追求产品的完美没有错,但是不要固执的认为强迫症就是追求完美的体现,这就是你为了掩盖自身问题的借口了,强迫症是一种病啊。 bootstrap的33.33333333%完美吗? 或许是,或许不是,但其实看效果,你不能说它是不完美的。如果强迫症是你不能忍受这点,那么你就不能活了简直,赶紧治治吧,别耽误了啊。 又或许世间哪有什么完美,也许真正的完美就是在于包容那些不完美,并在各方面均衡,努力做到最好,使其更出色,不断接近心中的完美罢了。 * * * * * last update:2018-7-6 11:52:04