Li Guangqiao
Li Guangqiao

一个正在转rust的ExtJs前端工程师。迷信rust的整体发展,十分相信rust在各个领域都能发光发热,至少目前rust在很多领域上验证了其安全性、易维护性。但说实话对于我这种菜鸡也是真的难上手哈哈哈~~。 思路总结:

  • 万物诞生都会有一个需求来源,每一个改变都是为了解决某个问题,最后应该考虑如何去做
  • 学会掌握一些宏观的知识和理论:系统论、还原论
  • 工程化思想,如何描述整体,从整体架构到模块关联等 故学习东西应该像看地图一样,先看整体了解整体的结构,然后再聚焦每一个模块,对于模块的学习,思考三个问题,“是什么?”、“为什么?”、“怎么做?”;那么设计一个东西时也应该去考虑整体性和关联性。

有关于未来的发展,以下是鄙人的粗浅的观点:

  • 编程语言未来应该是每个人必备的工具
  • 未来的交互方式应该会以语言交互为主流
  • 下一个去中心化的技术方案出来之前,区块链依然是web3建立价值体系的基础技术方案,如何将现实价值和虚拟价值联通是进入数字世界的一个大难题。
  • 未来注定是AI的世界。AI的进化会伴随绝大部分人的退化,届时除了尖端人才,人们学习的重心会放在何处?

rust连接mysql建表测试
rust连接mysql建表测试

Li Guangqiao - 29/05/2023

rust连接mysql建表测试 前期准备 创建一个新的Rust项目 cargo new web_server_demo 修改Cargo.toml 添加actix-web依赖,快速构建接口服务。 添加mysql依赖,连接/操作mysql数据库。 添加serde库依赖,用来序列化结构体实例。 [dependencies] actix-web = "4" mysql = "*"# 通配符*表示可以使用任何版本,通常会拉取最新版本 serde = { version = "1.0", features = ["derive"] } 创建一个模块mysql_connect目录结构为 src |--mysql_connect |--mod.rs |--database_test.rs |--main.rs mod.rs的内容 //导出模块database_test pub mod database_test; //导入模块database_test所有函数 pub use database_test::*; 接下是模块database_test.rs的内容 use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder}; use mysql::{PooledConn, prelude::Queryable}; use serde::Deserialize; const DATA_SOURCE_URL:&str = "mysql://root:lgq1995@localhost:3306/example"; // #[derive(Debug)] #[derive(Deserialize,Debug)] struct Info{ name:String } //建表接口 #[get("/create_table")] async fn create_table(info:web::Query<Info>) -> impl Responder{ println!("name:{:?}",info.name); ...

js学习笔记(25)
js学习笔记(25)

Li Guangqiao - 23/05/2023

Section 25 客户端存储 js为什么会涉及到客户端存储呢? 目标:将不常更新、且相对公用的数据存储在客户端中,减少与服务端的交互,提高整体的性能。 cookie 原始目标: 要求HTTP头部包含会话信息。 cookie具有局限性 浏览器级别的局限性: 不超过300个cookie 每个cookie不超过4096字节 每个域不超过20个cookie 每个域不超过81920字节。 域级别的局限性: 浏览器每个域的cookie限制 Edge不超过50 Firefox不超过150个 Opera不超过180个 Safari和Chrome没有硬性限制 浏览器对于cookie的过限处理: 如果cookie总数超过了单域上限,浏览器会删除之前设置的cookie。 Opera的处理策略是最少使用删除原则 Firefox是随机删除原则 cookie构成 名称:cookie的唯一可标识,且不区分大小写,cookie名称必须经过URL编码。 值:存储在cookie里的字符串值,值也必须经过URL编码 域:cookie的有效域。发送到这个域的所有请求都会包含对应的cookie 路径:请求URL中包含这个路径才会把cookie发送到服务器。 过期时间:表示何时删除cookie的时间戳。 ​ 删除策略: 默认会话结束后删除cookie 定时删除cookie 安全标记:设置之后,只在使用SSL安全连接的情况下才会把cookie发送到服务器。例如:https://www.test.com会发送cookie,而请求http://www.wrox.com则不会。 js的cookie js中的cookie接口只有*BOM(Brower Object Model)*的document.cookie 取值过程会获取页面中所有的有效cookie字符串(根据域、路径、过期时间和安全设置),以分号分隔。 子cookie 子cookie的机制实际上是利用cookie的机制,将一连串的cookie信息编码成字符串,给cookie的其中一个键上。 使用cookie的注意事项 叫做HTTP-only的cookie。Http-only可以在浏览器设置,也可以在服务器设置。但只能在服务器上读取。这种cookie值js无法读取。 注意:因为所有cookie都会作为请求头部由浏览器发送给服务器,所以在cookie种保存大量信息可能影响特定域浏览器请求的性能。保存的cookie越大,请求完成的时间就越长。即使浏览器对cookie大小有限制,最好还是尽可能只能保存必要信息,避免性能问题。 对cookie的限制及其特性决定了cookie并不是存储大量数据的理想方式。 Web Storage 目标: Web Storage的规范目标: 提供在cookie之外的存储会话数据的途径 提供跨会话持久化存储大量数据的机制 Storage类型 目标:可用于保存键值对数据,直到达到存储控件上限(取决于浏览器)。 Storage实例的特征方法: clear():删除所有值,注意在FireBox中没有实现。 getItem(name):取得给定name的值。 key(index):取值给定数值位置的名称。 removeItem(name):删除给定name的键值对。 注意: 通过 length 属性可以确定 Storage 对象中保存了多少名/值对。 //方法一 for (let i = 0, len = sessionStorage.length; i < len; i++){ let key = sessionStorage.key(i); let value = sessionStorage.getItem(key); console.log(key,value); } //方法二 for (let key in sessionStorage){ let value = sessionStorage.getItem(key); console.log(key,value); } Storage...

js学习笔记(27)
js学习笔记(27)

Li Guangqiao - 23/05/2023

Section 27 工作者线程 ...

leetCode刷题
leetCode刷题

Li Guangqiao - 13/05/2023

LeetCode 88.合并两个有序数组 思路:先无差别合到一个数组里,再对数组进行排序。 这里使用了rust元素的排序方法 ...