如今,与任何其他科技巨头相比,谷歌软件的设计都更胜一筹——虽然就在几年之前,这样的说法可能还是一派胡言。如果你不相信,那就放下成见,敞开心扉,认真比较一下Android和iOS。

先从推送通知开始说起,这是一个重要功能,很说明问题,因为我们把它当作理所当然的东西。苹果在这个功能上做得如何呢?推送通知出现在你的锁屏上。小心,如果你想看某一条通知,但没有准确地进行滑动操作,它就消失了。到哪儿去了?为了找到它,你用手指按住屏幕的顶部边缘向下滑动。它们在这里:通过即使你想让这些通知以时间先后顺序排列,它们也只能按应用归类。

这样的例子在iOS中不胜枚举,其设计与Android最新版本“棒棒糖”(Lollipop)之间明显存在着差距。在Android上,通知也出现在从手机顶部下拉的通知栏里。但是,点击每一条通知,都可以直达某个应用内部,因此你可以方便地进入地图应用,或Uber,或Facebook。这个功能的背后有一个算法来支持,它会算出哪些通知对你而言最重要,并把这些通知放在显眼的位置。滑动错误几乎不会出现。你绝不会去错地方。在很多方面,Android的逻辑性更强,细节也更鲜活。比如点击任何按钮,屏幕的颜色都会出现略微的改变,就像涟漪在池塘里泛过。这个做法相当聪明,既突显了你的点击动作,又隐藏了等待应用响应时出现的短暂滞后。

苹果曾经也有过这种对细节的关注。但现在,更加关注细节的那个似乎成了谷歌。该公司去年推出了Material Design,这是针对手机、平板电脑和台式机的设计语言,正在不断发展之中。Material Design保证了交互中的一致性;无形的规则支配一切,让你对每个应用都有一种熟悉感;“美”为“功能”服务。这就是为什么会有这么多的设计师告诉你,“我就是更喜欢Android一些”的原因。iOS仍然在迈着缓慢的步伐前进,而谷歌正在创建一种统一的、一致的语言,可以轻松地在不同的手机之间扩展,而且灵活性十足,可用于手表和汽车。参与领导建立MaterialDesign尼古拉斯-基特克夫(Nicholas Jitkoff)说:“它的精髓不是在一个地方创建UI,而是创建从一台设备到另一台设备的交互。”

好的设计是由什么元素构成的?尽管在这个问题上,谷歌走过几年的弯路,但它现在已经取得了长足的进步。 “当我们谈到谷歌的设计时,人们习惯于嗤之以鼻,这让我们很招揽到优秀的设计人才,因为人们觉得设计在谷歌没有得到充分的尊重。”谷歌设计师约翰-威利(John Wiley)说。这九年来,威利亲眼见证了谷歌在设计上的脱胎换骨。谷歌曾经吹嘘自己为连接测试过42种深浅不同的蓝色,并将之称为设计,但现在,它已经令人刮目相看。即便是苹果,也可以从谷歌那里有所借鉴。下面我们就来看看谷歌是怎样实现这种转型的。

早期的失败

八年前,伊夫林-金(Evelyn Kim)成为了谷歌产品团队有史以来雇佣的第一位视觉设计师,——她是一个平面设计师,毕业于著名的罗德岛设计学校,充满了包豪斯有关“美”和“功能”的理想。在进入谷歌之初,她就认为设计可以改变这家公司。她的老板是重磅级的web设计师道格拉斯-鲍曼(DouglasBowman),他也持有同样的看法,所以开始让金做一个秘密项目,重新设计谷歌的几乎每一个产品。

这个项目背后的逻辑很有吸引力。谷歌的经营特点是拥有很多小型“封地”,便于新的想法不断涌现,避免它们因官僚主义而夭折。因此,每个谷歌产品团队都有一个到几个设计师,在产品的困难部分完成后对它加以美化,但却没有更高层次的理念。

这就带来了问题。难道不应该是谷歌的所有产品都共享同一个设计理念吗?金回顾了一个让人郁闷的例子。她的团队把谷歌自己的logo样品聚集在一起,它们来自几十种谷歌产品,其中很多logo都有几个像素的走样。这让人不免觉得,长期以往,明明是正宗的谷歌产品,看上去也会有有一种山寨感了。

