云编程那些事4 - 不造巴比伦塔

《人月神话》-巴比伦为什么会失败? 1.巴比伦的管理教训这个故在很多方面和同层次都是非常深刻和富有教育意义的。让我们将它仅仅作 为纯粹的工程项目,来看看有什么值得学习的教训。这个项目到底有多好的先决条件?他们 是否有: (1) 清晰的目标?是的,尽管幼稚得近乎可能。而且,项目早在遇到这个基本的限制 之前,就已经失败了。 (2)人力?非常充足。 (3)材料?在美索达米亚有着丰富的泥土和柏油沥青。 (4)足够的时 阅读详情

圣经旧约有个巴比伦塔的故事:当时人类联合起来兴建希望能通往天堂的高塔;为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能沟通,计划因此失败,人类自此各散东西。

上帝似乎也在阻止码农建立巴比伦塔,我们有太多的编程语言,程序与码农之间、不同语言的程序相互之间的沟通变得无比复杂。SUN一直有"not invented here"的情结,仿佛不发明毋宁死。公司里不乏创造编程语言的高手,除了Java的高斯林,还有来自伯克利大学的Tcl/Tk发明者,XML的发明者,JavaFx的发明者。我以前做过几个编译器,很有发明一种新语言的冲动,感觉这是青史留名的机会。但是这个冲动被巴比伦塔克制了,我们是否真正需要为云编程设计一种新的语言?正因为对程序语言设计和编译实现有比较深入抽象的理解,我们开始探索如何利用流行的语言表达云编程的方言特色。

Java经过六代,已经变得过于笨重庞大,尤其是自我解析的Reflection部分算不上通俗,以致多数码农并不熟悉如何使用Reflection进行自造,而我很坚持云编程一定要有超强的程序自己制造程序的能力。当时,既流行也轻巧的Javascript成为我们的首选,毕竟,Javascript也是Netscape网景与SUN合作的成果,借了Java的名。青睐Javascript的原因除了流行性,更因为它是一种深受Scheme语言影响的函数编程语言。函数编程里,代码封装在函数的容器里变成了数据,代码和数据可以混为一谈。这样让程序方便地在云里跑来跑去,并且随时可以让程序自造代码。

既然云把一切变成了服务,云编程的特色应该把程序自身也变成服务。Javascript的函数编程特色,用来把代码封装成云里可以输送和享用的服务。而Javascript的代码自造,能够带来非常智能的云服务。代码级的云服务比当时Amazon亚马逊的AWS要细腻太多。当年还没有清晰的云服务层次划分,用现在的术语,Amazon的云服务是IaaS,提供计算、存储、带宽这样的基础资源。IaaS不考虑应用的问题,只考虑操作系统层面的资源服务。后来出现了PaaS,提供应用层面的支撑,例如Google在2008年推出的GAE,提供不同语言的运营环境、数据库、中间件。这样的PaaS,只考虑应用支撑层面的资源服务。简单说,你把程序写好交给PaaS,不用操心安装和运营Tomcat和MySQL之类的应用支撑软件。然而这种PaaS,不考虑你如何写程序的问题。我们的目标是最大限度地利用云,用云的方式来写出在云上跑的程序,打造一个“面向服务 service-oriented programming”的云编程模式。用浏览器在云上编程只是一个方面,更重要的是,一段可复用的程序,例如一个Class,应该成为一种云服务。由于Javascript的码农已经很熟悉Ajax的API服务调用,我们顺着这个思路,构造了两类服务:

  1. Service: 用Javascript可以写出后台的数据API服务。后台部分需要在Java里面跑Javascript,我们用了SUN欧洲同事研发的Rhino。经过精心的映射和封装,码农不需要Ajax那么麻烦,可以用一行代码搞定API的调用,类似于 var reviews = Service.bookStore.getReviewsByItem(item_id);
  2. Widget: 用Javascript,HTML,CSS一起写出前台的Web页面部件。而一个页面里,用Javascript可以方便地引用和复用Widget。
Service和Widget都是云服务。和亚马逊谷歌的云服务道理一样,亚马逊提供Linux虚拟机,谷歌提供Tomcat,我们提供更细颗粒的应用程序服务。为了简化API调用的界面,程序级的云服务一概使用命名空间,例如Service.bookStore.getReviewsByItem就是一个云服务,这样非常符合码农的习惯。


LangChain开发避坑指南:为什么Pylance总提示‘无法解析导入‘?测7种修复方案 本文深入解析了在VS Code中使用LangChain开发时,Pylance频繁提示‘无法解析导入’的根本原因——Python解释器与语言服务器的环境路径一致。文章提供了从基础排查到深度配置的7种测修复方案,包括切换解释器、配置extraPaths、使用pyrightconfig.json等,旨在帮助开发者彻底解决此问题,提升AI应用开发效率。 阅读详情

