Java开发入坑前端指南
前端发展史
1990年,那是一个冬天,有一位老人在欧洲核子研究中心织了一张网,神话般的诞生了万维网。
很久很久以前(1980 年),在欧洲核子研究中心工作的一位英国物理学家「蒂姆·伯纳斯-李」为了让研究人员能够分享和更新他们的研究结果,他与「罗勃·卡力奥」一起建立了一个叫做 ENQUIRE [ɪn’kwaɪə(r)] 的原型系统,这就是万维网的前身。后来他想将这种方式嫁接到因特网上,1990 年圣诞节那天编写出了全球首个网页浏览器 WorldWideWeb(同时也是网页编辑器,后来为了避免与万维网混淆而改名为 Nexus [‘neksəs])和网页服务器。这套服务器在欧洲核子研究中心于 1991 年 8 月 6 日上线,这就是全球第一个万维网网站。
HTML(超文本标记语言)、HTTP(超文本传输协议)以及 URI(统一资源标志符,也就是在浏览器输入的地址规则)都是这位大佬发明的。
WorldWideWeb 的模拟界面如下:
这个浏览器有以下功能:
显示文本、图片
打开超链接
编辑所示内容
点击此链接可以查看此网页版模拟界面:https://worldwideweb.ce ...
记2019年1024节日生产事故
在一年一度的 1024 程序员节这一天,怀着激动而又憧憬的心情来到公司,因为万科A 这只房地产龙头股已经跌到26.78 元一股了(下方附上截止当日的日K图),价格已经低于下图上显示的所有日均线,恰好今天又是周四,股市又会迎来每周一大跌的日子,下午就可以开始第一轮买入了。
某位股市大佬统计了 2016年1月1日到 2019年5月23日沪深300指数和中证500指数,验证了周四下跌概率会上升,涨幅更小;跌幅更大。详见此文:发现每周四定投可以赚得更多。
事故现象开盘不久。。。9 点 43 分,催收部门的小伙伴发来急电:催收系统的数据(生产环境),身份证和姓名消失啦~
what the f*cking ?
事件背景每天早上 9:40 分,催收部门分配案件的小伙伴会在催收系统查询到当天新增的催收数据。
然后将新增的催收数据分配给电催专员,电催专员则对分配到的数据进行电话催收。
催收系统的数据从何而来?
核算系统在每天早上 7:30 加工并生成截止今日 00:00 前的逾期数据,因为早上 6:00 - 7:00 是银行和机构推送还款信息最多的时间段,业内称为回盘。
数据处理系统在核算 ...
国内图床服务对比
前两篇文章都说到了图床:
PicGo-图片上传、管理新体验
Markdown Nice-微信公众号排版神器
那么图床到底是一个什么样的存在,存在的作用是什么?而现在国内又有很多云服务商,到底应该如何选择呢?接下来我给大家大致介绍一下。
图床是什么图床就是专门用来存放图片,同时可以通过一个 http 链接直接访问图片的网络存储空间。
因为图片一般都比较小,而且需要直接在浏览器访问,所以一般在云服务商选择对象存储这类产品来充当图床功能。
有了图床后,就可以上传、下载、删除、浏览图片。
图床如何使用选择一家云服务商,然后注册账号并进行实名认证(因为国内监管较严,所以每一家都会要求实名认证),再开通其对象存储产品,就可以直接在服务商的控制台界面对图片进行管理啦。
在实际使用时,为了更快的速度和更便宜的价格需要搭配 CDN 使用。
(对,没错!多一个 CDN 反而费用更便宜,这是怎么回事呢?继续看后文就能明白了。)
既然如此,那么剩下的问题就是怎么选择服务商了。
服务商选择为了后面价格比较时,能明白 CDN 回流和外网下行流量分别是什么东西,先拿出来解释一下。
借用腾讯云 COS 的 ...
Markdown Nice-微信公众号排版神器
越来越多小伙伴开始写博客,而且是写好一篇后发布到各大平台,比如简书、掘金、V2EX、CSDN,还有微信公众号等。这么多平台每次发布都要针对性的写一遍的话,那得多浪费生命啊。
就我目前来说,每次写作需要发布到我自己的博客,还要在微信公众号发布,而我的博客是写 markdown 文件然后转成静态文件部署,所以每次都需要把用 markdown 写好的内容转成微信公众号的富文本格式。转换过程要处理排版,还要上传图片,总之繁琐的不行,如果用过或还在用这种方式写内容的小伙伴应该深有体会。
而现在,我不用自己去处理这样的操作了,使用 Markdown Nice 来帮我处理 markdown 到富文本转换的过程。而且可以直接在编辑的过程上传图片到阿里云和七牛云图床,若没有自己的图床,还可以使用 mdnice 图床和 sm.ms 图床,解决 markdown 插入图片的问题。
不建议使用 sm.ms 图床,微信公众号下载这个图床的图片很少成功。
同类产品:
WeChat-Format
这款产品也很好用,但是支持的主题很少,而且不能直接自定义主题。如果需要个性化主题和排版的布局,需要 fork 其 ...
PicGo-图片上传、管理新体验
PicGo 是一个方便上传和管理图片的工具,主要解决在 Markdown 插入可移植图片的复杂操作。基于 electron-vue 平台开发,熟悉 JavaScript 的同学可以直接上手定制开发。
优点:
开源且免费,全平台支持
支持众多图床服务商和云文件存储服务
内置 GitHub 作为图床的支持
若现有服务都不能满足,可自己定制开发符合要求的上传服务插件
可以管理上传过的图片,可删除和修改
同类产品
iPic
很多人都知道,真是好用,非常好用。
不足之处:
只能在 mac 下使用
免费用户只能上传到新浪的免费图床,也就是发微博里图片存放的地方
即使是收费用户,也不支持自定义图床,不能管理上传的图片
MPic:
不足之处:
只能在 Windows 下使用
只能使用七牛云作为图床,8 月新增了阿里云 OSS
而且两种图床方式是两个不同的客户端
开箱即用PicGo 下载后即可使用,默认使用 SM.MS 图床
此图床也是免费使用,而且不限流,大家如果没有更满意的图床服务可以使用这个。
将带有此图床的图文文章粘贴到微信图文编辑器中时,大部分图片都会上传失败。
...
永恒的 Hello Word - Spock单元测试系列教程
快速体验Spock 官网提供了 Web 控制台,可以直接在此控制台页面体验和尝试,点击 Run Script 运行。
本地运行
准备好开发环境,开发工具不限,只要能支持 gradle 和 maven 构建工具都可以,或者无需开发工具,使用构建工具命令行运行。
新建一个 gradle 或 maven 项目。
gradle
build.gradle 文件内容如下:
123456789101112131415161718192021222324252627282930313233343536373839404142plugins { id 'java' id 'groovy'}group 'net.sudot'version '1.0-SNAPSHOT'sourceCompatibility = 1.8targetCompatibility = 1.8repositories { maven { url 'https://maven ...
Spock单元测试系列教程
Spock是一个用于Java和Groovy应用程序的测试和规范框架。使它从人群中脱颖而出的是它美丽而富有表现力的规范语言。由于它的JUnit运行器,Spock可以兼容大多数ide、构建工具和持续集成服务器。Spock的灵感来自JUnit、jMock、RSpec、Groovy、Scala、Vulcans和其他迷人的生命形式。
以上话术引用自Spock官网
一句话概括
使用 Groovy 语言编写的支持 Mock 的单元测试框架,比 Mockito 和 PowerMock 编写的代码更简短且更适合人阅读。
不足之处
Java 的静态方法 Mock 效果不理想,截止目前(2019-09-28)要 Mock Java的静态方法还需要借助 PowerMock。
因为不运行 spring 环境,所以 mybatis、springjdbc、hibernate 等查询数据库操作测试成本很高,需要自己处理运行时环境。
上手难度
☆☆☆☆☆:没有难度
开始使用
永恒的 Hello Word
语法和规范
能力进阶
复杂案例
gradle5删除左移符号支持导致无法编译
错误现象123456789101112131415FAILURE: Build failed with an exception.* Where:Script 'http://sc.dev.xxxx.com:8080/script/gateway.gradle' line: 87* What went wrong:A problem occurred evaluating script.> Could not find method leftShift() for arguments [gateway_3jdkdl89l6uef4r948spaebo1$_run_closure12@13b89f08] on task ':replaceBuildInfo' of type org.gradle.api.DefaultTask.* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log ...
VLOOKUP
说明在这一最简单的形式中,VLOOKUP 函数表示:
1=VLOOKUP(要查找的值, 要在其中查找值的区域, 区域中包含返回值的列号, 精确匹配或近似匹配 – 指定为 0/FALSE or 1/TRUE)。
技术细节使用 VLOOKUP 函数在表中查找值。
语法1VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
参数名称
说明
lookup_value (必需参数)
要查找的值。 要查找的值必须位于 table-array 中指定的单元格区域的第一列中。例如,如果 table-array 指定的单元格为 B2:D7,则 lookup_value 必须位于列 B 中。请参见下图。 Lookup_value 可以是值,也可以是单元格引用。
table_array (必需参数)
VLOOKUP 在其中搜索 lookup_value 和返回值的单元格区域。该单元格区域中的第一列必须包含 lookup_value(例如,下图中的“姓氏”)。 此单元格区域中还需要包含您要查找的返回值 ...