自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 前端与HTTP那些事儿

各版本的http发展在HTTP建立之初,主要是为了传输超文本标记语言(HTML)文档。随着时代的发展,也进行了若干次演进。下图是各个版本发布的时间轴。目前为止,使用最为广泛的是http1.1,http1.0应该比较少了,最新的是http2。这篇博文也主要,围绕着1.0、1.1、2.0三个版本进行介绍。http/1.0http1.0不会复用tcp链接,每次请求都会打开、断开一条链接。...

2019-04-30 21:53:03 2584

原创 20个为前端开发者准备的文档和指南

是时间选择你想重温的工具或者技术了。如果你感到你已经很努力了,但是结果却并非你所愿,我将会帮助你。1. DevTools Challenger它是一个交互式的站点,演示了如何在Firefox开发者版本里使用其拥有的新的相关动画功能。2. The HTML & CSS(HTML和CSS技巧手册)一个很好的HTML/CSS的样式指南,可以帮助开发者编写“耐用,持久...

2019-04-30 21:53:01 510 1

原创 对码农而言什么样的代码才能叫做好代码?

好的代码,就像是好的笑话——无需解释就能让别人明白。如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。好的代码,就像是一辆配备了优秀音响和杯架的汽车,这辆车在行驶到最高速度的时候,你听不到噪音,也不用担心水会洒出来。在它出现故障的时候,任何一名修理工都可以使用最常见的工具,在最短的时间里轻松将其修好。而坏的代码,就像是一辆向你承诺最高速度可以达到200MPH,但是音响只能...

2019-04-30 21:52:56 284

原创 书写高质量代码之状态维护

维护程序状态的一些小心得。状态之始我们第一眼接触新事物所触发的思考方式,决定了以后我们看待这样事物的角度,进而影响更深层次的理解和行为。编程相对于人类历史的进程而言,不过是个六七岁孩童偶然捡到的新玩具,因为新鲜好玩到现在都还爱不释手。这个玩具于我们的大脑会产生怎么样的化学反应是个未知数,每个个体都不同。你第一眼见到色彩或形状直接关系到你的兴趣点或是以后会怎样去把玩这个玩具。小朋友拿到新玩...

2019-04-30 16:55:07 3129 1

原创 能用HTML/CSS解决的问题就不要使用JS

