关于java:曝光一个网站我周末就耗在上面了

40次阅读

共计 4667 个字符,预计需要花费 12 分钟才能阅读完成。

这是 why 的第 107 篇原创文章

你好呀,我是 why。

刚刚过来的周末你干啥了,是卷起来了,还是躺平了?

我其实是想躺平的,然而无意间发现一个学习的网站,竟然被这个网站吸引了,而后就跟着网站卷起来了。

真是一个十分不错的网站,好货色,要大家分享,于是我决定“曝光”一下。

介绍这个网站之前,我先问你一个问题:

Arthas 这个 Java 程序诊断工具,你晓得吧?

我置信绝大部分同学都是晓得的,然而也有很大一部分同学仅仅是在“夸夸其谈”的阶段而已。

没有本人实际操作过。

为什么呢?

我猜你刚刚晓得 Arthas 的时候,必定是被它各种炫酷的操作、页面给吸引到了。

心想:卧槽,这么 6?

.png)

兴高采烈的筹备实操一把,后果一看:须要本人搞个 Demo,把 Demo 扔到服务器上运行起来,而后在服务器上安装 Arthas,能力剖析。

这一套操作对于大部分人来说是没有啥问题的。

然而还是有相当大的一部分同学,都没有一个属于本人的服务器。

巧妇也是难为无米之炊的呀。

第一步就被卡的死死的。

有心实操,奈何条件无限。

于是这事就被搁浅了,放着放着,因为本人没有实操过,对于 Arthas 的各种骚操作也就忘的差不多了。

没有一个趁手的 Demo,没有服务器,没有一个装置好环境的服务器。

这种问题经常出现,也算是学习中遇到的“最初一公里”的问题。

我碰到的这个网站,就是为了解决“最初一公里”这一问题的。

兴许它还不够欠缺,然而至多在 Arthas 上的反对曾经是属于无可挑剔了,真正的手摸手教学。

铺垫了这么多,那么网站是啥呢?

就是上面这个网站:

https://start.aliyun.com/

知口头手实验室,是阿里旗下的阿里云弄出来的云原生开源技术体验平台。

它自带运行环境。

使用者只须要关怀教程内容自身,无需为繁琐的运行环境筹备工作浪费时间。所有试验都在一个当时筹备好运行环境的容器中运行。

它具备沉迷式学习体验。

集交互式文档、终端、编辑器三个窗口于一个浏览器页面,无需在多个窗口来回复制粘贴。

它能够一键主动执行命令、代码主动批改。

文档实时可交互,通过鼠标点击即可一键主动执行命令、代码主动批改等操作;也能够抉择在终端、编辑器内手动输出查看成果。

我晓得,这里的画风看起来很像是一个广告。

然而我赌咒,我真的是自来水,真心举荐。

要入手,多入手

知口头手实验室,看这个名字就晓得强调的是“行知合一”,是“入手”。

我已经看到过阿里的一篇名叫《我看技术人的成长门路》的文章。

文章外面提出了一个 721 原创:

70% 做中学,20% 向别人学习,10% 自学

然而理论状况呢,咱们不得不抵赖,大家自学占据了相当大的比重。

而大家自学的时候都有一个通病就是:只看、只想,根本不入手。

对于入手,我印象最深的就是我看这本书的时候:

我记得看这本书的时候,是我刚刚毕业一年多的时候。

过后感觉技术书还挺贵的,还是和共事一起合买的,一人出一半的钱,书放在办公室大家一起看看。

我那个时候一有工夫就去翻翻这书。

第一次看的时候感觉:哇塞,这真是一本好书啊。外面全是我不晓得的知识点。

然而看完之后,没隔多久,遇到一个问题而后想了半天:呃,这个问题书上如同讲过啊,怎么就想不起来了呢?

于是我就问共事:你是怎么看这个书的呀?我前段时间把书每一页都翻完了,然而当初好多货色都想不起来了。

他通知我:首先得多看,书中的信息量对你来说还是太大了,看一遍排汇不齐全是很失常的。还有,书外面的这么多入手操作的实例,你跟着敲了没?我都操作了一遍,遇到了各种各样的坑。印象自然而然的就粗浅了一点。

