Yodonicc无论你对async/await的立场如何,我都想向你说明,根据我的经验,为什么async/await往往会使代码复杂度更高,而不是更低。...这在客观上是正确的,但在大多数情况下,我不认为async/await真的能解决这个问题。谎言和async/await我用来确定是否要使用某个模式的指标之一是它所带来的代码综合质量。...此外,如果我们要在async/await的例子中利用并行化的优势,无论如何我们必须使用promise。...无论哪种方式,我们都必须在try块中封装任何可能抛出错误的逻辑。async/await由于async/await让我们 "像看待同步一样看待async代码",我们也使用try/catch块。...但后来我真的看到了一些promise的代码,它们看起来惊人地像回调地狱。我很困惑,为什么有人会这样使用promise。最终,我得出结论,有些人对promise的工作原理有一个非常基本的误解。
最近因为重新翻修了下博客,找到了一个非常适合我想法的 hexo-stellar 主题,博客的图片可以使用 Github + jsdelivr + PicGo 来打造图床,而 Typora 对 PicGo...随着深入地使用了,发现真的是很不错的一款 Markdown 编辑工具。下面说说目前发现的一些吸引我的特点。...图片功能 这是我最喜欢的一个功能,也是我决定使用 Typora 的主要原因。...Typora 的编辑区域是由 CSS 样式来控制的,我使用的是 GitHub 主题,样式文件路径为:/Users/fengwei/Library/Application Support/abnerworks.Typora...现在最新的 Typora 需要收费,89 元可以支持三个设备,这个价格我觉得很亲民了,而且还是买断式的。如果不想使用收费版,仍然可以使用之前的测试版。 Typora 会成为接下来我的主力写作工具。
或者换一个问题,为什么在项目中,我们要选择使用typescript?也许你还不知道其中缘由,一起跟着我的思路捋一捋。...带来的后果就是,在开发过程中的所有语法错误,我们都没办法通过某种方式去完全预知到,而必须在浏览器里执行一次看到报错之后才知道自己某个地方写错了。 当项目稍微复杂一点,无法预知语法错误可以说是一场灾难。...可以做一个简单的类比,我们在实践开发中,通常使用ES6开发,并且编译成ES5的代码给浏览器执行。所以ES6和ts扮演的角色比较类似。...那么在使用时,不符合这个规则的用法都会报错。...因此越来越多的团队在项目中深度使用 ts。甚至在 angular 团队中,整个angular都是直接使用ts开发。而vue的下一个大版本,也会直接使用 ts 开发。
之前有说到,在 React 中渲染列表的时候,要给每一个数据加一个 key 值,赋予一个确定的标示,而且也详细描述了如何给一个标示,方法知道了,那么为什么要这么做呢?...key 为了解决上述问题, React 支持 key 属性,当子元素拥有 key 时,React 使用 key 来匹配原有树上的子元素以及最新树上的子元素。...最后,你也可以使用元素在数组中的下标作为 key。这个策略在元素不进行重新排序时比较合适,如果有顺序修改,diff 就会变得慢。 当基于下标的组件进行重新排序时,组件 state 可能会遇到一些问题。
本文从技术原理、安全风险及实践案例出发,系统阐述内网穿透必须加密的必要性。一、内网穿透的技术本质与风险暴露1.1 内网穿透的核心功能内网穿透通过建立公网与内网之间的隧道,实现外部设备对内部资源的访问。...三、行业案例与数据支撑3.1 负面案例:未加密导致的灾难案例:某高校服务器因学生违规使用未加密内网穿透工具,被植入恶意软件,导致全校网络瘫痪。...四、结论:加密是内网穿透的“安全底座”内网穿透的便捷性必须以安全性为前提。
第一次看到它时,我的内心戏是:“憋说话,吻我”! 即使是免费的 Babel(JavaScript编译器),也无法阻挡我对函数声明的喜爱。...我对箭头函数绝对是真爱,但要声明一个顶级函数时,我仍用“土气”的函数声明。 为什么呢?“Uncle Bob” Martin 是这么说的: 花1小时写代码,就要花10小时检查代码。...都退后,我要开始装逼了 Fair warning:接下来我要放大招了——下文“行话”连篇,但你只要明白在声明之前不能使用常数就好。...如果在浏览器里直接使用ES2015(而不是借助Babel等使用ES5),以下的代码也会抛出错误: if(thing) { console.log(thing); } const thing = '...使用箭头函数时,还会使用地图、过滤器等,它们都是我的好朋友。 举个例子: const goodSingers = singers.filter((singer) => singer.name !
来总结一下我RxJava遇到的坑,或者说我为什么不在推荐使用RxJava。相信熟悉或者关注我的朋友,绝大多数都是因为RxJava。所以看到这个标题你已经会惊讶。...为什么突然不再支持RxJava了呢? 先讲讲历史 在我的文章中已经讲过很多次RxJava诞生之初就是因为异步。...详细关于这段可以参考我的知乎回答:你会在实际工作中使用 rxjava 吗?...我之前的公司使用了一个简单的类redux框架。其中RxJava是核心部分,他承载了中间render层和view层的连接。...在团队没有RxJava Expert的情况下我更倾向于直接弃用RxJava,转为更容易使用的异步框架和响应式数据流。
[图片] 原文链接cnblogs.com/jackyfei/p/12122767.html 经常有同学疑问,为什么有时候一个SQL语句使用了索引,为什么还是会进入到慢查询之中呢?...另外插入一个题外话,个人认为团队要合理的使用ORM。...案例剖析 --------- 言归正传,为了实验,我创建了如下表: CREATE TABLE `T`( `id` int(11) NOT NULL, `a` int(11) DEFAUT NULL,...如图所示: [图片] 可以看到数据都放在主键索引上,如果从逻辑上说,所有的InnoDB表上的查询,都至少用了一个索引,所以现在我问你一个问题,如果你执行select from t where id>0,...也就是说,没有使用索引并不是一个准确的描述。
作为分布式实施的基础,跨进程通信的技术也是五花八门,为什么Core WebApi越来越火,被众多大牛们一直推荐?小编这就为你一一解答!...02 基于Http协议的服务 如WebService、WCF、WebApi,甚至还有ashx一般处理程序,使用最广泛。...更好的REST风格支持(WCF也可以但很麻烦),对移动端的友好支持等,甚至跟MVC同一个开发技术栈,这些理由很充分的让技术团队都倾向于使用WebApi。...,REST的通用性更强,像典型的前后端分离架构,当下各公众平台对外数据提供,都是选择的REST接口,包括在微服务架构实施上,Core WebApi使用还是更广泛一些。...DAY3 各种Filter扩展定制,像异常处理、鉴权授权、跨域、缓存压缩等常见功能,都是基于Filter的AOP实现的,必须得扎实下。
--- 如果我们不重写equals和hashcode,那么它使用的是Object方法的实现。...o.hashCode() : 0; } 为什么要重写equals 通过以上代码可以看出,Object提供的equals在进行比较的时候,并不是进行值比较,而是内存地址的比较。...由此可以知晓,要使用equals对对象进行比较,那么就必须进行重写equals。...重写equals不重写hashCode会存在什么问题 我们先看下面这段话 每个覆盖了equals方法的类中,必须覆盖hashCode。...--- 接下来我们打开hashCode的注释代码,看看执行结果 [dd871748-fc38-4696-af5f-92dd365f0219.png] 总结 如果重写了equals就必须重写hashCode
经常有同学问我,我的一个SQL语句使用了索引,为什么还是会进入到慢查询之中呢?今天我们就从这个问题开始来聊一聊索引和慢查询。...案例剖析 为了实验,我创建了如下表: CREATE TABLE `T`( `id` int(11) NOT NULL, `a` int(11) DEFAUT NULL, PRIMARY KEY(`id`...可以看到数据都放在主键索引上,如果从逻辑上说,所有的InnoDB表上的查询,都至少用了一个索引,所以现在我问你一个问题,如果你执行select from t where id>0,你觉得这个语句有用上索引吗...也就是说,没有使用索引并不是一个准确的描述。...(select * from t_people where age between 10 and 15) 假设该统计必须是OLTP,实时展示统计数据,又该怎么解决?
但在PC端我竟然没有找到有PC版的,我去!再后来竟然发现“触宝输入法”官网都莫名其妙的“变”没了,好像很久都没有再更新了!不得已还是趁早放弃的好!!! ?...最后冲着当年“QQ五笔”体验还不错,勉强使用了QQ拼音输入法,没有想到一直使用到至今。...下面我就结合自己的使用体验来分析一下我为什么喜欢使用QQ输入法: 一个输入法可以全平台共享词库,包括自定义词语这些,一个QQ号就可以包揽所有的同步,这算是腾讯的天然优势吧!?...因为有了QQ输入法,使我的五笔转拼音之路流畅了很多,移动端优良的表现,让我可以随时随地的写博客、恢复博客评论等等,我那手机端的Wordpress就是因为有了QQ输入法使用频率是骤然增高(主要就是因为手机端输入感觉真是太棒了...下面分享一下我使用的QQ输入法界面截图吧: ? ? ? ? ? ? 很多人可能会说QQ拼音输入法采用的也是“搜狗输入法”的内核没有啥稀奇的,但我认为内核是内核,前端是前端。
作者 | 张飞洪 来源 | cnblogs.com/jackyfei/p/12122767.html 经常有同学问我,我的一个SQL语句使用了索引,为什么还是会进入到慢查询之中呢?...案例剖析 言归正传,为了实验,我创建了如下表: CREATE TABLE `T`( `id` int(11) NOT NULL, `a` int(11) DEFAUT NULL, PRIMARY KEY...如图所示: 可以看到数据都放在主键索引上,如果从逻辑上说,所有的InnoDB表上的查询,都至少用了一个索引,所以现在我问你一个问题,如果你执行select from t where id>0,你觉得这个语句有用上索引吗...(select * from t_people where age between 10 and 15) 假设该统计必须是OLTP,实时展示统计数据,又该怎么解决?...Spring 5.3 正式GA,维护至2024年,4.3版本年末结束维护 扫一扫,关注我 一起学习,一起进步 每周赠书,福利不断 ﹀ ﹀ ﹀ 深度内容 推荐加入 最近热门内容回顾 #社会人系列
至此,我再也无法回过头来享受使用 REST 的工作了。 REST 有什么问题吗? 每个 REST API 都是独特的 公平地说,REST 甚至不是一个标准。...我们不能抱怨,因为毕竟没有广泛使用的标准。 事实上,下面提到的大多数注意事项都是由于缺乏标准造成的,但是我想强调一下在实践中经常看到的情况。...对于所有讨论过的问题,我倾向于认为,在 CRUD 应用程序中,有一种标准方式来生成和使用 API 会非常棒。通用的工具和模式、集成测试和文档基础设施将有助于解决技术和组织问题。...查询可以完全控制将要接收的实际信息,但是底层的 GraphQL 基础设施还必须确保所有必需的字段和参数都在那里。...总的来说,我发现,Apollo 比 Relay 等更简单和易于使用。
本文来源: cnblogs.com/jackyfei/p/12122767.html 经常有朋友问到:我的一个SQL语句使用了索引,为什么还是会进入到慢查询之中呢?...案例剖析 言归正传,为了实验,我创建了如下表: CREATE TABLE `T`( `id` int(11) NOT NULL, `a` int(11) DEFAUT NULL, PRIMARY KEY...可以看到数据都放在主键索引上,如果从逻辑上说,所有的InnoDB表上的查询,都至少用了一个索引,所以现在我问你一个问题,如果你执行select from t where id>0,你觉得这个语句有用上索引吗...(select * from t_people where age between 10 and 15) 假设该统计必须是OLTP,实时展示统计数据,又该怎么解决? ?...看到这里,证明有所收获必须点个在看支持呀,喵
---- 如果我们不重写equals和hashcode,那么它使用的是Object方法的实现。...o.hashCode() : 0; } 2为什么要重写equals 通过以上代码可以看出,Object提供的equals在进行比较的时候,并不是进行值比较,而是内存地址的比较。...由此可以知晓,要使用equals对对象进行比较,那么就必须进行重写equals。...3重写equals不重写hashCode会存在什么问题 我们先看下面这段话 每个覆盖了equals方法的类中,必须覆盖hashCode。...---- 接下来我们打开hashCode的注释代码,看看执行结果 4总结 如果重写了equals就必须重写hashCode,如果不重写将引起与散列集合(HashMap、HashSet、HashTable
我为什么读博,以及我为什么不读博? 研究生三年后,毕业生都做出了自己的选择,一部分人就业,一部分人选择继续深造,不同的路径,同样的都是在探索自己的生涯之路。...所以今天我打算将自己在两边摇摆的理由写下来,述说自己个体经验的过程中,也许也能让理性得到梳理这些繁杂资料的机会吧。 ? 我为什么不读博 1. 就业市场的现状和未来。...我几乎没有在论文的撰写中出现过任何思路的崩塌,我绝不认为那是因为我考虑的比辩论中更仔细,而往往是因为自己根本没有考虑过更深入的问题。为什么当辩论时我们总有说不完的话而在写论文的时候常常感到文思枯竭?...为什么我极少在写论文时感到一股喷薄的倾诉欲? 我想这大多是因为热情,我似乎无法从论文中攫取有如辩论一样的那么多热情,因而哪怕我思考的问题本身再有价值,我也无法比思考一个愚蠢的辩题时表现的更聪明一点。...但我们也必须意识到,那并非意味着我们就不需要权衡脚下分叉的道路,我们始终需要运用自己的理性去做曾经所蔑视的现实考量,也许唯一通向光明出口的路上有大风,会在你离开黑暗前吹灭那盏微弱的灯。
前言hello,大家好,我是你们的老朋友 Lorin,本周在开发中使用 @Builder (@Builder 是一个注解,通常与 Lombok 这种 Java 代码生成工具一起使用,可以帮助简化 Java...,为什么呢?..." + this.num + ", name=" + this.name + ", address$value=" + this.address$value + ")"; } }}我为什么建议你谨慎不使用...@Builder上面的问题只要知道原理就很好的解决了,那我为什么还建议不使用 @Builder 呢?...@Builder 的不足@Builder 生成的构造器不是完美的,它不能区分哪些参数是必须的,哪些是可选的。如果没有提供必须的参数,构造器可能会创建出不完整或者不合法的对象。
作者: Lateautumn4lin 来源:云爬虫技术研究笔记 ---- 之前使用Python的环境一直是Python3.7.3的,一直使用的很正常,没有什么毛病,直到最近做一个图片下载器的时候发现了问题...https的去验证SSL证书,不过我这里的问题是使用的是Aiohttp库,并没有Verify这个参数,所以我们并不能使用这个去忽略这个问题。...解决一下 Goole了一下,发现其实不止我一个人出现了这个问题,已经有老哥在Aiohttp的Issue里面提了相关的问题了,可以参考https://github.com/aio-libs/aiohttp...可惜我的环境之前是3.7.3 我们知道了问题的解决办法,我们再去看看为什么会有这个问题?...最后的小建议 最后建议大家能够使用3.7.4的时候尽量不使用3.7.3版本,虽然3.8也可以避免这个问题,但是3.8还是刚推出,BUG问题还是很多的,所以目前这个阶段大家还是尽量使用3.7.4。
而目前比较主流的 Web 服务器应用也就是 Nginx 和 Apache 了,今天就给大家阐述一下为什么我一直都推荐大家使用 Nginx 而不是 Apache? ?...有关 Nginx 和 Apache 的介绍我就不做赘述了,大家自行百度、谷歌一下就可以了解了,废话不多说了,直奔主题: 1、作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接...Nginx 采用 C 进行编写,不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好很多。 ?...Nginx 静态处理性能比 Apache 高 3 倍以上,Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端来使用,Apache 的组件比 Nginx 多。 ?...4、Nginx 的优势是处理静态请求,cpu 内存使用率低,Apache 适合处理动态请求,所以现在一般前端用 Nginx 作为反向代理抗住压力,Apache 作为后端处理动态请求。