因此,在几个星期之内,金和几个同事创建了一种涵盖邮件、地图和搜索的统一设计语言,名为“Kanna”项目(Kanna在冰岛语中意为“探索”)。最后,他们惴惴不安地向谷歌当时的首席执行官埃里克-施密特(EricSchmidt),以及用户体验主管玛丽莎-梅耶(Marissa Mayer)展示了这一成果。梅耶是工程师出身,没有设计背景。事情进行得并不顺利,施密特和梅耶认为这个兴趣项目很有趣,但却不值得考虑。

那个时期,梅耶曾吹嘘谷歌了解设计,因为该公司已经为链接测试了42深浅不同的蓝色,以便找出哪一种蓝色获得了最多点击,数字精确到小数点以下。这不是设计理念,而是纯粹的恐惧,是在担心搞砸了谷歌的自动取款机。该公司专注于增长,而不是美。它专注于速度。因此,给谷歌灌输一种设计理念的一个早期尝试就这样失败了。

科技的进化

仅仅四年之后,在2011年,伊夫林-金奉谷歌联合创始人、重新担任首席执行官的拉里-佩奇(Larry Page)之命,又开始做一个极其相似的项目。几乎与此同时,佩奇从容地告诉谷歌上下的员工,该公司目前关心的是美和用户体验。这让公司内部的人大吃一惊。为什么呢?因为这是谷歌,而说话的人是拉里-佩奇。当初曾有一个设计师问佩奇,谷歌的审美观是什么,他回答说:“Pine”。那是佩奇读大学期间常见的一个命令行电邮系统,其最大亮点就是速度快。

佩奇的那个回答,反应了很多工程师头脑中至今仍占主导地位的一个理念:最好的设计就是没有设计,因为速度就是唯一衡量标准。往计算机界面添加任何一点漂亮的东西,就只会把速度拖慢。很多年来,这个想法是很有道理的。在计算时代的初期,以及互联网发展的初期,东西好不好看并不重要,只要它能迅速做出反应就行。上世纪70年代曾出现了一个“两秒规则”:如果一台计算机没有在两秒种内做出响应,用户自然而然就会放弃。如果一台计算机真的想要留住你,它几乎必须得在一瞬间内做出响应。

Pine,这个词代表了几十年来关于计算机的智慧,在人们的脑海中根深蒂固,然而从2007年到2011年这四年中,不只是在拉里-佩奇身边和在谷歌里,而是在整个科技文化中,发生了一些事情。谷歌在设计上的华丽转型,实际上是科技自身如何在移动时代进化的故事。

谷歌的问题

作为谷歌最高调的设计师,马蒂亚斯-杜阿尔特(Matias Duarte)的形象比较浮夸。浅浅的山羊胡,头发抹了啫喱,长得像是梅菲斯特(注:《浮士德》中的魔鬼)的古怪弟弟。对他来说,红格子衬衫和红色长裤的搭配算不上是标新立异。

杜阿尔特曾领导Palm富有远见但却遭到失败的Web OS的设计工作,2010年他进入谷歌时。谷歌的产品是个烂摊子:它们在很大程度上停滞不前。梅耶时代“不要搞砸”的精神仍然占据占据统治地位。杜阿尔特一开始负责Android设计,但过了不久,他的任务增加了。杜阿尔特提到当时的Gmail时说,“它很丑,但这并不是说人们没有意识到它不好。而是说,谷歌不知道如何进行设计。”

杜阿尔特自己也承认,谷歌似乎有一种制作凌乱产品的天性,事实上,这正是谷歌吸引了很多精英在那里工作的原因之一。有一套广为流传的漫画,用搞笑的组织图表总结了科技巨头的特色。亚马逊的创始人杰夫-贝佐斯(Jeff Bezos)曾是管理咨询顾问,该公司的组织结构由一系列循规蹈矩的分支代表,从首席执行官开始,每个人下面都管理两个人。而苹果公司则是以史蒂夫-乔布斯(SteveJobs)的愿景为中心,那个巨大的红点代表乔布斯,周围是一圈没有名字的蓝点——事无巨细地进行管理,始终如一地坚持愿景。微软的内部争斗一直很严重,所以漫画中的分支分为几簇,每一簇都用枪指着其他簇。

漫画用一堆狂乱的线条代表谷歌,换句话说,这个公司从本质上是鼓励混乱滋生的。混乱可以孕育新思路,但却无助于促进一致性,而一致性是伟大设计的标志。

设计的组织

再想想苹果公司的结构(那张漫画),与代表史蒂夫-乔布斯的红点。乔布斯不是设计师,但他设计了一家公司,而这家公司特点是:对于“产品应该是怎么样的”坚守一个单一的愿景。杜阿尔特说:“我也有这方面的经验,除非你对创意决策过程进行‘集权化’,否则只会得到糟糕的结果。我以为,你能采取的最好方法就是组建一个个的团队,每个团队都有自己的设计师,但是这样一来,要实现一致性就不容易了。”