堪称是一语点醒梦中人,我的确是没有实操过。

不仅没有实操过,甚至一看到实操局部的具体命令,我都是几眼就瞟完了,因为我感觉这部分不重要。

起初我又看了一遍,看这遍的时候,我搞了几个服务器,就跟着书上,把下面的命令都敲了一遍。

进度慢了很多很多,然而排汇的货色也多了很多很多。

过来这么几年了,时至今日,我都记得周末的时候我跑到公司去翻这本书的场景。我都记得我跟着书上搭建集群的时候遇到的各种各样奇奇怪怪的问题。我都记得那 16384 个槽,还有那我怎么也运行不起来的 redis-trib.rb。

我都记得几年当前的一次,面试官问我:你理解 Redis 的集群吗,你本人搭过集群吗?

我当然记得了,毕竟之前那个只有一年教训的小伙子硬着头皮搭集群的时候,心态都被搞崩过数次。

还有近段时间断断续续在看的《MySQL 实战 45 讲》、《MySQL 是怎么运行的》、《高性能 MySQL》。

外面其实都有大量的实例,特地是 45 讲,好货色呀,老师全是基于案例去讲的。

我看的时候也看的很慢,反正不论懂不懂,先入手开几个窗口,而后把试验的 SQL 筹备好,跟着老师一步步的来。

总之,就是要入手。入手,才是学习新技术的不二法门。

做中学,就是入手去做,边做边学。

然而入手的时候大多数工夫都是在环境的筹备上,导致效率略微有了那么一点点的低下。

而这个网站,就在局部我的项目上,解决了这个问题。

知口头手实验室

回到知口头手实验室,带大家一起逛一下这个网站。

说真的,目前这个网站的货色不算特地多,也就是破费了我一个周末的工夫钻研了一圈。

次要是外面还有一些我不太理解的开源我的项目,去理解了一下,开辟了一下眼界。

主打的都是阿里生态下的一些技术栈,目前一共有 16 个教程:


能够看到,首先映入眼帘的就是 Arthas 这个诊断工具,毕竟是阿里的亲儿子中比拟有长进的一个嘛。

全力推广,不过分。

Arthas 其中分为了四个教程,从入门到实际一应俱全。

接着是 Spring Cloud Alibaba 系列体验:

外面的六个小试验,其中分布式配置、服务注册与发现都是基于 Nacos 做的。RPC 调用应用的是 Dubbo Spring Cloud、限流与熔断基于 Sentinel、分布式事务应用 Seata、分布式音讯基于 RocketMQ。

根本涵盖了微服务开发的次要模块。

算的上是一次残缺的体验。

当然了,还有一些其余的 RocketMQ、Dapr、Dubbogo、ChaosBlade、k8s 的实操教程,就不一一解释了。

大家晓得目前外面有这些货色就行。

下面提到的大家可能对于 Dapr 和 ChaosBlade 略微生疏一点。

简略的说一下。

Dapr 的全称是 Distributed Application Runtime,翻译过去就是分布式应用运行时。

它次要是为了云原生而服务的。

应该是属于服务网格中的一种技术,是一种运行时,反对 k8s,目标是为了更好的隔离业务,让业务更少的感知中间件等根底建设。

其实与它对标的,应该就是 istio 架构。

须要留神的是 Dapr 是由微软发动的一个开源我的项目,并不是阿里。

阿里是 Dapr 开源我的项目的深度参与者和晚期采纳者,相当于是对于 Dapr 的一个国内大厂背书。

而 ChaosBlade 就是阿里巴巴开源的一款遵循混沌工程原理和混沌试验模型的试验注入工具,帮忙企业晋升分布式系统的容错能力,并且在企业上云或往云原生零碎迁徙过程中业务连续性保障。

援用其 git 上的形容:

https://github.com/chaosblade…

该项目标生态如下:

目前反对这么多场景:

比方在知口头手实验室外面就有三个试验场景:

总之,对于 ChaosBlade 你就记住一句话:

它是来搞破坏的。给零碎或者零碎运行的环境注入各种各样的故障,以测试并晋升零碎的稳定性和高可用性。

在知口头手实验室外面,除了后面提到的官网教程外,它还反对大家本人上传教程。

