自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HeroIsUseless的博客

才大难为用

  • 博客(521)
  • 收藏
  • 关注

原创 一刻也没有GreatScript的暴死难过,下一个赶到战场的是JS#!

经过几天与网友们的激烈对线(感谢这些网友们的意见建议),我承认我的自制编程语言有几个问题:类型表达能力不足,冒号太多,违逆一般认知等,吸取了这些教训后,我对GreatScript又进行了大刀阔斧的改革,以至于我不得不用一个新名字去命名它,这就是JS#。

2024-02-02 18:46:48 481

原创 还在用JS?过来看看GS

GreatScript的生态位跟Typescript,CoffeeScript,ReScript相同,那么,GS究竟有什么优点,从而在众多类型化语言中脱颖而出呢?可以看到GS甚至比JS更简约,这就是GS的最突出的特点之一。

2024-01-23 10:12:10 447

原创 用自制编程语言写自制操作系统(二)在空无一人的赛道里狂奔

我发现我现在好像在空无一人的赛道里狂奔,自制编程语言的人,有,自制操作系统的人,也有,但是用自制编程语言写自制操作系统的,感觉好像是真没有,至少从各个平台上看,我发现除了我,没有人在搞用自制编程语言写自制操作系统的,我不知道为什么,可能这件事又难体力活又重吧。

2024-01-08 12:59:10 506

原创 网络建设 之 React数据管理

React作为一个用于构建用户界面的JavaScript库,很多人认为React仅仅只是一个UI 库,而不是一个前端框架,因为它在数据管理上是缺失的。在做一个小项目的时候,维护的数据量不多,管理/维护数据用useState/useRef就足够了;可是当项目变大,需要的数据量成百上千,然后就会发现:全局变量到处都是。在某些组件里定义的数据无法传递到其他组件里。数据传来传去找不到定义位置,很难维护。因此这时候就需要数据管理了。

2023-10-26 19:58:57 704

原创 网站建设 之 react usestate

如果延时的函数,例如setTimeout,它用了一个state,如果这个state被更新了,那么就无法更新延时函数里的state A了,除非放到ref里面。例如setState了state A,整个页面都是新的,linster会被注销重新创建,那么state A还是新的。既然函数是新的,那么就会有一个问题,回调函数用的props/state还是旧的。局部变量/函数/jsx-》state/props-〉ref,依次越来越难变。每次state/props,局部变量/函数/jsx都是新的。如果变动了怎么办呢?

2023-08-25 10:02:43 151

原创 人生原理 之 学习论

解释例子是对一个知识的生动表现,它是容易懂的,能够帮助人快速形成对知识的大致概念,但是它是啰嗦的,并且不能覆盖所有情况,适合于在第一次学习这个知识时使用。公式定义是对一个知识的总的精炼概括,它是完整的,简约的,难懂的,适合于知识掌握完毕后的快速回顾时用。理性认识是过程,而不是结果,是相对的,而不是绝对的,我们不可能一次就达到理性认识,也永远达不到绝对的理性认识,而只能不断靠近。绝对的理性认识代表着与所有的知识联系,会做所有的题,很明显这是不可能的。

2023-05-21 23:55:49 453

原创 工作流程 之

需求评审:确定代码做法,确定技术评审时间,甚至不用技术评审。技术评审:讲述代码做法,结论排期开发测试。代码风格:husky,前后缀什么的。代码cr:提测前做,要开会做。总结复盘:时间延期了,要复盘。敏捷开发:例如改配置之类的。测试:提测前写明影响内容。

2023-03-13 10:35:58 100

原创 网站建设 之 后端练习题

javaspringbootredismybatismysql。

2023-03-04 23:01:32 196

原创 用自制编程语言写自制操作系统(一)

再讲讲自制编程语言,编程语言的话我没有特别推荐的,把编译原理学好就行了,我最开始用的是递归下降式文法,这里以过来人的身份告诉你,千万不要用这种文法,虽然这种文法比较简单,但是它太受限了,你根本无法设计出来令你满意的编程语言语法,当时设计到一半我就放弃了,自制编程语言一定要用递归向上式文法,虽然难的不行,但是它足够能让你随意设计任何语法,LR1文法足够用了。

2023-02-21 14:01:29 261

原创 网站建设 之 jojo babel loader

写一个自己的babel-loader - 开发者头条 (toutiao.io)

2023-01-30 15:05:11 83

原创 网站建设 之 jojo jox

React源代码解析(1):jsx语法是如何解析 - 掘金 (juejin.cn)

2023-01-30 13:27:50 262

原创 网站建设 之 electron vite vue3 ts antd

electron中使用vue3+vite - 掘金 (juejin.cn)

2023-01-17 14:56:17 115

原创 网站建设 之 用js写wasm