相关推荐

libVLC 视频抓图

libVLC 中通过libvlc_video_take_snapshot核心接口来截图。以下是VLC播放器中使用的截图界面,我们仿照这个做一个界面。首先,你需要初始化 libVLC 例和媒体播放器对象。1. 初始化 libVLC 和媒体播放器。菜单添加action,并响应槽函数。生成目录下snap.png。

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 1781

UVA437 巴比伦 The Tower of Babylon

你可能已经听说过巴比伦的传说。现在这个传说的许多细节已经被遗忘。所以本着本场比赛的教育性质,我们现在会告诉你整个传说:巴比伦人有n种长方形方块,每种有无限个,第i种方块的三边边长是xiyizi。对于每一个方块,你可以任意选择一面作为底,这样高就随着确定了。举个例子,同一种方块,可能其中一个是竖着放的,一个是侧着放的,一个是横着放的。他们想要用堆方块的方式建尽可能高的。问题是,只有一个方块的底的两条边严格小于另一个方块的底的两条边,这个方块才能堆在另一个上面。

Gowi的博客 1151

【目标检测数据集】交通信号灯红绿灯颜色检测数据集19450张3类颜色VOC+YOLO格式.zip

数据集格式:Pascal VOC格式+YOLO格式(包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):19456标注数量(xml文件个数):19456标注数量(txt文件个数):19456标注类别数:3标注类别名称:["green","red","yellow"]每个类别标注的框数:green 框数 = 13164red 框数 = 15044yellow 框数 = 2224总框数:30432使用标注工具:labelImg标注规则:对类别进行画矩形框重要说明:暂无特别声明:本数据集对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理标注

巴比伦的管理教训

 巴比伦的管理教训据《创世纪》记载,巴比伦是人类继诺亚方舟之后的第二大工程壮举,但巴比伦同时也是第一个彻底失败的工程。 这个故在很多方面和同层次都是非常深刻和富有教育意义的。让我们将它仅仅作为纯粹的工程项目,来看看有什么值得学习的教训。这个项目到底有多好的先决条件?他们是否有:1. 清晰的目标?是的,尽管幼稚得近乎可能。而且,项目早在遇到这个基本的限制之前,就已经失败了。 2. 人力?

994

人月神话(7)巴比伦为什么失败

人月神话(7)巴比伦为什么失败 文章目录人月神话(7)巴比伦为什么失败思维导图巴比伦的管理教训具备哪些先决条件失败的主要原因大型编程项目中的交流如何进行相互之间的交流沟通项目工作手册是什么?为什么?如何制作手册处理机制如何入手?组织架构减少交流的方法树形组织架构的产生子树的基本要素两个角色产品负责人技术主管存在的三种关系总结 思维导图 巴比伦的管理教训 具备哪些先决条件 清晰的目标 人力充足 材料齐全 足够的时间 足够的技术 失败的主要原因 缺乏交流和交流的结果——组织 大型编程项目中的交流

zxy5691419的专栏 563

巴比伦

题目大意 巴比伦人有n种同的积木,每种积木都是心长方体,且数目都是无限的。第i种积木的长宽高分别为{xi, yi, zi}。积木可以被旋转,所以前面的长宽高是可以互相换的。也就是其中2个组成底部的长方形,剩下的一个为高度。巴比伦人想要尽可能的用积木来堆高,但是两块积木要叠在一起是有条件的:只有在第一块积木的底部2个边均小于第二块积木的底部相对的2个边时,第一块积木才...

anweiyun4308的博客 378

人月神话(二)——为什么巴比伦会失败

巴比伦的管理教训巴比伦是人类继诺亚方舟之后的第二大工程壮举,但巴比伦同时也是第一个彻底失败的工程。 现在,其也是这样的情况。因为左手知道右手在做什么,所以进度灾难、功能的合理和系统缺陷纷纷出现。随着工作的进行,许多小组慢慢地修改自己程序的功能、规模和速度,他们明确或者隐含地更改了一些有效输入和输出结果用法上的约定。 确有啊,最明显的感觉就是和别人合成各自做的功能模块的时...

aaa5862033的博客 478

第7章 为什么巴比伦会失败

第7章 为什么巴比伦会失败标签:人月神话 现在整个大地都采用一种语言,只包括为数多的单词。在一次从东方往西方迁徙的过程中,人们发现了苏美尔地区的一处平原,并在那里定居下来。接着他们奔走相告说:“来,让我们制砖块,并把它们烧好。”于是,他们用砖块代替石头,用沥青代替灰泥(建房屋)。然后,他们又说:“来,让我们建一座带有高的城市,这个将高达宵,也将让我们声名远扬;同时,有了这个城市,

小旋锋 的博客 1348