为什么说能使用html/css解决的问题就不要使用JS呢?两个字,因为简单。简单就意味着更快的开发速度,更小的维护成本,同时往往具有更好的体验,下面介绍几个实例。1. 导航高亮导航高亮是一种很常见的问题,包括当前页面的导航在菜单里面高亮和hover时高亮。你可以用js控制,但是用一点CSS技巧就可以达到这个目的,不需要使用JS。在正常态时,每个导航的默认样式为:nav li{ ...

2019-04-29 21:56:17 3338 4

原创 三个常见的代码性能优化方式

编写有效率的代码是我们的一项基本技能。我们千万不要忽视代码的性能要求。越早考虑性能问题,需要支付的成本就越小,带来的价值就越大,不要等到出现性能问题时,才去临时抱佛脚。如果前期没有看重代码的性能问题,那么后期我们就要付出加倍的精力去维护和重构代码。代码的性能并不是可以多块地进行加减乘除,而是如何管理内存、磁盘、网络、内核等计算机资源,已达到性能最优化。在这篇文章里,我选了三个常见且实用的代码性...

2019-04-29 21:52:03 342

原创 11个教程中不常被提及的JavaScript小技巧

这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略。1、过滤唯一值Set类型是在ES6中新增的,它类似于数组,但是成员的值都是唯一的,没有重复的值。结合扩展运算符(…)我们可以创建一个新的数组,达到过滤原数组重复值的功能。const array = [1, 2, 3, 3, 5, 5, 1];const un...

2019-04-29 15:37:12 3627 1

原创 一名十年程序员犯过的错

不管您是新人还是老手,您都会发现我的话是有用的。我期待听到您的观点,所以请不吝赐教给我回信。坚持使用一种平台,框架或者语言在过去10年间我所犯的最大的错误是:每次换工作时我都会换一个软件平台。开始我使用Enterprise Java Development,然后是嵌入C软件,然后,对于Windows桌面应用我使用VB, C#和C++,然后对于iOS应用我使用Objective-C,然后使用...

2019-04-28 21:59:18 216

原创 牛逼的前端工程师是如何练出来的

如何定义牛逼工程师有软件工程方面的研究说,对于开发者个体而言,最优秀的开发者的生产效率约为平均值的2倍,而优秀的开发者会吸引其它优秀的人,或者激励与帮助团队中的其它成员,最终使团队之间的生产效率差异达到10倍之多。所谓牛逼的工程师,就是那些个体效率是其它人2倍,形成团队之后达到10倍差异的一群人。前端领域这几年发展速度非常快,人才分布呈两级分化趋势,大家都在说缺前端,其实缺的是牛逼前端,对...

2019-04-28 21:59:13 396

原创 CSS3六角形代码

分享一段代码实例,它实现了六角形效果。代码实例如下:<!doctype html><html><head><meta charset="utf-8"><meta name="author" content="[网页链接](http://www.softwhy.com/%22) /><title&gt...

2019-04-28 16:53:07 312

原创 前端为什么要学习 Selenium

如果你正在阅读本文,那么可能希望从手动测试升级为自动化测试。你是对的,因为你需要学习 Selenium。我这样说是因为自动化测试已经风靡全球,而且业界正很缺少 Selenium 认证专家。你可能还想知道,怎样开始测试,以及 Selenium 是否适合入门。如果你有这些疑问,那么请不要担心,因为在本文中,我将给出 10 个令人信服的理由,来说明学习 Selenium 的必要性。学习 Seleni...

2019-04-28 16:01:22 189

原创 HTTP 协议图解

一、技术基石及概述问:什么是HTTP?答:HTTP是一个客户端和服务器端请求和响应的标准TCP。其实建立在TCP之上的。当我们打开百度网页时,是这样的:https://www.baidu.com多了个S,其实S表示TLS、SSL。在这里不做解释,因此HTTP的技术基石如图所示:那HTTP协议呢?HTTP协议(HyperText Transfer Protocol),即超文本传输协...

2019-04-28 14:37:52 182

原创 最令程序员沮丧的10件事

软件开发是一个伟大的工作——和任何其他工作一样,它也有它的缺点。下面的10件事就是大多数程序员关于编程所无法苟同的。对于非软件开发人员来说,开发人员的工作看起来一定很甜蜜:很多公司都需求这方面人才,得到的报酬真的很不错,公司给你各种有趣的福利,等等。但是真相却是,虽然,这一切是真的,但如同任何其他的工作一样,程序员也有那些扒拉着头发恨不得拔光的时刻。在软件工程师的一生中,有许多事情可能会让他或她...

2019-04-27 21:47:07 177

原创 将移动 App 创意变成现实的 10 个关键步骤

许多个人和公司都提出了新的移动app的想法,以便于占据或扩大这个领域。他们要么会想触及新的目标对象,要么是为现有客户提供更好的服务。然而,相对而言,人们并不清楚将移动app创意变成现实所需的步骤或过程。由于缺乏创业公司和成熟公司之间的专业知识和信息,因此他们大多数并不知道如何磨砺关于app的点子。步骤1:写下功能列表从写笔记开始概念化你的想法。在做任何事情之前,你应该写下任何你想到的东西。在纸...

2019-04-27 21:43:03 175

原创 你与年薪百万的程序员差在哪?

要想成为一名软件开发者需要学习各种专业知识、技术与框架。比如算法、数据结构、编程语言、流行框架等。但是要想成为更加出色的软件开发者,你要学习的就不仅仅是专业上的知识了。标题过于浮夸,希望大家谅解,但本篇是满满的干货。今天我想分享一点关于软件开发者如何改进职业技能从而变得更擅长于自身工作的技巧。这里要谈的主题是通用性的,并没有针对任何特定的技术栈。其实这里要谈的大部分甚至都不是针对 IT 的。这些...

2019-04-27 19:33:11 225

转载 前端十年的思索:前端专业方向的尽头

一、纯专业方向的探索之路一转眼,毕业已经快 10 年了,10 年前我在写页面,10 年过去了,我还在写页面。这种情形目前并不多见,无论是我的前辈或者是同一年代入行的同辈,几乎都已经脱离一线了,至少我认识的那些都是如此。每个人都是独立的个体,没有什么按部就班,没有什么理所当然,关键要清楚自己要的什么,自己拥有的是什么,自己能够到达的彼岸有多远。如果三五年前,我觉得自己的专业对团队对企业的贡献...

2019-04-27 19:11:18 179

原创 多重影分身:一套代码如何生成多个小程序?

影分身之基础配置影分身的能力,主要来源于 Taro 所提供的编译能力,所以需要对 Taro 的编译配置和编译配置详情有所了解。我们先来看看配置的相关文件目录:config 目录为 Taro 初始化后的默认配置目录,图中蓝色框框内的三个文件(dev、index、prod)为默认生成的配置文件,剩下的文件,则为分身所需的配置。图中配置了三个分身,我们以 channel1 为例,config 是...

2019-04-27 16:57:07 453

原创 从前端到“钱”端,前端程序员的出路在何方

过去十年,是前端觉醒的十年。前端这个行业很年轻,更早时候其实是有前端工作但是没有前端岗位。大家觉得这个东西程序员做也行,设计师做也行。前端工作一直存在,但是没有人认为它是一个独立的工种和岗位,也没有人去发展它的工程体系,更没有人去找它的核心价值。所以如果说过去十年前端是什么样的十年,我认为是觉醒的十年。在过去十年中,前端技术的发展大致经历了三个阶段:首先是青铜时代,就是 2008 年前后那...

2019-04-27 16:53:07 482

原创 JavaScript 是真正的 OOP 语言吗?

JavaScript面向对象还是不面向对象,这是个问题。好吧,这就是我们将要在这篇文章中讨论的主题。我知道,这个话题已经被讨论过太多次了。但是,它总是被不断地提及。每当Java或C#或任何其他OOP语言的开发人员与JavaScript接触时,这些开发人员都会抱怨连连。他们说,用JavaScript工作简直是一团乱,没有类型,结构不合理,有些怪异,对象支持不给力,它绝对不是OOP语言。其中有一些...

2019-04-26 21:08:59 189

原创 5G到来,谁掌App的未来,是JavaScript还是Native ?

说说几种常见的APP开发模式Native App传统的原生APP开发模式,有IOS和AOS两大系统,需要各自语言开发各自APP。优点:性能和体验都是最好的缺点:开发和发布成本高举个栗子:网易管家APP (Tab1,Tab2)应用技术:Swift,OC,JAVAWebApp移动端的网站,常被称为H5应用,说白了就是特定运行在移动端浏览器上的网站应用。一般泛指 SPA(Singl...

2019-04-26 20:48:55 425

原创 css垂直居中的方法都在这了

CSS控制居中是前端开发中非常常用的布局技能,本文列出几种CSS控制元素居中的几种方法。  谈及HTML元素居中展示,涉及到水平居中和垂直居中,以及水平垂直居中。由于HTML文档流是水平方向的,所以水平方向上的布局控制比垂直方向要简单很多,居中也是如此。不过(水平)垂直居中还是有很多种写法,至少一只手是数不过来了,本文列出几种,并进行简单比较。一、水平居中使用CSS控制水平居中很简单:...

2019-04-26 20:27:25 49

原创 HTML基础知识

一、什么是HTMLHTML的英文全称是Hypertext Marked Language,中文叫做“超文本标记语言”。和一般文本的不同的是,一个HTML文件不仅包含文本内容,还包含一些Tag,中文称“标记”。一个HTML文件的后缀名是.htm或者是.html。 用文本编辑器就可以编写HTML文件。二、如何编写HTML文件让我们先创建第一个HTML文件!<html...

2019-04-26 16:36:05 78

原创 代码自解释不代表你可以不写注释,也不是你不学注释的理由

有什么比花时间写注释更令人感到兴奋的事情吗?如果我没有猜错,你可能会说:“不好意思,所有事情都比写注释更令人感到兴奋”。如果有人要你给代码加上注释,对你来说就像是一种侮辱。你的代码写得如此优雅,它已经足以说明它要做的事情,注释是多余的,代码就是一切。无论是开源项目还是专业软件开发,代码注释通常有两种形式:要么没有和要么毫无用处。任何领域或使用任何编程语言的程序员,无论他们来自世界的哪个地方,似乎...

2019-04-25 21:40:17 415 1

原创 程序员做到极致就是不可再优化

这个社会,竞争太 TMD 激烈了。你能做好,但能做好的人太多了。做好可以崭露头角,做到极致才是凤毛麟角。什么是做事极致?规定时间和能力范围内做到最好,就是极致。但这个定义貌似没什么实际意义,听上去很美,但没有现实指导意义。这个不可再优化不是绝对的,而是相对的,是在规定时间、能力范围、资源结构内,你做到了不可再优化。每次当你做完一件事,准备收工时,多问自己一句:我真的没办法做得更好一点了...

2019-04-25 21:17:43 164

原创 维密超模也来学编程?你想象得到吗,这些明星也曾是程序员!

“人人都应该学习编程”。这更像是一句赞扬编程魅力的话。在大家的感觉里,编程好像是个很专业的事情。那些编程大牛,可能要么在阿里和腾讯这样的大公司当工程师,要么自己做出了非凡的互联网事业,像比尔盖茨和扎克伯格就是最好的例子。但是你想象得到吗,生活中真的有一些看似跟“编程”八竿子打不着的人,曾经确实是名副其实的IT工程师哦~今天要说的是 娱乐圈和 体育圈里几位众所周知深受大家喜爱的明显,在他...

2019-04-25 20:52:02 301

原创 JavaScript 的这个难点,难住了多少程序员?

本文将通过简单的术语和真实世界的例子解释 JavaScript 中 this 及其用途,并告诉你写出好的代码为何如此重要。1、this 适合你吗?我看到许多文章在介绍 JavaScript 的 this 时都会假设你学过某种面向对象的编程语言,比如 Java、C++ 或 Python 等。但这篇文章面向的读者是那些不知道 this 是什么的人。我尽量不用任何术语来解释 this 是什么,以及 ...

2019-04-25 19:33:32 100

原创 如果把编程语言用中文来替代会怎么样?

首先大概的看一下中文编码:你以为会写中文就会编程吗?这就像你以为会写汉字就会写出好文章一样。编程是和机器沟通,因此要用机器的语言而不是人类的语言。最早的程序就是0和1的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示0和1。后来发现0和1的二进制太麻烦了,就把0和1压缩一下,用16进制表示,比如数字10,用二进制表示是1010,用16进制表示就是0A,这样表达起...

2019-04-24 20:07:07 654 1

原创 关于开源,我有些话想说

最近,我经历了一次有意思的讨论。讨论的主题是代码开源,尤其是指那些用作商业用途的代码,比如用于创造你自己的产品或者服务的代码。以下就是这次讨论所得的,对“开源”的各个方面的思考。同时我也真心希望读者能进行讨论,分享自己的经验。质量不论何时,只要你决定公开地做一件事,你就会倾向于对其付出更多的努力,力求将其做好。不管是一场演讲,一次营销活动,还是一个软件项目。只要你想把这个软件项目公开,你就绝...

2019-04-24 19:52:15 98

转载 浏览器之争,我就服IE。不服?IE:有本事你就把我删了啊

浏览器之争从上个世纪就已经开始,已经持续了很长的时间。到目前为止,竞争依然激烈。在很多年前,IE还是最主流的web浏览器。但现在形势早已完全不同了,不知道大家还有多少人在用IE浏览器?今天,小编向大家分享一下针对IE的搞笑图片,只是逗乐而已,希望大家看的开心!1、当浏览器化作一种枪,你喜欢用哪种呢?2、这神奇的反射弧,有点长…3、浏览器们成长的烦恼4、这么说来,IE浏览器扳回一分!...

2019-04-24 19:12:53 210

翻译 比起程序员中年危机更害怕:自己不知道接下来做什么?

我辞掉了我那份舒适、薪水又高的工作。我之所以会走这一步,是因为在我回顾过去已经取得的成绩之后,我不知道接下来的30年应该做什么。那就是中年危机……这里所谓的中年危机指的是,作为一个开发者,你总会到达一个已经做了一段时间并且开始思考下一个选择是什么的阶段。只是能挣到钱再也不够了:你需要额外的动力来继续下去,直到退休。你可以认为自己已经写了足够多的代码,想往上晋升,成为领导者/管理者。为什么...

2019-04-24 17:26:52 84

原创 你以为程序员不可能掌握所有的程序语言可能,那是你没掌握这几点

如果你存在以下的种种困惑,那么这篇文章也许会对你有所帮助:你是编程初学者,不知道该选择什么程序语言来入门。你是资深的程序员或者团队领导,对新出现的种种语言感到困惑,不知道该“投资”哪种语言。你的团队为使用哪种程序语言争论不休,发生各种斗争。你追逐潮流采用了某种时髦的语言,结果两个月之后发现深陷泥潭,痛苦不堪……无可置疑的现实是,不管在什么时候程序语言仍然是很重要的话题,这个情况短时间...

2019-04-23 22:09:16 67

翻译 微软全球执行副总裁沈向洋自述:在实现职业目标的道路上得到的七个教训

当我从卡内基梅隆大学获得机器人学博士学位时,我的职业目标是成为一名计算机科学教授。我将帮助塑造年轻人的思想,并为该领域贡献世界级的研究成果。我渴望效仿我的教授,比如 Raj Reddy(雷伊·雷蒂),他给我上了人生中最重要的一些课。一切都安排好了。我将在十年后成为一名终身教授。但这并没有发生。我做了一系列选择,使我偏离了那个目标。我觉得,我没有意识到这一点,但事后看来,我发现,我被另一股力量...

2019-04-23 16:15:19 266

原创 程序员需知——15 条软件开发黄金定律

与其他领域一样,软件开发领域也有一些非常有趣的定律。程序员、技术经理和架构师们经常在会议和聊天中提到它们。作为小白,我们常常只有点头附和的份,因为我们不希望让对方知道我们实际上根本不知道布鲁克、摩尔或者维斯都是什么人。这些定律包括了一些法则或软件开发大神的名言。它们都很有趣,值得我们一探究竟,而且每个定律背后都有令人惊叹的背景故事。在这篇文章中,我将分享我对软件开发领域最著名和最常见的定律的...

2019-04-23 13:43:31 61

原创 阿里的AI帮助程序员修改Bug的背后我们需要反思什么

最近有个热门新闻,阿里巴巴工程师有了新帮手,它竟然可以帮你修改Bug,没错,它——AI.身为软件工程师(程序猿,不要怪我,不然没人懂什么是软件工程师)我们创造了AI,但是AI翻脸就是一顿代码自检,结果被自己创造的“孩子”给打了小报告,他们和它们的关系正在变得“微妙”起来。4月18号,2019年阿里巴巴]研发效能峰会——“83行代码挑战赛”决赛引入了一位特殊的评委,它将对选手提交的代码进行综合...

2019-04-22 19:45:12 227

原创 程序员必备的最核心竞争力是什么?

进行社招面试时,有一个问题几乎是必问的:你为什么要离开上一家公司?其实这个问题主要是想试探一下求职者的核心诉求,并借此预估一下他在本公司工作的稳定性。常见的答案也无非就是这么几种:对薪酬不满意、干得不爽,或者是想换个环境。然而,我遇到过好几个初次跳槽的求职者给出的答案是:「在原来的公司学不到技术」。一听到这个,我就不由得叹口气:今天这一小时又算是交代了,这人基本上没戏。因为根据我的经验...

2019-04-22 16:28:48 130

原创 从程序员到副总的经历,告诉你如何在中国式职场生存!

前段时间,我跟一位在IT职场打滚超过10年的资深职场人物聊天,他给我讲述了从一名程序员做到常务副总亲身经历,谈论了一些中国式职场生存法则。听完之后,我内心深有感触,我决定把这位前辈总结的一些职场经验分享给大家,希望大家能在IT职场上战无不胜!第一条:吃亏不一定是福有人说:「吃亏」不光是一种境界,更是一种睿智。但问题是:你是吃「好人」的亏,还是「坏人」的亏?吃「好人」的亏,关系不大,吃得越...

2019-04-22 14:33:40 244

原创 如何通过优化主页大小,将网站大小减少 62%

什么是图像压缩?压缩图像是指在保持可接受的视觉质量水平的同时减小图像文件的大小。我使用imagemin来压缩我网站上的图像。要使用 imagemin,请确保已安装了 Node.js,然后打开终端窗口,cd 到项目的文件夹,并运行以下命令:npm install imagemin然后创建一个名为 imagemin.js 的新文件,并粘贴以下内容:const imagemin = ...

2019-04-21 13:54:56 192 1

原创 王者荣耀=垃圾策划+沙雕建模师+zz运营+背锅程序员+优秀的美工

王者荣耀作为目前最受欢迎的手机游戏,每天有无数的玩家进行游戏。不过同样也存在很多的玩家,对王者荣耀中的不足进行吐槽,而这些吐槽大部分时候,都还是非常真实的,下面我们就一起来看看,有哪些值得吐槽的地方吧。策划策划可以说是在王者荣耀中被吐槽最多的工作人员了,除了一部分玩家不知道喷什么的时候,就拿策划说事以外,因为王者荣耀频繁的平衡调整,也确实让策划成为了整个天美员工中,最不受玩家待见的存在,比如...

2019-04-20 20:40:05 580

原创 我是如何看待那些编程语言的?

所有的编程语言我都讨厌。曾经我想自创一门语言,但我没搞明白到底需要一门什么语言,所以也从未开始过。 许多时候,你没法选择使用哪种语言。不管我在用哪种语言,我都尝试去接受它的优点和缺点。Java喜欢 Java 的人肯定喜欢打字。我指的就是敲打键盘上的键。你得不断地重复又重复。设计 Java 系统的人是个疯子,他解决问题的方式就是,设计模式。如果你把设计模式看作是这个语言中解决问题的一种方式,那...

2019-04-20 16:04:51 171

转载 web组件正走在取代前端框架的路上

还记得 document.querySelector 开始获得主流浏览器支持,并逐渐结束 jQuery 统治的历史吗? 它终于让我们能够原生实现多年来使用 jQuery 做的事情,也就是轻松选择 DOM 元素。我相信类似的变革也会席卷像 Angular 和 React 这样的前端框架。这些框架让我们得以实现过去难以达成的目标,亦即创建可复用的自治前端组件;但随之而来的代价是代码更加复杂、需要专用...

2019-04-19 17:19:55 186 1

提示
确定要删除当前文章?
取消 删除