2018年7月小知识

1、webstrom光标在一行(a),然后按住shift,再点击其他行(b),会选中a与b的所有行

2、antd的table的单元格点击回调

旧写法:

新写法:

注意:如果onClick里是单值表达式,不要漏掉 =>({}) 中的小括号!!!

3、concat(),拼接多个字符串为一个字符串,返回一个新数组,不会改变原有数组

当没有参数时,相当于生成了一份oldA的副本

4、 -webkit-line-clamp 限制在一个块元素显示的文本的行数。(适用于Chrome浏览器)

为了实现该效果,它需要组合其他外来的WebKit属性。常见结合属性:

display: -webkit-box

必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。

-webkit-box-orient

必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。

text-overflow

clip: 当对象内文本溢出时不显示省略标记(...),而是将溢出的部分裁切掉。

ellipsis: 当对象内文本溢出时显示省略标记(...)。

例:

5、CSScalc 用于动态计算长度值

calc() = calc(四则运算)

注意:运算符前后都需要保留一个空格,例如:width: calc(100% - 10px)中,运算符减号的前后必须保留一个空格

6、数组的filter方法,过滤掉不符合条件的元素

7、antd的table的rowKey问题

问题:当设置table的主键是data中的id属性后,在data中插入一个新数据,这时,dataSource循环不会遍历没有id属性的新数据,导致表格渲染的数据少了一项。在实际项目中,发生奇怪的一点是 当第一项数据()的id为1时(index为0),在它的后面插入新的数据 ,这时是不会渲染的。但是,当第一项id不为1时,在它后面插入新的数据 是会渲染的。

解决方法:当rowKey设置为dataSource的属性id时,为新插入的数据添加id属性(即rowKey指定的主键),如,这样,不管第一项数据的id是否为1,新插入的数据都会渲染。

8、prefork和worker模式的区别

Apache有一个模块叫MPM(多处理模块),专门用来处理多请求的情况。

而在Unix上默认的MPM是prefork(进程连接),当然,也有worker模式(线程连接)

prefork和worker模式的最大区别就是prefork的一个进程维持一个连接,而worker的一个线程维持一个连接

prefork的优缺点:更稳定但内存消耗也更大,

worker的优缺点:没prefork稳定,因为很多连接的线程共享一个进程,当一个线程崩溃的时候,整个进程和所有线程一起死掉。内存使用比prefork要低得多,所以很适合用在高HTTP请求的服务器上。

9、Nginx服务器的优点

Nginx非常适合高连接并发的需求。

(1)Nginx更加轻量级,占用更少的资源和内存。

(2)Nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能

10、Node.js优点

Node.js与Nginx一样,也是采用基于事件的异步非阻塞方式处理请求(js语言的特性),所以在处理高并发请求上有天然的优势。

11、webstrom打开刚关闭的文件— —ctrl+E

12、JS判断空对象的方法

不要像我这样天真地写 。。

13、

如果是以“专精”为目标去考察,语法细节本身都不是什么重要的事情。要考察的反而不是语法细节,或者语法糖,而是去找找语言的设计者,看看这门语言最开始的设计思想是什么,然后深刻理解某种语言的设计背景,运行环境,做了哪些优化——以及对应做了哪些妥协

14、Ruby这门语言在很多地方都使用“鸭子类型”(duck typing,有些地方也译作推断类型,是指某个类如果能够摇摇摆摆走路,也能呱呱叫,就可以认为是一只鸭子),而无需使用继承。那么在扩展一个已有的类型的时候,直接增加我们需要的方法就可以让它模仿一只鸭子。

而我在编写Objective-C代码时,更多的使用适配器模式和委托模式适配器模式定义一个协议(delegate),然后由某个类来实现这个协议。任何类如果声明自己实现了某个协议,就要在内部用自己的方法实现它

从微观一点的角度来看,Ruby的“鸭子类型”和Objective-C的“适配器模式”在细节上是不一样的,但从设计理念上来看,都是对同一种理念的实现:对接口编程,不对实现编程

15、我理想中的牛逼程序员并不是敲代码有多快,多难让人理解——当然这也是牛逼的一种体现——而是能快速理解其它程序员的代码,并且自己的代码非常清晰

16、设计模式泛指一切为了解决重复出现的问题而总结出的一种特定编程方法或者思维

17、用sql语句左连接(left join)的时候,发现有很多重复的数据,可以使用

group by xxx

来解决

18、在React中阻止input框自动填写表单的方法:

19、

Python是一种中规中矩的语言,写个代码,过上几年也能看得懂,这就是它最大的优势,至于社区大在其次,毕竟这东西是可以随时间而改变的 。

Ruby秉承了Perl随心所欲的精髓,确实有点“乱”,但它能够给人创造的激情,而不是像Python那样照着API手册“敲代码”。

这是两种截然不同的文化,喜欢自由的人会更爱Ruby。

20、一个技术能不能发展起来,关键看三点:

(1)有没有一个好的社区。

像 C、C++、Java、Python 和 JavaScript 的生态圈都是非常丰富和火爆的。尤其是有很多商业机构参与的社区那就更为人气爆棚了,比如 Linux 的社区。

(2)有没有一个工业化的标准。

像 C、C++、Java 都是有标准化组织的。尤其是 Java,其在架构上还搞出了像 J2EE 这样的企业级标准。

(3)有没有一个或多个杀手级的应用

C、C++ 和 Java 的杀手级应用不用多说了,就算是对于 PHP 这样还不能算是一个好的编程语言来说,因为是 Linux 时代的第一个杀手级解决方案 LAMP 中的关键技术,所以,也发展起来了。

21、passS层主要解决下面问题:

(1)软件生产线的问题。

持续集成和持续发布,以及 DevOps 中的技术必需通过 PaaS。

(2)分布式服务化的问题。

分布式服务化的服务高可用、服务编排、服务调度、服务发现、服务路由,以及分布式服务化的支撑技术完全是 PaaS 的菜。

(3)提高服务的可用性 SLA。

提高服务可用性 SLA 所需要的分布式、高可用的技术架构和运维工具,也是 PaaS 层提供的。

(4)软件能力的复用。

软件工程中的核心就是软件能力的复用,这一点也完美地体现在 PaaS 平台的技术上。

(完)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180802G0X9VF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券