精华内容
下载资源
问答
  • 缪春曦:打造高尔夫配件领域电商王国 (1).pdf
  • 原标题:《王国纪元》:为了回馈玩家,这款战争策略游戏有多努力?最近,“王国时代”的玩家被《霸王之夜》的消息席卷而来。但是球员一点也不急躁,因为官员付出了太多。 。 。 。 。 。1.尝试SLG游戏对于中国人来说...

    原标题:《王国纪元》:为了回馈玩家,这款战争策略游戏有多努力?

    最近,“王国时代”的玩家被《霸王之夜》的消息席卷而来。但是球员一点也不急躁,因为官员付出了太多。 。 。 。 。 。

    1.尝试SLG游戏

    对于中国人来说,2020年是充满魔力的转折点。因此,“王国时代”于去年年底正式计划召开一次特别的线下会议,以反映和鼓励国家服务器玩家的团结和不屈不挠的精神,并利用这一重大事件回馈这一特殊的一年。国家服务器中的玩家相互陪伴。

    这次离线会议恰好是上述霸主的夜晚。

    4fc012ee53b79d881edebacba79bcb8a.png

    在“王国时代”,在多国战争中获胜的玩家都可以获得“霸主”的荣耀。自从年轻以来,国家服务人员就对Sun Tzu的战争艺术着迷,并且自然而然地在战争策略游戏中很方便,因此霸主的职位几乎被国家服务人员接管。

    这位官员精心准备了“霸王之夜”的巅峰对决,让18名国家服务队的领队带领团队参加了比赛。

    8ea32b6513999834b9ce698f84cf47b0.png

    由于SLG游戏的特殊性,“ Kingdom Era”正式在赛事中进行了许多调整。

    在《霸王之夜》的独家游戏服务器中,官员为每个参赛者提供了具有相同资源的帐户,并为士兵和装备分配了15分钟的分配时间。在确保公平的同时,每个玩家都可以根据自己的理解游戏做出反应并做出不同的决定。

    这位官员还将游戏中长达数小时的“主导战”压缩为30分钟。在扩大兵力的同时,也限制了玩家加速物品的数量和增加军队攻击物品的数量,从而使游戏更加有趣。

    08aae514fcdae4fef4f8686be1f63381.png

    电子竞技在“王国时代”的尝试是SLG游戏在竞争领域的一项创新和突破。

    这位官员还为18个团队准备了超级豪华的奖励,包括3个纯金纪念币。每位参赛者还将获得比赛纪念品,包括热水瓶定制的热水瓶杯和BOSE定制的耳机,使人们充满诚意。

    dde3ab50e40078922c87a5e19502e966.png到现场观看战斗的领主们也收获颇丰。

    除了激动人心的决定性战斗,有趣的互动游戏和精彩的女子组合表演外,官方的“ Kingdom Era”官方和AppGallery(即华为App Market),北通智能游戏手柄和Kenox游戏椅也准备赢得超级礼物。回报给国家服务器中的每个玩家。

    由决定性最高的冠军团队评选并颁发的特别奖HUAWEI Mate40 Pro 5G和HUAWEI MateBook X Pro将激动人心的比赛已经沸腾的场面推向了更高的高潮。

    226195ee647c045c2a74b74e3dfaeab1.png

    daf3af9754ad1a2c98650a3eb13e5c6a.png

    在场馆外,这位官员还为无法亲临现场的球员准备了充分的福利。

    从2021年1月5日开始,“王国时代”的官方网站将陆续在网上推出一系列“王国霸主送福利#”系列活动,在游戏和社交媒体平台上以各种方式发送礼物,并努力传递对每个人都有好处在国家服务器上追随霸王之夜的玩家手中。

    11f69fbd17dec0a0f42c64c17d1a300b.png

    与MOBA和射击游戏不同,战争策略游戏由于游戏限制而很难匹配。

    但是“王国时代”官方团队精心策划的“霸王之夜”不仅保证了游戏的电子竞技属性,而且强调了福利和反馈,并取得了很好的反响。

    4ac34e4bfb17347b8e4bc7f7bcee6fda.png

    2.丰富的跨行业合作,回馈现有参与者

    《霸王之夜》的成功,不仅是由于“王国时代”在电子竞技中的大胆尝试,而且还因为“王国时代”长期以来就熟悉如何为现有玩家服务。

    仅在去年下半年,“王国时代”就成功举办了几场重大赛事,以回馈玩家。

    5月28日,王国栋与Ele.me合作加入了火锅,并为玩家们提供了热心的火锅和奶茶。

    4c423df2e48c12572d23f6dedf7192ed.png

    11月21日,剧院恢复营业后,王国治立即与CGV国家剧院联系,并邀请君主观看“年度第一部电影”。

    8a66be0d57b83da534be28bc3b3d2a07.png

    此外,王国吉苑的周边购物中心还与BOSE,ZIPPO和热水瓶等世界知名品牌进行了深度合作,以定制精美实用的周边产品。

    aba14c6767bea8691c4adc2d7e96f268.png

    3.“王国时代”五周年,惊喜不止于此

    作为已经成功运营了几年的成熟游戏,“王国时代”的官方团队致力于维护现有玩家。

    在“霸王之夜”现场,“ Kingdoms”全球业务负责人宣布了一个重要信息:2021年2月,当“ Kingdoms”庆祝其五岁生日时,将宣布重要的IP链接并带来巨大的利益和重要内容。游戏的更新必然会“点燃所有玩家的小世界”。善于促进和分配福利的“王国时代”将在其成立五周年之际给玩家带来什么惊喜呢?

    责任编辑:

    展开全文
  • 领域库 幽灵王国内部图书馆 请注意:该库不会被记录,也不会在任何时候得到支持。 我们只是为了方便其他开发人员和服务器而发布它。 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR...
  • 2019以太币交易平台排行

    千次阅读 2019-07-31 18:00:30
    领域王国分析师建议在选择正规靠谱虚拟币交易平台的时候,可以根据以下几点筛选:一、是否正规监管;二、是否银行托管;三、是否可以出入金。根据建议小编整理的以太币交易平台排行如下:  1.领域王国  领域王国...

      随着虚拟币投资的大众化,越来越多的不良平台开始浑水摸鱼,面对交易平台选之又选,无疑是一道难题。领域王国分析师建议在选择正规靠谱虚拟币交易平台的时候,可以根据以下几点筛选:一、是否正规监管;二、是否银行托管;三、是否可以出入金。根据建议小编整理的以太币交易平台排行如下:

      1.领域王国

      领域王国拥有独立运营的线上交易平台。主要提供投资者喜爱的涨跌交易,与此同时亦推出了全球首创的虚拟货币交易方式。同时,选择香港汇丰银行作为亚洲区客户资金托管银行,并拟定一系列内部监管保障措施,保证投资者资金安全。在一个交易平台上,实现同步进行两种交易。

      2.火币网

      火币网是国内的比特币交易平台,获得真格基金、戴志康、红杉资本(苹果、阿里巴巴等众多全球知名公司股东)等A轮千万人民币资本投资,火币执行严格风控管理,稳定运行。

      3.比特币中国

      比特币中国,是中国第一家,也是最大的比特币交易平台,由上海萨图西网络有限公司运营,成立于2011年6月9日。团队成员主要来自中国、美国硅谷和欧洲。

      4.聚币网

      聚币网是中国最早的比特币交易平台之一,为中国比特币爱好者提供最安全、便捷和专业的比特币、以太坊、莱特币、以太经典交易服务,一直致力于打造最专业的比特币平台。

      5.云币

      云币网由李笑来管理的比特基金投资,使用自主研发的 PEATIO 开源程序搭建而成,是一家致力于透明、公开、公正的的区块链资产交易平台。

      6.OKcoin

      OKCoin是国内正规的比特币交易平台,于2013年10月上线,是一个面向全球的比特币交易平台,拥有来自100多个国家的用户,比特币领域较受用户欢迎和较具影响力的比特币交易所。

      7.Bittrex

      Bittrex又叫B网,由三名网络安全工程师于2014年创立,是一家位于美国西雅图华盛顿的加密货币交易所,Bittrex是美国首屈一指的区块链平台,支持数百个交易对,目前仅支持英文,没有联盟计划。

      8.Coinbase

      自2012年建立的Coinbase截止到2015年1月21日已经融资超过1.05亿美元,现已拥有约100名员工,其中50人在公司的旧金山的总部全职工作。公司希望能够尽快推出新网站帮助外部开发者构建基于比特币的应用程序。

      交易平台的好与否,直接取决了投资者盈利的多少,在选择平台的时候要更加耐心、谨慎。不要但看收益率等就草率决定,以免造成不必要的损失。

    展开全文
  • 组件化的Web王国

    千次阅读 2016-06-28 14:26:28
    内容提要 使用许多独立组件构建应用程序的想法并不新鲜。...软件开发是一个语义丰富(术语通常不止一个意思)的领域。很显然,这里的“组件”是一个很泛的称呼,所以有必要指明我们想要表达的,在前端Web应用

    内容提要

    使用许多独立组件构建应用程序的想法并不新鲜。Web Component的出现,是重新回顾基于组件的应用程序开发模式的好时机。我们可以从这个过程中受益,了解如何使用现有技术完成目标,并且在未来做出自己的前端Web应用。  

    什么是组件?

    软件开发是一个语义丰富(术语通常不止一个意思)的领域。很显然,这里的“组件”是一个很泛的称呼,所以有必要指明我们想要表达的,在前端Web应用的语言环境中的意思。

    前端Web应用中的组件,是指一些设计为通用性的,用来构建较大型应用程序的软件,这些组件有多种表现形式。它可以是有UI(用户界面)的,也可以是作为 “服务”的纯逻辑代码。

    因为有视觉上的表现形式,UI组件更容易理解。UI组件简单的例子包括按钮、输入框和文本域。不论是汉堡包状的菜单按钮(无论你是否喜欢)、标签页、日历、选项菜单或者所见即所得的富文本编辑器则是一些更加高级的例子。

    提供服务类型的组件可能会让人难以理解,这种类型的例子包括跨浏览器的AJAX支持,日志记录或者提供某种数据持久化的功能。

    基于组件开发,最重要的就是组件可以用来构成其他组件,而富文本编辑器就是个很好的例子。它是由按钮、下拉菜单和一些可视化组件等组成。另一个例子是HTML5上的video元素。它同样包含按钮,也同时含有一个能从视频数据流渲染内容的元素。

    为什么要构建组件?

    既然现在已经明白组件的意思,就看看使用组件的方法构建前端应用的好处。

    模块

    你可能听说过 “组件是天然模块”的说法。好吧,感谢它,我们又要解释这里的术语!

    你可能会觉得“组件”的说法更加适合用来描述UI,而“模块”更适合描述提供服务的功能逻辑。而对于我来说,模块和组件意思相近,都提供组织、聚焦和封装,是与某个功能单位相关的。

    高内聚

    又是一个软件工程的高频词! 我们将相关的一些功能组织在一起,把一切封装起来,而在组件的例子中,就可能是相关的功能逻辑和静态资源:JavaScript、HTML、CSS以及图像等。这就是我们所说的内聚。

    这种做法将让组件更容易维护,并且这么做之后,组件的可靠性也将提高。同时,它也能让组件的功能明确,增大组件重用的可能性。

    可重用

    你看到的示例组件,尤其是Web Component,更关心可重用的问题。功能明确,实现清晰,API易于理解。自然就能促进组件复用。通过构建可重用组件,我们不仅保持了 DRY(不要重复造轮子)原则,还得到了相应的好处。

    这里要提醒: 不要过分尝试构建可重用组件。你更应该关注应用程序上所需要的那些特定部分。如果之后相应需求出现,或者组件的确到了可重用的地步,就花一点额外时间让组件重用。事实上,开发者都喜欢去创造可重用功能块(库、组件、模块、插件等),做得太早将会让你后来痛苦不堪。所以,吸取基于组件开发的其他好处,并且接受不是所有组件都能重用的事实。

    可互换

    一个功能明确好组件的API能让人轻易地更改其内部的功能实现。要是程序内部的组件是松耦合的,那事实上可以用一个组件轻易地替换另一个组件,只要遵循相同的 API/接口/约定

    假如你使用GoInstant提供的实时功能服务组件,那他们这周关闭服务这样的新闻会影响到你。然而,只要提供了相同的数据同步API,你也可以自行构建使用一个 FirebaseComponent 组件或者 PubNubComponent 组件。

    可组合

    之前也讨论过,基于组件的架构让组件组合成新组件更加容易。这样的设计让组件更加专注,也让其他组件中构建和暴露的功能更好利用。

    不论是给程序添加功能,还是用来制作完整的程序,更加复杂的功能也能如法炮制。这就是这种方法的主要好处。

    是否有必要把所有的东西转换成组件,事实上取决于你自己。没有任何理由让你的程序由 你自己 的组件组合成你最惊叹的功能 ,乃至 最花哨的功能。而这些组件又反过来构成其他组件。如果你从这个方法中得到了好处,就想方设法地去坚持它。然而要注意的是,不要用同样的方法把事情变得复杂,你并不需要过分关注如何让组件重用。而是要关注呈现程序的功能。

    现在就开始构建组件

    在 Caplin Systems 构建基于组件的自有应用程序时,我用到了几条原则和实践。这些原则由 BladeRunnerJS(BRJS) 开源工具集支撑。它被称作”BladeRunnerJS” 是因为我们将程序功能都封装在称作 Blades 的东西中。Blade是可以在某个应用中重用的功能特性,但是不可以在程序间重用。当功能 真的 变得更加通用的时候,我们将相应的定义移到库文件中,供各个程序间使用。特定应用中的组件(blade)和我们程序间的通用组件可以使用,我们只要找到最好满足需求的任何库和框架。

    那么,现在什么库和框架能够帮助我们构建组件呢?

    在决定构建应用时应使用何种技术时,只需要看看流行的 TodoMVC 网站就可以看到大量可供选择的前端库和框架。你也许会觉得任何一种方案都能用来构建基于组件的应用程序。然而,他们之中的一些方案内置了对组件的支持。其中比较有名的是AngularJS、Ember 和 React。

    组件间是如何通信的?

    在深入示例之前有必要简单地提到组件间通信的问题。如果组件之间是“独立”、“模块化”的,他们又是如何相互通信的呢?

    最显而易见的答案就是让组件间相互引用并通过他们之间的API交互。这样做的问题就在于,这种做法会让组件相互依赖。短期内可能还好,一段时间以后,你在修改程序的时候程序会失控,修改一个组件就会对另一个组件产生极大的影响。决定移除一个不能带来预期价值组件可能会让你的应用程序停止工作,因为它背后会有数个组件依赖于它。

    此时,解决方案是提供松耦合的,让组件之间很少或者几乎不知道彼此的方案。组件并不直接创建其他组件,在他们需要通信的时候,他们通过“接口/约定”或者通过 “服务”。我们在构建BRJS程序时考虑了很多这些方面的东西,并且使用 ServiceRegistry 访问用于组件间通讯的服务或者是Web API这样的资源。Angular和Ember采用了服务和依赖注入解决这类问题。

    示例组件my-avatar

    为了展示我们如何用这些库和框架构建最基本的组件,我们建立了一个带有UI,用于取回和显示用户头像的简单示例。在可能的情况下,该组件会有 my-avatar 标签,会从以下两个属性中取得头像:

    • service 允许设置一个服务。例如 twitter 或者 facebook
    • username 用于取回该用户名相对应的头像

    AngularJS

    AngularJS 可能是现在用于构建程序最流行的前端解决方案了。作为创建者的Google,重新思考HTML,考虑如何重新发明,满足如今Web开发的需要。

    Angular中可以使用自定义指令定义组件。之后,你可以使用 HTML 标记声明自定义组件。

    查看代码演示: http://jsbin.com/lacog/2/edit

    这个例子展示了使用Angular指令的简单程度。值scope 定义了从  my-avatar 元素中取得,并且之后用来构建相应的img标签和渲染成用户头像的属性。

    Ember

    框架与库的争论旷日持久,总的来说框架是强制你按某种方式做事情,所以它是邪恶的。很显然,Angular是个框架,而Ember的作者,Yehuda Katz和Tom Dale也很乐意把Ember看作框架

    Ember 有对它称作组件的内建支持。Ember Components背后的理念是尽可能的向Web Components看齐,当浏览器支持允许时,就可以很方便地迁移到Web Components中。

    查看代码演示: http://jsbin.com/nawuwi/4/edit

    上面的例子中使用了 handlebars 做模板,所以元素的定义不是同一种语法。

    React

    React 虽然是个新人,但是却已经有很多的追随者。它由Facebook开发,并且已经全面用于Instagram的UI和部分Facebook的UI。

    使用React构建组件的推荐方式是使用叫做 JSX 的东西来定义它们。这是一种“推荐在React上使用的JavaScript语法转换”。请不要因此分心。他们已经在文档中指出,这个想法就是用来帮助你在JavaScript中写出HTML标记的。

    我不是说你并不可以直接在HTML中添加标签,而必须使用JSX创建自己的组件。但是,只要你定义了一个组件,你就可以使用这个组件创造其他组件。

    查看代码演示: http://jsbin.com/qigoz/5/edit

    因此,组件使用的声明语法需要相应的HTML元素和对 React.RenderComponent 的调用。

    未来:Web Component和其他

    Web Component才是未来!正如名字所表示的那样,他们承诺将带来可以将功能封装成组件的浏览器原生支持。

    我将简单展示Web Component并且演示我们现在可以如何使用它。更加深入的内容请参考本文末尾的 “外部资源” 一节。

    他们提供的功能包括:

    自定义元素

    我们在上面关注的是用Angular、Ember和React构建 my-avatar 的例子。可能的情况下,这样的方式将以页面上或者模板上添加的自定义元素表示。Web Component包括通过自定义元素获得的原生支持 – 绝对是Web Component标准的基本组成部分。

    定义新元素,包括访问元素生命周期的部分事件例如何时创建(createdCallback)、何时添加在DOM树上(attachedCallback)、何时从DOM树上分离(detachedCallback),何时元素属性改变(attributeChangedCallback(attrName, oldVal, newVal))。

    自定义元素的一个重要的部分就是有能力从原有元素扩展,因而得到原有元素相应的功能。示例中我们扩展了 <img>元素 。

    最终,我们所写的代码中,自定义元素正在并且倾向去做的就是将复杂的东西抽象化,让用户关注于单个组件产生的价值,从而用来构建更加丰富的功能。

    Shadow DOM

    还记得iframe们吗?我们还在使用它们,是因为他们能确保组件和控件的JavaScript和CSS不会影响页面。 Shadow DOM 也能提供这样的保护,并且没有iframe带来的负担。正式的说法是:

    Shadow DOM的设计是在shadow根下隐藏DOM子树从而提供封装机制。它提供了建立和保障DOM树之间的功能界限,以及给这些树提供交互的功能,从而在DOM树上提供了更好的功能封装。

    HTML导入

    我们长时间以前就可以导入JavaScript和CSS了。 HTML导入功能提供了从其他HTML文档中导入和重用HTML文档的能力。这种简单性同时意味着可以很方便地用一些组件构建另一些组件。

    最后,这样的格式很理想,适合可重用组件,并且可以用你最喜欢的包管理解决方案发布(例如: bower、 npm 或者 Component)。

    模板

    我们中的许多人已经使用像handlebars、mustache或者underscore.js中的模板这样的解决方案(就像我们在上面的Ember示例中用的一样)。Web Component通过 template元素 提供了模板的原生支持

    原生模板让你可以声明分类为“隐藏DOM”但是解析成HTML的标记片段。他们在页面加载时没有用处,但是可以在运行时实例化。他们可以 被检索到 ,但是在插入活动的DOM树前不会加载任何相关资源。

    Platform.js

    但是,就像每次提到新特性一样,我们不能确定浏览器是否支持这些特性。

    截至2014年6月27日,Web Component 的浏览器支持情况

    同样,我们也能通过一些神奇的兼容代码,开始使用某些Web Component所提供的功能。

    有了兼容库的Web Component支持情况

    好消息是两个最先进的浏览器厂商Google和Mozilla正在努力完善兼容库 ,帮助我们使用Web Component。

    以下示例展示使用platform.js后我们可以如何定义作为img元素扩展的my-avatar元素。最棒的是它能用到原生img元素的所有功能。

    查看代码演示: http://jsbin.com/pihuz/4/edit

    点击 HTML5 Rocks Custom Elements tutorial 以查看创建自定义元素的更多信息。

    注:如果你对platform.js感兴趣,也可以看看 bosonic

    原生技术的支持目的就是给我们提供相应的构建基础。所以Web Component并不是库和框架的末日信号。

    Polymer

    Polymer 是演示构建基于原生Web Component功能的最佳示例。它提供了精选的机制用来创建自定义的Polymer元素,并且提供了许多核心的UI组件,让你可以创建自己的应用程序。

    下面你可以看到 my-avatar 元素的简单创建过程,同时我们也得到了想要的标记。

    查看代码演示: http://jsbin.com/gukoku/2/edit

    Google正在大力推动Polymer。请查看 Polymer getting started guide 查看更多示例。

    X-Tag和Brick

    Mozilla开发了自己的自定义元素 兼容库,叫做 X-Tag。X-Tag是一个为启用Web Component进行多项兼容的库,并即将提供对Web Component的完整支持。

    以下就是使用X-Tag的 my-avatar 自定义组件,与标准文档十分类似:

    查看代码演示:http://jsbin.com/wexiz/2/edit

    Mozilla同时还创造了一个叫 Brick 的库,其中包括X-Tag,提供“一组用来方便快速构建Web应用程序的UI组件”,使用与Google的Polymer相似的方式。

    总结

    使用基于组件的架构构建应用程序有诸多好处,你能从现有的框架中学到,也能在构建前端Web应用程序时从推荐的Web Component中学习到。

    这场组件化Web王国的旅程,让我们在面临框架和工具的选择时犹豫不决。但是,Web Component会是最后的明灯!

    Web Component会提供构建应用程序的原生统一的方法。现有的框架很有可能会转而使用Web Component或者说明如何与它一同使用。Ember的策略是让迁移到Web Component更加方便,而Facebook的React则是演示整合的好例子,已经有一个 ReactiveElements演示它了。因为Angular和Polymer都是Google的项目,他们很有可能会走到一起。

    外部资源(英文)

     

    展开全文
  • 幼儿园中班健康活动说课稿_蔬菜王国参考.doc
  • 名词王国的死刑

    2013-01-28 12:59:00
    比如在附近的C的领域,JavaScript的地盘,Perl的地盘和Ruby的地盘, 他们可能会把倒垃圾这件事分解成一系列的动作(或者叫做动词或者函数)。 如果他们将这些 动作以适当的顺序应用于适当的事物(拿垃圾,把它带...

    我真的没看懂,可能是我没写过java吧  

    Steve Yegge的大作《Execution in the Kingdom of Nouns》

    http://justjavac.iteye.com/blog/1604046

    Hello,world!今天我给大家讲一个关于Java魔鬼国王和他在全国范围内驱逐动词的故事。

    注意:这个故事并没有什么圆满结局。如果你心灵脆弱或者吹毛求疵的话,这个故事不适合你。 如果你易于动怒或喜欢在别人的博客上妄加评论, 那么请立即停止阅读。

    在我们开始这个故事之前,先让我们熟悉一下背景:

    溢出的垃圾

    所有使用Java的人都喜欢“用例”,所以让我们以一个用例开始吧:倒垃圾。就像这样:“Johnny,快去倒垃圾,他都快溢出来了!”

    如何表达倒垃圾这一活动呢?如果你是一个正常说英语的人,你可以粗略地用以下几句话来描述它

    在水池下取出垃圾袋
    带着垃圾袋去车库
    把它扔到垃圾桶里
    走回来
    洗手
    坐回沙发上
    继续玩你的电视游戏(或者干其他的事)

    即使你不用英语思考,你也会想象出一系列类似的动作。 不考虑你选择的语言,或者采取的具体步骤,取决于你采取的行动,倒垃圾是一系列终止于垃圾在外面,你回到屋子里的动作。

    我们的思想充斥着各种或勇敢的,或暴躁的,或激昂的动作。 我们生活,我们呼吸,我们走路,我们谈话,我们笑,我们哭,我们希望,我们害怕,我们吃,我们喝, 我们走,我们听,我们倒垃圾。 我们能自由地“做”和“行动”。假如我们只是石头,生活没准还算好,但是我们不会自由。因为我们可以“做”事,所以才会自由。

    我们的生活也同时充斥着各种“名词”。我们吃“名词”(食物),我们从商店买“名词”(商品),我们坐在“名词”(凳子)上。 “名词”(石头)可能会忽然砸到你头上,在你的“名词”(头)上弄一个“名词”(大包)。 名词即事物,想想没有了事物我们会怎样? 但他们仅仅只是事物,比如: 意味着结束或者结束本身,或者一些贵重物品,或者我们周围经常看到的事物的名字。 这是一座建筑,那是一个石头。任何一个小孩子都能指出名词,仅此而已。 发生在名词身上的 “变化”才是最有趣的事情。

    变化需要动作。 动作是生活的调料。 动作甚至给了调料以调料! 毕竟除非你“吃”它,你是不会感到香这种味道的。 名词也许无处不在,但是生活一直在变并一直有趣的功劳还是在于动词、

    当然,除了名词和动词,我们还有形容词,介词,代词,冠词,连词,语气词,和许许多多其他让我们构造有趣语言的词汇。 它们都在语言中扮演着自己的角色,而且每一个都很重要。 如果它们哪一个不存在了的话,那是挺遗憾的事情。

    那么,如果有一天我们不再用动词了,你是不是感到很奇怪呢?

    在下面我要给大家讲的故事里,这件事情真的发生了……

    名词王国

    在Java王国中,国王Java以铁腕统治着他的国家,而他子民的思考方式也并不和你我一样。 在这里,你可以看到,名词是十分重要的并直接服从国王的命令。 名词是最重要的居民,它们身穿艳丽的服装显得高贵而优雅,而这些衣服是由形容词提供的。 而形容词哪,也很满意它们的生活,当然,他们不可能像名词那么高贵, 不过相比于动词来讲却幸运得很多。

    因为,动词在Java王国里的日子,相当,相当的糟糕。

    奉国王Java的法令,动词是隶属于名词的,但他们不仅仅是宠物而已。 或者说连宠物都不是,在整个国家,动词负担起所有的劳力工作。 实际上,他们是王国的奴隶,至少是 农奴或者契约奴之类的。 Java王国的居民对自己的生活还是比较满意的,他们从来没有想到会发生什么变化。

    动词负责王国里的所有工作,但是仍然获取不到任何尊重,甚至都不允许单独出来。 如果一个名词被发现在公共场合出现,它会立即被名词逮捕。

    当然“逮捕”也是一个动词,他也从不被允许单独行动;你必须创造一个“动词逮捕着”来协助逮捕。 但是“创造”和“协助”哪?这样的话,“创造者”和“协助者”也各自在这个工作上 伴随“创造”和“协助”起到了重要的作用。

    国王Java,在他的上帝Sun(现在是Oracle了吧...[译者注])的指引下,时不时地威胁要将所有动词驱逐出王国。 如果那一天到来了,他们当然需要至少一个动词来做 各种工作,而从国王残忍的幽默感上猜测,这个动词很可能就是“执行”。

    动词“执行”(execute),和它的亲戚“运行”,“开始”,“走你”,“做”,“就这样做” 或者相似的什么词可以通过找到合适的“执行者”来替代任何其他的动词。 想等(wait)一下? Waiter.execute().刷(brush)牙(teeth)?ToothBrusher(myTeeth).go().扔(take out)垃圾(garbage)?TrashDisposalPlanExecutor.doIt()。 没有任何 一个动词是安全的,一切动词都会被执行的名词而取代。

    在这种精神更加泛滥的角落,名词已经把动词驱逐干净。 不仔细看的话,你会觉得仍然有动词存在,比如耕种或倒茶壶,但是一旦仔细观察, 真相便浮出了水面:名词可以随意 命名紧跟在它们后面的动词“执行”,而不改变自身的角色。 所以,当你看到“耕地者”在“耕地”,“倒茶壶者”在“倒”或者说“注册管理者”在“注册”, 你真正看到的是魔鬼国王Java的 “执行者”大军,只不过他们披着所有者的外衣而已。

    在其他王国里的动词

    在其他编程语言的王国中,倒垃圾是一件很直白的事情,和我们用英语表述的十分相似。 在Java王国中,数据实体是名词而函数是动词,而在其他王国中却不然:王国的居民是混在一起的, 而且在能顺利完成工作的前提下,只要他们愿意,既可以是名词也可以是动词。

    比如在附近的C的领域,JavaScript的地盘,Perl的地盘和Ruby的地盘, 他们可能会把倒垃圾这件事分解成一系列的动作(或者叫做动词或者函数)。 如果他们将这些 动作以适当的顺序应用于适当的事物(拿垃圾,把它带出去,扔到垃圾桶里等等),倒垃圾的任务就圆满成功了。 在这个过程中根本不需要执行者或其他的伴随者这出现。

    在这些王国里,真的没有必要创造这么多的包裹器来包裹动词。 他们没有“垃圾倾倒策略”之类的名词,或者“垃圾倾倒地点定位者”来只是你倒垃圾的路径, 也没有“倒完垃圾后的回调”来保证你倒垃圾后回到自己的沙发上。 他们只是写一些动词来操作名词,并创建一个主要的名词,例如,提出垃圾(take_out_garbage())并把一些需要做的子动作放在里面。

    在这些王国中,当需求提升的时候,也通常有一种机制来生成比较重要的名词。 如果这些精明的创造者创造出了一个全新的名词,比如房子,马车,或者耕起地来比人还快的机器, 他们会被给予一个统一的概念:类。 而人们会给类一个名称,一个描述,一些状态和一些操作建议。

    这些王国与Java的不同之处在于,动词是允许单独出现的,你没必要创造新的名词去束缚他们。

    Java王国的人一种轻视的态度看待他们的邻居;而这也是程序诸王国的现状。

    如果你挖个足够深的洞...

    在世界的另一边,有一篇贫瘠的居住地。 在那里,动词居民的地位十分之高。 这就是函数式王国,包括Haskellia,Ocamlica,Schemeria和一些其它的国家。 因为附近的国家很少,他们几乎不与Java王国何其附近的国家有接触。 也正因为这样,函数式诸国们相互轻视,并有事没事的时候打一仗以排遣寂寞。

    在函数式王国里,名词和动词一般被看做同样等级的居民。 但是,名词,对是名词,基本上整天无所事事。 他们的出现在做事或者执行任务的时候并没有多大意义,因为 活跃的动词们基本把能做的事情都做了。 这里也没有什么奇怪的法律说要创造各种“帮助者”来帮助动词做事,因此在这些王国中,名词的数量和实际上存在事物的数量是相同的。

    这样做的结果是,动词在这片土地上为所欲为(请原谅我的用词)。 如果你是一个外来人,你很容易产生名词(函数)是这里最重要的居民的印象。 顺便提一句, 这也是为什么这里被叫做函数式诸国还不是事物诸国的原因。

    在最为遥远的地方,远离函数式诸国,存在着一块传说中的土地, “Lamda the Ultimate”(终极lamda?霸气~[译者注])。传说中在那里,没有名词,只有动词。 那里有事物,但事物由动词组成。如果传说不虚,甚至数字,那里最为流行的货币,也是动词! 数字0被表示为lamda(),数字1是lamda(lamda()),2是lamda(lamda(lamda())),以此类推。

    在这片神奇的土地上,一切事物,别管你是名词,动词,还是其他什么,都是由最基本的动词lamda组成的。

    老实说,Java王国中幸福生活着的居民并没有意识到另外一个世界的存在。 你能想象得知此事之后的文化震动么?他们可能会发明一个新的名词(比如“憎恶”)来表达自己新的感受。

    Java王国中的居民真的快乐么?

    你可能觉得Java王国中的生活有点奇怪,如果糟糕的话还效率还会变得十分低下。 不过,你能从一个地方的童谣中看出他们的幸福程度,而Java王国的童谣,是一群古怪的诗。 比如,这里的儿童经常朗诵的寓言: (这就不翻了[译者注])

    For the lack of a nail,
        throw new HorseshoeNailNotFoundException("no nails!");
    
    For the lack of a horseshoe,
        EquestrianDoctor.getLocalInstance().getHorseDispatcher().shoot();
    
    For the lack of a horse,
        RidersGuild.getRiderNotificationSubscriberList().getBroadcaster().run(
          new BroadcastMessage(StableFactory.getNullHorseInstance()));
    
    For the lack of a rider,
        MessageDeliverySubsystem.getLogger().logDeliveryFailure(
          MessageFactory.getAbstractMessageInstance(
            new MessageMedium(MessageType.VERBAL),
            new MessageTransport(MessageTransportType.MOUNTED_RIDER),
            new MessageSessionDestination(BattleManager.getRoutingInfo(
                                            BattleLocation.NEAREST))),
          MessageFailureReasonCode.UNKNOWN_RIDER_FAILURE);
    
    For the lack of a message,
        ((BattleNotificationSender)
          BattleResourceMediator.getMediatorInstance().getResource(
            BattleParticipant.PROXY_PARTICIPANT,
            BattleResource.BATTLE_NOTIFICATION_SENDER)).sendNotification(
              ((BattleNotificationBuilder)
                (BattleResourceMediator.getMediatorInstance().getResource(
                BattleOrganizer.getBattleParticipant(Battle.Participant.GOOD_GUYS),
                BattleResource.BATTLE_NOTIFICATION_BUILDER))).buildNotification(
                  BattleOrganizer.getBattleState(BattleResult.BATTLE_LOST),
                  BattleManager.getChainOfCommand().getCommandChainNotifier()));
    
    For the lack of a battle,
        try {
            synchronized(BattleInformationRouterLock.getLockInstance()) {
              BattleInformationRouterLock.getLockInstance().wait();
            }
        } catch (InterruptedException ix) {
          if (BattleSessionManager.getBattleStatus(
               BattleResource.getLocalizedBattleResource(Locale.getDefault()),
               BattleContext.createContext(
                 Kingdom.getMasterBattleCoordinatorInstance(
                   new TweedleBeetlePuddlePaddleBattle()).populate(
                     RegionManager.getArmpitProvince(Armpit.LEFTMOST)))) ==
              BattleStatus.LOST) {
            if (LOGGER.isLoggable(Level.TOTALLY_SCREWED)) {
              LOGGER.logScrewage(BattleLogger.createBattleLogMessage(
                BattleStatusFormatter.format(BattleStatus.LOST_WAR,
                                             Locale.getDefault())));
            }
          }
        }
    
    For the lack of a war,
        new ServiceExecutionJoinPoint(
          DistributedQueryAnalyzer.forwardQueryResult(
            NotificationSchemaManager.getAbstractSchemaMapper(
              new PublishSubscribeNotificationSchema()).getSchemaProxy().
                executePublishSubscribeQueryPlan(
                  NotificationSchema.ALERT,
                  new NotificationSchemaPriority(SchemaPriority.MAX_PRIORITY),
                  new PublisherMessage(MessageFactory.getAbstractMessage(
                    MessageType.WRITTEN,
                    new MessageTransport(MessageTransportType.WOUNDED_SURVIVOR),
                    new MessageSessionDestination(
                      DestinationManager.getNullDestinationForQueryPlan()))),
                  DistributedWarMachine.getPartyRoleManager().getRegisteredParties(
                    PartyRoleManager.PARTY_KING ||
                    PartyRoleManager.PARTY_GENERAL ||
                    PartyRoleManager.PARTY_AMBASSADOR)).getQueryResult(),
            PriorityMessageDispatcher.getPriorityDispatchInstance())).
          waitForService();
    
    All for the lack of a horseshoe nail.

    直到今天,这仍然是美好的建议。

    尽管在Java王国的叙述方式和本.富兰克林的原作大有不同,但是这里的居民觉得他们的重新编排还是有一种不同的魅力在里面。

    而最大的魅力在于“架构”,是所有人都能看见的。 架构被国王Java授予了之高无上的地位,因为,架构全部是由名词构成的。 正如我们所知的,在Java王国,名词即事物,事物 的荣耀高于一切的动词。 架构由无数事物构成:你可以看或触摸的事物,给你留下壮观印象的事物,用棍子刮擦发出美妙声音的事物。 国王Java,十分喜欢刮擦的噪音; 每当他新换车夫的时候,踢轮子发出的美妙声音让他觉得很满意。 不管上面的故事有什么瑕疵,“事物”总是不缺少的。

    作为人类,我们的第一本能总是寻找由各宗物体构成的庇护。 庇护越坚固,我们感觉越安全。 在Java王国,有很过坚固的东西让居民们感到安心。 他们感慨如此庞大的架构 建造之神奇并认为它是“最为坚固的设计”。 而且每当结构变化时,他们就越坚信这点。 接着,架构的力量也变得强的令人生畏以至于没有人认为可以摧毁他。

    除了坚固的架构之外,在Java王国中的所有东西很有调理地组织着:你会发现任何名词都会呆在适当的地方。 这里每个故事都有一个固定的模式:实例构造在故事的表述中占了主要的篇幅, 因为每个抽象都会有一个管理者(Manager), 而且每个管理者都有一个run()方法。 Java居民们觉得他们可以用这种模型表述任何事情。 这是一种“名词计算”,只要你愿意, 它可以满足任何抽象,任何计算。 你需要的仅仅是足够的名词,名词的构造器,获取器方法,和重要的execute()函数来实现你的计划。

    Java王国的居民活的不仅仅是幸福,简直是迸发出强烈的自豪感。

    面向对象

    StateManager.getConsiderationSetter("Noun Oriented Thinking", State.HARMFUL).run()或者, 正如外面的世界所说,“面向名词的思考是有害的”

    面向对象的编程把名词放到首位,但是我们为什么非得把名词捧上神坛以至于让语句变的如此啰嗦哪? 为什么一种语句成分的低位非得高于另外一种?这并不是好像面向对象的编程突然使得动词的低位降低,正如我们认为的那样。 这是一种奇怪的认识的扭曲。 正如我的朋友 Jacob Gabrielso一次说到,提倡面向对象的编程好比提倡面向裤子的穿衣方式。

    Java的静态类型系统,像起他任何类似的语言一样,有着共同的问题。 但是过分强调面向名词的编程思想给人带来很大的困扰。 任何类型系统都会要求你重新梳理思路来配合它,但是清除独立的动词看起来十分不合情理。

    C++并没有这个问题。因为C++作为C语言的超集允许你定义单独的函数。 此外,C++提供了独立的命名空间的概念。 Java的类承载了太多的内容:命名空间,用户自定义类型,句法委托机制,可见性和作用域机制,等等。

    不要误解了我的意思。 我并没有说C++“好”,我只是赞美它至少相比于Java来讲灵活的类型系统。 C++出现问题会让听众抓狂并且想杀了你 (比如,意想不到的段错误和其他难以发现的隐患)。 并且在C++你很难找到一个能描述你的想法的咒语。 但是它灵活地可表述的思想的范围却远远超出了Java。 因为C++提供给你了动词,谁想用一个没有动词的语言说话哪?

    类是Java中唯一提供的建模的工具。 所以当一个新的想法出现在你脑海的时候,你不得不重塑它,包装它,甚至弄碎它直到它变成一个名词, 即使它开始是一个动作,过程,或者任何其他不是“物”的概念。

    我似乎回到了8,9年前一帮搞Perl的家伙对我说的:“伙计,并不是所有的东西都是对象的。”

    很奇怪,Java似乎是主流面向对象语言中唯一一个完全以名词为中心的语言。 在Python或者Ruby中,你不会找到AbstractProxyMediator,NotificationStrategyFactory或者其他类似的东西。 为什么在Java中它们满地都是? 我敢打赌这是原因出在了动词的身上。 Python,Ruby,JavaScript,Perl当然,还有所有的函数式编程语言允许你声明并传递函数而不用用类包装它。

    很显然,动态类型语言的使用更容易; 你可以仅仅传递一个引用给函数,函数可以用名字获取它,而函数的调用者仅仅用合适的参数调用函数并正确地使用返回的值就可以了。

    但是很多静态类型的语言同样也有第一类的函数。 这包括固定类型的语言比如C和C++,还有类型自动推断的语言比如Haskell和ML。 这些语言仅仅需要一些语法来建立,传递和调用函数的内容就可以了。

    Java没有理由不简单地添加第一类函数并最终实现一个成熟的,没有扭曲的可以让人自由运用动词来实现他们想法的世界。 实际上,有一个基于JVM叫做 The Nice programming language 的语言实现了一个非常类似Java的语法, 并包含了一个非常具有表现力的实现了使用动词方式:独立函数。 而Java强制你用Callback,Ruunable或其他匿名接口来包装它为一个类以便于调用。

    Sun公司甚至没有打破他们一切函数都必须被类拥有的信条。 任何匿名的函数都会具有一个隐式的this指针指向定义它的类;问题解决了。

    我不知道为什么Sun公司坚持Java矗立在名词王国。 我怀疑这是低估了他们的民众;他们添加了泛型,一个更加复杂的概念,所以他们不再关心如何保持他们语法的简练。 并且添加动词并不是一件坏事,这是因为Java现今所建立的:为一个Java程序员提供工具让他们按自己的想法编程更有意义。

    我真心希望Java能修复这个缺陷,以便我可以把垃圾带出去并回来玩游戏或者一切当时在做的事情

    转载于:https://my.oschina.net/startphp/blog/105631

    展开全文
  • 虽说现在的交易平台多如牛毛,没有... 领域王国拥有独立运营的线上交易平台。主要提供投资者喜爱的涨跌交易,与此同时亦推出了全球首创的虚拟货币交易方式。虚拟币交易系统完善,运行多年以来用户已经超过8亿,每年...
  • 2019年虚拟货币排行有哪些

    千次阅读 2019-08-02 17:35:01
    在选择平台方面,可以找一些有影响力的平台如领域王国虚拟币交易平台,平台内有上百种交易资产,其中就包括热门的以太币、瑞波币、莱特币等等。  1、比特币  即使是刚接触虚拟币的人,也听说过比特币,有“币...
  • Python程序设计项目八海龟乐园&jieba王国主讲人X老师情景描述 Hello大家好经过前面的Python语言知识学习是不是觉得有点枯燥乏味呢接下来我们将要进入到一个新的学习领域学习两种有趣的新知识小海龟turtle函数库和...
  • 统计通俗读本:漫游数据王国 序幕 (Prologue) In the beginning, there were many houses. Though they began life at the same time, they were in different parts of the land, and thus had different ideas ...
  • 对医学上重要的植物进行身份验证对于全球范围内对草药的日益增长的需求至... 沙漠药用植物的DNA条码文库的构建是巴林王国的一个入门研究领域,可帮助常规鉴定植物,并开发出检测草药中掺假剂以及保护生物多样性的指南。
  • 诚然,王国居民和城市居民之间在获得护理服务方面存在空间上的不平等。 在吉达市区,和其他沙特市区一样,医疗设备,尤其是基本的州级医疗中心(药房)的分布非常不均衡。 但是,在这种情况下很少进行研究。 在这项...
  • 本文由埃姆杰翻译。未经许可,禁止转载!英文出处:Future Insights。 内容提要 使用许多独立组件构建应用程序的想法并不新鲜。...软件开发是一个语义丰富(术语通常不止一个意思)的领域。很显然,这...
  • 进入前端开发的王国 一、认识什么是前端工程师 有时候,我们常常想三个问题,我是谁?从哪来?到哪去? 同样的,在进入“前端开发工程师”的王国前,我也希望大家思考一下三个问题: 什么是前端工程师? 前端工程师...
  • 细解Java的神话王国

    2007-06-12 10:46:00
    Java,是一种可以编写跨平台应用软件的面向对象的程序设计语言,由Sun公司(太阳微电子,Sun Microsystems)公司的詹姆斯·高斯林(James... Java平台根据API和使用领域,主要分为三种技术: *Java SE (旧称J2SE) - Ja
  • 2019年最有前景的区块链项目无疑是虚拟币投资,比特币的高价,至今...据领域王国虚拟币资讯了解到,当前比特币价格为¥79584.40元/11267.7899美元;以太币价格为¥1469.23元/208.0178美元;瑞波币价格为¥1.87元/0.2...
  • 我曾经见识过许多技术,在人工智能领域工作也有十多年了,但客观公正地说,我认为GPT-3是自互联网诞生以来最重要的技术,也是本世纪人工智能领域最重要的技术。测试GPT-3的时候,我就像是进入了高尔基笔下的“影子...
  • GUI原理 - 色彩王国

    2006-09-04 12:13:00
     设计领域有一个行规,那就是设计师必须使用CRT显示器,这有两点原因。一,CRT显示器所能够表达的颜色更多,达到32Bit,而LCD原理上只能实现18Bit,现在经过优化后可以实现伪24Bit。二,CRT的颜色更接近于CMYK色,...
  • IC世代v.s.NANO王国

    2019-08-21 05:35:07
    而今天我要来谈谈的,是在我们所熟知的一个集成电路的王国旁边,一个正在高速发展 的纳米王国。尽管这个王国是那么的不起眼,但是我相信这是暂时的,二十年三十年后 ,它们会像狂风骤雨一样冲击着我们传统的观念和...
  • 丹麦为啥能成为“养猪王国”与“养猪强国” 丹麦为啥能成为“养猪王国”与“养猪强国” 薛圣东原创作品未经授权严禁其他公众号刊载 提到安徒生,人们会立刻想到童话:《拇指姑娘》、《卖火柴的小女孩》、...
  • 外汇交易发展至今,已经形成了不小的市场规模,也因着快速获益的涨跌...在交易之前,领域王国金融导师建议,应先了解好当日外汇的行情走势、相关政策的变动等,在有把握的时段进行短线投资,最快30秒完成一笔交易。...
  • 苹果王国继续占领应用电子的高地 小刀马 虽然苹果iPhone和iPad在近两年占据了很多人的眼球,但是传统的苹果产品并没有丝毫的懈怠,我们看到构筑起苹果应用电子帝国大厦的iPod依然在不断地更迭着。更主要的是,...
  • 面对日益发展的虚拟货币交易,以太币也大力发展,想要进行以太币的交易,就必须先选择一个平台如领域王国才能开始,只有加入到平台,才能得到系统而又全面的学习和培训,帮助投资者提升个人投资能力。 尽管在平台...
  • 此后,他尽管因两次外界质疑而感到苦闷,甚至放言要退出DeFi领域,还从Twitter上消失了一段时间,但「喜欢把东西拼接在一起,看看会发生什么」的Andre Cronje又回来了,还搞了大动作。 12月1日,当Yearn.Finance与另...
  • 而百度则将提供云计算、大数据和人工智能等领域的技术,协助成都交警实现宏观决策、信息化管理和精准治理。 这则新闻有一些似曾相似。没错,自从去年底与江苏交通运输厅战略合作之后,百度地图与地方交通部门合...
  • GUI原理1 - 色彩王国

    2009-04-10 09:23:00
     设计领域有一个行规,那就是设计师必须使用CRT显示器,这有两点原因。一,CRT显示器所能够表达的颜色更多,达到32Bit,而LCD原理上只能实现18Bit,现在经过优化后可以实现伪24Bit。二,CRT的颜色更接近于CMYK色,...
  • 转------------ 周钢教授刻苦钻研美国西部开放牧区发展史10余年,积累了大量的知识和资料,经过了缜密地思考,写出了一本很有份量的、非常扎实的专著:《牧畜王国的兴衰——美国西部开放牧区发展研究》,索序于我。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,818
精华内容 1,527
关键字:

领域王国