首页
学习
活动
专区
圈层
工具
发布

Google C++ 编程风格指南(四):来自 Google 的奇技

Google 用了很多自己实现的技巧 / 工具使 C++ 代码更加健壮, 我们使用 C++ 的方式可能和你在其它地方见到的有所不同. 4.1....其实您可以把智能指针当成一个重载了 * 和 -> 的「对象」来看。智能指针类型被用来自动化所有权的登记工作,来确保执行销毁义务到位。...可以不用手动完成所有权的登记工作,大大简化了代码,也免去了一大波错误之恼。 对于 const 对象来说,智能指针简单易用,也比深度复制高效。...其实值语义的开销经常被高估,所以就所有权的性能来说,可不能光只考虑可读性以及复杂性。 如果 API 依赖所有权的传递,就会害得客户端不得不用单一的内存管理模型。 销毁资源并回收的相关代码不是很明朗。...4.2. cpplint 使用 cpplint.py 检查风格错误. cpplint.py 是一个用来分析源文件, 能检查出多种风格错误的工具.

96010

来自Google大佬的几点写简历的意见

这几年,我在Google工作,是一名软件工程师(之前是在微软做一个开发团队的队长),我曾浏览过成百上千的简历,从中挑选出可以进行下一步面试过程的 应聘者。...慢慢的,有越来越多的朋友和亲人向我咨询如何优化他们的简历,所以我就收集了一些我见过的简历中出现的最常见的问题,并给出了如何避免这些问题的建议: 1....筛选者都是用自己的感觉来判断你的工作的性质和价值的,你要写一些量词,奖励(公司内部或外部的),新闻报道,工资涨幅,以及其它的可测量的事情。不要用 你自己的主观意识去描述。...这是个有挑战性的任务,但也是个可以完成的任务。 在快结束的时候,我想向大家举几个我特别有印象的简历… 有一个应聘人在他的简介的第一句话里使用了”ass(傻蛋之类的意思)“这个词。...(不合适,但他被留下了,“Google 需要一个很强的捣蛋的程序员去开发下一个XXX”) 有个人的简介里写道:”我没有时间去写简介。我要去参加聚会,跟女孩子们约会。“(不合适,我们没有要他!)

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Google短网址的API

    2009年底,Google发布了短网址服务goo.gl。 ? Google声称: "......(这是)互联网上最稳定、最安全、最快速的短网址服务。" 有人做了比较,证明确实如此。 ?...从上图可以看到,goo.gl的响应和跳转时间是最短的。 除了速度快,goo.gl还提供详细的点击统计。...====================================== 但是当时,这个服务只供Google内部使用,不向外部使用者开放,大家只好眼睁睁地流口水。 上周,这个限制终于取消了。...Google宣布,正式公开goo.gl的API。这意味着,所有外部使用者都能利用它,得到自己想要的短网址。感兴趣的同学,可以自己去研究这个API,还是很简单的。...根据这个API,我写了一个"短网址生成器",欢迎访问,网址是: http://www.ruanyifeng.com/webapp/url_shortener.html 另外,我还提供一个Bookmarklet

    5.3K20

    Google JavaScript API 的使用

    入门 您可以使用JavaScript客户端库与Web应用程序中的Google API(例如,人物,日历和云端硬盘)进行交互。请按照此页面上的说明进行操作。...设定 取得Google帐户 首先,如果您还没有Google帐户,请注册一个。 创建一个Google项目 转到Google API控制台。单击创建项目,输入名称,然后单击创建。...启用Google API 接下来,确定您的应用程序需要使用哪些Google API,并为您的项目启用它们。使用API资源管理器浏览JavaScript客户端库可以使用的Google API。...要为您的项目启用API,请执行以下操作: 在Google API控制台中打开API库。如果出现提示,请选择一个项目或创建一个新项目。API库按产品系列和受欢迎程度列出了所有可用的API。...获取您的应用程序的访问密钥 Google定义了两个级别的API访问权限: 水平 描述 要求: 简单 API调用不会访问任何私人用户数据 API密钥 已授权 API调用可以读写私有用户数据或应用程序自己的数据

    4.8K20

    折腾Google Docs API 的坑

    google docs api 起步 有关链接 快速开始 https://developers.google.cn/docs/api/quickstart/nodejs#step_2_install_the_client_library...打开https://developers.google.com/docs/api/quickstart/nodejs 点击 获取api使用凭据 点击按钮后会显示 然后点击下载凭据 保存到项目中 等下运行程序会读取这个文件...把github上的代码下载下来 记得执行 安装相应的包 npm install googleapis --save 运行 node index.js 会出现以下信息 这个时候就要点击链接 进行屏幕授权...,会让你选择谷歌账号登录,直接即可 复制代码到控制台 在这一步复制后 我的机器会报错 暂时不知道是哪里 出错了, 等知道了再来补充博客 告诉大家 错误信息如下: Error retrieving...headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'google-api-nodejs-client

    1.9K20

    来自 1986 的 DFT 改进算法(高阶插值实现)

    来自 1986 的 DFT 改进算法(YUNSWJ 数值分析实现版) 昨天的优化 DFT 算法只是简单的使用了一次插值,那对我来说,优化的空间还是非常大的,所以接下来我们更近一步:来加一个“分段二次插值版本...FFT vs 线性插值FT vs 二次插值 FT 的误差对比 它和线性版的结构完全平行,只是多了一组 项: 对比结果:二次插值比线性又好多少?...这和数值分析里的直觉一致:矩形积分(零阶保持) → 一阶方法;线性插值积分 → 二阶;二次插值 → 三阶附近。...统一框架:插值 = 重构滤波器 先把所有插值方式放到同一个框架里: 采样点: 采样间隔 离散序列 广义插值/重构写成: 就是“内插核/重构滤波器”的冲激响应,那对于不同的插值方式,就是不同的...频域里,就是: :重构滤波器的频响(来自你的 FIR / IIR) :采样冲激串的频谱(本质上是原离散序列的 DTFT 的重复) 线性插值 vs FIR/IIR 插值,本质区别 线性插值(FOH)是什么滤波器

    11810

    Google 被祭天了!来自程序员内心的恐惧

    近日,外媒披露了一件由Google+ API漏洞引发的数据泄露,它会导致外部开发人员可以轻易访问私人数据,并且造成了 50 万个账户个人资料数据遭到泄露,涉及 438 个应用程序。...由于这个状况很大程度上是Google自己犯下的错误,所以目前的形式非常严峻。 不幸的是,我非常怀疑Google这次能否成功地通过改变“生活方式”来拯救自己。我希望我的怀疑是错误的。...但这次关于Google+安全漏洞和面向消费者Google+关闭的声明,正是Google多年宿疾的直接症状。...如果回顾下历史,你会发现其实这个过程中有很多事件。DEC被其他公司吸收,人才也流失到了各个方向。...它将成为“传统”的Google,而不是许多Google员工为之骄傲的Google,不是全球众多用户每日依赖的Google。 我们心中的Google即将死去。

    71520

    -来自Google的研发经验总结

    代码质量本身并没有一个特别明确的量化指标,而且根据公司发展的不同阶段,团队规模的大小不同,项目性质的不同等,对代码质量的要求也不尽相同.不过如果项目中出现以下情况时候,就说明代码质量要值得重视了....当然团队的技术素质很重要,除此之外,还有一些方法可循的. 1、吹毛求疵般地执行编码规范 严格执行代码编写规范,可以使一个项目乃至一个公司的代码具有完全统一的风格,就像同一个人编写的一样,而且命名良好的变量...,函数,类和注释,也无疑可以提高代码的可读性.具体落实到执行层面,可以参照Google的编码规范或者java官方的编码规范,网上可以找到,关键是要严格遵守,并且在code review时,严格要求,没有按照规范的一定要指出并且要求修改...优秀的代码或架构不是一开始就能完全设计好的,就像优秀的公司或产品也都是迭代出来的一样的,我们无法100%遇见未来的需求,也没有足够的精力,时间,资源为遥远的未来买单,所以随着系统的演进,重构代码也是不可避免的...Checkstyle,findbugs,pmd是静态代码分析工具,通过分析源代码或者字节码,找出代码的缺陷,比如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。

    2.1K20

    Spring Data默认值的错误

    Spring Data有很多配置的默认值,但不一定都适合你。如一个依赖Cassandra 的项目,有时写入数据后,并不能立马读到。这种错误并没有什么报错,一切都是正常的,就是读不到数据。...常见搭配是 R(读)和 W(写)的一致性都是 LOCAL_QURAM,这样可以保证能及时读到写入的数据;而假设在这种情况下,读写都用 LOCAL_ONE,则可能发生这样的情况:用户写入一个节点 A 就返回...,但用户 B 立马读的节点是 C,由于是LOCAL_ONE 一致性,则读完 C 就可立马返回。...其实是最合适的,因为只有一台机器,读写都只能命中一台。但产线上的 Cassandra 大多都是多数据中心多节点的,备份数大于1。所以读写都用 LOCAL_ONE 就会出现问题。...修正 修改默认值,以 consistency 为例。

    1.7K20

    代码历史上最昂贵的 7 个错误

    算法或程序中的一个小技术错误就可能造成数百万美元的损失。本文带大家看看迄今为止历史上因程序错误而带来后果最为昂贵的 7 个错误。...美国宇航局的科学家们希望,一旦航天器到达火星,它将帮助他们重建气候历史,并在地表找到水的迹象。本次任务结束后,它还将作为未来火星任务的通信中继。...水手 1号:1850 万美元 2.png 水手1号事件,也被称为人类历史上最昂贵的连字符,是美国宇航局的另一个失误,虽然很小,但导致公司损失了数百万美元。...水手 1 号于 1962 年 7 月 22 日上午 9 点 21 分发射,距离发射不到 5 分钟,任务被迫中止;人类历史上最具历史意义的一次飞行坠毁于地面,而这只是因为数学代码中的一个小错误。...Y2K 错误,也称为千禧年错误,是一种计算机缺陷。

    75320

    历史上的今天免费API接口教程

    接口简介​历史上的今天​ 是一个免费API接口,可随机获取或按日期检索历史上的今天发生的重要事件。数据同步于百度百科,覆盖全面、权威可靠。...支持返回事件标题、日期、关键词及百科链接,适合历史类应用、教育工具或内容聚合平台集成。...接口基础信息​请求地址​:https://cn.apihz.cn/api/zici/today.php​请求方式​:GET 或 POST​请求参数​:参数名必填说明id是用户中心的数字ID(需注册获取)...返回参数​:json复制{ "code": 200, // 状态码(200成功;400错误) "msg": "", // 错误提示(code=400时返回) "title...错误处理​:code=400 时检查 msg(常见错误:秘钥无效、参数缺失)。​数据逻辑​:指定日期无事件时,随机返回其他日期事件。关键词(words)可直接联动百度百科API扩展详情。

    37610

    历史天气预报 API 的应用与使用

    而历史天气预报 API 成为了将这些数据纳入应用程序的强大工具,让我们能够穿越时光,深入了解过去的气象情况。API:连接历史和未来的桥梁API,或应用程序编程接口,是不同软件应用之间进行通信的桥梁。...历史天气预报 API 提供了对过去天气数据的访问权限,这些数据通常来自于气象站、卫星和气象观测。通过使用这些 API,开发者可以轻松地在应用程序中集成历史天气数据,以便用户可以访问以前的气象信息。...应用场景历史重现历史天气预报 API 允许我们追溯以前的天气情况。这对于历史研究、编写小说、制作纪录片等项目非常有用。...历史天气预报 API 的使用本文我将使用 APISpace 的 历史天气预报 API,来给大家演示如何将历史天气预报快速的接入到自己的应用中。...除了历史天气预报 API,APISpace 上关于天气类的接口,还有天气预报、天气预警、空气质量、分钟级降水预报等API。

    1.1K20

    Super快报第8期:今天的消息来自Google和苹果

    来自Google和苹果的报道如下: 一、谷歌董事长访问金日成大学 参观学生上网 Google执行董事长斯密特昨天到朝鲜金日成大学参观学生们上网。该大学学生访问Google及WIKI无压力。...可是,尼玛中国最好的大学清华大学也不能正常访问Google及WIKIPEDIA。情何以堪。...同一天,Google去看朝鲜,苹果来中国,美国最近出啥政策了?...即1G光纤推出后,这是Google代表互联网公司帮运营商改进网络环境的有一件象征性的事情。互联网浪潮让运营商鸭梨山大。 五、“虚拟运营商”将成现实 工信部已经就相关草案征集意见。...之前关于腾讯可能成为虚拟运营商的传言成真。虽然想象空间有限,好歹让一潭死水的网络现状荡起涟漪。以后,咱用中国腾讯或中国百度的手机卡,QQ号就是手机号。

    88890

    修复 Google Adsense 漫游器被拒绝的错误

    最近登陆 Google Adsense 后台,发现评分卡中收入评分很低,其中抓取工具错误很严重,这个错误的意思是 Google Adsense 的抓取工具无法访问我们网站的网页,因此无法确定其内容并展示相关广告...在这种情况下,Google Adsense 只能展示低收入和低覆盖率的广告,甚至会展示点击率较低的不相关广告。...所以要确保网站能够展示更多相关的广告,以便增加广告收入,那么就要解决这个问题,抓取工具错误主要分成漫游器被拒绝和找不到网页的错误。 找不到网页的错误是因为网站有一些死链,找他们修正就好了。...而漫游器被拒绝这个错误经过分析,是因为我们在对网站进行 SEO 的时候,在 robots.txt 文件中禁止爬虫对一些页面或者目录的浏览,但是这个禁止是针对所有的爬虫,这样也伤及无辜把 Google Adsense...的爬虫也屏蔽了,造成了漫游器拒绝的错误。

    1.7K30

    来自Google:三项触手可及的高科技

    项目名为Soli,该传感器能够识别手表表面的手指运动,并且按照对应的手势追踪对应的手势。基本上,该技术能够在不久的将来取代触摸屏。 下面的图像展示了Soli的工作原理。...(虽然图像中显示的模块会发出某种频率的波来检测手指的位置,但是具体发射的何种波就不得而知了。不过我有看到清华的通过手指遮挡wifi信号,来检测手指位置的,该技术应该与Soli类似。)...通过衣服控制触摸屏 如果隔空是用过某种波来检测手指,那么下面这个滑动衣服就能启动屏幕的隔空操作同样屌爆了。在google,该技术名为Project Jacquard。...这种材料能够用于设计各种颜色、风格、尺寸的衣服。据悉,google将与时尚品牌Levi’s合作推出相关的智能产品。...一旦手机的各个模块可以进行拆分组装,手机的升级成本就会大大降低,而且替换下来的模块还能再利用。(如果全家的电器都是这种模式,退役的摄像头和内存之类的可以用来升级其他的智能家电。)

    72260

    满足 Google Play 目标 API 等级 (targetSdkLevel) 的要求

    从 2018 年 8 月起,所有向 Google Play 提交的新应用都必须针对 Android 8.0 (API 等级 26) 开发。...本文重点说明了开发者在更新目标 API 中应该注意的几个事项,从而满足 Google Play 的要求。...API 等级 24) 早于 Android 8.0 (API 等级 26) 注意:如果您的 gradle 文件包含 manifest 条目,您可确认或者更改文件中 targetSdkVersion 的当下值...等级 26) 《行为变更》页面,仔细阅读关于 JobScheduler API 的变更; ·· Firebase Cloud Messaging 要求 10.2.1 或更高版本的 Google...我们建议进行以下几个方面的测试: 测试应用兼容 API 26, 不产生错误和警告; 您的应用应该有相应策略来妥善应对用户拒绝访问权限的情况,并提示用户授予权限。

    11.7K30

    来自Google的经验:以用户为中心的机器学习七大技巧

    观察其与系统的适应性和二次相互作用对于启发设计是非常有价值的。 了解好的错误与坏的错误的代价 正常的机器学习系统往往伴随着各种错误。因此,了解这些错误的样子以及对用户体验的影响是尤为重要的。...人们可以对 Google 搜索自动填充提供反馈,比如此预测不合适 使用正确的标签来训练算法 标签是机器学习基础的一部分。...与工程,产品等部门合作,总结出正确的研发经验 总结 以上为 Google 团队内部强调的七点。希望能在读者创建机器学习类产品时有所帮助。...原文:Human-Centered Machine Learning 作者:Josh Lovejoy 是 Google 研究和机器情报部门的 UX 设计师。...主导了 Google 的机器学习的设计和策略;Jess Holbrook 是 Google 研究和机器情报部门的 UX 经理和 UX 研究员。

    70020
    领券