多少公司采用google浏览器编码设置编码

谷歌的代码管理 - 阮一峰的网络日志
谷歌的代码管理
谷歌和 Facebook 都只有一个代码仓库,全公司的代码都放在这个库里。
我一直很困惑,为什么要这样做,不同语言的项目放在一个库有什么好处?
最新一期的《ACM通信》(59卷第7期)有一篇论文,作者是谷歌基础设施小组的工程师,可以看作官方对这个问题的详细解答。我读后感到收获很大,下面就是摘录。
谷歌最早使用 CVS 进行代码管理,1999年改为 Perforce。那时是一台 Perforce 主机,加上各种缓存机。
当时,全公司的代码就在一个仓库里面,后来一直沿用这种做法。由于规模不断增长,Perforce 已经无法满足需求,谷歌就开始使用自己开发的版本管理系统 Piper。
Piper 架设在谷歌自己的分布式数据库系统(以前叫 Bigtable,现在改名 Spanner)之上,分布在全世界10个数据中心,保证世界各地的谷歌员工都有良好的访问速度。
目前,这个代码仓库包含10亿个文件、3500万次提交记录,大小为86TB,用户达到几万人。工作日每秒有50万次请求,高峰时80万次,大部分来自自动构建和测试系统。
谷歌90%以上的代码,放在 Piper 里面。对于那些开源的、需要外部协作的项目,代码放在 Git,主要是 Android 项目和 Chrome 项目。Git 的特点是,所有历史记录都会复制到用户的本地机器,所以不适合大型项目,必须拆分成更小的库。以 Android 为例,该项目一共包含800多个独立的仓库。
二、Piper 的设计
整个仓库采用树状结构。每个团队有自己的目录。目录路径就是代码的命名空间。每个目录都有负责人(owner),他负责批准该目录的文件变动。
2.2 权限控制
Piper 支持文件级别的权限控制。99% 的代码对所有用户可见,只有少部分重要的配置文件和机密的关键业务,设有访问限制。
如果机密信息不小心放上了 Piper,文件可以被快速清除。并且,所有的读写都有日志,管理员能够查到谁读过这个文件。
2.3 工作流
Piper 的工作流(workflow)如下图。
开发者先创建文件的本地拷贝,这叫做"工作区"(workspace)。完成开发后,工作区的快照共享给其他开发者进行代码评审。只有通过了评审,代码才能合并到中央仓库。
2.4 客户端
大多数开发者通过一个叫做 CitC 的客户端,访问 Piper。
开发者通过 CitC 浏览和同步 Piper 上的文件,但是编辑和修改是在自己工作区,里面只保存有变动的文件(一个工作区一般不超过10个文件)。CitC 带有云储存机制,每个工作区就是云上的一个目录。通过代码评审以后,这些文件才从 Citc 合并进 Piper。
不使用 CitC 也是允许的,所有代码保存在本地,最终用 Git 客户端提交到 Piper。不过,由于 CitC 提供更多的功能,目前使用率达到 80% 。
2.5 主干开发
Google 采用"主干开发"(trunk-based development)。代码一般提交到主干的头部。这样保证了所有用户看到的都是同一份代码的最新版本。
"主干开发"避免了合并分支时的麻烦。谷歌一般不采用分支开发,分支只用来发布。大多数时候,发布分支是主干某个时点的快照。以后的除错和功能增强,都是提交到主干,必要时 cherry-pick 到发布分支。与主干长期并行的开发分支,在谷歌极少见。
由于不采用"分支开发",谷歌引入新功能,一般在代码中使用开关控制。这避免了另起一个分支,也使得通过配置切换功能变得容易,一旦新功能发生故障,很容易切换回旧功能。等到新功能稳定,再彻底删除旧代码。谷歌有类似A/B测试的路由算法,评估代码的表现,由于存在配置开关,这种测试很容易实现。
2.6 代码评审
所有代码合并进仓库之前,都必须进行代码评审。大部分评审对所有人开放,任何谷歌员工都可以对代码提意见或者提交变动。
代码评审的依据是。谷歌有一个叫做 Critique 的工具,可以查看每一行代码的历史演变。
2.7 自动测试
评审完成后,会自动运行测试。通过测试以后,代码就合并进了 Piper 仓库,整个过程不需要人工干预。
单一代码仓库主要有以下优点。
(1)统一的版本
整个公司的代码,有统一的版本和路径,不存在找不到文件的最新版本这样的问题。
(2)广泛的代码共享和复用
任何人都可以浏览和使用全公司的代码,这大大促进了代码的共享和复用。
(3)简化的依赖管理
如果你是库文件或者 API 的作者,因为所有人的代码都在一个库里面,所以很容易找到依赖你的所有下游代码。
每当代码变动,所有依赖你的代码都会自动构建。如果有大量的构建失败,那么系统会自动撤销这次提交。这样也保证了所有代码依赖的都是最新版本,避免依赖不同的版本所导致的冲突。
另外,由于代码的边界很清楚,所以不会发生循环依赖。而且,API的作者也很容易发现,别人怎么使用他的API。
(4)原子性变动
由于每次代码变动所导致的影响,都在一个仓库里面,所以都属于原子性的变动。因此,很容易撤销,或者预先测试它所造成的影响。
为了防止错误提交,谷歌引入了"预提交"(即在提交之前,先分析一下依赖它的代码是否会构建失败)。
(5)大规模代码析构
单一代码仓库为查找和分析代码,提供了巨大的方便。
Google的静态分析引擎 Tricorder 定时运行,对代码进行分析。比如,C++ 11 标准公布以后,很容易找到所有需要改进的变量声明语句,进行性能优化。该引擎还对许多错误提供"一键修正"的功能,同时产出大量的统计数据。
此外,编译器团队也会对不同语言的所有代码进行分析,找出不合理的代码和过时的API。
单一代码仓库的主要缺点是,所有工具都必须自己写,因为市场上没有能够管理这种规模的代码仓库的软件。
单一代码仓库,适合提倡透明开放的大型软件公司,不适合小公司和有大量私密代码的公司。
今年三月,微软宣布 Edge 浏览器将支持 CSS 变量。
命令行是程序员的必备技能。图形界面虽然好看,解决问题还是要靠命令行。
Emoji 是可以插入文字的图形符号。
以前,网页开发有一个原则,叫做"关注点分离"(separation of concerns)。市场合作,请您联系:
品牌广告合作,请您联系:
满足以下场景,获得更高通过率:
新融资求报道
新公司求报道
新产品求报道
创投新闻爆料
为你推送和解读最前沿、最有料的科技创投资讯
36Kr股权投资
汇集行业内最优质创业项目的股权投资平台
聚集15家顶级投资机构的专业互联网融资平台
聚集全球最优秀的创业者,项目融资率接近97%,领跑行业Rachel Potvin:2015年谷歌代码量达20亿行 代码库每天处理85TB数据 | 互联网数据中心-199IT | 中文互联网数据研究资讯中心-199IT
扫描微信二维码,数据随身查添加微信公共帐号: i199it欢迎关注:欢迎关注:百度、谷歌等公司竟都选择开源AI代码?【李彦宏吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
百度、谷歌等公司竟都选择开源AI代码?收藏
自上世纪以来,开源就成为企业之间相互学习和竞争的一个缩影。而AI着从机械工业逐渐扩展到现在的人工助手、智能陪伴和深度学习等形态。  但是从去年开始,开源人工智能(AI)代码似乎成为了一种“潮流”,谷歌、Facebook和百度纷纷贡献自己的一份力量,就在今年1月中旬,百度宣布开源AI代码,目前,百度硅谷实验室已经向GitHub上传了Warp-CTC C代码库。
  Warp-CTC C系统可用于解决比如语音识别这样的,将输入序列映射到输出序列的监督问题,是一种在CPU和GPU上快速的CTC的并行实现;CTC方法包括递归神经网络(RNNs),在深度学习的AI上越来越常用。递归神经网络已经被证实可以在嘈杂的环境下很好的运行。  在人工智能领域,百度已经在小度的研发方面有了不错的表现,除此之外,百度更有被誉为“谷歌大脑之父”的百度公司首席科学家吴恩达。他也在去年的百度大会上向来宾展示过百度Deep Speech(能够以一种非常原始形式来模仿人大脑新皮层中的神经活动)。  可以说在人工智能领域已经吸引了包括百度、谷歌、Facebook和微软等企业的关注,谷歌更开源了自己的关键技术:TensorFlow机器学习系统。TensorFlow 是谷歌自主研发的机器学习系统,他的神经网络反应速度比第一代的DistBelief快5倍左右。既可以运行在智能手机上,也可以用到数据中心之中。  其实这些企业先后选择开源自己的AI代码,并非偶然,也不全是对人类社会的无私贡献精神。
一方面,人工智能的技术相对复杂,不属于即插即用的技术,所以开源源代码并不会对自己技术研究带来毁灭性影响;相反,AI代码的开源能够让更多的人投入到该项技术的丰富之中,促进自己技术的发展。另一方面,人工智能的发展十分迅速,但同时,人工智能也被认为是一种危险的技术,所以也就有马克斯的OpenAI等组织,致力于影响整个AI研究方向,避免人工智能的无序导致对人类社会产生危害。  而OpenAI就是为了影响研究人工智能的公司,让企业、机构通过开放他们的技术来与对手竞争。
百度的人工智能很方便
可以让生活更方便
不容易啊,百度也开源了
暖   ——新年好呀,新年好呀,我们大家新年好!跟着我的节奏嗨嗨嗨!!!
来过   ——新年好呀,新年好呀,我们大家新年好!跟着我的节奏嗨嗨嗨!!!
挺好的   ——新年好呀,新年好呀,我们大家新年好!跟着我的节奏嗨嗨嗨!!!
信就信,不信就不信,还整个微信。
应用吧活动,
登录百度帐号
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 google浏览器修改编码 的文章

 

随机推荐