前端设计具体是什么
时间:2023-10-07 14:24:01 | 来源:网站运营
时间:2023-10-07 14:24:01 来源:网站运营
前端设计具体是什么:原文是一个回答,我感觉没什么人看,转给自己的文章吧。
每次面试我都问:以什么为原则,确定页面的这个部分是一个组件?大部分回答是相似,少部分回答是能复用。我的打分这样,相似0分,复用1分,满分是10分。
这就是为什么有人说前端简单,有人不同意的原因。随便搞搞,能用就行,当然满简单。真正对自己有点要求,就像这个问题,是无法简单地回答。一些抽象的原则,有指导意义,无法落到实处,无法帮助实际编码。
第一次把事情做好,是困难的。
回到这个问题上,我的建议是一个单词:S.O.L.I.D。相关论述,已经二十年了,网上有一大堆。
我想强调的点在于,命名,表达了这个抽象是否有效。
比如:
axios封装成api_post,不好的封装;userLogin,好的封装
把input type=Radio,封装成Radio,不好的封装;Answer,好的封装
抽象与具体是不同层次的东西。把具体的东西砍掉一些细节,那不叫抽象,那叫约束。api_post与axios同样在说我要使用http发送一个消息,只不过少了一些细节,所以它不一个有效抽象。而userLogin是说一个用户的状态变化,它可能还是有很多细节,比如登录方式,密码,二次验证,但它是在更为贴近于待解决的问题,它是一个好的抽象。如果待解决的问题为”时间和空间是什么?“,我们现在有效的抽象是"相对论"。
有时UI或产品的设计有抽象,但在表达为效果图或产品说明时,它具体化了。前端开发要识别出来,并以抽象的方式去实现。为什么Answer会比Radio好,因为这是一种产品的抽象,只是具体化为一个多选,它也可能具体化为其它形态,一个输入框,滑动条都可以,但它们可以是同一个组件Answer。但是有时Radio会比Answer好,比如说UI控件库,但原因相同。因为UI控件库要解决的问题就是输入方式本身,搞成Answer就过度设计了。
另一个问题,英文命名搞不定?其实问题出在用中文也做不好命名。比如定个主题的名字:
只会叫蓝色?为什么不是天空,晴日, 湖水。
只会叫绿色?为什么不是温室,草地,森林。