一.前言 本文的上一篇 JavaScript 踩坑心得- 为了高速(上) 主要和大家分享的是 JavaScript 使用过程中的基本原则以及编写过程中的心得分享,本文主要和大家聊聊在各个使用场景下的 JavaScript 使用,以及在性能优化方面的优化经验等 二.各种场景下的 JavaScript 1.用于 UI 应用的 JavaScript 与大多数服务器端语言一样,用于客户端应用的 JavaScript 框架从来就不缺少.然而,和用在后端应用与服务中一样,笔者偏好使用较小的模块,将这些小模块…
一.前言 很多情况下,产品的设计与开发人员一直想打造一套高品质的解决方案,从而快速.平稳地适应产品迭代.速度是衡量产品适应性的真正且唯一的标准,而且,这并不是笔者的一家之言. 「速度是衡量适应能力的真正指标.」 --艾瑞克·埃利奥特 许多公司选择 JavaScript,就是看中了它灵活.快速的优点.尽管此言非虚,但如果你在构建 JavaScript 系统时考虑得不够周全,灵活与高速的特性反而可能将你带入歧途. 一些值得特别关注的问题包括: 代码重复 样式或风格不一致 无法随意扩展 工具与模块选择…
[技术博客] 敏捷软工--JavaScript踩坑记 一.一个令人影响深刻的坑 1.脚本语言的面向对象 面向对象特性是现代编程语言的基本特性,JavaScript中当然集成了面向对象特性.但是JavaScript作为脚本语言并没有严格地遵守面向对象的规则,而是兼容了多种语言特性. 面向对象编程 命令式编程 函数式编程 可想而知,在兼容这些特性之后JavaScript会有很多奇特的行为,而对面向对象的固有认识会使我们在编写JavaScript时犯下无数错误. 2. 忘记过去,从新学习 C++和Ja…
先说两句 抱歉,由于工作原因和个人原因,中间停更了这么久.接下来,本人会继续往下更,内容包括但不仅限于LoRa.文章还是会按照个人的习惯,坚持原创,一是作为自己的笔记,二是和广大工程师分享交流. LoRaWAN的定义是一种用于Low power,long range应用场景的无线通讯协议,所以关键的部分就有两个:1.低功耗 2.远距离 其中远距离目前是有LoRa这种无线通讯方式来完成,因为其再参数上具有-148db的超低灵敏度,使其具有在同发射功率下的更远的通讯距离 然后就是低功耗.下面我来讲讲…
先说两句 在调试和移植的过程中 我们经常想用节点去抓上行包 或者去抓下行包 但在抓取的过程中发现,上行包抓取不到到,或是下行包抓取不到,或者是两个都抓取不到,觉得非常的诡异.明明接收频点.BW和SF都设置正确,百思不得其解 下面我就来解析一下这个问题 影响接收和发射的参数 常见通信参数 1.频点,这个应该都明白,如果收发的频点不一样,肯定是收不到包的 2.SF(扩频因子),这个相当于速率,两端设置不同肯定也会收不到 3.BW(带宽),假如用125Khz发射,用250Khz去接收,这也是收不到的,…
1 //这样做会抛出错误 alert(ttt); //这样做不会,只是会弹出undefine而已 alert(window.ttt); 当然可以try catch如此捕获异常 try { //这样做会抛出错误 alert(ttt); } catch (info) { alert(info); } //这样做不会,只是会弹出undefine而已 alert(window.ttt); 可以这样删除一个字段 window.num = 314; alert(window.num); delete win…
本文微信公众号「AndroidTraveler」首发. 背景 其实 Android 上传开源项目到 jcenter 并不是一件新鲜事,网上也有很多文章. 包括我本人在将开源项目上传到 jcenter 的时候也是参考了一些文章. 不过由于版本和环境问题,很多很早以前写的文章并不完全适用. 基于此,这边总结一下近期(2019-07-02)我上传开源项目到 jcenter 的实战踩坑之路. 上传的开源项目是 Android 6.0 动态权限申请的项目. 基于软件的单一职责原则,我这里就不展开讲了. 本…
你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面的那条线路称为线路1,下面的称为线路2. 思路1 先判断线路1的第一个节点的下级节点是否是线路2的第一个节点,如果不是,再判断是不是线路2的第二个,如果也不是,判断是不是第三个节点,一直到最后一个.如果第一轮没找到,再按以上思路处理线路一的第二个节点,第三个,第四个... 找到为止.时间复杂度n2,…
引语 在1995年5月,Eich 大神在10天内就写出了第一个脚本语言的版本,JavaScript 的第一个代号是 Mocha,Marc Andreesen 起的这个名字.由于商标问题以及很多产品已经使用了 Live 的前缀,网景市场部将它改名为 LiveScript.在1995年11月底,Navigator 2.0B3 发行,其中包含了该语言的原型,这个版本相比之前没有什么大的变化.在1995年12月初,Java 语言发展壮大,Sun 把 Java 的商标授权给了网景.这个语言被再次改名,变成…
前言 前段时间写过一篇: # RabbitMQ:消息丢失 | 消息重复 | 消息积压的原因+解决方案+网上学不到的使用心得 很多人加了我好友,说很喜欢这篇文章,也问了我一些问题. 因为最近工作比较忙,隔了一段时间没写,忙完后专门花时间把RabbitMQ剩下的一个重要技术点通过案例的方式整理出来,就是延迟消息的用法. 延迟消息含义不解释了,就是字面意思. 用法一共两种方式,死信队列和延迟插件,两种各有利弊,我会一一陈述并给出最佳用法. 死信队列方式 死信队列不要理解成很玄乎的东西,它就是普通队列绑…