摘要:
记录工作中早该加深印象的一个小case: ajax请求不能显式拦截 302响应。 我们先来看一个常规的登录case: 浏览器请求资源,服务器发现该请求未携带相关凭据(cookie或者token) 服务器响应302,并在响应头Location写入重定向地址, 指示浏览器跳转到登录页 浏览器跳转到登录页 阅读全文
摘要:
单独拎出这个题目,是因为昨天看到一线码农大佬公众号的分享[Dictionary.Clear 和 new Dictionary() 有什么不同?](https://mp.weixin.qq.com/s/JUtr9TFRDfAvEeu6vJkI1w) ### 无心插画 ``` void Example1 阅读全文
摘要:
readonly修饰符在作祟 强化官方解释: 1. readonly是一个修饰字段的关键字:被它修饰的字段只有在初始化或者构造函数中才能够赋值. 2. readonly修饰的引用类型字段必须始终引用同一对象: readonly 修饰符可防止字段替换为引用类型的其他实例, 但是,readonly不会妨 阅读全文
摘要:
开题引入斐波那契 代码演示: 递归、循环 递归 vs 循环 时间复杂复高,指数型O(2^n); 推导过程 占用线程堆栈, 可能导致栈满异常 压测演示 20230816补充尾递归 斐波那契数列 打入门软件开发,斐波那契数列便是绕不过去的简单编程算法。 一个老生常谈的思路是递归,另外是循环,今天借此机会 阅读全文
摘要:
最近一年各大中小厂都在搞"优化",说到优化,目的还是"降本增效",降低成本,增加效益(效率)。 技术层面,也有一些降本增效的常规操作。 比如池化、io缓冲区技术 golang C# eg. 池化技术 snnc.Pool ObjectPool 前端切图仔,归入前端资源池 , 随用随取 字节数组缓冲区 阅读全文
摘要:
go内置了一套单元测试机制: 利用 go test测试命令和一套按照约定方式编写的测试函数。 测试文件以_test.go 结尾,以_test.go为后缀名编写的go文件不会参与go build的编译过程 测试函数有三种:以Test开头的标准测试、 以Benchmark开头的基准性能测试、 以Exam 阅读全文
摘要:
今天记录编程中老掉牙的几个关键术语,一个言简意赅的术语定义包含主谓宾定状补, 我们应从貌似雷同的术语中体会到不同术语的表象行为、侧重点。 下面给出的3对技术术语,都是很核心、易混淆的概念点,但是多少还是有些表象、侧重点的不同。 阻塞操作不等于同步,非阻塞操作也不等于异步。实际上,它们之间并没有直接的 阅读全文
摘要:
这几天收到一个战术性需求,将一大坨字段序列化为特定格式的字符串。 大概是下表这样: | 序号 |字段名 | 描述 | 是否必填 | | | | | | | 0|logVersion | 日志版本 | 是 | | 1|productName| 产品 | 是 | | 2|serviceName| 服务 阅读全文
摘要:
golang中常见的日志包是logrus, 根据logrus的胚子和我们的生产要求,给出一个生产可用的logrus实践姿势。 logrus是一个结构化的、可插拔的、兼容golang标准log api的日志库。 快速过一下能力 支持对output=TTY增加关键字颜色 内置JSONFormatter和 阅读全文
摘要:
1. OSI开放系统互联 定义了网络框架,以层为单位实现协议,同时控制权逐层传递。 OSI实际并没有落地,TCP/IP 5层协议栈是目前主流的落地实现。 1.1. TCP/IP 5层协议栈 TCP/IP协议栈不止是传输层tcp/网络层ip, 还包括应用层等,这是一个协议簇,只是因为TCP/IP很具代 阅读全文