杜阿尔特很难找到一个替代方案。在那些一向以设计闻名的公司——博朗、Olivetti、苹果——CEO和首席设计师之间的关系都格外密切。但是,为了能和苹果设计得一样好,而努力像苹果那样去设计,是很愚蠢的做法——其他公司无法复制苹果的历史和个人关系。好的设计不仅仅是一个产品,也关乎于公司本身。

在谷歌,它可能就别无选择,只能把设计列为一个优先事项。那是2011年,由于对设计的完美性的不懈追求,苹果公司即将成为历史上最有价值的公司。为了与苹果的技术声望开展竞争,谷歌的产品必须具有精心的设计。但是,佩奇在设计问题上的觉醒,反映了一些更加广泛的技术趋势,而这些趋势已经酝酿了十年之久。

趋势的转变

谷歌Android Wear设计负责人布雷特-里德尔(Brett Lider)指出,在2000年代中期,谷歌崛起阶段,web设计都集中在实用工具上。当时精心设计的网站大多有一个特点,就是性能不足。在这种情况下,雄心勃勃的设计实际上缺乏工程上的严肃性。谷歌对高科技极客的痴迷体现在了细节中(比如Android的Logo),而极简化那种功能性的、但缺乏想象力的语言,正好与硅谷尊重DIY的精神相吻合,也符合人机交互的一条“古训”:你能做的最“用户友好”的事情,就是让计算机反应变快,因为如果它是速度不够快,就会失去人们的青睐。更快的速度无疑会导致人们把更多的时间花在一台计算机上。

当然,这一切都已经时过境迁。计算能力最终不再居位用户体验的首位。这部分是因为宽带发展迅速,纯粹的速度不再是个大卖点。但是,真正让设计站到舞台中心的是移动设备。桌面计算设备花了数十年的时间,才成为寻常百姓家的必备之物,而iPhone开启了新的世纪,你的产品要同时面向计算专家和新手——从软件开发人员到老奶奶。突然之间,每个人都在了解移动领域,迫使工程师和设计师在前所未有的规模上考虑实用性。曾经由苹果和微软两家公司决定的用户体验发展速度,现在则是由每一个在某方面做得好一点点的新应用在推进。

可喜的进展

一旦佩奇做出决定,多米诺骨牌就开始倒下。第一块骨牌是他推倒的,方式是汇集一小队设计师——其中包括谷歌搜索的设计负责人威利;Chrome的用户体验主管尼古拉斯-基特克夫;当时Gmail的设计主管迈克尔-莱格特(Michael Leggett),以及谷歌地图领域的金——再次尝试规范和美化谷歌的桌面产品。这个项目的内部名称是“肯尼迪项目”(ProjectKennedy),以美国登月计划之父约翰-F-肯尼迪的名字命名——暗示了这对谷歌来说有多么奇怪。

但是在佩奇的支持下,这个项目取得了可喜的进展:短短几个月后,邮件、日历、地图和搜索就已全部变得清爽时髦,可以提供统一的用户体验了。这些产品不仅变得更干净,而且从菜单的位置到如何用色的各个方面,它们也终于使用同一套设计原则。而且,为了平息工程师的牢骚,谷歌进行了大量的用户测试,证明了新设计是成功的。

这种对一致性的强调,后来成为了Material Design的精髓。然而最重要的成果也许是,谷歌的不同项目组之间开始形成个人关系。该公司的蜂群思维开始进行自组织。杜阿尔特在寻求一种新型的设计组织时,想到了两个关键因素:基层之间的联系,以及更大的事业感。

正如金所指出,像自己的这样的设计师开始越来越善于描述什么是设计。“为了在设计的事情上说服大家,我们不得不说,‘这会解决用户的问题。’这么设计会节约几个步骤,或者这样设计的话,人们就会觉得那个地方是个共进浪漫晚餐的理想场所,”金说。 “你总是要描述得我们正在试图帮助用户。你要表达这样的意思:‘这很重要,因为一个公司不仅要帮助自己,还要发挥更大的作用’。” 长期担任搜索产品设计负责人的威利说:“美本身具有实用性。这是我们内部共识的重要组成部分。美给功能带来了层级、相互关联,以及关联的方式。”

适当的模式

