设计,从来都不是件简单的事情,尤其是在产品越来越庞大,用户越来越多的时候,一些看似简单的设计或改变,很可能成为你全军覆没的致命伤.
程序员的成长大体上是这样的,首先,学习一门编程语言的使用,比如C#, 比如Java,因为是入门,必须要选择入门难度系数小点的,象C#及.net这样的东西,还是很受欢迎的.经过一段时间的学习后,基本的东西,概念开始了解了,就尝试着写一些小程序,小功能.
随着时间的流逝,致我们终将逝去的菜鸟青春,我们逐步变得成熟起来.
(当然这里插点题外话,对于戏子们的致青春,是个越来越堕落的过程,当你堕落到底,青涩荡然无存,那么就可以致青春了.比如,你不再相信爱情,放弃你原来的理想,为更好的生存做些使用些坏手段,养成一些坏毛病等等)
程序员的致青春应该是这样的,你开始掌握一些编程的基本东西,大体熟练使用一门语言,一个框架,一个开发IDE,你不再写些Hello world.开始准备搞点大点的应用.这个时候你的菜鸟青春逐渐远离了.
当时更大的问题又来了,随着越来越多的代码的加入,越来越多的功能的纠缠,明显感觉到有些问题在烦扰着你,你开始寻找答案,这时你会发现什么面向对象,设计模式,代码大全等.他们为你组织更大规模的代码提供了各种方法.
再经过一段时间的流逝,你又发现更大的问题.写代码也不是难事,做一个设计也没有问题,也会查资料,你拿到的东西,你基本上总有办法做出来,但你会发现,很多问题,都有N个解决方案,这和当年上学时候学习到的标准答案是不一样的,解决方式没有标准答案,而是有一堆答案.你面对的更多是选择问题.用什么方法搞定问题.
所以实际上,大多数工作中的程序员必然面对一个问题,就是怎么搞出来个好的设计,反复修改代码.有时候这个过程之漫长,让你几乎都忽视了你本来是要干什么的.很多时候打开版本管理,你会发现有些文件的修改次数惊人.
这个时候你就会发现,写代码容易,写好代码相当困难,什么是一个好的设计,怎样做出一个好的功能,一个好的产品.经常是你有几个解决方案,无从下手.这就是设计中的两难问题.
对于这个问题,其实已经写了一篇隐喻的文,结果看的人说看不懂,管理员认为和技术无关.但考虑到设计这个问题还是蛮重要的,其重要性让MS的一堆高手也犯迷糊,所以就有了本文,再把这个问题提出来.
以下是原文:
Windows有个很奇怪的现象.
Windows8推出后,没有开始菜单.很明显这不是给传统电脑配置的,象任务栏一些精细的操作都没有了.担据说提供了触摸操作,作为一个菜鸟的我很兴奋的找人帮我升级上去,满心期待终于也可以触摸操作了,但是发现用手在屏幕上摸来摸去,系统也没有反应,我不知道怎么回事.
后来听懂电脑的朋友们说要把屏幕升级成触摸屏,就可以用Windows8的触摸了,但是本人是菜鸟啊,也不知道怎么把我的本本升级成触摸屏,找了几个身边比较懂电脑的帮忙,他们也搞不定.
最近看到说Windows8.1要出来了,要恢复开始菜单等这些东西.因为本人是菜鸟啊,还是搞不明白.是不是Windows8.1加上开始菜单就可以触摸了.到时候升级到Windows8.1就可以触摸了吗?好期待,于是找了几个身边比较懂电脑的问,结果他们也解释不清楚,有的说肯定可以,有的说不能,还是要升级成触摸屏.到底能还是不能,如果要升级要怎么升级?本人是菜鸟啊,还是没有搞清楚.
本人菜鸟啊所以问题总是特别多,就是如果Windows8.1又把开始菜单加上了,那么以后Windows8.2, 9.0等,会不会再把开始菜单去掉了?我到底是用鼠标操作开始菜单,还是能用触摸操作开始菜单?
这开始菜单一会加上去,一会拿掉,一会又加上去,闹着玩不是?
还有,我们这些菜鸟要想用Windows8等新系统的触摸,到底怎么升级触摸屏?明明已经装上了最新系统,并升级了最新显卡,显示屏驱动,为什么点屏幕还是没有反应?这不是在忽悠我们么.触摸操作根本就不能用.
BTW:
最近得一高人指点迷津,终于把这个问题搞明白了.就是,我得去买台新电脑,原来的老电脑是用不了触摸屏的.
我X,既然老电脑不支持触摸,那我费力气升级到Windows8这类的有毛用?.如果我用鼠标,屏幕不支持触摸,你把开始菜单去掉,给我触摸屏这不是玩我吗.
然后,我这刚攒够钱要去买台新的支持触摸的电脑,你又把开始菜单加上让我用鼠标操作,那我花这钱不白瞎了.都有开始菜单,不用触摸了,我干麻还去花好多钱买个支持触摸的新机器?
我倒底要怎么做才能比较好的用上MS的新Windows,新电脑要不要买?老电脑怎么处理?
因为本人是菜鸟啊,也不是很懂,所以打算如下:买台新电脑,然后装Windows8,触摸操作,上上网什么的.当平板用.把老机器升级成Windows8.1,办公用.
我这样做对吗?有没有什么问题?请懂电脑的朋友们帮忙参考下.
可见,很多时候不是你做不出来,而是做的不太对头.这个问题超越了写代码本身.解决不好,连MS这样的大象也要栽跟头,实际上大家稍稍用心看下上面的原文,就会发现,MS这个大跟头栽定了.下面简单分析下原因.
MS是大象级的企业,产品线太过于丰富,以常用的XP到Win7为例,上面还有Office,IE,Mail,Visual Studio等软件系统,当然还有Photoshop, 等系统.但是这些,想信大家都不太关心,其实大家关心的是你现在在写的代码.
这就对了.你看到这篇文,那很可能是因为你用Windows平台,而且很可能正在用C#, 基于VS开发应用软件.试着考虑下这样一个现象,你的应用和开发环境转移到了触摸屏平台,你不需要用键盘及鼠标打字了,在屏幕上点点点,然后软件就开发出来了.完成工作后,再按个Home键,搞定,去喝你的咖啡去.
这...可能吗?至少目前看上去不太可能.其实产生这个问题的原因,在于Windows更多时候是做为企业,工作环境用的平台.把这个环境改成触摸的,怎么用?相当多的软件必须同步升级,而怎么升级,怎么让这些软件支持触摸操作,这是个大问题,估计还没什么很好的解决方案,这不是脑袋一拍,加个触摸,去掉开始菜单,所有一切就变得那么美好的,MS的领导人或许是爱拍脑袋,这样下去对头发是很不利的.
移动平台和传统PC平台,从操作到模式很多都不同,平滑升级很困难.现在大家做的东西,有些是新创的,可以直接上移动应用,有些是原来就有的,想在移动上做应用.这就遇到这个两难问题.怎么弄?
其实这个问题没什么好办法的,直接粗暴硬上会出问题,弄不好会搞出人命,正房和二奶,小三要和平共处也太难了点吧.不如在保持原有系统继续升级维护,从重开发新的应用.直接站在新起点上.
象MS这样,如果把Windows7平滑升级到Windows8,再单做个精简版套Metro,只做手机,平板的操作系统,说不定结果会好点.