好友来汉,得一日偷闲

JavaGuide

共 4834字,需浏览 10分钟

 ·

2021-05-19 23:58

这是 「编程杂感」 系列第 8 期。我想尽可能每周或者每两周分享一篇 「编程杂感」, 分享自己在这一周的思考和碰到的比较有趣的东西。每个周末思考 「编程杂感」 要分享的内容,对我来说是一件非常有意义的事情。如果我分享的内容,对你也有帮助或者启发的话,那就更有意义了。😁

另外,分享的内容,我不太想局限在编程领域。编程不是一个程序员的全部,还有其他很有意思的东西等待我们发现。

思考

为什么要重视代码质量?

关于 为什么要重视代码质量? ,我想从下面两点谈谈:

  1. 从项目是否能够顺利交付这个角度来说 :如果你的代码过于混乱,可能会影响到整个项目的进展,甚至影响到整个项目是否能顺利完成。试想一下:“假如你们的项目代码特别糟糕,这个时候你们要在原有代码的基础上再增加或者修改一个功能的话是不是会让人头疼?开发速度是不是会越来越慢?”。好的代码质量是一个产品能够长久发展下去的基石,没有高质量的软件,何求用户愿意使用你的产品?
  2. 从系统的可用性这个角度来说 :大部分常见的 Bug 比如内存泄露、循环依赖都是因为不注意代码质量导致的。大家都喜欢谈限流、降级、熔断,而忽略了系统高可用最重要的因素之一就是代码质量。如何提高代码质量?比较实际可用的就是 CodeReview,不要在乎每天多花的那 1 个小时左右的时间,作用可大着呢!

不过,好的代码不是一步就能得到的,而是一步一步重构获得的。

如何获取技术最新动向?

1.关注一些技术社区的动态比如 Github Trending。

2.关注一些公开的技术分享

国内的话,infoq[1] 上平时就会有一些质量还不错的技术分享。

3.关注一些技术大佬

那我自己来说,我在 Github 上关注了一些在 Java 领域造诣很深的大佬比如Liang Zhang[2]Apache ShardingSphere[3]ElasticJob[4] 创始人 & 项目管理委员会主席)、xiaoyu[5](作为主要作者开源了 soul、hmily 等框架)、秦金卫[6](Apache Dubbo/ShardingSphere PMC)......。

我平时没事就会看一下他们的动态,看一下他们最近在关注什么项目。

网站

VisuAlgo[7]

这个网站上有各种数据结构和算法的动态可视化过程。

emojitracker[8]

实时监测统计哪些表情在 Twitter 被使用的次数最多!

免费版权图片一键搜索[9]

聚合了多个无版权平台的图片,一键直达!

我平常经常需要用到一些免费版权的图片,这个网站聚合了多个免费版权的图片,非常方便!

正则表达工具箱[10]

非常好用的正则表达工具箱!不光可以在线测试、解析正则表达式,还提供了一些常用正则表达式规则的备忘单!

开源

最近两周,awesome-java[11] (非常棒的 Java 开源项目集合)这个项目中又添加了 4 个不错的开源项目。

  • Portainer[12] :可视化管理 Docker 和 Kubernetes。相关阅读:《吊炸天的 Docker 图形化工具 Portainer,必须推荐给你!》
  • BallCat[13] :一个功能完善的快速开发脚手架!除了最基本的权限管理,定时任务功能之外,还额外支持 XSS 过滤,SQL 防注入、数据脱敏等多种功能。
  • Sa-Token[14] :轻量级 Java 权限认证框架。支持认证授权、单点登录、踢人下线、自动续签等功能。
  • Metrics[15] :捕获 JVM 和应用程序级别的指标。所以你知道发生了什么事。

由于长时间没有维护,awesome-java 移除了 renren[16] (基于 Spring、MyBatis、Shiro 框架,开发的一套后台脚手架框架)这个项目。

其他值得关注的开源项目:

  • Quarkus[17] : 云原生时代高性能 Java 框架。
  • Wiki.js[18] :快速创建好看的文档网站!

阅读

文章

1.《四年磨一剑:我是如何拿到蚂蚁 offer 的?》

📅 2021-02-26 👍👍👍👍👍

很励志!本文作者大学并非计算机专业,而是机械工程。经过 4 年的努力,最终如愿以偿进入自己梦寐以求的阿里。

在实现目标的过程中,他总结了最重要的 3 点就是:学会总结、窥探源码、迎接挑战。

2.《给想成长为高级别开发同学的七条建议》

📅 2021-04-28 👍👍👍👍

文中给出了很多在我看来比较中肯的建议。比如说:

  • 我们要加强理解需求的能力,避免产品经理说啥就是啥。
  • 我们要关注自己写出来的代码的性能(比如 QPS 多少?)。
  • 我们要善于归纳总结(比如你可以在一个项目结束之后花一些时间总结一下)。
  • ......

3.《洞察设计模式的底层逻辑》

📅 2021-04-15 👍👍👍👍👍

本文主要讲了设计模式的底层逻辑:“找到变化,封装变化”。

4.《2020 中国独立开发者生存现状调研报告》[19]

📅 2020-04-27 👍👍👍👍

虽然,国内独立开发者的数量正在慢慢增多。但是,目前国内独立开发者的比例还是比较低的,相比于美国这类发达国家来说。

这篇文章是对 SegmentFault 社区做的一次比较有意思的关于国内独立开发者调研的总结。