回顾这一过程,你可以看到这与当初的对比有多么强烈——当初伊夫林-金试图在一扇关着的门后面重塑公司的设计语言。谷歌最终得以建立了一个设计良好的组织,是因为它之前已经失败了那么多次。 “我们尝试了这么多次,我们知道该怎么做,”金说。

谷歌设计团队发现,“代理模式”是行不通的。这是指一群与世隔绝的设计师准备一个解决方案,然后让它隆重亮相。它之所以行不通,是因为谷歌的特征是提供高度自主权。 “也许因为我是一个浪漫主义者,也许因为我是一个美国人,我相信,一些人联合起来推动变化。就像美国建国的历史上,13个宣布独立的英国殖民地联合起来一样,”杜阿尔特说。

按照这种说法,杜阿尔特就是乔治-华盛顿,他的做法不是让谷歌的各个产品团队步调一致,而是说服他们,他的愿景和他们的最佳利益是一致的。具体来说,就是不要告诉大家谷歌的新设计会是什么样,而是说服谷歌的无数产品团队,他们在不断地解决同样的问题,这种重复劳动是没有必要的,而且也不会让最好的点子传播得足够远。里德尔提到了一次早期的设计探索,时间比Material Design早几个月,是关于应该如何在移动界面中使用动画的:项目设计师提出,动画应该像在舞台上的舞蹈编排一样。

在舞台上,如果一个演员从舞台左侧走出,他不会突然从右侧再次出现在舞台上。然而,谷歌自己的移动应用中,有很多动画都会这样做。在舞台上,这种无视物理原则的不和谐编排,会让你有一瞬间的出戏,让你觉得这个世界不可置信。虚拟世界也是如此。里德尔称那种洞见——有关视觉的连续性和一致性的舞蹈编排——是“原型Material Design”,它最终成为了Material Design的一条指导原则。通过发现每个团队最好的作品,并把它们糅合成一个系统,杜阿尔特和它的设计师同事建立了一个共同纲领,而不是苹果那样的“单一愿景”,但统一效果并不亚于后者。

成果的维持

接下来的问题仍然是:人员会不可避免地调动岗位或离开公司,如何才能让这个理念一直保持下去?你如何把一时的良好设计,转化成一种更加长寿的文化?在这个方面,愿景与组织之间存在一种微妙的关系。正如金指出,杜阿尔特自己和佩奇的关系,以及他让高管团队对一个设计故事买账的能力,为金这样的设计师扫清了道路,让他们可以冒更大的风险。他们不再需要解释说设计是非常重要的东西。佩奇说它重要,那么它就重要。

如今,Material Design就像是谷歌内部一个专门团队,为无数的产品设计团队提供援助,帮助解决他们遇到的任何问题,然后把这些解决方案集成到整个Material Design中。这个安排,就像是向整个谷歌宇宙派遣使者,向大家传播最好的成果。它的作用是双向的。谷歌各个产品团队的内部设计师被安排到Material Design团队做一些工作,而当他们最终回归到更广泛的组织内部时,他们就会更好地传播理念。如果谷歌确实能保持设计领域的成功的长期性,那么杜阿尔特就创建了一个可以“自组织”的设计组织。

对于谷歌而言,这一切变化是在一个关键时刻出现的:该公司搜集的关于我们的海量数据——无论是我们的晚餐预订,或通勤模式,或工作关系数据——提供了解锁一个新的计算时代的潜力。你可以从Google Now的预测功能中的看到这种潜力,该功能可以在你正好到达生鲜店的时候发送购物提醒。正如布雷特-里德尔指出的那样,“计算变得越来越以人为本。在人们的愿望和技术的限制这一对矛盾中,我们越来越迁就前者。”然而,如果设计不当,新颖的互动可能就会变得不协调、不稳定,甚至很可怕。这有点类似于“恐怖谷”理论:聪明得令人惊讶,但是又没有自然到让人觉得友好。

谷歌的方式

里德尔正在负责Android Wear的设计,他整天都在思考如何把计算更加悄然地融入到我们日常生活的纹理之中。在这个方面,他可能比其他人了解得更多。他知道,你不是通过大刀阔斧的方式,而是一次添加一点儿小小洞见的方式,让技术变得以人为本的。里德尔举了一个例子,讲设计师注意到在使用智能手表时,要么两只手都不用,要么两只手都会用上。也就是说,你要么看一眼它,要么伸出另一只手去摆弄它。但是,如果你的手里拿着东西,你又需要看手表上的某个资料怎么办?