为什么要这么做?编译js比解释js更快是必然的wasm是什么?我期望是一个二进制文件WebAssembly(又名wasm)是一种高效的,低级别的编程语言。它让我们能够使用JavaScript以外的语言(例如C,C ++,Rust或其他)编写程序,然后将其编译成WebAssembly,进而生成一个加载和执行速度非常快的Web应用程序。WebAssembly被设计为针对Size和Load Time进行优化的格式,可以在各个硬件平台上以native speed运行;

2023-01-17 12:41:28 2189

原创 网站建设 之 PS

只要学会钢笔工具,图层,就可以了。

2023-01-08 13:04:54 256

原创 ios 之 随机数 图标

SKU是为了便于区分一个开发者账号下的多个App,SKU是每个App所专有的,我们可以用字母或数字以及两者的组合进行命名,只要不同于其他App的SKU即可。我们将为所有 iOS 显示屏尺寸和本地化版本使用这些截屏。只有 iOS App 必须提供截屏。新建APP还要套装ID。

2022-11-29 18:09:51 85

原创 ios 之 随机数 语言学习

2019年WWDC大会上,苹果在压轴环节向大众宣布了基于Swift语言构建的全新UI框架——SwiftUI,开发者可通过它快速为所有的Apple平台创建美观、动态的应用程序。SwiftUI的运行速度优于UIKit,他减少了界面的层次结构,因此可以减少绘制步骤,并且他完全绕过了CoreAnimation,直接进入Metal,可以有优秀的渲染性能。swift应该是学过的,潮汐笔记嘛,找找。哦,那个是react做的。

2022-11-29 16:03:42 413

原创 ios 之 随机数

每个有经验的iOS开发人员都熟悉Interface Builder和Storyboard,甚至XIB也是如此。他们可能不喜欢它们,但至少对它们熟悉。如果您以前从未使用过这些功能,则应该跳过此位。目前应该没有什么关系,对于简单UI来讲,没什么大不了的了,随便了,用Swift吧,毕竟是未来。故事板和XIB包含相当多的XML,这些XML不容易阅读或编辑。

2022-11-29 14:24:14 179

原创 网站建设 之 大文件上传原理

文件的MD5值就相当于是这个文件的“数字指纹”,只有当两个文件内容完全一样时,他们的MD5值才会一样。所以在上传文件前,客户端需要先计算出文件的MD5值,并且把这MD5值传递给服务端。服务端在合并出文件后,在计算合并出的文件的MD5值,与客户端传递过来的进行比较,如果一致,则说明上传成功,若不一致,则说明上传过程中可能出现了丢包,上传失败。其原理其实就是在客户端将文件分割成多个小的分片,然后再将这些分片一片一片的上传给服务端,服务端拿到所有分片后再将这些分片合并起来还原成原来的文件。......

2022-08-15 14:11:32 353

原创 网站建设 之 url参数以及编码

哪些字符需要编码RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。RFC3986文档对Url的编解码问题做出了详细的建议,指出了哪些字符需要被编码才不会引起Url语义的转变,以及对为什么这些字符需要编码做出了相应的解释。US-ASCII字符集中没有对应的可打印字符:Url中只允许使用可打印字符。US-ASCII码中的10-7F字节全都表示控制字符,这些字符都不能直接出现在Url中。同时,对于80-FF字节(ISO-8859-1),由于已

2022-07-12 10:52:24 571

原创 Charles代理

https与非对称加密对称加密是加密用key1,解密用key1问题是这个key1必定是其中一方制定的,制定好后,必然有个传输的过程,而这个传输的过程中就可能会被盗窃,以网路来说,甲只能以明文将key1发送给乙,丙可能在某个路由劫持到这个包,得到key1,或者更改key1成key2发送给乙都是有可能的非对称加密,就是一个人通过某种算法,可以一次生成一对key(称为key1,key2),这对key的神奇之处是将明文加密必须用key1,将密文解密只能用key2。加密解密用的不是同一个key例如甲生成了一对非对称加

2022-07-07 06:15:59 100

原创 网站建设 之 网络面板

第一个是 Queuing,也就是排队的意思,当浏览器发起一个请求的时候,会有很多原因导致该请求不能被立即执行,而是需要排队等待。导致请求处于排队状态的原因有很多。 首先,页面中的资源是有优先级的,比如 CSS、HTML、JavaScript 等都是页面中的核心文件,所以优先级最高;而图片、视频、音频这类资源就不是核心资源,优先级就比较低。通常当后者遇到前者时,就需要“让路”,进入待排队状态。 其次,浏览器会为每个域名最多维护 6 个 TCP 连接,如果发起一个 HTTP 请求时,这 ...

2022-05-12 20:52:47 653

原创 如何搞出一个大型网站

