67个拯救前端开发者的工具、库和资源摘要:在本文中,我不会去谈React、Angular、Vue等等这些大的前端框架,也不会谈Atom、VScode、Sublime等等这些已经很出名的代码编辑器,我只是想简单的分享一套我认为有助于提升开发者工作流的工具集。这套工具集中的大部分你可能见过,也可能没见过,如果有哪个/些让你眼前一亮,那么我的分享就很值了。本文由myvin在众成翻译平台翻译。在本文中,我不会去谈React...
继续阅读 >
分类目录归档:全部列表
2017
12-11
12-11
函数式编程中的 “函数们”
函数式编程中函数有三种不同的解读方式,分别为纯函数、高阶函数和一等函数。本文分别对这三者的概念、应用和联系进行详解。纯函数定义:1.相同的输入必定产生相同的输出2.在计算的过程中,不会产生副作用满足上述两个条件,我们就说该函数是纯函数。纯函数也即数学意义上的函数,表达的是数据之间的转换(映射)关系,而非计算步骤的详述。数学函数的定义:函数通常由定义域X、值域Y,以及...
继续阅读 >
2017
12-11
12-11
你所不知道的Java之HashCode
之所以写HashCode,是因为平时我们总听到它。但你真的了解hashcode吗?它会在哪里使用?它应该怎样写?相信阅读完本文,能让你看到不一样的hashcode。使用hashcode的目的在于:使用一个对象查找另一个对象。对于使用散列的数据结构,如 HashSet、HashMap、LinkedHashSet、LinkedHashMap ,如果没有很好的覆写键的hashcode()和equals()方法,那么将无法正确的处理键。 请对以下代码中 Person&nb...
继续阅读 >
2017
12-08
12-08
Android的延迟实现的几种解决方案以及原理分析
写这篇文章的目的,是看到群里有人在实现延迟的时候,用如下的第四种方法,个人感觉有点不妥,为了防止更多的人有这种想法,所以自己抽空深入分析,就分析的结果,写下此文,希望对部分人有启示作用。1.实现延迟的几种方法?答:1.java.util.Timer类的:publicvoidschedule(TimerTasktask,longdelay){if(delay<0)thrownewIllegalArgumentException("Negativedelay.");...
继续阅读 >
2017
12-08
12-08
ES6和Babel你不知道的事儿
因babel的版本从5升级到6有很多改动,比如babel本身不再提供任何transform的工作,都需要借助插件来完成,本文的所有讨论都是建立在babel6之上的。如果只想看结论,直接跳到文章最后。---写在前面ES6即ECMAScript6,是前端开发的JS最新规范,现在大家的开发都在使用ES6,对此并不陌生了。只是浏览器对ES6的支持并不完整,想要更好让ES6在各个平台完美运行还需一番折腾,特此一叙。下图是ES6的浏览器兼容性一览表(已ES6...
继续阅读 >
2017
12-08
12-08
WebSocket探秘
首先长连接:一个连接上可以连续发送多个数据包,在连接期间,如果没有数据包发送,需要双方发链路检查包。TCP/IP:TCP/IP属于传输层,主要解决数据在网络中的传输问题,只管传输数据。但是那样对传输的数据没有一个规范的封装、解析等处理,使得传输的数据就很难识别,所以才有了应用层协议对数据的封装、解析等,如HTTP协议。HTTP:HTTP是应用层协议,封装解析传输的数据。从HTTP1.1开始其实就默认开启了...
继续阅读 >
2017
12-08
12-08
程序员编程10大原则
1.想清楚,再动手写代码刚入行的新手,为了展示自己的能力,拿到需求迫不及待地就开始上手写代码,大忌!2.不交流,就会头破血流不爱说话和沟通,需求都理解错误了,最后做出来才发现,只能加班返工!3.一定要写注释时间久了,你会连自己的代码都看不懂!4.文档没人看,但还是要写文档的作用大部分时候不是用来沟通的,是用来做记录的,大部分需求还是通过口头沟通,但是不写文档做记...
继续阅读 >
2017
12-06
12-06
如何阅读计算机科学类的书
作为一个研发工程师,无论你是否喜爱阅读,相信你都一定读过不少关于计算机技术的书籍。这其中不乏《21天学会JAVA》这样的语言入门书籍,也有《算法导论》这样的专题书籍,也有《人月神话》这样关于软件管理学的实用性的书籍。也许你已经读过他们中的大部分,也许你现在还在不断地购入新的书籍来补充你的知识库。但请稍等一下,你是否思考过这样的问题,面对大量的计算机科学书籍,你是否都真正读懂了它们呢?有多少本书,当...
继续阅读 >
2017
12-06
12-06
为什么你参加了那么多培训,却依然表现平平?
有个刚毕业的小伙伴想提升英文能力,问我有没有相关的培训,于是有了下面这段对话:“你觉得提升英语最重要的是什么?”“多练习。”“你的客户、用户大都是老外,你团队里面所有人都能讲英文,你有很多机会练呢。”“我现在英文不够好,还不能和他们沟通。”“那如何才能让你的英文够好呢?”“多练习。”不难看出,这个对话是死循环...
继续阅读 >
2017
12-06
12-06
Redis 数据类型及应用场景
一、redis特点所有数据存储在内存中,高速读写提供丰富多样的数据类型:string、hash、set、sortedset、bitmap、hyperloglog提供了AOF和RDB两种数据的持久化保存方式,保证了Redis重启后数据不丢失Redis的所有操作都是原子性的,还支持对几个操作合并后的原子性操作,支持事务通常我们都把数据存到关系型数据库中,但为了提升应用的性能,我们应该把访频率高且不会经常变动的数据缓存到内存中。...
继续阅读 >
2017
12-06
12-06
四种常见的 POST 提交数据方式
HTTP/1.1协议规定的HTTP请求方法有OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT这几种。其中POST一般用来向服务端提交数据,本文主要讨论POST提交数据的几种方式。我们知道,HTTP协议是以ASCII码传输,建立在TCP/IP协议之上的应用层规范。规范把HTTP请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:BASH<method><request-URL><version><headers><entity-body>协议规定...
继续阅读 >
2017
12-06
12-06
项目中常用的19条MySQL优化
声明一下:下面的优化方案都是基于“Mysql-索引-BTree类型”的一、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len列,索引长度rows列,扫描行数。该值是个预估值ex...
继续阅读 >
2017
12-06
12-06
这么多前端优化点你都记得住吗?
围绕前端的性能多如牛毛,涉及到方方面面,以下我们将围绕PC浏览器和移动端浏览器的优化策略进行罗列。注意,是罗列不是展开,遇到不会不懂的点还请站外扩展。开车速度有点快,坐稳了。tips:这么多前端优化点你都记得住吗?反正我是收藏起来备查的。PC浏览器前端优化策略PC端优化的策略很多,如YSlow(YSlow是Yahoo发布的一款Firefox插件,现Chrome也可安装,可以对网站的页面性能进行分析,提...
继续阅读 >
2017
12-04
12-04
(译)TensorFlow 广度和深度学习的教程
TensorFlow在训练深度神经网络方面效果也很好,那么你可能会考虑该如何取舍它的功能了–可是,为什么不选择两者兼得呢?那么,是否可以将两者的优势结合在一个模型中呢?在这篇文章中,我们将会介绍如何使用TF.LearnAPI同时训练一个广度线性模型和一个深度前馈神经网络。这种方法结合了记忆和泛化的优势。它在一般的大规模回归和具有稀疏输入特性的分类问题(例如,分类特征存在一个很大的可能值域)上很有效。如果你...
继续阅读 >
2017
12-04
12-04
开发更好用的 JavaScript 模块
不少人都曾经在 npm 上发布过自己开发的JavaScript模块,而在使用一些模块的过程中,我经常产生“这个模块很有用,但如果能xxx就更好了”的想法。所以,本文将站在模块使用者的角度总结一下,如何能让模块变得更好用。提供ES6模块的入口webpack和rollup都支持对ES6模块做一些静态优化(例如 TreeShaking 和ScopeHoisting),它们都会优先读取package.json中的 module ...
继续阅读 >
2017
11-30
11-30
iOS面试题:阿里-P6一面-参考思路
阿里-p6-一面 1.介绍下内存的几大区域?2.你是如何组件化解耦的?3.runtime如何通过selector找到对应的IMP地址4.runloop内部实现逻辑?5.你理解的多线程?6.GCD执行原理?7.怎么防止别人反编译你的app?8.YYAsyncLayer如何异步绘制?9.优化你是从哪几方面着手?1.介绍下内存的几大区域?1.栈区(stack)由编译器自动分配并释放,存放函数...
继续阅读 >
2017
11-30
11-30
Lens: 从入门到再次入门
类型补全计画从上一篇我们可以看出,Lens就是整合在一起的 Getter 和 Setter ,借助 set , over , view 这三个函数,我们可以分别使用Lens的 Getter 和 Setter 。但是我们目前的Lens类型定义并不是完整的,因此我们首先对Lens的类型进行补全。typeLenssa=Functorf=>(a->fa)->(s->fs)首先让我们看这样一个例子:...
继续阅读 >
2017
11-30
11-30
Vue 升级小记
Vue升级小记最近接手了一个Vue1.0的陈年老项目,需要将其升级到Vue2.0。下面记录一下升级过程:安装迁移工具首先需要安装 vue-migration-helper CLI工具:控制台运行命令: npminstall--globalvue-migration-helper CLI工具来帮助项目从Vue1.x迁移到2.x。它扫描文件以查找特定于Vue的代码,并对需要升级的代码提供详细的警告。 vue-migration-helper ...
继续阅读 >
2017
11-29
11-29
Android换肤原理和Android-Skin-Loader框架解析
Android换肤技术已经是很久之前就已经被成熟使用的技术了,然而我最近才在学习和接触热修复的时候才看到。在看了一些换肤的方法之后,并且对市面上比较认可的Android-Skin-Loader换肤框架的源码进行了分析总结。再次记录一下祭奠自己逝去的时间。换肤介绍换肤本质上是对资源的一中替换包括、字体、颜色、背景、图片、大小等等。当然这些我们都有成熟的api可以通过控制代码逻辑做到。比如View的修改背景颜色setBackgrou...
继续阅读 >
2017
11-29
11-29
10个有趣的Javascript和CSS库-2017年11月
TailwindCSSTailwind是用于构建自定义用户界面的实用CSS框架。每个Tailwind小应用都有多种尺寸,这使得创建响应式界面变得非常简单。您可以自定义颜色,边框尺寸,字体,阴影等等,没有任何限制。PrettyCheckbox这是一个纯CSS库,用于创建漂亮的复选框和单选按钮。它提供了不同的形状(正方形,曲线,圆形),选择方式(默认,填充,thick),颜色(主要,成功,信息),颜色类型(实心,轮廓)和动画。...
继续阅读 >
2017
11-29
11-29
5个Vuex插件,给你的下个VueJS项目
原文:5VuexPluginsForYourNextVueJSProject作者:AnthonyGore使用Vuex来管理Vue的状态,有很多好的理由。其中之一就是,通过Vuex插件可以非常容易的扩展一些很酷的功能。Vuex社区中的开发人员已经创建了大量的免费插件供你使用,有许多你能想象的功能,还有一些你可能没有想到的功能。在本文中,将向你展示5个特性,你可以通过Vuex插件轻松地添加到下一个项目中。状态持久化...
继续阅读 >
2017
11-29
11-29
面试精选之链表问题集锦
链表问题是面试过程中经常被问到的一部分,很考查编程功底。最近刷了LeetCode上链表部分的面试题,我总结了一些有代表性的链表问题。本文使用的是Java语言,下面是所用到的链表节点的定义:publicclassListNode{intval;ListNodenext;ListNode(intx){val=x;}}1.在O(1)时间删除链表节点Leetcode237.DeleteNodeinaLinkedList题目描述:给定单链表中需要删除的...
继续阅读 >
2017
11-25
11-25
MySQL · 最佳实践 · SQL Server三种常见备份 已认证的机构
摘要本期月报是SQLServer数据库备份技术系列文章的开篇,介绍三种常见的SQLServer备份方法的工作方式、使用T-SQL语句和使用SSMSIDE创建备份集三个层面,介绍SQLServer的三种常见备份的工作原理和使用方法。三种常见的备份包括:数据库完全备份(FullBackup)数据库日志备份(TransactionLogBackup)数据库差异备份(DifferentialBackup)备份的重要性在开始分享之前,我们首先来看看数据...
继续阅读 >
2017
11-25
11-25
Twitter 架构如何支持上亿用户
谈到设计Twitter,我们首先要问一个本质问题:设计Twitter的基本方法论是什么?其实是我们计算机设计最基本的方法:分治法(DivideandConquer)。什么是分治法呢?就是把问题不断的拆解,拆解到你可以解决为止,它的艺术在于,从哪个维度来拆解非常考验我们能力。如果要求一周开发出Twitter,你会怎么做?你的架构是什么样的呢?相信你一定不会给出复杂的架构。前端是各种各样的业务逻辑,后端...
继续阅读 >