兰林

Results 113 issues of 兰林

有的时候,有的系统 (OSX),有点装13。 比如,它就开始瞧不起 OpenSSL 了... 你一通折腾升级成功了,变成了 [email protected] 了。 然后 `pecl install mongodb` 扩展,然后报错了... ```shell configure: error: Cannot find OpenSSL's xxxx ``` ### 步骤: ```shell pecl download mongodb tar zxvf mongodb*.tgz...

常用
MongoDB

### 背景 某些时候时候,我们可能需要对多个 `$or` 条件下的结果,求得其交集。 比如,要求同时满足如下两个组合条件: 1. 要求价格(price)要么为 0.99,要么为 1.99 2. 要求要么处于在售(sale)状态,要么其库存量(qty)小于20 ### 示例代码 **1. 错误示范(invalid demo)** ```javascript db.inventory.find({ { $or : [ { price : 0.99 }, { price...

常用
MongoDB

### 背景 话说,企图用 MongoDB 全文检索来替代搜索引擎的可以放弃了。 什么分词、评分就不说了,连模糊匹配都做不到。 ### 建议 实在需要的,可以配合上**正则**检索一起使用。 ```javascript // demo for find db.articles.find( { $or: [ { $text: { $search: "cake" } }, { my_field_a: /cake/ }, //...

疑惑
吐槽
MongoDB

### 背景 通常我们都会用 ES6的方式来导入和导出模块,而其中有个叫 `import()` 的方法,是在运行时动态加载模块用的。 vue 中建议在路由配置中用此方法来进行代码拆分,达到根据路由变化,动态加载依赖组件的目的。这种方式被官方成为 [vue路由懒加载](https://router.vuejs.org/zh/guide/advanced/lazy-loading.html) 以上看起来并没有什么问题。 但是,如果你的项目足够复杂,路由层级肯定也很复杂。 相应的,需要动态加载的组件会非常之多。 这个时候你会惊奇的发现,天,怎么暴增了那么多资源请求。 全是各种以 chunk 命名的 js,这个数量可能会多达上千个。 ![image](https://user-images.githubusercontent.com/3468024/55125157-c9b12800-5143-11e9-8c6a-43b758b9a94f.png) ### 原因分析 通过分析,发现这些请求均来自打包之后的入口文件 index.html 在其 head 标签中,包含了大量的如下形式的 link 标签。 ```html ... ```...

生僻
JavaScript
H5C3
Vue

### 背景 cypress.io 是个极好的东西。尤其是用 cypress.io 来进行端到端测试。 不过,凡事也都有其局限性。cypress.io 目前只支持单实例运行同一个测试文件。 而且,官方固执的认为,你不需要一次性开启多个浏览器实例来测试交互。 在众多开发者提出的疑问里面,巴拉巴拉一大堆,最后都是不了了之。 ![image](https://user-images.githubusercontent.com/3468024/54670965-d32d0580-4b2f-11e9-8208-bd4f41271e78.png) 以上官方不支持多浏览器实例的理由 而且,它的请求和响应是被封装为自动完成的。也就是说,你企图在实例内发出的请求, 其返回的头信息中包含的 cookie 都是自动被设置到实例中的。 因为它这样的封装,导致我们无法同时登录两个账户并完成交互操作。 ### 办法 1. 用 cy.task() 方法在后台开启一个单独的 node 任务,直接发请求给后端。 以达到通过后台登录和操作其他账户的目的。比如将 axios 封装到一个 task 的监听事件。...

JavaScript
H5C3
Vue

### 场景 升级到 PHP 7.3.0 之后,运行 `preg_* ` 系列的内置函数,会出现类似下面的报错。 ```php Warning: preg_match(): JIT compilation failed: no more memory in xxx Warning: preg_match(): JIT compilation failed: no more memory in xxx...

吐槽
PHP

### 情形 在使用 chrome 的过程中,经常会出现无法打开 chrome 开发者工具的情况。 在 Cypress.io 打开的 Chrome 实例里面尤其如此。 ### 解决方式 ```shell # Inspector is indeed hidden. # move its position to a visible area. Ctrl +...

常用
系统

### 火钳劝学,稍微劝自己一下 1. [Rust](https://github.com/rust-lang/rust) 系统级编程语言 2. [Go](https://github.com/golang/go) 服务器端编程语言 3. [Julia](https://github.com/JuliaLang/julia) 数据科学型编程语言 4. [Dart](https://github.com/dart-lang/sdk) 客户端编程语言 ### 分割线 个人看好这几个,留个脚印。 时不时劝自己一下。。。 ![image](https://user-images.githubusercontent.com/3468024/53623225-66f96900-3c37-11e9-943f-2332cb9c885e.png) 万般皆下品,唯有血压高 苦逼的程序猿

记事
疑惑
吐槽

```php // 方法1 $dirsA = glob('/foo/path/*', GLOB_ONLYDIR); // 方法2 $dirsB = array_filter(glob('/foo/path/*'), 'is_dir'); print_r( $dirsA); print_r( $dirsB); ```

常用
PHP

### 背景 本文没有高深的架构知识,那些都在别人的文章里。 我就是为了记录一个链接,因为他告诉了我想要的答案。 ### 我开始扯淡 焦头烂额的需求架构, 虚无缥缈的未来扩展, 千篇一律的技术文章, 眼花缭乱的各派套路, 欲仙欲死的反复改动, 寻死觅活的开发团队。。。 基本来说,在面对项目架构问题的时候,对于鄙人这种瘪三程序猿来说,大致就是这些情况了。 翻阅了大量的文章,发现其中大量复制粘贴,大量鼓励吹嘘,大量未经证实的最佳实践。 其实,我真正关心的是,用或者不用微服务架构,其先决条件有哪些。 成功是成功在哪里,失败是失败在什么地方。有了参考才知道合不合适。 ### 盗别人的图来扯淡 别人眼中的 单体应用 vs 微服务 将一坨大翔,拆分成了无数个小翔。。。 ![image](https://user-images.githubusercontent.com/3468024/53230267-43777100-36c1-11e9-9cb4-cf494fa8ea1a.png) ![image](https://user-images.githubusercontent.com/3468024/53230338-6f92f200-36c1-11e9-8b02-40ef926e8ea9.png) ![image](https://user-images.githubusercontent.com/3468024/53230377-82a5c200-36c1-11e9-9525-3c71893df048.png) 微服务为你带来的灵活性和可维护性?? ![image](https://user-images.githubusercontent.com/3468024/53230439-a537db00-36c1-11e9-8fe6-2f70b14edd63.png) ### 别人家的...

记事
架构