27.巴比伦(UVa 437)

有n(n≤30)n(n≤30)n(n≤30)种立方体,每种都有无穷多个。要求选一些立方体摞成一根尽量高的柱子(可以自行选择哪一条边作为高),使得每个立方体的底面长宽分别严格小于它下方立方体的底面长宽。 #include <iostream> #include <stdio.h> #include <cstring> #include <algorithm&...

W_LAILAI的博客 477

《人月神话》读书笔记(七)——为什么巴比伦会失败?

1、巴比伦项目的失败是因为缺乏交流以及交流的结果——组织。项目人员之间的交流和沟通是项目能否顺利和成功的一个重要因素。2、缺乏交流引起进度灾难、功能的合理和系统缺陷纷纷出现。随着工作的进行,许多小组慢慢地修改自己程序的功能、规模和速度,他们明确或者隐含地更改了一些有效输入和输出结果用法上的约定,开始出现偏差。3、团队如何进行相互之间的交流沟通:清晰定义小组内部的相互关系和充分利用电

qinhl99的专栏-林鸿的技术博客 1623

编程那些1 - 把开发过程彻底

关于万联网和编程在创新中国Demo China发布万联网应用移动平台,有个6分钟的演讲录。

javascript跨平台原生移动云编程 4899

编程那些2 - Java之父的啤酒密谋

啤酒泡出了世界上第一个编译系统。Java之父大胡子高斯林发表高见,的时代来临,SUN如何把Java做到里去?

javascript跨平台原生移动云编程 1912

编程那些3 - Yahoo的烟斗

Yahoo Pipes对编程的启示,编程需要构建一种全新的service-oriented programming编程模式。

javascript跨平台原生移动云编程 1529

编程那些5 - 当程序变成社交媒体

2007年社交媒体发展得如火如荼。照片分享的Flickr,图片f

javascript跨平台原生移动云编程 1355

three js 9 补间动画tween

如果使用了yoyo的动画,且没有加delay,会有如下问题。AI给的解释为这是已知的bug。1 加上一个极短的delay。2 改用两个动画相互调用。

吴梓穆的博客 31

AI 范式越迁:使用 XXL-BOOT SKILL 现一句话直生业务

使用 XXL-BOOT SKILL 现一句话直生业务,AI 自动完成需求澄清、数据建模、后端与前端开发、菜单权限配置及联调验证,AI 范式及业务交付进入新时代。

许雪里 345

基于Python的爱奇艺视频数据可视化分析系统

长视频平台剧集、评分、热度与评论数据体量大、维度多,手工汇总难以快速把握类型结构、口碑分布与主演导演影响力。系统采用 B/S 架构,后端入口为app.py,运行端口8060;数据库使用 MySQL(库名iqiyi),经 PyMySQL 访问。前台基于 Bootstrap 5、本地中的 ECharts 5 与 echarts-wordcloud,配合主题。业务表包括usersdramascommentsfavorites。数据可通过导入,或经/ 相关脚本补充样本。分析层在。

qq_35928134的博客 243

hls.js 错误日志深度分析,前端 HLS 播放器问题定位

读懂 hls.js 输出的错误日志,是 Web HLS 播放器开发的必备能力。很多播放故障并是前端播放器代 bug,而是流媒体源、CDN、鉴权、分片损坏导致。借助网页调试工具做对照复现,结合 type、details、fatal 字段,能够快速划分故障责任边界,避免盲目修改前端代做无效调试,大幅提升 HLS 业务问题排查效率。

2608_96729545的博客 329

线上Web异常发现为什么总是滞后?一套自研Web时异常分析监控系统整体架构拆解

<think>我们根据要求,需要生成≤150字的文章摘要。文章内容是关于Web端时异常分析监控系统设计,包括痛点、架构、能力等。摘要需要概括核心内容。注意字数限制。</think>本文围绕Web端时异常分析监控系统,剖析线上异常排查滞后、复现难、数据割裂等痛点,对比现有方案局限,提出自研分层架构:客户端SDK采集、IndexedDB缓存、双通道上报,后端分析、告警与闭环。系统支持多维度分析、自定义告警、问题追踪,并明确适用边界。

weixin_42268042的博客 224

进阶-CloudStudioIDE远程开发/原生开发战(一)

CSDN 发布信息(发布时填写,显示):- 标题:原生开发战(一)| 完整远程开发闭环:本地同步 → 端编 → 一键部署函数- 分类:云计算- 标签:CloudStudio、函数、腾讯、Serverless、原生、远程开发、CodeBuddy。

2501_93047244的博客 307
上一篇: 云编程那些事3 - Yahoo的烟斗
下一篇: javascript原生移动云编程(编外) - javascript速成答疑
码实mash5
博客等级 码龄12年 14粉丝 21原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值