上面这几种状况就很适宜在下面公布教程:

  • 开源、开发者社区在知行公布开源我的项目入门教程,帮忙你的社区用户更好的上手
  • 技术书籍作者在知行公布你的随书试验,补救技术书籍只能浏览、无奈实操的缺点
  • 培训机构在知行公布的课程先关的教程,配合已有的课程视频,你的学员能够在知口头手实操

你想想,要是我后面提到的《Redis 开发与运维》书外面的随书试验能公布到这里,那岂不是美滋滋?

学习效率必定又高了起来。

教程,是该实验室的一大外围性能。

然而,它还有另外一大性能:

Java 工程脚手架,上面的标语是:

更适宜亚太区开发者的 Java 工程脚手架。

尽管我目前还不明确为什么是“更适宜亚太区”,然而反正听着就很厉害的样子。

其页面是这样的,是不是很眼生?

一看就是对标的大家更为相熟的这个:

https://start.spring.io/

然而通过我的理论应用,我不得不说,还是阿里的脚手架更好用一点。

比方我用阿里的脚手架,搭建的时候抉择一个 web 我的项目的示例代码:

该我的项目构造如下:

而且这个 web 我的项目不须要改一行代码,甚至不须要你启动数据库,就能间接运行起来。

因为其应用的 h2 数据库:

运行起来后,拜访 h2 控制台如下:

尽管 Demo 我的项目运行的过程中我发现了几个 bug,然而整体无伤大雅,批改起来也很简略,对于初学者来说,还是很敌对的。

在这个页面我还发现了一个叫做 COLA 的我的项目架构:

COLA 是啥玩意?

https://github.com/alibaba/COLA/

我在官网上拉了一个 COLA 的 Demo,跑了起来,我的项目构造如下:

官网给了这样的一个代码结构图:

看到这里的时候,我大略明确了,有 App 层、Domain 层、Infrastructure 层,这个架构其实就是 DDD 思维的一种落地吧。

通过这两天短暂的理解,我发现如果想要了解一下形象的 DDD 思维,那么 COLA 架构,我感觉是一个不错的切入点。

Arthas 教程

后面介绍了这么多货色,我还是来带着你实操一把,外面的黄金教程:

其实我感觉真的没有这个必要,因为它下面的教程曾经是一步步的手摸手教学了。

比方,你看这个 Arthas 基础教程,我给你录个屏幕:

右边是操作文档,左边是运行环境。所及即所得,多香啊。

我是强烈建议你把四个教程都本人去看一遍,操作一把。

然而重心能够放到这个教程外面:

你看看这个教程外面的 14 个试验:

都是实战性的手摸手教学,他人环境、场景、工具都给你筹备好了,你只有须要关注于怎么应用这个工具就行了。

比方其中的“Arthas 热更新代码案例”,这个其实就是一个生产环境经常会遇到的一个问题:

有一个判断逻辑有问题,我不想批改代码之后,从新打包,而后走上线流程,怎么办?

Arthas 热更新理解一下?

比方,上面的代码:

@GetMapping(value={"/user/{id}"})
public User findUserById(@PathVariable Integer id) {logger.info("id: {}", (Object)id);
    if (id != null && id < 1) {throw new IllegalArgumentException("id < 1");
    }
    return new User(id.intValue(), "name" + id);
}

当初当申请的 id 小于 1 的时候会抛出异样。然而上线之后,咱们通过评估发现这个中央兴许返回一个默认的值,不抛出异样会更好一点。

那么咱们就能够用 Arthas 对这段代码进行热更新。

右边是批改之后,左边是批改之前:

具体怎么去批改,怎么去用 ClassLoader 加载批改之后的代码,这个案例外面都有具体的应用阐明:

当然了,如果你要是在实操之后,又再去理解了其热更新背地的工作原理,那么是再好不过的了。

晓得了应用形式,把握了实现原理。祝贺你,再给本人的套一个生产案例,不经意间面试的时候有多了一个加分点。

另外,悄悄的说个骚操作。

你能够轻易找个教程,领个窗口,而后 ……

比方我装个 Redis:

用起来也是不错的:

而且它也反对文件的上传和下载:

诶,反正就是玩嘛。就当相熟 Linux 命令了。

正文完
 0