当我们谈论懒的时候,我们在谈论什么

懒,是推动人类进步的唯一动力 人们因为懒得走路而发明了汽车,因为懒得出门而发明了电话,因为懒得洗衣服而发明了洗衣机,因为懒…… 我们尚不考究这些发明的是不是因为懒。 但是这些发明的确高效的推动了社会的发展,人类的进步。 如果你看过《2001太空漫游 2001: A Space Odyssey (1968)》这部电影,那你一定对下面这张剧照非常熟悉。 剧照中的这只猩猩,是这个星球上第一位拿起一根骨头当做工具的生物。他忘情的捶打地上的残骸,开心至极。最后,他将手中的骨头,奋力的抛向天空中,摄像机的镜头跟随者这根骨头,指向了茫茫太空。 一个新的时代,来临了。 这里我想表达的是,使用工具,勇于尝试,敢于冒险,是进步的基础。 我在工作中如何去偷懒 从计算机语言开始,每一名程序员都为了偷懒而做了很多伟大的事情。...

1 minute read

当我在写一个评论通知功能的时候, 我在想些什么?

最近忙完了公司的事情,在空闲时间,来更新一下自己的博客了。现在博客在我个人博客在自己的努力推广下,终于有了一些访问量(屈指可数),有一些朋友会回复一些文章进行询问和探讨。 由于没什么时间,一直没有完善评论功能,还必须每次登陆后台才能知道有没有新用户的评论。 大部分时间都不能及时回复,回复的话,用户如果不来浏览你的网页,他也不知道,所以就想做一个邮件提醒,告诉用户,有人回复你的评论了,快来我博客看看。 需求分析 总结起来就两个功能 用户评论后,发送邮件通知博主 博主在后台可以回复对应的评论,并且如果评论人填了邮箱,发送通知到评论人 我们来细分一下这两个功能,以及讲一下具体的实现。大家可以想一想,如果是你,你会如何去实现这一简单的功能,有不同的意见,欢迎大家进行交流和探讨。 表修改 新增两个字段, reply_id 和 from_author reply_id 用于记录是回复的哪个评论,...

8 minute read

用 Vue + Audio API 实现的热门小游戏,八分音符

预览地址: https://8.diamondfsd.com/ (谷歌浏览器打开最佳,不支持移动端,不支持IE) 会有麦克风权限申请,需要允许才可以正常玩耍,如果不小心点了禁止,可以在浏览器地址栏的右边,重新点击允许 Github: https://github.com/k55k32/quaver 游戏截图 由来 最近看这个游戏比较火,个人也是比较闲。 今天花了一下午的时间,来完成这个当前比较火的小游戏,八分音符。 看了这个游戏,原理也很简单,我们只需要获得声音,然后把声音转换为数字,最后控制小人移动就可以了。 声音的输入 我们发现这个游戏的原理很简单,就是通过声音来控制小人移动,声音越大,跳得越高。 所以要做这个小游戏,我们就首先要解决的问题就是,如何从浏览器获得声音。这方面的东西,我以前也接触的不多。所以我只能先面向谷歌编程。 最后我搜索到了这篇文章:...

2 minute read

Vue2 + Nodejs + WebSocket 完成你画我猜多人在线游戏

使用 websocket + vue2 即可完成一个很有意思的在线游戏作品。 你画我猜,相信大家对这个游戏都很熟悉。 我用Vue2 + mint-ui + nodejs + websocket 实现了你画我猜这个游戏。 建议移动端打开效果更佳(可扫下方二维码),PC端需要使用谷歌开发者模式,然后使用移动调试工具,才可以正常使用(主要是一些touch事件,pc不支持)。...

1 minute read

Spring MVC 通过切面,实现超灵活的注解式数据校验

这篇文在主要是介绍,如何在 Controller 的方法里面,让校验注解 ( @NotNull @Email @Size...等),对基本类型的数据生效(基本类型 Integer,String,Long等)。 Spring MVC 有什么校验方式? 大家都知道,Spring MVC 默认依赖了 hibernate-validator...

6 minute read

通过 Github-Webhook 实现的轻量级自动化构建Nodejs微服务

我想要实现这样的功能,只要我 push 代码到 github仓库中,那么我的服务器就会自动执行预先写好的脚本。 类似于: 拉取最新代码 更新项目依赖 编译 重启项目 有很多持续集成工具都可以实现这样的功能,可是我的服务器内存小呀,没那么多资源去部署一个持续化集成工具了,只能自己写一个轻量级工具来完成这项工作。 Github Webhooks 详解 我们每个github仓库可以都在 Settings...

3 minute read

这篇文章主要讲 Spring MVC 如何动态的去返回 Json 数据 在我们做 Web 接口开发的时候, 经常会遇到这种场景。 两个请求,返回同一个对象,但是需要的返回字段并不相同。如以下场景 ```java /** 返回所有名称以及Id */...

11 minute read

前端性能优化之 —— 图片延迟加载 (原理以及实现方式)

前端开发的时候,有些列表页面可能会有很多图片需要加载。一次加载太多图片,会占用很大的带宽,影响网页的加载速度。 这时候我们想到一种方式,让用户浏览到什么地方,就加载该处的图片。 这里写了一个简单的例子,大家可以去体验一下,当然这里考虑到的是最简单的情况。 这里简单的讲解一下这个例子里面的源码。 例子查看 DOM 结构 由一个父容器div#lazy-img,里面是图片标签,父容器是可以滚动的,图片有固定高度。大家可以看到,容器内的img元素没有 src 属性,而有一个 data-src 属性。 这是不想让图片提前加载,所以把图片的链接储存到data-src 内。 div#lazy-img...

2 minute read