精华内容
下载资源
问答
  • 热点追踪 /深度探讨/ 实地探访 / 商务合作今天,硅谷洞察(原硅谷密探)有幸请来了重生娱乐Prog老师,并对他进行了一次独家专访。希望可以对喜欢和从事概念设计...
        

    640?wx_fmt=gif

    热点追踪 / 深度探讨 / 实地探访 / 商务合作

    今天,硅谷洞察(原硅谷密探)有幸请来了重生娱乐的Prog老师,并对他进行了一次独家的专访。希望可以对喜欢和从事概念设计的你们产生一些帮助和启发。


    ——  导师简介 ——

    640?wx_fmt=png 

      Prog Wang  

    中国新生代概念设计师,毕业于美国一流设计院校ACCD(艺术中心设计学院)娱乐设计专业。现就职于Respawn Entertainment (重生娱乐),曾参与DOOM(毁灭战士)、Apex Legends(Apex英雄),Star Wars Jedi: Fallen Order (星战绝地:陨落教团)等项目。


    小探:您是从什么时候开始发现自己对游戏和电影比较感兴趣并成为一个概念设计师的吗?

    Prog:小时候特别喜欢与科幻相关的东西,所以就开始狂看科幻电影,我们家电脑买的也比较早,基本上从小就是看电影玩游戏。

    相比电影,游戏对我童年的影响更深一些,当时玩的红色警戒、星际争霸还有命令与征服系列对都是我的启蒙。
     
    640?wx_fmt=png

    因为我爸我妈全是教画画的,到了初中左右,发现自己好像除了画画也没啥能干好的(笑),于是决定选一条跟画画相关的路。

    大家经常都说找工作选专业时,要找一个自己感兴趣的专业,所以跟游戏和电影相关又跟画画相关的,就是概念设计这个专业了。 

    小探:那您觉得在Art Center求学的过程,对您的职业有什么影响?

    Prog:我觉得Art Center特别厉害的点在于上课全都是模拟真实工作的情况,从上课的方式到作业的内容都完全按照真实工作流程进行

    640?wx_fmt=png

    比如老师每次布置作业都是给一个方向,让我们回家去做,下次上课的时候把大量的草图贴到墙上让所有人看,然后你需要给大家讲你的设计思路,大家也会根据你的想法提意见,最后确定你的设计方向

    这些流程跟真实的实战环境很像,所以学生毕业之后也会很快融入公司的项目。当我第一次面试Respawn(重生娱乐)公司的时候,面试团队就一直在问我:“你是一个刚毕业的学生,我们不知道你能不能理解真正工作的这种方式,你要做大量的草图,而且你的东西可能会被否定,你还要回去改无休止的改。”
     
    640?wx_fmt=jpeg

    我说这太熟悉了,我大学都在干这事,公司听了后也觉得特别开心,他们觉得这个学校毕业的学生对他们真实工作环境很了解了,就不需要再花很高的成本去让他们适应这个环境。

    (关于顶级游戏公司管理流程的实例讲解,请关注文末课程)

    小探:您感觉什么对概念设计师来说是最重要的东西?

    Prog:我跟同事曾对这个问题讨论了好久,因为确实有太多需要注意的东西了。最后结论是,如果说非要评出一个最重要的点的话,就是设计师需要有一双很好的眼睛。也就是能看出什么东西是美的、什么东西是不对劲的这样的能力。

    但是这个“好眼睛”显然不是一个科学的说法,更好的说法应该是说你的大脑里面积累过足够多的经验和资料,然后它能帮助你提升对画面和设计的敏感程度,让你更容易看出来一个东西的好坏。

    640?wx_fmt=jpeg

    我平时教课发现很多学生一个挺大的问题,就是他们看的东西还不够多。无论是古代、现代或者是虚构的未来的文化、技术等,亦或是大师的作品,看的都不够多。

    审美上的提升需要大量的去看,然后来积累到一定程度之后你才能有一个好用的眼睛。

    小探:您平时是通过什么方式来吸收这些经验的?

    Prog:多看、多想、多练。

    多看的话,很多人会去像Artstation一类的网站上去大量的看,我觉得这很好,但还不够,(概念设计师)也应该大量看一些念设计这个领域以外的东西。

    比如说服装设计,我最近特别沉迷街头服装的那种杂志。这会帮你了解到一些可能听起来没有概念设计那么酷、但是实际上是在充实你的大脑的内容,让你在下次做设计的时候会有更多的选择。

    640?wx_fmt=png

    我更喜欢那种有具体内容的东西,而不是一团经过重重设计却缺少内容的形状。单纯画一个炫酷的外表也远不如描绘这个人的特殊性有意思,比如他从事的工作会穿什么样衣服和靴子、身上带着什么样的装备等等。这样有血有肉的设计对我来说更有趣。

    小探:您能大概介绍下您平时创造出一幅作品的大概的流程会是什么样吗? 

    Prog:我自己画画流程会很简单。平时就是开车、翻书或是在饭店等着上菜的时候,有了一些灵感,我都会记下来,然后在脑子里面给它逐渐完善。这种就没有太多的纸面过程,在脑子里面逐渐成形之后去画一些草图,最后再给它画完。

    如果是工作的话,相对而言能发挥的地方往往不是特别多。你会拿到一个非常详细的关于这个东西或者这个人的一个描述,它会告诉你设计哪一个种族的人,身高、定位什么的,甚至有的还会给你比较详细的设定,比如会精确到说这个角色它的攻击方式是什么样的,应该给玩家造成一个什么样的压力,我们设计目的是什么之类的。
     
    640?wx_fmt=jpeg

    当然也有那种要求不是特别明确的设计,你可以有机会去想方设法画出一些与众不同的东西,一大堆草图,再逐渐开会和迭代,一点一点的推进,将其完成。

    有的时候草图刚画完的时候就会拿去建一个比较糙的模型,然后再把这模型给你,让你在模型上面画更完善、更确定的细节,然后再去继续建模,建模再做出来一些细节,再给你画,来回反复。也有直接画完拿去建模就扔到游戏里一气呵成的时候,总之会分不同的情况。

    比较着急要的那些东西,可能就一天时间给你找参考、画草图,第二天就建粗模了,第三天让你画完,第四天彻底当做完成图拿去建模了。

    特别慢的则是可以花费一两年的时间才能完成。就像我为一个星球大战游戏设计的飞船,每次和卢卡斯影视那边开会要交上去十几个二十几个不同的版本,然后让他们会给根据这些草图提意见。因为他们一直特别重视飞船,所以来回反复经历了两年左右,才得到一个最终大家都满意的设计。

    他们说这个设计你不能随便画,因为说不定以后会用到电影里面,就算不用到电影里,也是需要代表着这一个时代符号化的东西(希望是吧哈哈哈)。星战粉丝们肯定会有人去探究它所有的细节,不仅外观的设计要反复打磨,我们连这飞船的背景,谁造的、怎么造的也会编出来一个个的故事给玩家看。

    卢卡斯影视的DougChiang当时对我提出了一个挑战,他说这艘飞船不仅需要满足之前的要求,而且还得让五岁的小孩子在看完之后能够记住,并且画出来它的样子,画出来之后给别人看,别人还得能认出来这个东西是什么。你会发现星球大战里面那些钛战机、X翼战机、千年隼之类的很多设计其实都是在遵循这个道理。

     

    640?wx_fmt=jpeg

    小探:您在做概念设计的时候是如何激发自己的灵感的呢?

    Prog:其实大多数时候做设计是个像解题一样的过程,不会特别追求“激发灵感”,因为灵感是一个有点玄学的东西。每个人都梦想遇到做那种灵感爆发、跳下床冲到桌子前开始画画的情况,但不得不承认这种情况的不确定性也很强。如果太依赖灵感的话,总会有忽然没灵感的时候,这样的话整个项目进度就延期滞后了。所以我们平时不会特别依赖它,而是用一个相对稳妥的流程进行创造。

    比如开始的时候问自己这个设计是什么年代什么在什么地方用来做什么,然后把设计大致的敲定一个方向,再去找参考。大量的参考找到之后整个设计在大脑里也会逐渐成型,然后再尝试一些不同的形状不同的草图之类的,就这样一个流程下来的话,就是你再怎么没有灵感,也能画出一个东西。平时我们更多的是用工业化的流程来创造东西,而不是说去等着灵感自己蹦出来,因为那样太冒险了。

    (更多关于概念设计流程的实例分析,请关注文末的课程)

    当然如果抓住了很好的灵感,尤其是在做一个重要的设计的时候,也是种可遇不可求的极致体验。有时候我会上网上去随便看一些东西,翻一翻我收藏过的那些网站,看一看新闻之类的,然后用这种方式让脑子活跃起来,在短时间内一下充实了很多东西,就可能会产生一些与众不同的想法。

    比如去看微博上一些军事、艺术类的博主,逛逛论坛,我也很喜欢去一个叫煎蛋的网站;还有就是去Behance上看各种艺术家的作品集,以及各种新的电视剧动画片,电影游戏什么的,我看漫画看的也特别多。

    640?wx_fmt=gif

    (Behance GIF by @jack.mcg)


    还有一个叫Fancy的网站,这是一个购物网站,卖的货全都是从整个互联网里面精选出来的一些特别有意思的产品,还会按照各种方式将这些产品分类。

    做设计的时候,一个场景里面涉及到物件设计的地方特别多,真的是什么样的东西都要有知识储备。我有时候我会给学生留作业,比如就画一张桌子,然后你要设定好这个桌子是谁用的,用来做什么,再去想桌子上面下面要有什么东西,怎么摆放。就这种情况其实听起来很无聊,但是在工作的时候就经常会遇到这种任务。
     
    小探:您是如何看待文化背景知识在创作中的重要性呢?

    Prog:我感觉这应该是非常重要的,因为当你看很多初学者的设计,你会发现他们只是在做一些形状的设计,只是画了一些他觉得好看的形状。举个例子比如说你看《XXXX》的时候,你仔细看它背景里,只有一些空洞的金属墙面,然后墙上有一些图形的分割之类的,这种就是特别的苍白的一种设计。  

    再看比如异形里面的设计,飞船里各种各样的设备,还有那些墙面用的材质,裸露出来的管道,以及它上面不同细节都是怎么安排的,按钮和拉杆是长成什么样的,无时无刻都在向你传递大量的信息,告诉你这个飞船是在怎样的技术水平下,如何建出来的。

    640?wx_fmt=png

    场景就是这样。观众在看的时候,当然不会每个人都跟专业的设计师一样盯着去看,但是这些东西都是必不可少的。好的场景会营造出一个特别到位的感觉,塑造出的场景给人带来那种体验感就立得住,它会让观众觉得这是一个很丰富的世界,是一个底蕴有背景的世界观,而不是仅仅一个金属墙立在那里。 

    小探:概念设计师是一个不断进步的行业,您是平时是如何不断吸取知识、提升自己的?

    Prog:逛书店,然后找那些奇奇怪怪书(笑)以及上网随便看。我也会报一些我感兴趣的课,可能会平时太忙或者就是太懒,但是会强迫自己去看,就花了钱必须看,看了总比不看强。

    平时也喜欢玩游戏看电影,但工作太忙,就算每天花一两个小时干这些事,也会看到凌晨三四点。但是到周末的话可能就十几个小时都投入进去,把动画片全都补了,新的电影给他看了,新的游戏全都玩一玩。

    基本上玩游戏还是比电影多,毕竟一个电影两小时就看完了,游戏的话可能随随便便就要花几十个小时。还有我看书看漫画投入的时间跟游戏也差不多,我也非常喜欢看。

    文字和漫画是一个可以掌握自己掌握节奏的东西。比如说看视频的时候,想快进或是慢放都要手动操作,在电影院你甚至只能被动的接受导演安排的节奏。但是看书的时候,如果你想慢下来欣赏一页绝妙的漫画分镜,或者是快一点的跨过不感兴趣的内容,都是你自己阅读速度决定的,所以说看着很舒服。

    640?wx_fmt=gif

    而且漫画它是一个可以掌握自己掌握节奏的东西。比如说视频的时候快进的话,可能一下会略过很多东西,就不太敢快进,但是看漫画是你想慢下来欣赏他的画的东西,或者是快一点的跨过它,这个剧情怎么样?都是你自己掌握的一个流程,所以说看着也挺舒服的。

    小探:在从业过程中,您是否会向别的优秀概念设计师学习? 有哪些对您影响比较大的艺术家呢?

    Prog:我之前上过Craig Mullins的课,对我影响特别大。他总结出来一套很有效的绘画方式,你把他的方式融入到自己工作的流程里面的话,就会发现很有效,能提高自己的速度以及质量。

    (如何提高作画流程,请关注Prog老师给我们带来的大师课哦)

    还有Aaron Beck,他对我影响也特别大。如果看他的图你可能意识不到他做了一些特定的事情,但是听他讲的话你才能知道为什么他能得到这个有趣的形状。

    比如说他在设计一些武器的时候,上面有一些形状的分割,来自于鳄鱼的牙齿互相咬合的感觉,他把形状简化出来,然后试图把它给用机械的形式去表达出来,再放到他的设计里面得到一些与众不同的东西。

    640?wx_fmt=png

    还有Ryan Church对我影响也特别大。他平时画画是有个人风格的,但是你会发现无论他在哪一个项目里面,他都能把这个项目本身的风格给推到一个极致的水平,就比如说他做星球大战和做星际迷航的时候完全两个风格,但是这两个风格他都能做得特别厉害。 

    小探:那您是怎么样处理比如说您画的机甲者枪械的这些细节设计? 

    Prog:其实还是要找参考,比如说我需要设计机甲上面的一个光学设备的话,那么我自己再怎么画,我编的肯定也是比不上现实里坦克、战机、遥控武器站上面的光学设备。

    或者说我设计一个武士,他手里拿的剑或者身上穿着盔甲,那些东西在现实都是经过实战考验的,这都是几千年不断的更新换代才得到的结果。我在短短几天甚至几小时的设计过程中,如果只是闭门造车,做出来的设计跟那些历经战场考验的东西相比,肯定是相形见绌的。

    640?wx_fmt=jpeg

        

    所以越是细节的东西,我越是愿意去大量的去学习真实的那些东西是怎么造出来的,比如说各种盔甲上每一片金属的连接,它是用什么方式连在一起的,如何做到防御和灵活兼顾,这些东西了解的越多,你的设计才能越让人信服。

    另外在游戏设计里面,有时候我们会需要画不存在的东西。例如一把未来的步枪,需要暗示玩家它有特殊的功能,它打出来的可以是能量或者一些等离子之类的,所以基于功能再去找参考,比如说用电磁的方式去发射等离子,它应该有什么样的设备可以实现这个功能,在现实里找到之后试图把这个感觉融入到你的武器里面,大概是这样的一个过程。

    640?wx_fmt=png

    其实现实里面的设计也是一样。整个基础科学一无所有的时候,肯定不会突然发明出来一个灯泡,或者发明出一个蒸汽机、电脑什么的。这些都是所有的技术已经发展到一定地步,然后发明家们把各种硬件软件组合到一起,基于已经存在的技术和产品,然后做出来一台解决问题的机器,仅此而已。

    并没有设计师能够真正去做出和现实毫无关联的东西,就像你没法想出一个新的颜色,做设计大概就是这样一回事。

    小探:艺术源于生活,您是如何评价自己生活中的自己的?您的生活对您的设计有什么影响?

    Prog:我买玩具买的特别多,我觉得这个影响还是有的。因为像有时候做一些设计的时候,我可能会去我放玩具的架子上面拿下来一些东西,然后翻来覆去地看一看他在空间里面的结构是什么样的;或者是有些的设计师设计的玩具很有意思,他会他不会受IP限制,所以他在设计原创的玩具的时候会有一些非常奇怪的东西被设计出来。日常主要也就一个收藏玩具的爱好。

    除了收藏玩具以外我还喜欢钓鱼、逛超市之类的,逛超市是我一个主要的减压方式(笑)。比如说画久了就特别想换个脑子,或者是平时工作最近遇到什么问题了,很难突破的时候,我就会去逛超市。
     
    小探:您目前对游戏和影视行业未来发展趋势有什么样的看法?这些趋势对概念设计师的影响会有哪些?

    Prog:我觉得现在我看到很多的技术的方发展,会让生产出一张图变得越来越容易。比如说前段时间英伟达公司发布了一个场景的算法,你可以像儿童画一样,用绿色涂一块代表草地,拿黄色涂一块代表土地,再画一个大致的山的形状代表山,然后天空涂蓝了代表天,系统就会按照你的布局帮你生成一张看起来照片一样真实的图。
     
    所以我觉得进行创造的难度会无限的降低下去。整个历史发展就是这样,学习的成本会变得越来越低,可能几年以后,十岁的小孩子都能生产出看起来非常完整度非常高的画,一般人也能用软件轻松生产出大量的作品,但是如何从这些大量生成的图中挑出最合适的用到项目里面的那一个,亦或是依靠经验去解决更加复杂的问题,这些能力可能会比以前更重要。

    非常感谢Prog老师今天参与我们的采访,也希望Prog老师的分享可以给大家带来启发,让自己更进一步



    末了,希望我们《全球影视游戏大师班》的点点努力,能帮助到正在默默坚守着自己梦想的你!除了Prog老师,我们这次还邀请到了《阿凡达2》、《星战》、《复仇者联盟:无限战争》、《侏罗纪世界》的核心概念设计师将和大家面对面交流、分享以及授课了!

    报名请点击文末“阅读原文”

    对影视游戏概念设计和故事板创作技巧感兴趣的小伙伴一定要关注我们本次的大师班,一定让你学有所获!具体导师阵容和课程细节如下:

    课程日期和时间
     
    上海站

    上海站(12月17-19日)
    12月17号
    1:30 pm - 5:30 pm
    7:00 pm - 10:00 pm
    12月18号
    1:30 pm - 5:30 pm
    7:00 pm - 10:00 pm
    12月19号
    1:30 pm - 5:30 pm
    围炉夜话

    深圳站

    深圳站(12月21-22日)
    12月21号
    9:00 pm - 12:00 pm
    1:30 pm - 5:30 pm
    6:30 pm - 10:00 pm
    围炉夜话
    12月22号
    9:00 pm - 12:00 pm
    1:30 pm - 5:30 pm 
    *两个城市授课内容有所不同,请根据个人情况报名
    *具体授课地点请咨询客服

    640?wx_fmt=jpeg



    官方群请进

    640?wx_fmt=png


    如有疑问请联系客服
    2834893976

    报名请点击阅读原文

    展开全文
  • 学 法 本节是本章的入门课,概念较多,但难度不大.学生可根据在原有的位移、力等物理概念来学习向量的概念,结合图形事物区分平行向量、相等向量和共线向量等概念.猫能捉住老鼠吗?速度是既有大小又
  • 标志设计中空间思维,所谓空间概念就是视觉空间概念 , 而并不是在实际意义上三维立体空间,往往充满情趣、智慧和视觉感染力,作为一个代表性图形符号,借助大量复制和重复使用,使之在品牌推广中深入人心。...
    19fe8e062834e17958e4050c72c22824.png

    文/张龙翔 如今的标志作品已不再满足于平面的图形符号,许多时候需要体现空间的空灵感,一种空间的跳跃感和平面形式无法完全表达的空间的冲击力 。

    63aa1d4c37fe5ae1d25cdd639f37cd93.png

    标志设计中的空间思维,所谓空间概念就是视觉空间概念 , 而并不是在实际意义上的三维立体空间,往往充满情趣、智慧和视觉感染力,作为一个代表性的图形符号,借助大量的复制和重复使用,使之在品牌推广中深入人心。

    1d67342b73d4dab5ac1ca19bdde0bb36.png

    富有感染力的标志设计往往是源于时代生活,和对时代生活节奏感性理解,在创作过程中通过理性思维对主题进行视觉化的表述。优秀的标志设计作品必定是在有效传播信息基础上极富形式美感和审美趣味的表达。

    2fd4920ca5e4223e7f44ca711551fb1e.png

    现代标志设计不只是从简单的形式美的角度来要求和考究一款设计作品,往往更需要从多维空间的角度来诠释标志设计的新意义。

    9b6b68e76d0e6c67024091d0e54af2c8.png
    8a9442177dfc0240144dfb27c355c185.gif

    在标志设计中运用空间概念,主要是依据人类对于空间知觉和空间感觉的认知而完成的,其涵盖了人们在造型活动中的主观空间概念,繁杂新奇的展示了思维的独特性,表现方法如下:

    b023731bb9c159efb76753434cf5d1ae.png
    edc3599307a90d79d648f87339c808c3.gif

    元素之间的空间感觉主要由元素之间的前后距离加以表现,同一形态的两个元素因离视觉点的距离不同而产生大小不同,在平面上表现时较大的物体具有向前感,较小的物体具有后退感,由此便产生空间效果。

    4badf975d74b6834c409f89745a01f09.png
    03b21b589cbf076b67e09d222e05675e.gif

    光影的产生源于光线的照射,光线不单可以增加视觉内容,体现视觉对象的外形,也可以遮挡内容从而压缩视觉范围,在这个照明增加和调暗减少的过程中,物体之间便会产生视觉空间感。

    a2cd81ae55b4f646259cf167e3a17492.png

    光和物体的相互存在还会产生阴影效果,在光与阴影的对比和衬托下,视觉物体就会产生强弱不同的视觉空间感。

    be52d5a8e33c89677a71d7e835ef1da9.png
    7d49d13b118595c027a1a625d2c6ce8b.gif

    首先我们知道色彩本身具有明度、纯度、冷暖的特性。根据人类本身对色彩的感知度,我们得出了色彩在空间表现中的定律:

    22574d1e4bad011da213014532ba7c0e.png

    明度高的颜色具有向前感,明度低的颜色有后退感;纯度高的颜色具有向前感,纯度低的颜色有后退感;冷调子的颜色有远离感 , 而暖调子的颜色则具有靠近感,这种利用色彩特性的错位就会产生空间感。

    35096b42f107ea93816165598dfe11f5.png
    e87c0a70deb5e2cb13f5aa43c2f7022b.gif

    通过对图像的扭曲、旋转、弯曲变形,使同一表面的不同部分产生方向上的变化,达到图形在视觉上空间感的产生。

    ffd0cdfd11ec84b52ce200e8e268d780.png
    a4a5022272ed11ce04180c0b1ccc273c.gif

    通过改变线的长短、粗细、疏密、浓淡、曲折等在视觉范围产生效果。

    cfc3677a831e0a8974a85d5d37d8c178.png
    25fd436e9cf9b99a35ac5e4d2b50c866.gif

    这是非常有意思的空间图形,使具象与抽象、主观与客观构合了一个趣味无穷的混维空间,从而产生出视觉上矛盾的空间感。这种有意违反正常空间观念的不同空间形态的物体组合 , 可以产生出似是而非的矛盾的空间假象,也就是利用视觉差异创造新空间,创造具有空间感标志图形。

    377eea7328af726f040658b80a7dacf6.png

    通过线条、明暗以及物体之间透叠的手法,表现前后、凹凸的双重视觉效果,而在运用这种方法来表现空间感时往往多倾向于运用几何化形象表现,并且有意识的将平面形式和空间立体、二维和多维进行分解重组 。

    a95f7bc508d7006bbf82040b6bda38bd.png

    标志作为视觉语言,是一种能够直接传播信息、交流思想的特殊语言形式 , 甚至具有超越国界和语言障碍的优越性,与文字语言的组成方法相似,标志语言也可以看作是由图形语汇和语法所搭建的交流平台 , 设计师则在这个平台上利用各自的图语习惯和构成规律组织 , 探讨对信息和事物最精辟的表达。

    9116f35bb93c4e4fcda8102bdd6c027c.png

    总之,现代标志设计中增加空间概念的设计方案,可以使标志图形设计更加丰富、更具有生命力、更有效地传达时代的要求。

    ce33cfa9caa28b68a0f2a32843bee111.png
    1c0b48be191e6ceb290ebe4524edde78.png
    展开全文
  • 想成为优秀的软件工程师 不可不知的10个概念 出色的软件工程师善用设计模式,勤于代码重构,编写单元测试,并对简单有宗教般的追求。除了这些,优秀的软件工程师还要通晓10个概念,这10个概念超越了编程语言与设计...

    出色的软件工程师善用设计模式,勤于代码重构,编写单元测试,并对简单有宗教般的追求。除了这些,优秀的软件工程师还要通晓10个概念,这10个概念超越了编程语言与设计模式,软件工程师应当从更广的范围内明白这些道理。

     

    10. 关系数据库 (Relational Databases)

    关系数据库 因为在大规模Web 服务上缺乏可扩充性而 颇受微词 ,然而,关系数据库仍然是近20年来计算机技术中最伟大的成就。关系数据库对处理订单,公司数据方面有着出色的表现。

    关系数据库的核心是以记录表示数据,记录存放在数据库表,数据库使用查询语言(SQL)对数据进行搜索与查询,同时,数据库对各个数据表进行关联。

    数据库的标准化技术(normalization)讲的是使用正确的方式对数据进行分存以降低冗余,并加快存取速度。

    9. 安全 (Security) 

    随着黑客的崛起与数据敏感性的上升,安全http://www.ijiami.cn/treg 变得非常重要。安全是个广义的概念,涉及验证,授权与信息传输。

    验证是对用户的身份进行检查,如要求用户输入密码。验证通常需要结合SSL (securesocket layer)进行;授权在公司业务系统中非常重要,尤其是一些工作流系统。最近开发的 OAuth 协议可以帮助Web 服务将相应信息向相应用户开放。Flickr便使用这种方式管理私人照片和数据的访问权限。

    另外一个安全领域是网络设防,这关系到操作系统,配置与监控。不仅网络危险重重,任何软件都是。Firefox被称为最安全的浏览器,仍然需要频频发布安全补丁。要为你的系统编写安全代码就需要明白各种潜在的问题。

    8. 云计算 (Cloud Computing) 

    RWW 最近的关于云计算的文章 Reaching For The Sky Through Compute Clouds 讲到了 云计算 如何改变大规模Web 应用的发布。大规模的并行,低成本,与快速投入市场。

    并 行算法发明以来,首先迎来的是网格计算,网格计算是借助空闲的桌面计算机资源进行并行计算。最著名的例子是Berkley 大学的SETI@home计划,该计划使用空闲的CPU 资源分析太空数据。金融机构也大规模实施网格计算进行风险分析。空闲的资源,加上J2EE 平台的崛起,迎来了云计算的概念:应用服务虚拟化。就是应用按需运行,并可以随着时间和用户规模而实时改变。

    云计算最生动的例子是Amazon 的Web 服务,一组可以通过API 进行调用的应用,如云服务(EC2),一个用来存储大型媒体文件的数据库(S3),索引服务(SimpleDB),序列服务(SQS)。

    7. 并发 (Concurrency) 

    并发 是软件工程师最容易犯错的地方,这可以理解,因为我们一直遵从线形思维,然而并发在现代系统中非常重要。

    并 发是程序中的并行处理,多数现代编程语言包含内置的并发能力,在Java,指的是线程。关于并发,最经典的例子是“生产/消费”模式,生产方生产数据和任务,并放入工作线程消费或执行。并发的复杂性在于,线程需要经常 访问共同数据,每个线程都有自己的执行顺序,但需要访问共同数据。Doug Lea 曾写过一个最复杂的并发类,现在是 core Java 的一部分。

    6. 缓存(Caching) 

    缓 存对现代Web 程序不可或缺,缓存是从数据库取回,并存放在内存中的数据。因为数据库直接存取的代价非常高,将数据从数据库取回并放在缓存中访问就变得十分必要。比如, 你有一个网站,要显示上周的畅销书,你可以从数据将畅销书榜一次性取回放在缓存中,而不必在每次访问时都去数据库读数据。

    缓存需要代价,只有最常用的内容才可以放入缓存。很多现代程序,包括Facebook,依靠一种叫做 Memcached 的分布式缓存系统,该系统是 Brad Firzpatrick 在工作于LiveJournal 项目时开发的,Memcached使用网络中空闲的内存资源建立缓存机制,Memcached类库在很多流行编程语言,包括Java 和PHP 中都有。

    5. 散列法(Hashing)

    Hashing 的目的是加速访问速度。如果数据是序列存储的,从中查询一个项的时间取决于数据列的大小。而散列法对每一个项计算一个数字作为索引,在一个好的Hashing 算法下,数据查找的速度是一样的。

    除了存储数据,散列法对分布式系统也很重要。统一散列法(uniformhash )用来在云数据库环境下,在不同计算机之间分存数据。Google的索引服务就是这种方法的体现,每一个URL 都被散列分布到特定计算机。

    散列函数非常复杂,但现代类库中都有现成的类,重要的是,如何对散列法进行细调以获得最好的性能。

    4. 算法的复杂性 (Algorithmic Complexity) 

    关于算法的复杂性,软件工程师需要理解这样几件事。第一, 大O标记法(bigO notation) ; 第二,你永远都不应该使用嵌套式循环(循环里面套循环),你应该使用Hash 表,数组或单一循环;第三,如今优秀类库比比皆是,我们不必过分纠缠于这些库的效能的差别,我们以后还有机会进行细调;最后,不要忽视算法的优雅及性能, 编写紧凑的,可读的代码可以让你的算法更简单,更干净。

    3. 分层 (Layering) 

    用分层来讨论软件架构是最容易的。JohnLakos 曾出版过一本关于 大型C++ 系统的书 。Lakos认为软件包含了层,书中介绍了层的概念,方法是,对每个软件组件,数一下它所依赖的组件数目就可以知道它的复杂程度。

    Lakos 认为,一个好的软件拥有金字塔结构,就是说,软件组件拥有层层积累的复杂度,但每个组件本身必须简单,一个优秀的软件包含很多小的,可重复使用的模块,每 个模块有自己的职责。一个好的系统中,组件之间的依赖性不可交叉,整个系统是各种各样的组件堆积起来,形成一个金字塔。

    Lakos 在软件工程的很多方面都是先驱,最著名的是 Refactoring (代码重构)。代码重构指的是,在编程过程中需要不断地对代码进行改造以保证其结构的健壮与灵活。

    2. 惯例与模板 (Conventions and Templates) 

    命 名惯例和基础模板在编程模式中常被忽视,然而它可能是最强大的方法。命名惯例使软件自动化成为可能,如,JavaBeans 框架在getter 和setter 方法中,使用简单的命名惯例。del.icio.us网站的URL 命名也使用统一的格式,如http://del.icio.us/tag/software 会将用户带到所有标签为 software 的页。

    很多社会网络均使用简单命名,如,你的名字是 johnsmith ,那你的头像可能命名为 johnsmith .jpg,而你的rss 聚合文件的命名很可能是 johnsmith.xml 。

    命名惯例还用于单元测试,如,JUnit单元测试工具会辨认所有以test 开头的类。

    我们这里说的模板(templates)指的并不是 C++ 或Java 语言中的constructs,我们说的是一些包含变量的模板文件,用户可以替换变量并输出最终结果。

    Cold Fusion 是最先使用模板的程序之一,后来,Java使用JSP 实现模板功能。Apache近来为Java 开发了非常好用的通用模板,Velocity。PHP本身就是基于模板的,因为它支持eval 函数。

    1. 界面(Interfaces) 

    软件工程中最重要的概念是界面。任何软件都是一个真实系统的模型。如何使用简单的用户界面进行模型化至关重要。很多软件系统走这样的极端,缺乏抽象的冗长代码,或者过分设计而导致无谓的复杂。

    在众多软件工程书籍中,RobertMartin 写的《敏捷编程》值得一读。

    关于模型化,以下方法对你会有帮助。首先,去掉那些只有在将来才可能用得着的方法,代码越精练越好。第二,不要总认为以前的东西是对的,要善于改变。第三,要有耐心并享受过程。

     

    展开全文
  • 除了这些,优秀的软件工程师还要通晓10个概念,这10个概念超越了编程语言与设计模式,软件工程师应当从更广的范围内明白这些道理(全文阅读): 接口 (Interfaces ) 惯例与模板 (Conventions and Templates) ...
     "出色的软件工程师善用设计模式,勤于代码重构,编写单元测试,并对简单有宗教般的追求。除了这些,优秀的软件工程师还要通晓10个概念,这10个概念超越了编程语言与设计模式,软件工程师应当从更广的范围内明白这些道理(全文阅读): 
    接口 (Interfaces )
    惯例与模板 (Conventions and Templates)
    分层 (Layering )
    算法的复杂性 (Algorithmic Complexity)
    散列法 (Hashing )
    缓存 (Caching )
    并发 (Concurrency )
    云计算(Cloud Computing )
    安全(Security )
    关系数据库 (Relational Databases )
    10. 关系数据库 (Relational Databases)

    关系数据库因为在大规模 Web 服务上缺乏可扩充性而颇受微词,然而,关系数据库仍然是近20年来计算机技术中最伟大的成就。关系数据库对处理订单,公司数据方面有着出色的表现。

    关系数据库的核心是以记录表示数据,记录存放在数据库表,数据库使用查询语言(SQL)对数据进行搜索与查询,同时,数据库对各个数据表进行关联。

    数据库的标准化技术(normalization)讲的是使用正确的方式对数据进行分存以降低冗余,并加快存取速度。

    9. 安全 (Security)

    随着黑客的崛起与数据敏感性的上升,安全变得非常重要。安全是个广义的概念,涉及验证,授权与信息传输。

    验证是对用户的身份进行检查,如要求用户输入密码。验证通常需要结合 SSL (secure socket layer)进行;授权在公司业务系统中非常重要,尤其是一些工作流系统。最近开发的 OAuth 协议可以帮助 Web 服务将相应信息向相应用户开放。Flickr 便使用这种方式管理私人照片和数据的访问权限。

    另外一个安全领域是网络设防,这关系到操作系统,配置与监控。不仅网络危险重重,任何软件都是。Firefox 被称为最安全的浏览器,仍然需要频频发布安全补丁。要为你的系统编写安全代码就需要明白各种潜在的问题。

    8. 云计算 (Cloud Computing)

    RWW 最近的关于云计算的文章 Reaching For The Sky Through Compute Clouds 讲到了云计算如何改变大规模 Web 应用的发布。大规模的并行,低成本,与快速投入市场。

    并行算法发明以来,首先迎来的是网格计算,网格计算是借助空闲的桌面计算机资源进行并行计算。最著名的例子是 Berkley 大学的 SETI@home 计划,该计划使用空闲的 CPU 资源分析太空数据。金融机构也大规模实施网格计算进行风险分析。空闲的资源,加上 J2EE 平台的崛起,迎来了云计算的概念:应用服务虚拟化。就是应用按需运行,并可以随着时间和用户规模而实时改变。

    云计算最生动的例子是 Amazon 的 Web 服务,一组可以通过 API 进行调用的应用,如云服务(EC2),一个用来存储大型媒体文件的数据库(S3),索引服务(SimpleDB),序列服务(SQS)。

    7. 并发 (Concurrency)

    并发是软件工程师最容易犯错的地方,这可以理解,因为我们一直遵从线形思维,然而并发在现代系统中非常重要。

    并发是程序中的并行处理,多数现代编程语言包含内置的并发能力,在 Java,指的是线程。关于并发,最经典的例子是“生产/消费”模式,生产方生产数据和任务,并放入工作线程消费或执行。并发的复杂性在于,线程需要经常访问共同数据,每个线程都有自己的执行顺序,但需要访问共同数据。Doug Lea 曾写过一个最复杂的并发类,现在是 core Java 的一部分。

    6. 缓存(Caching)

    缓存对现代 Web 程序不可或缺,缓存是从数据库取回,并存放在内存中的数据。因为数据库直接存取的代价非常高,将数据从数据库取回并放在缓存中访问就变得十分必要。比如,你有一个网站,要显示上周的畅销书,你可以从数据将畅销书榜一次性取回放在缓存中,而不必在每次访问时都去数据库读数据。

    缓存需要代价,只有最常用的内容才可以放入缓存。很多现代程序,包括 Facebook,依靠一种叫做 Memcached 的分布式缓存系统,该系统是 Brad Firzpatrick 在工作于 LiveJournal 项目时开发的,Memcached 使用网络中空闲的内存资源建立缓存机制,Memcached 类库在很多流行编程语言,包括 Java 和 PHP 中都有。

    5. 散列法(Hashing)

    Hashing 的目的是加速访问速度。如果数据是序列存储的,从中查询一个项的时间取决于数据列的大小。而散列法对每一个项计算一个数字作为索引,在一个好的 Hashing 算法下,数据查找的速度是一样的。

    除了存储数据,散列法对分布式系统也很重要。统一散列法(uniform hash )用来在云数据库环境下,在不同计算机之间分存数据。Google 的索引服务就是这种方法的体现,每一个 URL 都被散列分布到特定计算机。

    散列函数非常复杂,但现代类库中都有现成的类,重要的是,如何对散列法进行细调以获得最好的性能。

    4. 算法的复杂性 (Algorithmic Complexity)

    关于算法的复杂性,软件工程师需要理解这样几件事。第一,大O标记法(big O notation);第二,你永远都不应该使用嵌套式循环(循环里面套循环),你应该使用 Hash 表,数组或单一循环;第三,如今优秀类库比比皆是,我们不必过分纠缠于这些库的效能的差别,我们以后还有机会进行细调;最后,不要忽视算法的优雅及性能,编写紧凑的,可读的代码可以让你的算法更简单,更干净。

    3. 分层 (Layering)

    用分层来讨论软件架构是最容易的。John Lakos 曾出版过一本关于大型 C++ 系统的书。Lakos 认为软件包含了层,书中介绍了层的概念,方法是,对每个软件组件,数一下它所依赖的组件数目就可以知道它的复杂程度。

    Lakos 认为,一个好的软件拥有金字塔结构,就是说,软件组件拥有层层积累的复杂度,但每个组件本身必须简单,一个优秀的软件包含很多小的,可重复使用的模块,每个模块有自己的职责。一个好的系统中,组件之间的依赖性不可交叉,整个系统是各种各样的组件堆积起来,形成一个金字塔。

    Lakos 在软件工程的很多方面都是先驱,最著名的是 Refactoring (代码重构)。代码重构指的是,在编程过程中需要不断地对代码进行改造以保证其结构的健壮与灵活。

    2. 惯例与模板 (Conventions and Templates)

    命名惯例和基础模板在编程模式中常被忽视,然而它可能是最强大的方法。命名惯例使软件自动化成为可能,如,Java Beans 框架在 getter 和 setter 方法中,使用简单的命名惯例。del.icio.us 网站的 URL 命名也使用统一的格式,如 http://del.icio.us/tag/software 会将用户带到所有标签为 software 的页。

    很多社会网络均使用简单命名,如,你的名字是 johnsmith ,那你的头像可能命名为 johnsmith.jpg,而你的 rss 聚合文件的命名很可能是 johnsmith.xml 。

    命名惯例还用于单元测试,如,JUnit 单元测试工具会辨认所有以 test 开头的类。

    我们这里说的模板(templates )指的并不是 C++ 或 Java 语言中的 constructs,我们说的是一些包含变量的模板文件,用户可以替换变量并输出最终结果。

    Cold Fusion 是最先使用模板的程序之一,后来,Java 使用 JSP 实现模板功能。Apache 近来为 Java 开发了非常好用的通用模板, Velocity。PHP 本身就是基于模板的,因为它支持 eval 函数。

    1. 接口(Interfaces)

    软件工程中最重要的概念是界面。任何软件都是一个真实系统的模型。如何使用简单的用户界面进行模型化至关重要。很多软件系统走这样的极端,缺乏抽象的冗长代码,或者过分设计而导致无谓的复杂。

    在众多软件工程书籍中,Robert Martin 写的《敏捷编程》值得一读。

    关于模型化,以下方法对你会有帮助。首先,去掉那些只有在将来才可能用得着的方法,代码越精练越好。第二,不要总认为以前的东西是对的,要善于改变。第三,要有耐心并享受过程。
    展开全文
  • 本文档介绍了什么叫微服务,并介绍了微服务架构、微服务监控、微服务治理、持续集成等微服务相关概念,对于微服务学习是一个很好总结材料
  • Maya UVs 1 一 什么是 UVs 我们处在一个丰富多彩世界所以在三维制作 中为了使模型表现出丰富细节必须给模型使用 贴图才能表现出所需要丰富效果 在 MAYA 中为了能在多边形和细分曲面模型网格 上使用贴图必须在...
  • 英语阅读好帮手,新概念必背优秀作文。希望有所帮助。。。
  • 优秀文章36篇是从新概念三、四教材里精心挑选出来,其中新概念三20篇和新概念16篇,从贴近考研英语角度来筛选,剔除了大部分记叙文和说明文题材,主要就是论说文了。
  • 概念性架构是对系统设计最初构想,通过主要设计元素及它们之间关系来描述系统,是最初架构设计成果。包括一些高层次设计选择,重在点明关键机制,其中部分架构模式大都借助隐喻手段来描述。 概念性...
  • 本节书摘来自异步社区《妥协的完美主义—优秀产品经理的实践指南(卷一)》一书中的第1章,第1....1.1 优秀的产品经理很稀缺 在学校里,没有“产品经理”这个专业,但毕业后,放眼招聘就业市场,带有“产品经理”字...
  • 大家快来吧,还等什么呢, 有了新概念英语背诵模板,写作还愁什么呢,让你足不出户就可以学习英语
  • 算法的概念 教学背 景分析 教法分 析和学 法指导 教学过 程设计 教学背 景分析 ? 内容选自人教版高中课程标准实验教科书 A 版必修 3 第一章第一节 ; 教材的地位及其 作用 ? 算法是一种解决问题的方法是数学及其应用 ...
  • 1、本文所以内容来自 著名高校课件和学生笔记(校园里面经常见到有人高价买笔记)2、任课教师不会提供参考文献,所以只能对作者表示感谢,如果引用了您作品,可以用回复方式补充参考文献。3、我不对文章无关问题...
  • 项目管理需要知道几个概念 引言: ,项目管理在全世界都非常红火,很多企业突然发现需要一个项目经理,或者需要一大批项目经理,很多人想做项目经理,也有很多专业经理人希望在他专长中加入项目管理这一...
  • 一本非常有用书籍,对提高英语水平极其有用,成为考研人,英语水平差而又无方法人,提供一个好途径,精选部分优秀文章,希望对大家有用。
  • 目标跟踪重要概念优秀文献

    千次阅读 2016-03-08 14:30:27
    一、引言:在需要监控环境里,如何能够判断出进入特定区域目标,并且能够跟踪目标轨迹。分为两种情况:一是静态背景下目标跟踪;二是动态背景下目标跟踪。 二、静态背景下目标跟踪方法 1、单目标...
  • 这个优秀文章36篇是我从新概念三、四教材里精心挑选出来,其中新概念三20篇和新概念16篇,从贴近考研英语角度来筛选,剔除了大部分记叙文和说明文题材,主要就是论说文了。 这些精选出来文章作为必须...
  • 1、本文所以内容来自 著名高校课件和学生笔记(校园里面经常见到有人高价买笔记)2、任课教师不会提供参考文献,所以只能对作者表示感谢,如果引用了您作品,可以用回复方式补充参考文献。3、我不对文章无关问题...
  • A noble gangster 贵族歹徒 The longest suspension bridge in the world 世界上最长吊桥 Daniel Mendoza 丹尼尔.门多萨 A skeleton in the cupboard “家丑”
  • mybatis的概念介绍

    2017-03-27 22:25:27
    前言:mybatis是一个非常优秀的存储过程和高级映射的优秀持久层框架。大大简化了,数据库操作中的常用操作。下面将介绍mybatis的一些概念和在eclipse上的实际项目搭建使用。 1.1、背景介绍 MyBatis 是支持...
  • 1、本文所以内容来自 著名高校课件和学生笔记(校园里面经常见到有人高价买笔记)2、任课教师不会提供参考文献,所以只能对作者...本课其他部分导航条见页面底部 The Public Finance第一章财政概念和财政职能Chapter
  • 软件开发的未来与优秀的工匠密不可分。...除了基本方法之外,还有一些优秀的软件工程师都知道的概念。这些超越编程语言和项目的东西–它们不是设计模式,而是您需要熟悉的广阔领域。十大概念是:1. 介面2. 约...
  • 架构的概念

    2016-12-01 17:17:22
    优秀的架构就是设计实现的IT系统能够多快好省。 支持的业务量多,响应快,高性能,高可用,同时总体拥有成本低。 优秀脚骨设计也一定会有个重要的出发点: 1、以公司商业需求或者组织业务需求为导向; ...
  • 优秀的行键设计可以保证良好的HBase性能。  1、行键存在于HBase中的每一个单元格中。如果行键越长,用于存储单元格的I/O开销就会越大。通常我们采用MD5加密的定长键来代替行键。  2、对于组合式行键,每个组件的...
  • spring框架的概念

    2021-04-20 11:11:20
    框架  framework 是构成一类特定软件可复用设计的一组相互协助的类 ...是应用了多种优秀的设计模式,解决开发中的问题,它是一个解决方案。  好处:类与类之间解耦合 功能强大,包括对web,dao层,测

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,170
精华内容 2,468
关键字:

优秀的概念