什么是协程?从多线程的角度看,协程(Coroutine)与线程(thread)类似:协程是一系列的可执行语句,拥有自己的栈、局部变量和指令指针,同时协程又与其它协程共享全局变量和其它几乎一切资源。 线程和协程的主要区别: 一个多线程程序可以同时并行运行多条线程,而协程却需要彼此协作地运行,即在任意时刻只能有一个协程运行,且协程的切换是在用户态手动控制的,只有 ......
331
0
0
2023-01-25
与其他几种脚本语言不通,Lua语言既没有使用POSIX正则表达式,也没有使用Perl正则表达式来进行模式匹配。之所以这样做的主要原因在于大小问题:一个典型的POSIX正则表达式实现需要超过4000行代码,这比所有Lua语言标准库总大小的一半还大。相比之下,Lua语言模式匹配的实现代码只有不到600行。尽管Lua语言的欧式匹配做不到完整POSIX实现的所有功能 ......
382
0
0
2023-01-24
在Lua语言中,函数是严格遵循词法定界的第一类值。 “第一类值”以为这Lua语言中的函数与其他常见类型的值具有同等权限:一个程序可以将某个函数保存到变量中或表中,也可以将某个函数作为参数传递给其他函数,还可以将某个函数作为其他函数的返回值返回。“词法定界”意味着Lua语言中的函数可以访问包含其自身的外部函数中的变量。 上述两个特行联合起来为Lua语言带来了极 ......
336
0
0
2023-01-24
背景一个项目的质量通常分为内部质量和外部质量两种,内部质量通常指代码和设计的质量,可以通过应用设计和编程达到最佳实践,也可以通过持续一致的开发和交付流程来提高;外部质量是通过查看和使用软件(例如验收测试)来度量的。从长远的角度看,内部质量不佳最终会影响外部质量,产品会持续不断地冒出新的bug,产生技术债务,而且开发时间会由于技术债务的增加而变长。项目的内部质 ......
270
0
0
2023-01-20
最长用的肯定是:<script>alert("xss")</script> DOM型一般用<a href='#' onclick="alert(1111)">Click to see?</a> 大小写绕过'"><sCrIpT>alert(63252)</sCrIpT> ......
225
0
0
2023-01-19
一、Scala简介1.1 概念Scala 全称为 Scalable Language,即“可伸缩的语言”,之所以这样命名,是因为它的设计目标是希望伴随着用户的需求一起成长。Scala 是一门综合了面向对象和函数式编程概念的静态类型的编程语言,它运行在标准的 Java 平台上,可以与所有的 Java 类库无缝协作。1.2 特点1. Scala是面向对象的Sca ......
268
0
0
2023-01-17
之前读了一本《高效程序员的45个习惯》,是以前总结的文章,最近把它在这里整理发布,顺便又重新看了一遍,发现又有收获,这本是在微信读书上可看1 做事一个重大的错误应该被当做一次学习而不是指责他人的机会,团队成员一起工作,应该互相帮助,而不是互相指责2 欲速则不达不要为了修复问题而去修复,要投入时间和精力保持代码整洁3 对事不对人一个团队能够很公正的讨论一些方案 ......
261
0
0
2022-12-27
基于SpringBoot的Web开发流程静态资源的导入SpringBoot项目中的静态资源有两种访问方式通过webjars访问首先引入相关依赖<dependency><!--Webjars版本定位工具(前端)--> <groupId>org.webjars</groupId> <a ......
287
0
0
2022-12-12
参数对于交互式计算至关重要,Lua 编程语言提供了 {...} 表达式来封装在启动 Lua 脚本时给定的可变参数。大多数计算机命令由两部分组成:命令和参数。命令是要执行的程序,而参数可能是命令选项或用户输入。如果没有这种结构,用户将不得不编辑命令的代码,以改变命令所处理的数据。想象一下重写 printf 命令只是为了让 ......
352
0
0
2022-12-09
1.单元测试单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试测试阶段:编码后或者编码前(TDD)测试对象:最小模块测试人员:白盒测试工程师 或 开发工程师测试依据:代码和注释+详细设计文档测试方法:白盒测试测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试2. ......
281
0
0
2022-11-29
前言除了保证项目如期上线,如何保证项目上线后的运行速度,如何提高容灾能力,减少bug同样是我们需要考虑的问题。我们从以下几个方面来探究思考,抛砖引玉,看看大家是否有其他维度来提高项目,欢迎在评论区留言。1.语言选择方面开发效率和运行效率的平衡点我入行时做的安卓开发,使用Java语言,觉得入门门槛比较高:异常处理,IO,集合,JDBC等等,除了基础概念不好理解 ......
288
0
0
2022-11-27
软件工作的范围不仅仅局限在程序编写,而是扩展到了整个软件生命周期; 【软件开发的周期:、需求分析、设计、实现、测试、安装部署、运行维护】1.瀑布模型根据上面的图可以看到,瀑布模型的测试就是在整个过程中只出现一次,就是在整个开发完成之后优点: –强调开发的阶段性 –强调早期计划及需求调查 –强调产品测试缺点: –依赖于早期进行的唯一一次需求调查,不能适应需求的 ......
310
0
0
2022-11-25
本文是来自一位国外资深程序员 托马斯·阿科米 工作数年的几点感悟。一篇很有趣也很真实的文章,颇有感触,也希望能够帮到你。(外文链接)目录1、与人交谈比与机器交谈更重要2、了解你在做什么以及为什么这么做3、如果代码审查让你倍感压力,这可不是个好事儿4、防患于未然5、别害怕让别人看到自己的一无所知6、学会分享几年不见,打工人你好! 流年似水,物是人非,不是么~​ ......
303
0
0
2022-11-18
原题样例:移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序示例:输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 C#方法:排序增加一个索引index,从0开始,当遍历数组的时候,如果数组当前位置不为0,则把当前的数值赋值 ......
299
0
0
2022-11-16
原题样例:丢失的数字给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1] 输出:2 解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。 示例 2:输入:nums = [ ......
350
0
0
2022-11-16