Fundebug
Fundebug
**摘要:** 免费 HTTPS 证书,了解一下?  HTTPS 已成为业界标准,这篇博客将教你申请[Let's Encrypt](https://letsencrypt.org/)的免费 HTTPS 证书。 本文的操作是在 Ubuntu 16.04 下进行,使用 nginx 作为 Web 服务器。 ### 1. 安装 Certbot [Certbot](https://certbot.eff.org/)可以用于管理(申请、更新、配置、撤销和删除等)Let's Encrypt 证书。这里安装的是带 nginx 插件的 certbot: ```bash sudo...
- GitHub 仓库:[Fundebug/loop-mongodb-big-collection](https://github.com/Fundebug/loop-mongodb-big-collection)  本文使用的编程语言是 Node.js,连接 MongoDB 的模块用的是[mongoose](https://mongoosejs.com/)。但是,本文介绍的方法适用于其他编程语言及其对应的 MongoDB 模块。 ### 错误方法:find() 也许,在遍历 MongoDB 集合时,我们会这样写: ```javascript const Promise = require("bluebird"); function findAllMembers() { return Member.find(); } async function test() {...
**摘要:** 技术没有高下之分,做好产品才是王道。  很多开发者非常热衷于比较不同技术,比如:Angular 是否比 Vue.js 更好?Node.js 能否取代 Java?究竟应该选择 MySQL 还是 MongoDB 呢? 认真对比不同技术之间的优劣是非常有价值的事,可以加深我们对技术的理解,根据业务场景选择**更合适的技术**。 但是,对技术选择过于较真,争得面红耳赤,对于产品或者个人来讲,都是没有必要的。因为,**技术选择真的没有那么重要**。 ### 技术只是产品的实现手段 对于一个产品,技术仅仅只是实现手段。或者说,条条大路通罗马,这个产品可以用 Angular + Java + MySQL 实现,那它用 Vue.js + Node.js + MongoDB 来实现也完全没问题。不同技术在细节上确实有不少区别,但是它们在本质上它们是一样的,Angular...
**摘要:** BUG监控插件压缩至18K。  **1.7.1**拆分了录屏代码,BUG监控插件压缩至**18K**,另外我们还原了部分Script error,帮助用户更方便地Debug。请大家及时更新哈~ ### 拆分录屏代码 从**1.7.1**版本开始,我们拆分了录屏代码。如果需要使用录屏功能的话,需要单独接入录屏插件。 **使用script方式接入** ```html ``` **使用NPM方式接入** ```javascript require("fundebug-revideo"); ``` ### 还原部分Script error. 关于Script error.的原理以及解法的详细介绍,请参考我们的博客: - [Script error.全面解析](https://blog.fundebug.com/2017/04/05/understand-script-error/) - [Script error.深度测试](https://blog.fundebug.com/2017/04/06/test-script-error/) - [Script error.解决方法](https://blog.fundebug.com/2017/04/07/solve-script-error/) 简单地说,当跨域的JS脚本出错时,浏览器为了安全性,只会给我们返回"Script...
**摘要:** 需求管理是一门艺术。  开发产品的时候,我们每天都会面对各种各样、没完没了的需求,有的来自外部用户的反馈,有的来自内部团队的idea,有的是产品的BUG,有的是新的功能... 看起来只要实现所有需求,产品就可以变得更好,然后吸引更多的用户,接着赚更多的钱,之后招更多的人,再完成更多的需求... 问题是,需求会源源不断地进来,我们永远也不可能清空所有需求,996也做不完,这辈子都不可能。 我们能做的,是不断将需求排序,实现优先级最高的需求。那么问题来了,**我们应该如何给需求排序?** ### 以用户为核心确定优先级 乔布斯曾经说过: > People don't know what they want until you show it to them. 用户真的不知道他们想要什么吗?很多时候并非如此。 我负责产品,**每天都会和用户交流**,他们知道自己想要什么功能,有时会做好简单的交互设计、帮忙想想算法、甚至给我开源代码。 问题在于,用户只是产品的使用者,他们对于产品的理解没有我们那么深刻,所以他们提出的需求有时会偏离问题的本质,需要我们进一步分析与挖掘。 我们不是乔布斯,没有能力创造需求;我们也不是张小龙,没有1亿人教我们做产品。因此,我们应该多与用户交流,以用户需求为核心确定优先级: - 用户反馈或者吐槽的时候,耐心一些,聊得更深入一些,同时做好记录 -...
**摘要:** 解释一下“请配置apikey”报错的原因。 部分Fundebug用户使用import来导入js文件时,出现了"请配置apikey"的报错,这是由于import提升导致的,下面我会详细解释一下这一点。 ### import提升 关于import提升,我们可以参考阮一峰的[《ECMAScript 6 入门》](http://es6.ruanyifeng.com/)。 import命令具有提升效果,会提升到整个模块的头部,首先执行。 ```javascript foo(); import { foo } from 'my_module'; ``` 上面的代码不会报错,因为import的执行早于foo的调用。这种行为的本质是,import命令是编译阶段执行的,在代码运行之前。 因此,**即使我们把import语句写在后面,它仍然会在其他语句之前执行**。 ### import提升为何导致Fundebug报错? [Fundebug](https://www.fundebug.com/)用户应该清楚,在接入[fundebug-javascript](https://www.npmjs.com/package/fundebug-javascript)插件之后,需要配置apikey,如下: ```javascript import * as fundebug from "fundebug-javascript";...
**摘要:** 一个事件指上报一次报错数据,同一个错误重复上报将重复计算事件数。 一些新用户对于[Fundebug](https://www.fundebug.com/)的计费标准有所疑惑,这里给大家解释一下。 ### Fundebug付费套餐 [Fundebug](https://www.fundebug.com/)提供了多个不同档位的付费套餐,其主要收费标准是按照**事件数**来确定的。当前[Fundebug](https://www.fundebug.com/)各个付费套餐每月的事件数及其价格如下表: | **事件数** | **价格** | | ---------- | -------- | | 0.3w | 0 | | 5w | 59 | | 15w | 159...
**摘要:** **0.3.1**修复Maven下载失败的问题。  ### 监控Java应用 ### 1. pom.xml 配置[fundebug-java](https://mvnrepository.com/artifact/com.fundebug/fundebug-java)依赖 ```xml com.fundebug fundebug-java 0.3.1 ``` ### 2. 在项目中引入 fundebug 并配置 apikey ```java import com.fundebug.Fundebug; Fundebug fundebug = new Fundebug("apikey"); ``` 注意:获取**apikey**需要[免费注册](https://www.fundebug.com/team/create)帐号并且[创建项目](https://www.fundebug.com/project/create)。...
**摘要:** 1.6.0新增fundebug.test()方法用于测试,请大家及时更新。  默认情况下,Fundebug 插件能够自动捕获未处理的错误(uncaught error)。另外,开发者也可以通过使用 Fundebug 提供的 API 发送其他错误信息: - [fundebug.test()](https://docs.fundebug.com/notifier/javascript/api/test.html) - [fundebug.notify()](https://docs.fundebug.com/notifier/javascript/api/notify.html) - [fundebug.notifyError()](https://docs.fundebug.com/notifier/javascript/api/notifyerror.html) ### fundebug.test(name, message) 使用 test() 方法,可以将测试数据发送到 Fundebug **name**: 测试名称,参数类型为字符串,默认值为"Test" **message**: 测试信息,参数类型为字符串, 默认值为"Hello, Fundebug!" 示例:...
上周写了个简短的新闻[《MongoDB裸奔,2亿国人求职简历泄漏!》](https://blog.fundebug.com/2019/01/12/200-million-resume-exposed-because-mongodb-is-not-protected/): > 根据安全站点HackenProof的[报告](https://blog.hackenproof.com/industry-news/202-million-private-resumes-exposed/),由于MongoDB数据库没有采取任何安全保护措施,导致共计202,730,434份国人求职简历泄漏。 然后很多人[评论](https://www.oschina.net/news/103558/202-million-private-resumes-exposed)说MongoDB躺枪了。 MongoDB确实躺枪了,因为**这事的责任当然不在数据库,而在于使用数据库的人没有做必要的安全配置。** 那么我们应该如何保证MongoDB的安全性?下面我将介绍保护MongoDB的3个简单的方法: - 绑定局域网IP,杜绝互联网访问 - 配置防火墙,保护27017端口 - 配置账号密码,对数据库进行访问控制 本教程所使用的系统配置如下: - Ubuntu 16.04 - mongodb 4.0.5 **Ubuntu 16.04安装MongoDB** 参考MongoDB文档:[Install MongoDB Community Edition on Ubuntu](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/) ```bash sudo apt-key...