代码设计:最具有迷惑性的工科专业——工业设计

最具有迷惑性的工科专业——工业设计代码设计、产品设计

代码设计:最具有迷惑性的工科专业——工业设计

工业设计的专业代码为080205,属于工学,机械类下属的二级学科。根据字面意思理解,工业设计就是设计工业制品,但究竟设计什么呢代码设计?

代码设计:最具有迷惑性的工科专业——工业设计

代码设计:最具有迷惑性的工科专业——工业设计

感兴趣的朋友可以被百度一下 ,但肯定还是一头雾水代码设计。还是搞不清楚工业设计到底设计什么。

代码设计:最具有迷惑性的工科专业——工业设计

狭义的工业设计就是产品外观设计,需要设计师具备一定的美术基础和工程知识,只有这样才能在满足功能的基础上设计出美观的产品,满足消费者的需求。

还有一个跟工业设计特别相似的专业——产品设计

产品设计的专业代码为130504,属于艺术学,设计类下属的二级学科。目前只招收美术类考生。

工业设计和产品设计其实是一个专业。

工业设计(产品设计)属于交叉学科,究竟是机械类还是美术呢?目前国内还没有统一的认识,机械和美术都招生。因此,工业设计是一个非常尴尬的专业。在机械学科里,工业设计被看成是搞美术的,在美术领域,工业设计被看成是搞机械的。总而言之,工业设计在哪个领域都遭受排斥,学术地位特别低。

工业设计是技术和艺术的结合,因此专业课也分为工程基础课和美术基础课,如果没有美术素养的同学就不适合了从事该专业了。

希望同学们谨慎选择,对工业设计不是很了解,美术素养低的同学千万不要选,不要被专业的名字所迷惑。

您好,我是一名热爱工业设计的人民教师,喜欢思考,如果您也喜欢,欢迎关注“人民工设教书匠”,期待与您交流!

写了这么多年代码,你真的了解设计模式么?

昨天和同事聊到最近他要做的一个培训,大概的课程是这样的:

代码设计:最具有迷惑性的工科专业——工业设计

第一天:

代码设计:最具有迷惑性的工科专业——工业设计

上午:面向对象原则(OO+SOLID )下午:设计模式(Design Pattern)第二天:

代码设计:最具有迷惑性的工科专业——工业设计

上午:简单设计(SimpleDesign)下午:重构到模式(Refactor to DesignPattern)面向对象原则,设计模式,简单设计,重构到模式……看起来都是常规操作,但你有想过他们的关系么?

忍不住要山寨一段《写了这么多年代码,你真的了解SOLID吗?》中的发言:

上面提到的每一项大家都耳熟能详,但我发现大部分开发者并没有真正理解。要获得最大收益,就必须理解它们之间的关系,并综合应用所有这些原则。只有把它们作为一个整体,才可能构建出坚实(Solid)的软件。遗憾的是,我们看到的书籍和文章都在罗列每个原则,没有把它们作为一个整体来看,甚至提出这几项的知名大叔们也没能讲透彻。因此我尝试介绍一下我的理解。

面向对象原则(OO+SOLID )

偷懒一下,请大家移步,直接参考文章《写了这么多年代码,你真的了解SOLID吗?》,记得回来呦~

简单理解,面向对象原则给我们提供了一系列面向对象上下文下的最佳实践,指导原则和终极目标,符合这些原则可以帮助我们最大化OO的威力。

如果把面向对象类比成软件开发领域的一个武林门派,面向对象原则就是这个门派的最高心法和目标,打个比方,有点像:心与意合,意与气合,气与力合,肩与胯合,肘与膝合,手与足合……这种。

心法这种东西就是神神秘秘的,真正看起来也简单,字面上也不难理解,很容易用它来挑战别人:“你看你看,你没有做到手与足合!”

但是回到自己,要想做到就难了,知易行难!

归其原因它虽然提供了目标和评价标准,使我们很容易拿他来评价别人,但并没有告诉我们自己如何才能达到这样的目标和标准。

设计模式(Design Pattern)那设计模式是什么?

很多人,包括我在内,都曾迷陷于23种设计模式之中,初识设计模式,赞叹于其精妙,就像个萌新的江湖小生,偶然间掉到个山洞,一下就集齐了威震江湖的“7种武器”。

