1.极致的高深就是简洁

我是今年六月开始我的毕业设计的,这个项目是对我大一时做的个人网站进行重构,算是个维护项目。刚开始时,我就预感到这是一项艰巨的任务。首先,在用户界面上,我需要创作一个新的形象。大一时设计的旧版界面已经略显过时了。在新版面的设计上,我不想给访客留下诸如“简陋”——设计的过于简单,或“华而不实”——漂亮但不中用的印象。我研究了国内外许多网站,最终体会到一个事实——极致的高深就是简洁。所以设计的大方向已经确定——尽量减少页面元素和装饰,通过科学的排版体现信息的本质。一个经久的设计一定是简洁的设计。同年微软针在Windows8 BUILD大会展示的Metro界面也印证了这个未来的设计趋势。

对于我来说,我是学计算机的,没有专门学过视觉设计,因此我购买了许多UI设计类的图书来学习。但至今,我并没有对自己的设计感到满意。我已经发现,“极致的高深就是简洁”其实更侧重与人的素养,一个优秀的设计,是设计师本身心灵价值的体现。如果思想境界不够高尚,还要去模仿简洁风格的设计,那最终的作品给人的感觉就是简陋,恰好反应了设计师本身的素质。这些思考让我看到了很多技术以外的东西——我曾经一味追求技术上的深入,但忽略了很多应该从生活中体会的内容。

2. 一个良好的设计,应该要满足当前时代背景下的人们普遍的价值取向。

你的设计可能的确非常优秀,但可惜的是多数人的思想觉悟不够高,不能体会你的高深内涵,于是你会觉得高处不胜寒。历史上许多著名的科学家的苦逼故事都印证了这一点,比如玩豌豆的那位孟德尔,太苦逼了。至于高处不胜寒,不谦虚的说,我本人有太多感触了——和别人不一样是非常苦逼的,这可能会让你变成毅丝。

3. 如果一样东西是精品,那么请保持它的少数。

当初我发现微软的Metro风格时,我曾经做了件蠢事——刻意去模仿Windows 8的Metro开始界面,即在网站的每处都采用颜色块进行设计,而且是五颜六色的。但让我感到奇怪的是,为什么Metro在微软的网站上看起来如此清爽,但在我的网站上看缺适得其反呢?——我甚至不能引导用户的视线。最终我发现了一个道理:Metro颜色块之所以好看,是因为大量的空白衬托了这一设计。也就是绿叶才能衬托鲜花——如果一朵花生长在一片花丛中,你根本不会注意到它。很可惜,在我们国家,一旦某事物被公开了它的价值,那么它就会被炒烂,最终失去价值——四六级、公务员。

4.不要认为没用

我的另一个工作是代码重构与重写。重写很简单——如果现有模块不能正常工作,我就会重写它。但重构比较特殊,因为这不是一个“对于错”的过程,而是一个“好与更好”的过程。重构是幕后工作,因为它的定义就是:在不改变软件的可观察行为的前提下,调整现有的代码,提高其可理解性,降低修改的成本。这就意味着从网站的访客的角度,是看不出网站幕后发生的变化的。就算你写了非常棒的代码,人家也是不知道的——从他们的角度看,一个傻瓜程序员写的代码和一个资深程序员写的代码,最后展现给用户的行为是一致的。用户并不关心技术,他们只要可用的软件。所以从这方面来讲,重构确实有点吃力不讨好。

但我做的真的是无用功吗?

设想,如果需求发生变化,程序需要拓展,这时候经过重构的代码,其应对修改的能力非常强,会让你从痛苦中解脱出来。这也是为什么在公司里,项目做完之后,程序员还会代码进行调整。不然以后需求一变,就又有一帮苦逼要加班了。所以说,不要认为你所做的事情没用——聪明地去做事,可能现在尝不到甜头,但受用时一下就能把别人拉开十万八千里。所以我们要经常对自己进行重构。

5.矛盾和辨证

我体会到的一点就是封装性和灵活度的把握:程序员希望保持良好的封装,即使用某个模块十分简单。但程序员也希望在必要时,能够保持灵活性——自己可以控制细小的单元。讽刺的是,这两种期望本身就是矛盾的——鱼和熊掌不可兼得,所以,如何把握其中的平衡点,是个很有考究的事情,这需要良好的洞察力。

总结:技术学到一定境界,就是在学做人,然后通过对自己的重构,重新反应到技术上。这是我目前最大的感悟,写成经验之书,以警后人。

对了,本人思想觉悟不够高尚,此文可能略水,请高手们不要贱笑。