热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【SD2.0大会】现代软件开发之父Ivar解读语言与架构

主持人:非常感谢二位精彩的阐释。此前我们就和您提到过,今天在这里我们为您呈现的是一场科技的盛宴,所谓盛宴,端上桌的当然道道是美味,道道是极品,所谓的极品和美味指的是来自我们现场7位国际的顶
 主持人:非常感谢二位精彩的阐释。此前我们就和您提到过,今天在这里我们为您呈现的是一场科技的盛宴,所谓盛宴,端上桌的当然道道是美味,道道是极品,所谓的极品和美味指的是来自我们现场7位国际的顶尖大师他们顶尖的思想和顶尖的技术,让我们共同来领略吧,首先来到我们身边的是有现代软件开发美誉的 Ivar Jacobson早年在爱立信担任首席架构师,95年加盟了Rational成为UML创始人之一,并且注有UML语言用户指南等软件的经典著作,掌声有请。

    Ivar Jacobson:大家上午好。我今天来到这里感到非常激动,大家知道中国是我的第二个祖国,我每个月都要来中国,我们还会继续每个月在中国。北京我开设了一家公司来帮助出产更好的软件,我下午还会有一些发言,还会有一些动手的实践,我们会做很多的实践。

    我的话题非常简单,我只会谈一些要点,在我们的工作当中,我们今天早上也听到了现在新的趋势,有很多的流行词汇。有一些以服务为导向的架构、企业、服务等等都是一些流行的词汇,这些东西我们怎么去处理呢?作为一个公司来讲,我们应该在乎哪些呢?这些东西都跟我们相干吗?我们都需要吗?也许。

    我们回到一些最基础的东西上,我们在做些什么?我们是开发软件的,我们要获得一些创意,利用这些创意获得一些更好的软件,变得更软。我们的工作就是要创造好的软件,更快而且成本更低,这就是关键了。这就是我们所需要的吗?确实是这样的。我们需要一些什么东西呢?到底什么是好的软件呢?我们来看一下。我想讲的很简单,大家可以讲的很多,但是我们先抓住核心,好的软件到底是什么呢?它是有用的软件,它为你做你所做的工作,你需要做的时候就可以做,你需要用的上的时候就可以用得上,而且是可以扩展的。如果你在大银行或者一个运营公司,如果一个软件是工作五年的话是没问题的,如果你工作很有效率的话,你不想五年后这个软件又不可以用了,因此它需要有延展性,有些领域永远要延展的。

    我的一个大的系统是一个架构,我建造的这个架构是很多你们出生之前我们就做出来的东西,是1967年的时候,这个产品还是一个旗舰的产品,是我们公司的产品,是最重要的产品,它存活了37年了。我们不想让这个产品死掉,我们要理解软件一定要需要成长,而且成长得很优美,无疑是能使我们想象力延展到最远方,这是软件应该做到的,我们也不应该让软件死掉,我们让它工作它就工作,这是它的可靠性,这才是好的软件。

    另外是速度,我们如何出产软件呢?软件的发展是由人们来开发出来的,我们希望它是由工具开发的,我们也发明了一些工具,我们有时候认为利用人工智能来开发软件,但是主要来说还是要靠有能力和有动力的人,只有有能力的人,我强调这两个字眼“有能力的”跟“有动力的”,你可能有能力,但是你没动力,这是我们在强调的东西。

    另外我们要强调的一点就是低成本,有很多方式你能够获得低成本,但是要用规模化和软件的再用性,也就是说你要再用,再用性对于降低成本是非常有用的。这是非常容易做到的,但是尽管如此,我们还是需要一些实践才能做到。

    Jon Erickson刚才讲到程序语言是一种能力,但是它不是一切,我们所有的人都会掌握一些语言,刚才Jon Erickson举了一个游戏的例子,还有协议的例子,我要强调的是有一个长期的知识是非常重要的,就是你要有好的软件的话,你要理解一些实践的做法,相比其他来讲,有一些实践是比较基础的。我们今天有一些人要建立一些Component,在我做软件开发的时候,以Component为基础的不存在,以Component为主的开发是1977年在瑞典获得了很大的成功。

    大家听说过Abba吗?你们太年轻了,可能没有听说,Abba是一个乐团,是个歌唱组合,我不说这个了。以component为基础的开发是非常基础的东西,对开发者来说你们应该非常了解这一点。

    还有架构,要了解如何建造架构,这种知识是长期的,你一生都需要,它不像语言,有流行的时候有不流行的时候,但是架构非常重要。除了整块开发,我们还可以用小块进行开发,每一次开发一小块,迭代开发是非常重要的知识,对任何来说都是基础。还有使用用例,Use Case,你要用用例开发,同时要测试用例、使用用例做测试。还有一些其他的做法,我们还有其他的一些东西,包括Scrum,也是非常重要的一个实践,还有用户故事也是非常重要的,这都是非常基础的东西,你要想成功、要想建造好的系统、好的产品,程序员当然是必要的,但是多数人都有了。你要想差异化,就要了解建造的系统,建造的系统是非常重要的,所以这些都是基础。

    另外,我会在北大教一些协议方面的东西,如果大家感兴趣的话,可以到北大听我的课,这些都是基础的东西。如果想降低成本,你要有很多的在用,你要学很多高级的实践,比如Product Line Engineering,就是生产线的工程,你需要这些东西。另外还有面向服务的架构SOA,SOA现在成为了最流行的词汇,但是架构已经存在了30年了,这里面有一些新生事物,非常好的东西,我非常喜欢,也是非常有价值的东西,但是它只是大规模的Component而已。如果你在银行工作,你需要一些企业的架构,你可以把它们组合起来。这是另外一种新的实践,我们需要这种实践,才能够给我们建造好的软件,要取决于你工作于什么样的领域,建造软件还不够,我们还要很快的建造软件,因此我们要强调“有能力”跟“有动力”的人,只有这两个相加,这种人才是最厉害的。有动力是非常重要的,敏捷性也是最近的一个流行词汇,它也是很重要的,它是关于社会工程。

    比如说我们推的一些东西,包括迭代开发,关键的一点都是社会工程的这个概念。我们要使一个团队共同做的很好,要有一个团队的经验,要建造一个好的环境,使得这个团队能够实现超越。要想社会工程非常敏捷,我们有很多好的一些做法,包括共同责任、自我指导的团队等等,我们都有一些大家特别喜欢的方式实现敏捷,大家有多少人在做敏捷?请举手。就这么几个人吗?在做敏捷的人请举手。好。你不做敏捷,不接触敏捷,好象就是在说自己懒惰,不想努力工作,你们多少人觉得自己是敏捷的?请举手。这次人数更多了,很好。我们都需要敏捷。我们怎么能够实现敏捷呢?你可以用旧的方式靠读一些书籍,书籍是静态的东西,而且并不总是相关的,我写过八本书,我也喜欢人们买我的书,但是书是静态的,它不能够走,所以我要跑到全世界宣传,当然我喜欢宣传我的书,只要大家买我的书就可以了。

    但是现实是人们不读程序的书,人们不爱读如何开发软件的书,大家是通过动手做来学习。因此,当我们在培训的时候,我们不要期待人们读书,大学的时候人们可能会读书,但是不要期待他们会读书,新的做法是启动人们的大脑,训练的时候跟他们去做,训练的时候要有教室,做一些很简单的培训。我们有一成套的卡片,你可以将这些卡片组合,让里面加一些东西,你可以写一些自己的实践在卡片上,做一些混合,训练你的人员。这是很好的方法,如果今天下午大家听我的演讲的话,就知道我什么意思了。

    你从一些基础的层面获得一些基础的实践,如果你想开发软件,你就不要停止。有些软件不会成功,有的时候不用改进,要做一些更高级的实践,做一些自己的实践,这是大家要发生的事情。
    作为结果,就是能够获得好的软件,而且速度很快,而且成本很低,这就是所需要的,做到这些我们就能成功。所以说欢迎大家到我的会场上,我会给大家做一些演示,到我的展台上去,我会做一些演示,谢谢大家。

    主持人:谢谢Ivar Jacobson先生。我们不仅感受到了Ivar Jacobson先生的思想,同时也感受到了他的幽默,谢谢。
 

推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 未来五年的AI领域科技亮点,都在这里了
    当AI正式成长为推动世界第四次工业革命的潜在力量之一,我们的生活也在悄然发生着变化,当AI渗透到人们的生活中,引爆着一场又一场的行业变革& ... [详细]
author-avatar
白羊幸福的佳佳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有