我相信很多小伙伴都和我一样都对独立开发非常感兴趣!下面,我们就简单来看一下这篇文章中所贡献的一些比较有趣的数据(数据来源基于 590 份调研问卷,仅供参考)。

a.调查显示独立开发者年龄主要在 18~40 岁。

b.调查显示大部分独立开发者的收入在 1k 附近徘徊。

c.调查显示大部分独立开发者的每周工作时间是少于 28 小时的。

5.《在中国,程序员是青春饭吗?》

📅 2019 👍👍👍👍

从 35 岁程序员面临的各种现实问题说起,然后给出了 35 岁程序员被裁的真相,最后给出了一些比较有价值的建议比如程序员可以走的几个大方向(纯技术路线?技术管理路线?转岗?......)。

6.《深入理解 MySQL 索引底层原理》[20]

腾讯技术工程 📅 2020-03-18 👍👍👍👍👍

对 MySQL 为何要选择 B+ 树作为索引的数据结构介绍的很清楚。

7.《Rust vs Go》[21]

John 📅 2020-11-06 👍👍👍👍👍

多个角度非常可观地对比了 Go 和 Rust!

8.《软件工程的最大难题》

阮一峰 📅 2021-05-10 👍👍👍👍👍

这篇文章主要介绍了大项目的困境、大项目开发效率比较低的原因以及解决大项目开发问题的办法(代码解耦、团队解耦)。

9.《Spring 官宣,干掉原生 JVM!》

Spring 官网 📅 2021-03-11 👍👍👍👍👍

为了应对云原生时代其他编程语言的冲击,Spring Native[22] 的 Beta 版本提供了一种部署 Spring 应用程序的新方法。

书籍

《快速阅读》 [23]

石卫华 📅 出版日期 2020-04 ⭐⭐⭐

评价 :书中的有些观点还是有些作用的,可以当做休闲读物。

内容总结

  1. 快速阅读是一项技能,是可以通过后期训练掌握和提高的!
  2. 并不是任何书,你都能读的很快。能不能读得快,与自己的知识背景和书的知识结构特点有很大的关系。
  3. 三遍阅读法是目前被普遍接受的一种阅读方法:
    • 第一遍阅读-影像速读 :每页阅读时间 2~3 秒即可,熟悉书籍大概涵盖的内容。
    • 第二遍阅读-眼动速读 :“永远用略超过你理解能力的速度去读”。因为只有这样,阅读的速度才会越来越 快,读书的效率才会越来越高。遇到自己比较重要的章节可以适当放慢阅读速度。
    • 第三遍阅读-思维导图阅读 :将书中重要的内容通过思维导图展示出来。

《社会心理学》[24]

[美国] 戴维·迈尔斯 📅 出版日期 2006-01 ⭐⭐⭐⭐⭐

评价 :非常不错的一本社会心理学科普读物,内容贴近生活。

内容总结 (目前只看了前 3 章):

闲聊

昨日姚老师(知名图书策划)来汉,约上几位朋友(悟空:悟空聊架构”号主,全栈大佬。雷架:”爱笑的架构师“号主,大厂搬砖中),请他们吃了火锅, 得一日偷闲。

参考资料

[1]

infoq: https://www.infoq.cn/

[2]

Liang Zhang: https://github.com/terrymanu

[3]

Apache ShardingSphere: https://github.com/apache/shardingsphere

[4]

ElasticJob: https://github.com/apache/shardingsphere-elasticjob

[5]

xiaoyu: https://github.com/yu199195

[6]

秦金卫: https://github.com/kimmking

[7]

VisuAlgo: https://visualgo.net/zh

[8]

emojitracker: http://emojitracker.com/

[9]

免费版权图片一键搜索: https://www.logosc.cn/so/

[10]

正则表达工具箱: https://regexr.com/

[11]

awesome-java: https://github.com/CodingDocs/awesome-java

[12]

Portainer: https://github.com/portainer/portainer

[13]

BallCat: https://github.com/ballcat-projects/ballcat

[14]

Sa-Token: https://github.com/dromara/sa-token

[15]

Metrics: https://github.com/dropwizard/metrics

[16]

renren: https://www.renren.io/

[17]

Quarkus: https://quarkus.io/#

[18]

Wiki.js: https://js.wiki/

[19]

《2020 中国独立开发者生存现状调研报告》: https://segmentfault.com/a/1190000039910514

[20]

《深入理解 MySQL 索引底层原理》: https://zhuanlan.zhihu.com/p/113917726

[21]

《Rust vs Go》: https://bitfieldconsulting.com/golang/rust-vs-go

[22]

Spring Native: https://github.com/spring-projects-experimental/spring-native

[23]

《快速阅读》 : https://book.douban.com/subject/35039640/

[24]

《社会心理学》: https://book.douban.com/subject/1476651/


< END >


推荐👍 :1049天,100K!简单复盘!

推荐👍 :年薪 40W Java 开发是什么水平?

推荐👍 :Github掘金计划:Github上的一些优质项目搜罗

我是 Guide哥,拥抱开源,喜欢烹饪。Github 接近 10w 点赞的开源项目 JavaGuide 的作者。未来几年,希望持续完善 JavaGuide,争取能够帮助更多学习 Java 的小伙伴!共勉!凎!点击查看我的2020年工作汇报!
欢迎准备面试的朋友加入我的星球
一个纯 Java 面试交流圈子 !Ready!
原创不易,欢迎点赞分享。咱们下期再会!
浏览 61
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报