首页 > 编程知识 正文

学习结果和学习目标是一样的

时间:2023-05-05 20:24:46 阅读:182325 作者:3885

本文虽然不是纯技术文章,但我个人认为这篇文章或可以给你带来不同的观点。

一、“精品”协和式飞机周末闲下来,在查看了关于“协和式飞机”和“内存抖动”的飞鱼(抛物线)视频后,感慨颇深。 能够如此通俗易懂地介绍一项技术的本质,对该技术的理解已经回归了真实。因为要把“高级”说得“通俗”需要对逻辑有清晰的认知

内存灾难视频地址: https://www.bilibili.com/video/bv1x f4y 127 ur

协和式视频地址: https://www.bilibili.com/video/bv 164411 c7f k

协和式这个词听起来确实很高级。 不仅是在写作中创作者确实会喜欢用一些“高级”的词汇来“装饰”内容,这些高级的内容会形成“热点”,而追逐热点也是创作者的“习性”Kotlin的“协和式”,例如:

Vue 3.0上市后,会跟进源代码和新功能的解读,Deno 1.0的发布也有很多比较和安利报道; 追赶热点必须抬起,所以抬起后,必然会带来部分对立,产生矛盾和流量。 “追赶热点”并不是有什么问题。 “希望创作者带来流量”是一个很普通的诉求,所以只有这个度一直很难把握。

就像Deno出来后鼓励Node.js冷却一样,就像在安卓领域Kotlin发售后也鼓励Java冷却一样,近两年“合作”的出现,成为了Kotlin热捧的“高级”概念“合作”需要将RxJava构筑成神坛。

那么接下来,我们以“协和式飞机”为切入点聊聊家常吧。

凯柯是关于“协和式”的视频,“协程”在 Android 上就是“切线程”

不是瞬间就觉得“没意思”了吗?“协程”只是 Kotlin 对于 Thread 的高级封装,本质和 Java 的线程池并没有太大区别,Kotlin 的“协程”是把 Thread 变成可以更方便地使用,能用“阻塞式”的语法写出“非阻塞式”的效果

借用下凯哥对比的代码,直观吗?

基于Android Kotlin,“协和式”就像“语法糖”,让开发人员更容易使用线程。 当然,在 Android 上也不存在 “协程”比线程更轻的概念

那么,为什么要有新技术,新概念要“高级”呢?其实从这一点也可以看出官方在推崇新技术时也会“偏袒”正因为是“高级”,所以值得学习。

二、关于协和式思维,“协和式”并不是Kotlin独有的概念。 事实上,安卓的技术堆栈一直“比较保守”,不断吸纳其他领域能力的完美自身。 从MVC、MVP、MVVM、Dagger、AOP、响应乃至“协和式”来看,这些技术实际上在其他领域已经存在

因为我们会因为掌握了“高级”技术而自豪,新技术需要“高级”来带动热度例如JavaScript和Dart,比Kotlin更早就有了“协和”的概念。而 “协程” 比线程更轻的概念,在另外一些技术上是成立的

以移动开发中众所周知的React Native和Flutter为例,它们都是单线程运行的。 如果需要在这些代码中执行异步操作,请参阅因为JavaScript 和 Dart 大部分时候是运行在单线程上

又看到了难以理解的“高级”概念了吗? 在这里用不恰当但很有趣的比喻来说明:

在Kotlin的“合作”就像北约的多重影分身术,它们是物理存在的。 少笑月饼成为火影后,可以拥有多个影分身、娃娃和工作,进行真正的“多人运动”。

JavaScript和Dart的“协和式”就像龙珠的“分身术”,实质上是一个人。 虽然运动速度太快,看起来像个分身,但本质上就像一个人分割多个时间点,一个人时间纬度的“日程战略”。

关于日程策略,建议参考本文的前半部分介绍。 https://juejin.im/post/5 dadc 6045188255 a 270 a0f 85

当然Dart也有类似isolate的真线程概念,但当然这是另一回事。

