- 博客(90)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 掌握设计原则,你就是光(25个问题,你会几个)
25个问题,你会几个如何理解单一职责原则?如何判断职责是否足够单一?职责是否设计得越单一越好?什么是开闭原则?修改代码就一定意味着违反开闭原则吗?怎样的代码改动才被定义为扩展或者说是修改?如何做到对扩展开放、修改关闭?如何在项目中灵活运用开闭原则?什么是依赖反转(倒置)原则 ?高层模块和低层模块是啥意识?如何理解反转两个字?什么依赖被反转了?什么是控制反转 IOC ( Inversion Of Control )?什么是依赖注入 DI ( Dependency Injection )?IOC 和 DI 有什
2021-04-10 14:45:38
354
原创 彻底解决hexo s 启动服务后 打开localhost:4000 无响应的问题
欢迎关注我的github: https://github.com/godkun/blog问题:使用 hexo s 命令启动服务后,打开浏览器localhost:4000 地址发现没有反应,出错。页面显示不出来。解决用 管理员身份 打开dos命令窗口输入一下命令netstat -o -n -a | findstr :4000查看一下4000端口的详细情况。如下图所示:发现40...
2018-05-08 23:09:39
13657
6
原创 子网掩码最简单通俗的解释
参考我在知乎写的答案: https://www.zhihu.com/question/56895036/answer/342336722
2018-04-25 10:54:42
11471
原创 玩转GIT之终结git-flow中分支冲突系列问题
第一种处理方法开发要求: 不能丢弃本地修改,因为其中的某些内容的确是我们需要的,此时需要对unmerged的文件进行手动修改,删掉其中冲突的部分。情景再现: 比如你在A分支上commit了,然后PR了,这时你的PR没有冲突的提示,可以合并。但是之后有人在你PR的目标上的相同位置做了修改,这个时候,你的PR就有冲突的提示了,不可以合并,怎么办?解决方法: 需要先获取远程最新的...
2018-04-12 02:16:55
1676
原创 玩转GIT之git-flow中容易忘记的git命令
1:git 回到上一个版本,如果git pull以后发现版本不对,要回退到上一个版本用下面命令git reset --hard HEAD2:git remote add origin git@github.com:stormzhang/test.git 将本地的已有项目关联到github上的新的项目上,在github上新建一个仓库。增加一个本地版本库到现有的 Git 项目可以...
2018-04-12 02:00:30
397
原创 玩转GIT之在工作中要用的高级用法
学会在命令行中查看差异每当你进行了更新以后,都会生成一个commitID hash值,当别人改完代码或者你改完后,你要看修改了哪些代码后,你需要用git log查看commit值,然后git show commit-hash值。这个git log 可以加参数,比如 git log -2 是查看最近两个的commit信息。git tag本地打标签:git tag tagNa...
2018-04-12 01:45:04
596
原创 一招解决 npm i 安装 node-sass 出现错误
问题: npm i安装出现错误,显示安装node-sass出现错误。错误显示如下:无法从https://github.com/sass/nodesass/releases/download/v4.7.1/win32-x64-57_binding.node下载二进制文件无法下载https://github.com/sass/node-sass/releases/download/v4....
2018-04-12 01:33:22
12203
1
原创 玩转GIT之看清 git stash 的本质
开发经验1:当你新建文件修改了代码,如果没有git add 那么你用 git stash 是不能保存修改到暂存区的,但是如果你没有新建文件,只是在原有文件里进行修改,那么是可以在没有git add 的情况下保存到修改到暂存区的。2:不论做什么样的修改,当你git add 之后,你都可以使用git stash 进行保存,然后再用git stash apply 进行恢复。3:注意,gi...
2018-04-12 01:24:50
3169
原创 玩转GIT之git个人快捷键设置和方法【极大提高git-flow开发效率】
秘诀我使用的是git bash,环境是windows,一般是没有.bashrc文件的用cd ~进入用户目录,后在此目录下创建 .bashrc文件,命令如下:touch .bashrc然后vim .bashrc然后按下 i 进入编辑模式,这就可以编写进行设置快捷键alias gc='git clone'alias gst='git status'alias g...
2018-04-12 01:10:47
2290
原创 webpack4.0命令行模式下【不用配置文件】打包教程【傻瓜教程】
解决问题解决webpack4.0默认是从src目录下寻找index.js然后输出到dist目录中的main.js。很多同学用命令行在这里会踩很多坑。今天我来彻底解决这个问题。很简单。初始化新建一个目录mkdir wpdemo进入目录,然后新建入口文件和依赖文件touch app.jstouch sum.js 上面我用的是linux命令生成目录和...
2018-04-08 02:50:36
2564
原创 浏览器中输入URL的各种情况带 / 号和不带 / 号的区别
URL以 / 结尾第一种情况:http://www.example.com/dir/ 这种可以这样理解:以/结尾代表/dir/后面本来应该有的文件名被省略了。为什么要省略呢? 因为这样输入更简洁快速,减少字节传输。那么问题来了,没有文件名,服务器怎么知道要访问哪个文件呢? 其实真相是:服务器上会事先设置好文件名省略时要访问的默认文件名。比如通常是index.html之...
2018-03-09 22:17:11
1819
原创 如何在链接右边添加一个示意图标来达到对用户更友好的交互
<!DOCTYPE html><html><head> <title></title></head><style> a[href $='.pdf'] { padding-right: 20px; background: transparent url(http://www.ico
2018-03-07 15:15:49
571
原创 程序语言原理基本介绍
影响语言设计的两大要素计算机体系结构程序设计方法学程序语言评价标准可读性可写性可靠性总成本正交性 正交性好久意味着相对较小的基本结构集合,能够以较少的组合方式来构成语言的控制结构和数据结构。但是,基本结构的任何一种可能组合都是合法且有意义的。如果某一个组合不合法,那就是正交性不够好。说通俗点就是如果一个语言的特例较多,那它的正交性就不好。类型检查是否...
2018-03-07 01:10:43
1714
原创 如何巧妙的在使用markdown的时候上传或者插入图片
在使用有道云笔记或者直接书写markdown语法的时候,如何插入图片是一个比较麻烦的事情。问题在于: 使用本地的图片地址的话,如果以后电脑存放图片地址变了或者不小心删掉了,那么笔记里的图片也就没了。一个非常酷的解决方法是: 可以用CSDN博客来解决,你可以先将需要插入笔记里的图片上传到CSDN博客上,并且设置为私密就可以了,然后在有道笔记上就使用CSDN博客上的图片的url地...
2018-03-05 19:55:20
5593
4
原创 markdown转pdf最简单的方法
使用chrome浏览器使用有道云笔记编写markdown文件到应用中心下载Markdown Preview Plus 插件 下载地址: Markdown Preview Plus在扩展程序中设置允许访问文件地址然后将md文件拖到浏览器中预览,然后右击打印,然后选中保存为pdf就可以了。完美解决使用有道云笔记时,没有将md文件另存为pdf的问题。这样就不用再使用为知笔记...
2018-03-05 19:48:51
30096
6
原创 对Node的深刻认知
node.js是JavaScript的运行环境,或者说是web开发的runtime。总的介绍事件驱动非阻塞I/O基于Chrome V8引擎单线程使用 JavaScript 开发后端代码优点事件驱动非阻塞I/O前端开发工程师偏爱Node适合干什么 适合I/O密集场景CPU 密集和 I/O密集的区别CPU密集:压缩、解压、加...
2018-02-16 20:36:51
361
原创 进程和线程最直白的解释
进程 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。通俗的说:电脑桌面上的程序,比如播放器,点击图标运行程序,那么程序就被加载到了内存中,那么这个运行中的播放器程序就叫进程。 但是单核cpu怎么也可以同时执行很多程序呢?主要是因为计算机做了一个很聪明的事情,它用很快的时间轮换执行多个程序,比如1ns执行这个程序的语句,另一个ns执行那个程...
2018-02-16 20:18:28
343
原创 在 JavaScript 中, 究竟什么是 事件,事件 是指什么?
定义 事件是指被程序发现的行为或发生的事情,而且它可能会被程序处理。MV*框架通常区分两种事件:用户事件:通常在view中处理,程序允许用户通过触发和处理事件的形式沟通,比如单击一个按钮,滚动屏幕,提交一个表单。程序事件:应用自身也可以触发和处理一些事件,比如渲染后触发onRender事件等。
2018-02-07 13:53:58
4312
原创 SPA和AJAX两者最本质的区别
主要区别:AJAX是直接以 HTML 的形式加载应用的一部分,通过 ajax 直接将 html 嵌入到 dom 中。SPA是以模板形式去显示 html,不直接加载html,先加载 JSON 数据,然后经过模板编译后变成 html 形式。
2018-02-07 13:31:20
1260
原创 在jquery中,$('.a .b')和$('.a.b')的区别
没有空格的,就是平行关系的,如下所示:div class="a"> div class="b">div>div>有空格就是所属关系,如下所示:div class="a b">div>
2018-02-07 09:09:44
2330
原创 代码方面的WEB性能优化
缓存DOM查询var i;for( i=0; i 'p').length; i++){ // todo}// 缓存DOM查询var pList = document.getElementsByTagName('p');for (i=0; i < pList.length; i++) { // todo}合并DOM插入var listNode =
2018-02-06 11:05:42
288
原创 一句话介绍CDN
原理 其实就是很多服务器都有静态资源的备份,当用户请求时,通过主服务器对用户的IP进行地址判断,来选择离用户位置最近的服务器,并且将最近的IP返回给用户,让用户去请求这个IP的服务器。好处 加快了响应速度
2018-02-05 16:56:11
574
原创 CSS权值规则
规则原理: 对于同一个元素设置了不同的css样式,此时根据权值来判断使用哪种样式,选择权值高的样式进行设置。权值规则是: - 标签的权值为1 - 类选择器的权值为10 - ID选择器的权值为100 - 伪类选择器是10注意: 在属性后面使用!important,会覆盖页面内任何位置定义的元素样式。
2018-02-02 23:20:43
1252
原创 使用fiddler进行调试线上代码
很方便的调试工具步骤:下载fiddler打开fiddler清空请求的内容打开调试的网址然后在请求列表里找到要调试的文件然后在右侧点击AutoResponder选中Enable rules和Unmatched request passthrough然后在右下角网址进行修改,去掉EXACT:和查询字符串,也就是包含?以及以后的内容然后点击下面一个输入框的右侧的下三角形符号,选
2018-02-02 16:11:47
441
原创 小白也能征服CSRF
英文:Cross Site Request Forgy中文:跨站请求伪造攻击者在其他的网站对目标网站产生了影响CSRF攻击危害利用用户登录态用户不知情完成业务请求盗取用户资金(转账,消费) 就算警察寻找是谁,也只能找到用户,找不到攻击者,因为攻击者用的ip和cookie都是用户的。 CSRF攻击防御 csrf防御核心思想就是利用攻击者不会访问目标网站的前端,只会去访
2018-02-01 16:28:51
404
原创 知乎各位前端工程师的感悟【个人总结精华版】
养成阅读英文文档和英文技术博客的习惯,时间一长你会发现思考问题和解决问题的路径比之前更为精准有效且持续。 时刻保持对自我前端知识体系建立的警惕和思考,不要因为时髦而冲动,根据自己的阶段慎重的判断知识的优先级。
2018-02-01 16:03:14
5288
原创 AutoHotkey软件实现自动化
打开编辑脚本,编辑txt文本,写入:// 按下win + b 就可以快速打开百度搜索页面#b::run www.baidu.com// 按下win + n 就可以快速打开csdn博客写文章页面#n::run http://mp.blog.csdn.net/mdeditor
2018-02-01 15:47:57
3277
原创 在移动端使用rem布局后,使用背景图片出现显示不正确
原因: 因为图片设置成背景后,移动端是响应式布局,就会造成背景图片无法正确显示。因为背景图片也被缩放了。解决方法: 通过给背景图片设置background-size: contain; 就可以解决,这个是让背景图片自动缩放达到自适应完全显示出来。一般不怎么模糊就可以了。
2018-02-01 15:45:33
2743
原创 当内嵌元素和图片一起在一个div里设置line-height时,出现不同时居中的情况
代码如下html>head> title>title> meta charset="utf-8"> style> .box{ margin: 40px; height: 100px; width: 600px; background: skyblue; line-height:
2018-01-28 23:05:18
1323
原创 border-box和content-box最直观的区别和解释【不理解包赔】
chrome浏览器默认是content-box,什么是content-box,我用最简单的语言解释给你听。 content-box就是用元素的width和height觉得元素的高宽,这就意味着元素的padding和border等不能算在width和height中。啥意识?简洁介绍一下。元素的width和height决定元素的内容,padding和border的改变不能改变wi
2018-01-26 10:50:45
17679
4
原创 web安全是指什么
主要指两个方面私密性不被非法获取和利用。可靠性不丢失不损坏不被篡改。体现在几个方面代码层面架构层面运维层面安全问题的考虑用户身份被盗用用户密码泄露用户资料被盗取网站数据库泄露还有一些其他的安全问题web安全的重要性为什么这么高直面用户,挑战严峻网站和用户安全是生命线安全事故威胁企业生产,口碑甚至生存有哪些安全隐患跨站脚本
2018-01-24 17:33:19
2489
原创 placeholder兼容IE8浏览器
第一种方法 思路是用js的focus和blur实现placeholder功能。 新建一个js文件(function() { if(!('placeholder' in document.createElement('input'))) { $('input[placeholder],textarea[placeholder]').each(functi
2018-01-24 13:58:46
283
原创 mysql忘记密码怎么办【包成功】
我的版本是5.5.40mysqld --skip-grant-tables用管理员方式新开一个dosmysql –uroot -puse mysqlupdate userset password=password("root") where user="root";// 注意要带上分号flush privilegesexit重新打开一个dosmys
2018-01-24 13:03:50
272
原创 P标签内容自动换行
style type="text/css"> .desc{ line-height: 20px; }style>p class="desc">xxxxxxxxp>设置line-height就可以了,如果居中则加text-align: center,左对齐就不写
2018-01-23 13:51:43
4710
原创 解决子级用css float浮动 而父级div没高度不能自适应高度
作为推荐解决父级不能被撑开自适应高度的方法,可以不增加div盒子对象,只需要对父级加一个overflow:hidden样式即可。
2018-01-23 13:50:00
272
原创 使用vue-cli和express在前端模拟路由
express 针对vue-cli ,在webpack.dev.config.js里设置const app = express() const appData = require('./../mock/goods.json')const apiRoutes = express.Router()// 创建一个一级路由为/apiapp.use('/api', apiRoutes)
2018-01-23 13:03:00
1624
1
原创 Vuex学习简单总结
const store = new Vuex.Store({ state: { count: 1 }, mutations: { increment(state) { state.count++; } }, actions: { increment(context) { co
2018-01-23 13:00:10
318
原创 vue-cli打包到线上怎么进行跨域设置
vue 在开发环境,涉及跨域,就在本地配置了代理,但是部署到服务器上,就不行了。解决方法有一下几种服务器端配置CORS用nginx反向代理,和访问本地服务器是一样的可以修改成正式线上的地址,再build推荐 使用nginx配置反向代理,这样就可以在前端彻底解决跨域问题。
2018-01-23 12:57:24
6946
1
原创 用vue-cli开发vue时的代理设置
'/goods': { target: 'http://localhost:3000' }, '/goods/*': { target: 'http://localhost:3000' }, /goods/*是表示匹配到/goods/后面任何路由,都会代理到端口上,如果不加/*则后面加其他路由的话,是不能代理到端口的
2018-01-23 12:55:30
2950
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人