状态

状态——这是个很棒的概念,因为这个概念什么都不是,所以你几乎可以把任何东西填进去,把这里作为一个知识库各种玩意的一个中继点。就像 js 原型链最头头上是个 null。

“状态”

相比 Expressions,Statements 远没有那么天经地义,还有很多名词都能让我想到这个东西...状态机,寄存器,记忆,temp,channel...嗯。经典的定义与赋值就属于Statements。编程里的单等号不是数学表示相等的等号而是“赋值”。


我又在react文档看到了这部分... useState 弄出的东西被叫做组件的记忆,而为了代码的健壮,通常,我们要谨慎的设计、控制、最小化这一部分。


状态机。程序,计算机提供的所以服务都能被看作是,状态机。
从编程角度来讲,在以 C 语言为代表的高级语言的控制流出现之前,在编程还是直接在内存里到处 jump 的年代,就已经有状态这个概念了,在那时也确实会需要流程图这种玩意——全是 goto,不画个图代码可能是真的没法看,而这里画的这个图,就可以看做一种状态机(代码如果看得懂的话也是)。


一个人能能走的多远不在于他在顺境时能走的多快,而在于他在逆境时多久能找到曾经的自己。——KMP/动态规划。


前端的一些“状态管理”的库或者说方案,还有那个有名的RxJS... Promise, 甚至上升到一些编程范式设计模式,比如各种“生命周期”...


编译原理中的一些。


甚至在狭义的编程之外,一些素材比如图像处理之类的,会用各种线把各种模块连在一起搞出一个...流水线一样东西。


花木瑞挖坑大约 8 分钟
计算机基础

base basic表示基本的,简单的,初级的意思; foundation 偏...物理上的地基; fundamental “本质,核心,根基”

嗯...这学期刚好学了计算机网络、操作系统,计算机组成原理这些,组成原理我搞的懵懵或者根本没花功夫学,也不太知道具体能做什么...而且本身也偏硬件,不会就不会吧。

所以,这里主要是计算机网络和操作系统。 互联网的传输协议,信息传输,文件数据,在线播放...和操作系统更相关的线程,调度一类......

其实还有门数据库,数据库设计一类的...但现在都tm搞了一堆NoSQL去用,这门课好像不太重要了,而学校教oracle教mssql...虽然听说它俩是大杀器能干八百个mysql,把原本后端的业务全塞进数据库也没问题那种,但其实也没学出来什么神奇的东西......
第一次写奇奇怪怪的SQL那段时间,蛮折磨的...听到表设计、数据库模式、事务、锁、死锁和调度...也云里雾里...现在想想...感觉像是操作系统和java设计模式之间混来混去的一个东西...(但现在也还是知道那是在干什么又要怎么干。
而就我最近的体会,也许这门课可以看做一种大号字符串处理?...我这样说话是不是显得我很笨蛋...
只不过并不是所有东西都能被这样处理...很多现在很重要的东西比如图片音频视频,也许依旧能用机器学习能给它们打标签,只是...我也不知道只是个什么。


花木瑞挖坑基础大约 2 分钟
计算机网络

这可能是为数不多的...我这学期听下来的课...

先,过一下网络的五层模型。

给我的感觉是,这是一个贯穿硬件到软件还有协议的科目...底层的某些东西像C2C,汉明码和计组那边算是通用的,TCP的各种算法调度又像是到了操作系统...

  1. 物理层,提供最基本的连接,几种传输线和介质...传输线、信道的复用以及怎么一边复用一边避免冲突...
  2. 链路层就要考虑谁和谁连接和传输的有效性的问题了,这里出现了mac地址,交换机和c2c校验这种东西
  3. 网络层,mac地址依旧有问题,由于它的扁平化,分布随机,想要在较大网络相互找到很困难。于是有了IP协议,将网络地址的分配做成层级的,有规律的,相关的像子网划分、CIDR、DHCP、NAT...然而...怎么说呢,现在大部分网民似乎搞不到公网IP,ipv6,内网转发算是办法,但现在...从大的互联网公司申请服务,然后在它们ip之下的一些应用去获取身份似乎更加普遍。
  4. 在网络层解决了基本的相互找到的需求,而在相互找到之后的通信数据传输,则还要有运输层的TCP UDP之类的协议来保证,这里TCP的调度,滑动窗口,拥塞避免,重传,握手,等等等等...
  5. 再然后就是应用层了,http ftp smtp p2p来满足进一步的具体需求。这里也是之后会进一步了解学习然后使用的部分..毕竟搞软件,这是最直接最基本的接口.....

花木瑞挖坑基础大约 3 分钟
操作系统

嗯...其实没好好学,就考试突击...

那我就...胡说八道啦!

这些东西给我印象就是...调度。

PV操作,进程同步,资源分配,死锁... 时间片轮转、先来先服务、短进程优先(像是种贪心),优先级,高响应比优先;抢占与非抢占... 最先适配、最佳适配、循环适配..中断,缺页,虚拟内存。 磁盘寻道。

IO,文件系统......

日...我真写不出来什么囫囵的东西,...弄得乱七八糟到处都是。

但是,java要写,肯定要使用被操作系统抽象出的计算机资源,或者前端也一样,使用浏览器提供的...只能等我再学学再写写代码然后再说了...


花木瑞挖坑基础小于 1 分钟
怎么写东西

引子

前端,这些年来算是一个变化挺快,也吵的挺欢的地方。(不然我也不会注意到)
可能比起java那边一大片万年不变的java8,js这边一有新出的写法就去用就去尝试。而因为这种...热情?为了用新写法的同时兼容旧版本的js还出了个专门从高版本转到低版本的像是编译器一样的东西————babel。

不光是js的各种版本,typescript,或者vue、react等等前端的库或者框架也一样,提供的更多的也并非是机器性能上的优化,反正它们最后都要转成js才能被浏览器运行...它们提供的更多的是写法与一种实践模式的优化。————不光要关心机器那边的问题,人这边的问题也要关心。
单文件组件,vue的模板语法,react的hook..也会有疑问,是因为有了这些想法才让前端也长成了一片有着不小复杂度、能做成更多事情的地方,还是因为想要做到更多事情,才慢慢从这里挖出了这些想法......我觉得是前者,可能,一开始就是闲得。


花木瑞记录挖坑大约 2 分钟
云盘

这一部分,主要想看几个开源的云盘项目的代码,如果可以的话,找个看顺眼的把它的前端用最新的技术栈重写一遍。
依旧是一个...go to moon的坑,也许没有实际价值,但,...总是要走吧,至少比学校的那些憨批项目要强。

这种正规点项目的前端代码量基本是要上万了,尤其上面那个竟然20万行?虽然很大一部分是写自己写UI组件和各种调配接口...逻辑的部分也许不多,但...还是有点怕。 等看了再说吧。

2022-12-13


花木瑞挖坑日记大约 21 分钟
拖拽~

就是说...原来在html标签上写个 draggable=true 就可以给元素添加拖拽属性...什么js监听鼠标点击移动然后通过对大小布局时间的一系列计算处理这个事件什么的...不存在的,爬一边去。 而图片等等元素是自带这个东西的。 ...纯html,css,js三件套就已经这么高级了吗...感觉,要变成笨蛋了。

但我还是去github看了好多仓库,这个功能...好像还挺热的。感觉如果用vue写的话,可以和之前的布局和多级组件组合一下弄出些东西...然而这部分也是早就有人写了,而且好多哇...。

vueuse-useDraggable


花木瑞记录挖坑日记大约 4 分钟