首先,假如我们什么都不会,那我们首先就要学htmlhtml学完了,这时就可以学习css,控制网页样式,学习js,控制网页逻辑,这样就可以做出一个基础的网页了然后,需要学习下后端,后端这里采用java那一套,那么首先就要学java,等java学好后,就学习springboot,springboot是用java编写的一个服务器框架,但先建议学习一下maven,maven是springboot的包管理器,我们可以用maven安装springboot包,等springboot学完后,就可以将之前的网页文件放

2022-05-12 18:05:15 422

原创 网站建设 之 flex:1

flex: 1; 实现了三个不同内容的 div 平分空间,代表均匀分配元素flex: 1等于flex-grow:1 用于设置或检索弹性盒子的扩展比率。注意如果元素不是弹性盒对象的元素,则 flex-grow 属性不起作用。默认值是 0flex-shrink:1控制 flex 盒子空间不足时子元素改如何收缩,平常开发中更多的是使用默认值 1 或者设置 0。在给子元素不加flex-shrink且父盒子中不加flex-wrap=“wrap”的情况下,超出父盒子的宽度,父盒子会自动压缩子盒子的宽度。当.

2022-04-22 14:45:35 528

原创 网站建设 之 JavaScript 版本

ECMAScript 是 JavaScript 语言的国际标准,JavaScript 是 ECMAScript 的实现。ES5于 2009 年完成标准化。这个规范在所有现代浏览器中都相当完全的实现了。作为ECMAScript第五个版本(第四版因为过于复杂废弃了),增加特性如下:1. strict模式严格模式,限制一些用法,'usestrict';例如不声明变量就使用。2. Array增加方法增加了every、some 、forEach、filter 、indexOf、lastInd.

2022-02-07 19:34:49 536

原创 网站建设 之 ECMAScript 提案

TC39是一个推动 JavaScript 发展的委员会,由各个主流浏览器厂商的代表构成。从标准到落地是一个漫长的过程,TC39 这群人主要的工作是制定ECMAScript标准,标准生成的流程,并实现。标准的流程包括五个步骤: stage0 strawman 任何讨论、想法、改变或者还没加到提案的特性都在这个阶段。只有TC39成员可以提交。 stage1 proposal (1)产出一个正式的提案。 (2)发现潜在的问题,例如与其他特性的关系,实现难题。 (3)提案包括详细

2022-02-07 19:34:04 506

原创 网站建设 之 CMD AMD CommonJs 规范

AMD-异步模块定义AMD是RequireJS在推广过程中对模块定义的规范化产出,它是一个概念。RequireJS是对AMD概念的实现,就好比JavaScript语言是对ECMAScript规范的实现。RequireJS解决了什么问题? js加载会阻塞网页渲染,加载文件越多,网页失去响应的时间就会越长。 js文件之间存在依赖关系,因此必须严格保证加载顺序,代码的编写和维护都会变得困难。 require.js的诞生,就是为了解决这两个问题。用法1.加载require.

2022-02-07 19:33:18 581

原创 网站建设 之 __proto__ prototype constructor

__proto__该属性在ES标准定义中的名字应该是[[Prototype]],具体实现是由浏览器代理自己实现,谷歌浏览器的实现就是将[[Prototype]]命名为__proto__。 __proto__和constructor属性是对象所独有的。 prototype属性是函数所独有的,但是由于JS中函数也是一种对象,所以函数也拥有__proto__和constructor属性。 __proto__属性是一个指针,指向它们的原型对象(也可以理解为父对象)。它的作用就是当

2022-02-07 19:32:34 360

原创 数学 之 由果逐因

知道鼓的形状,求鼓的声音是由因求果;知道鼓的声音,求鼓的形状就是由果逐因。

2022-02-07 10:21:40 319

原创 物理 之 史瓦西半径

我们宇宙是否是一个黑洞?

2022-02-05 22:28:28 510

原创 网站建设 之 mock与history

mock是如何控制的呢在这里控制nginx 配置有问题,要把所有未命中请求重定向到 index.html,大概是这样:location / { try_files $uri $uri/ /index.html$args;}首页通过解析路由,再跳转到别的页面或者说,还没有加载页面的时候,vue先初始化完成,读取路由,就是如此在开发阶段,用不着刷新,vue热加载...

2022-01-04 11:31:37 1409

原创 ZOS 之 分段与分页

首先要进行分段还是分页?那要搞清楚分段和分页都是什么利用基址和界限寄存器,操作系统很容易将不同进程重定位到不同的物理内存区域。但是,对于这些内存区域,栈和堆之间,有一大块“空闲”空间。栈和堆之间的空间并没有被进程使用,却依然占用了实际的物理内存。因此,简单的通过基址寄存器和界限寄存器实现的虚拟内存很浪费。分段可以使软件的内存从0开始,每个软件自动分配一个基值,然后软件本身一直用变址,就是如此在典型的地址空间里有3个逻辑不同的段:代码、栈和堆。分段的机制使得操作系统能够将不同的段放到不同的物理内存