例如,Dart上的异步,简单地说就是将需要异步执行的代码放入任务队列,然后线程轮询该队列。 如果遇到“异步任务”,则跳过,如果“完成后”不再是“异步”,则检索并运行结果。 如果尚未完成,则继续跳过并等待下一时间的轮询。

把异步的代码“挂起”,然后在线程的下一个“时间分片”上去处理,这时候的“协程”就只是一个“伪线程”,它“很轻”

实会让人在介绍技术时,不自觉地抬高了自身的“地位”,最典型就是凯哥所说的:面试官喜欢问“内存抖动”的概念。

本质上“内存抖动”其实就是频繁 GC 导致内存出现上下波动的情况,比如 Android 在 onDraw 方法里创建 Bitmap 引起的内存变化,但是在将这个现象将其称之为 “内存抖动”后, 确实显得形象和“高级”了不少。

而技术人在写作时,不自觉会把“高级”的概念给复杂化,因为“不复杂怎么高级”?

而我也开始反思自己过去在创作上的这种心态,优越感其实并不应该来自于“我会用这种高级的技术” ,而应该是“我能把一项高级的技术用最简单的方式和你讲明白”。

四、最后聊聊写作和学习

在思考“协程”的问题上,最后我想到的是写作。作为一个创作者其实我也“追热点”,比如:

我很早就追 Flutter 的技术热点;每次 Android 新版或者 Andorid Studio 的大版本更新我也会追;

因为作为创作者和开发者,新技术能给我带来话题和红利,在我的经历里,我觉得写作是最好的学习。想把一个东西“写明白”,你就需要先让自己“看明白”它是什么,另外“好记性不如烂笔头”,我现在都还会时不时翻自己的文章找一些东西。

所以当有人问我应该怎么学习时,我都会说:“试试写出来”?

当然写出来的东西就要被人“审阅”,自然就有人喜欢有人讨厌,互联网上的“戾气”相信大家应该有所体会。所以作为创作者,不可能想着把读者都服务得面面俱到,接受“反对”甚至“批判”的心理预期还是要有的,总不能因为部分的“否定”就放弃了吧。

举个简单的例子:比如每次发布 Andorid Studio 更新的文章,都会有反对或者抱怨的一方。其实我也理解,因为确实旧版本“又不是不能用”;又比如我在安利 Flutter 的时候,也会收到各种反对的意见:“Flutter 语法落后”、“跨平台没有前途”之类的评论。
“学不动”确实是当下的常态,我们希望可以在“固化”的技能下养家糊口,这很正常。

而关乎新技术,我的观点是:新技术的出现代表着新的可能,新的红利甚至新的机会。一般如果条件允许我会多去尝试新的可能,虽然这并不容易,但是这么做的原因可能是我在原本的领域遇到了“瓶颈”。

当然这个“瓶颈”不是我技术已经“巅峰造极”,而是感觉“我就到这了”,或者新的东西可以带来新的突破?确实在接触了跨平台和前端开发之后,反过来去理解 Kotlin 上的“协程”、Java 上的Stream 时,理解上是就有了不一样的视角。

另外,我也会时不时写错东西或者理解错一些概念,也很感谢那些指出我错误的人。虽然被人指出错误我会感觉挺“羞耻”,但是这比一直错下去好很多,比如之前我写过一篇文章,收获了不少意料之外的“投诉”和“反对”,这也给我带来了很多不一样的思考和理解,充满戾气的反对确实会让我产生“郁闷”,但是气消后再想想感觉也挺有意思的。

写这篇文章最主要是目的还是有感而发,吐吐槽,虽然我本身也挺懒的,也希望可以在舒适区内多待一会,“又不是不能用” 也是我口头禅之一,但是时不时我还是会选择出来折腾一下,大概潜在的意识里还是有些“不甘心”吧

码码字,装装逼,作为一个普普通通的程序员,往往就是这样的朴实无华,且枯燥。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。