然后……就开始了用长生剑切菜,用碧玉刀削瓜的“幸福生活”,不但把简单的事情搞得巨复杂,最不能忍的是还暴殄天物!

回到设计模式,无非是在面向对象原则这些虚无缥缈的“心法”指导原则下,那些前辈大神们留下的“招式”或是“套路”而已。但招式和套路并不能致胜,它只是为我们这等小白提供了一个接近大神,理解心法的途径而已,通过长年累月的模仿去反思去领悟去体会“心法”的本质和精妙,此时脑中不禁浮现《少林寺》中李连杰夏练三九冬练三伏的画面……

这就能解释为什么使用同样的招式,大神们总能一击致命,而我们却总是被按倒在地摩擦的原因了。

简单设计(SimpleDesign)设计模式是套路和招式,那简单设计是什么?

首先要区分一下简单设计和容易设计:

简单的反义词是复杂,容易的反义词是困难。简单不等于容易,追求简单的过程往往很困难,如果只是追求容易的往往导致系统过于复杂。

这是好多年前一位同事提到过的一句话,很在点儿上,我们经常混淆了简单和容易,对于这点,另一位同事之前也写过一篇文章来阐述做到“简单”的“困难”。

做为结果的简单设计是这么一种设计,它能被几乎所有人理解, 但只有极少数人能做出. 或者反过来说也可以. 简单设计是一种只有极少数人能做出的设计,但设计一旦做出后,能被所有人理解.

可见简单设计是一种只有极少数人能做出的设计,那我们怎么才能成为那“极少数人“呢?

对此,Kent Beck给出了清晰的答案:

通过所有测试(Passes its tests)尽可能消除重复 (Minimizes duplication)尽可能清晰表达 (Maximizes clarity)更少代码元素 (Has fewer elements)以上四个原则的重要程度依次降低。这组定义被称做简单设计原则。

我们不具体探讨这几个原则,回到最初的问题,如果说面向对象原则是”心法“是”目标“,设计模式是前辈们沉淀下来的”套路”和“招式“的话,那简单设计是什么呢?

我觉得就是实战指导原则,他可以让我们不局限于哪些经典的过往的招式,跳出套路,无招胜有招。

如果说设计模式是一种自上而下,通过不断模仿前辈大神套路达到目标的一条道路的话(有招胜无招);那简单设计原则则是另一条自下而上,忘掉招式和套路,遵循简单的基本原则,随机应变,不断演进,不断浮现,逐步逼近目标的另一条道路(无招胜有招)。

但,记住,殊途同归。

好,这位客官问了,那两条道路都可以帮我们掌握武功最高的心法的目标,我走哪条呢?如果我已经会了一条,还需要学习另一条路径么?

请移步我的《筷子定理》。

重构到模式(Refactor to DesignPattern)说到这里,就不难理解“重构到模式”到底在说什么了吧。

它无非是在解释如何通过自下而上应用简单设计原则,运用重构的技术和手法,浮现出设计模式。我管这个过程叫“重走长征路”,重新体验一下那些大神前辈们创建发现设计模式的过程。

这个过程也再次证明了这两条通往同一个目标的不同的道路也是可以相互转换的,它们只不过是面向对象原则下的两种不同形式的表现而已。

如果说“设计模式”是“有招胜无招”,“简单设计”是“无招胜有招”的话,那“重构到模式”就是“无招生有招”的过程。

总结总的来说,我们可以把这几个概念作为一个整体框架来思考。

“面向对象原则”是OO领域的终极目标,是面向对象这门武功的心法,很容易用来评判别人,但是自己却很难达到。

为了能达到心法的境界,之前的各任掌门大神们总结并留下了一些套路和招式,什么降龙十八掌之类的,让我等晚辈可以通过日复一日的刻意练习,去不断参透心法的真谛,这些套路和招式就是“设计模式”。

但只有这十八招显然是不够的,于是我们又学到了一些实战指导原则,让我们以另一种方式,自下而上,跳出招式和套路的限制,甚至能不断浮现出新的招式,且通向的是同一个目标,这些实战指导原则就是“简单设计原则”。

最后,不断操练“重构到模式”,通过实际运用实战指导原则和手法,推演招式和套路,帮助我们将这两种方法融会贯通,相互结合,最终领悟那隐藏在一切表象背后的真理,达到无招胜有招,草木竹石皆可为剑,心随意走,人随心动的境界。

文/ThoughtWorks王健

原文:}