Android Wear的一条指导原则是,它是一个“不触摸”的界面。所以里德尔的团队想出了抖动手腕的方法——想一下,你佩戴着一块手表,当你抬起手腕看它时,表盘并不在你可以一目了然看清楚的位置上,那么你的本能动作就是翻动手腕,调整它的位置。本能反应是交互设计的必杀技,谷歌在理解人们的本能反应方面占有优势,因为该公司拥有海量数据,可以利用它们来帮助解决任何设计问题。

另外一个优雅的例子,是Android Wear处理表情符的方式。显然,如果你在手表上收到一条消息,想用皱眉的表情进行回应,这时要你在长长的表情符号列表中滚动翻看就太离谱了。所以,Android Wear让你可以用手指尖画出一个表情符。如果你不能画特别准确,那也没问题:该软件基本可以猜测出来你画的什么,并将它插入回复中。乍听上去,你会觉得它猜测的准确度很成问题,但谷歌已经让10万人绘制了最常见的表情符号中的每一个。你画的每个图都会和这些数据进行比较,并用最佳适应算法映射到正确的表情符号上。谷歌就是这样的:在一个非常人性化的洞见的背后,隐藏着海量的计算和数据。

前景和挑战

然而,在人性化的洞见和雄心勃勃的设计上所做的一切的投入,是否会在谷歌发挥长期性的效果,这仍然有待观察。毕竟谷歌这家公司在兴趣上有些变幻无常:谷歌进行的每一个著名尝试的背后,还有很多其他尝试被悄然遗忘,而其他一些尝试在风向改变或推动者离开时,就遭到了抛弃。换句话说,创建良好的设计是短跑,创建卓越的设计是马拉松,谷歌仍然很有多里路要跑。

举例来说,要把最佳设计呈现在用户面前,该公司仍然面对着一个广泛的、结构性的挑战。在所有Android设备中,真正升级到了棒棒糖(这是第一个使用了Material Design的版本)的不足10%,虽然它在去年秋天就发布了。无数设备和操作系统口味导致的碎片化,令谷歌无法集体推送更新到所有移动设备上。也许谷歌能够及时解决这个问题,迫使其生态系统变得更加遵守其标准。事实上,这似乎正式谷歌的目标:谷歌的顶级设计师之一乔纳森-李(JonathanLee)是Material Design的视觉设计师,他现在花大量时间来教育应用开发商Material Design是如何工作的,以及如何以一万种不同的方式运用它。要取得任何真正的成功,谷歌的承诺都不能动摇。但是,谷歌的设计师也认为,谷歌的文化已经发生了改变——文化往往比较持久。

“我们感觉到了自己的工作所产生的效果。涓滴效应已经出现,但在八年前我不可能做到这一点,”金说。此外,佩奇提供的例子,以及他对设计的新热情,吸引谷歌各个产品团队的效仿。 “杜阿尔特与拉里-佩奇进行高级别交谈时,就会有人看到,觉得‘我们也需要那样’。当人们看到其他团队采取某些做法,他们就会加以模仿,如果这真的带来了很好的效果,他们就会更多地这么做。”

-END-

欢迎关注“互联网架构师”,我们分享最有价值的互联网技术干货文章,助力您成为有思想的全栈架构师,我们只聊互联网、只聊架构,不聊其他!打造最有价值的架构师圈子和社区。

本公众号覆盖中国主要首席架构师、高级架构师、CTO、技术总监、技术负责人等人 群。分享最有价值的架构思想和内容。打造中国互联网圈最有价值的架构师圈子。

  • 长按下方的二维码可以快速关注我们

  • 如想加群讨论学习,请点击右下角的“加群学习”菜单入群