2021-12-06 10:57:02 418

原创 ZOS 之 浮点数寄存器

浮点执行环境的寄存器主要是8个通用数据寄存器和几个专用寄存器,它们是状态寄存器、控制寄存器、标记寄存器等8个浮点数据寄存器(FPU Data Register),编号FPR0 ~ FPR7。每个浮点寄存器都是80位的,以扩展精度格式存储数据。当其他类型数据压入数据寄存器时,PFU自动转换成扩展精度;相反,数据寄存器的数据取出时,系统也会自动转换成要求的数据类型。 8个浮点数据寄存器组成首尾相接的堆栈,当前栈顶ST(0)指向的FPRx由状态寄存器中TOP字段指明。数据寄存器不采用随机存取,而是按.

2021-12-03 11:29:00 1787

原创 计算机图形学 之 直线段的扫描转换算法

数值微分法(Digital Differential Analyzer, DDA)虽然像素是整数,但是线段位置点可以是浮点数,这里就需要取整,仅仅如此,但我这里也是整数,但是斜率往往是小数,跑不掉的,因此位置点是浮点数也没什么大不了的,x首先四舍五入成整数,然后y+k就是如此,然后y+0.5再取整就是四舍五入,就酱,包含两次浮点数加法通过直线的斜截式计算出斜率 k, 即可只通过两次浮点数加法(包括四舍五入的)得出下一个点的坐标中点分割法但是k值太大就没用了,应该按照45度变换x,y这样。..

2021-12-02 19:59:56 776

原创 ZOS 之 IPL,boot

在实模式下,不仅寻址方式奇怪,而且仅支持1MB的,相对于1.44MB的软盘,自然无法完全读取到。软盘第一个扇区是IPL,放到内存0x7c00,第二个扇区是boot,放到0x8000,实际上在IPL里读取这两个扇区,在IPL里实现32位模式切换,然后跳到boot这里,读取所有磁盘信息到内存,然后跳转执行到main,就是如此。...

2021-10-29 19:27:49 166

原创 关于BSTree的考虑

1 递归往往比较简洁,代码好看,但是用类的话另用一个递归函数就不那么好看2 用类还是用函数?用类的话调用会特别方便,用函数的话,对于自制操作系统是非常有用的,毕竟用类实现的话,连代码都拷贝一份,这个很难做啊,自制操作系统使用递归也是没有任何问题的...

2021-10-27 11:39:24 85

原创 网站建设 之 import require

import和require都是被模块化所使用。–require 是 AMD规范引入方式–import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法调用时间–require是运行时调用,所以require理论上可以运用在代码的任何地方–import是编译时调用,所以必须放在文件开头–require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量–import是解构过程,但是目前所有的引擎都还没有实现import

2021-10-08 17:47:28 114

原创 网站建设 之 react useeffect

函数组件中没有生命周期,那么可以使用 useEffect 来替代。如果你熟悉 React class 的生命周期函数,你可以把 useEffect Hook 看做 componentDidMount,componentDidUpdate 和 componentWillUnmount 这三个函数的组合。默认情况下,它在第一次渲染之后和每次更新之后都会执行。相当于componentDidMount和componentDidUpdate的合体你可能会更容易接受 effect 发生在“渲

2021-10-08 10:55:24 76

原创 网站建设 之 react return

幸亏国庆恶补React,现在感觉良好菜鸟教程用的是 jsx ,需要经过 babel-react 过的。知道它的原理就可以了,因为return <div></div>最终会被babel-react 转换成 类似return createElement('div')如果return 后面没有括号,第一行的内容一定要和return 写在一起,如果JSX标签仅有一行,也可以省略括号。但实际上,多行也可以不加括号,但return后边不可以有换行,然而JSX可以有。React.Fra

2021-10-08 10:28:43 446

原创 网站建设 之 Dva

State 是储存数据的地方,收到 Action 以后,会更新数据。View 就是 React 组件构成的 UI 层,从 State 取数据后,渲染成 HTML 代码。只要 State 有变化,View 就会自动更新

2021-10-03 09:40:13 129

原创 网站建设 之 KOA

Node.js 是一个异步的世界,官方 API 支持的都是 callback 形式的异步编程模型,这 会带来许多问题,例如:1、callback 嵌套问题 2、异步函数中可能同步调用 callback 返回 数据,带来不一致性。为了解决以上问题 Koa 出现了。开发 Koa2 之前,Node.js 是有要求的,它要求 Node.js 版本高于 V7.6。因为 node.js 7.6 版本 开始完全支持 async/await,所以才能完全你支持我们的 Koa2。...

2021-09-28 14:49:26 76

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除