谷歌如何在设计上脱胎换骨相关推荐

  1. 以人为本的机器学习:谷歌人工智能产品设计概述 By 机器之心2017年7月17日 12:13 取代了手动编程,机器学习(ML)是一种帮助计算机发现数据中的模式和关系的科学。对于创建个人的和动态的经历

    以人为本的机器学习:谷歌人工智能产品设计概述 By 机器之心2017年7月17日 12:13 取代了手动编程,机器学习(ML)是一种帮助计算机发现数据中的模式和关系的科学.对于创建个人的和动态的经历来 ...

  2. 产品在设计上,如何为用户创造惊喜

    文章目录 产品在设计上,如何为用户创造惊喜 1.惊喜的划分与定义 2.情感表达 3.体验 4.彩蛋 产品在设计上,如何为用户创造惊喜 如何在产品中植入一些惊喜性设计来引流,进行用户留存等 1.惊喜的划 ...

  3. 漫谈程序员(十八)浅谈谷歌用户体验设计准则

    #漫谈程序员(十八)浅谈谷歌用户体验设计准则 ##谷歌的愿景   Google用户体验团队致力于创建有用的(useful).快速的(fast).简单的(simple).有吸引力的(engaging). ...

  4. 推理芯片的性能建立在优化的存储子系统设计上

    推理芯片的性能建立在优化的存储子系统设计上 Inference chip performance builds on optimized memory subsystem design 好的推断芯片可 ...

  5. 固态硬盘驱动器在设计上有个安全漏洞 易导致数据损毁

    近年来,出于对提升系统运行速度的渴求,传统机械硬盘(HDD)的市场正被更高速的固态硬盘驱动器(SSD)所蚕食.尽管很多用户仍在采用 SSD 系统盘 + HDD 仓库盘的组合,但后者被淘汰也只是时间问题 ...

  6. R语言ggplot2可视化指定保存到pdf的图像的具体尺寸、保证缩放的一致性:使得绘图元素(文本、点大小等)在设计上都具有相同的绝对大小、设置全局数据点大小、主题格式、设置图像保存的具体尺寸

    R语言ggplot2可视化指定保存到pdf的图像的具体尺寸.保证缩放的一致性:使得绘图元素(文本.点大小等)在设计上都具有相同的绝对大小.设置全局数据点大小.主题格式.设置图像保存的具体尺寸 目录

  7. let/var——事实上var的设计可以看成JavaScript语言设计上的错误. 但是这种错误多半不能修复和移除, 以为需要向后兼容.||将let看成更完美的var

    事实上var的设计可以看成JavaScript语言设计上的错误. 但是这种错误多半不能修复和移除, 以为需要向后兼容. 大概十年前, Brendan Eich就决定修复这个问题, 于是他添加了一个新的 ...

  8. 设计上如何避免EMC问题

    最近经常被问到EMC相关的问题,比如怎么设计才能避免EMC的问题,我想经常关注高速先生的同鞋们有机会肯定也会问到这个问题.首先这是一个系统 性的问题,不是那么好回答,尤其是对于聚焦在高速信号这个领域而 ...

  9. 一些设计上的基本常识(转载)

    原文地址:http://code.alibabatech.com/blog/experience_886/software_design_general_knowledge.html 最近给团队新人讲 ...

  10. android flux 与mvp,使用 MVP 时在设计上的考量

    在"FluxJava: 给 Java 使用的 Flux 库"这篇文章中提到,设计中使用 MVP 最大的问题,是会让不同的画面形成一组.一组的 Class,但各组之间是独立的.MVP ...

最新文章

  1. R语言ggplot2可视化更改轴上数字的格式(显示格式)实战
  2. 4.12Python数据处理篇之Matplotlib系列(十二)---绘图风格的介绍
  3. 微软云Azure创建一个web app
  4. Android Studio自定义模板代码
  5. HTC Link是仅适用于日本的6DOF VR头显
  6. HTML全面深入学习-select的optgroup分组
  7. servlet第2讲(下集)----创建servlet实例(继承HttpServlet)
  8. 计算机如何“看懂”图片?达摩院提出新的研究方法
  9. UILabel 宽高自适应
  10. ORACLE中null的排序问题
  11. bea tuxedo中间件入门
  12. pdf 分形 张济忠_分形
  13. listview 分页加载
  14. cad批量逐个填充lisp,效率提高之CAD如何自动批量导出文本
  15. 机器人系统设计及控制技术附加学习资料
  16. 《我这一辈子》 老舍 著
  17. python的标准随机数生成器模块_Python:带均值和标准差的随机数生成器
  18. 嵌入式编程与软件编程思想不同浅见
  19. HNSWNSG-基于图的ANN近邻搜索
  20. 【Latex格式】双栏双图左右并排有小标题、上下并列有小标题

热门文章

  1. js中的empty()和remove()的区别
  2. 累加数据段中的前3个字型数据
  3. 「leetcode」973. 最接近原点的 K 个点【优先级队列】详解
  4. hdu 4323 Magic Number dp 多校联合赛(三)第四题
  5. poj 1969 Count on Canton 摘规律
  6. 在苹果Mac中的“照片”应用中创建幻灯片放映?
  7. 如何在Mac上使用预览在PDF上打字?
  8. Mac如何为应用单独设置语言?
  9. MacOS自动操作Automator的技巧
  10. iMovie for Mac如何创建分屏效果?