理解Rust语言的所有权以及借用、引用、切片。

2021-01-23Languages
Rust
Rust

Rust由Mozilla基金会开发,没有虚拟机和垃圾回收,却又提供了内存安全,有着媲美C/C++的性能,又同时支持命令式函数式编程以及泛型等便利。优雅(上层抽象)和高性能(底层控制)往往是鱼和熊掌不可兼得,但Rust试图挑战这一矛盾。允许你做带垃圾回收的语言(例如Java)做不到的事,比如控制底层。而同时又避免了比如空指针,野指针在内的(例如C/C++)的问题。它被用于开发浏览器引擎(Servo),操作系统(Redox OS),并且特别适合开发WebAssembly和嵌入式,以及高性能的Web服务。

本文介绍Rust语言中和其它语言相比一个非常重要的特性所有权(Ownership)以及其相关的借用(Borrowing)引用(References)切片(Slice)的理解和使用。这个特性保证了Rust不需要垃圾回收以及强大的内存安全,同时还能在多线程编程中带来好处。

查看全文...

使用WebSocket和STOMP协议开发一个匿名聊天室

2020-03-09Backend
chat
chat

有时候就想和其他人安全地聊个天,它需要有这些特征:

  • 基于web技术,只需一个网页,无需下载任何App,易于转发。
  • 无需注册,使用简单,基于邀请码加入聊天,邀请码定时刷新。
  • 完全匿名。
  • 消息只保留在内存中,超时自动删除。
  • 进行在线人数统计,能设置最大人数上限。
  • 用户上下线和邀请码刷新时有系统提示。
  • Web连接必然是不稳定的,所以断线必须能够重连。

线上Demo演示请直接访问: https://wycode.cn/lab/chat

技术方面:

  • 使用WebSocket协议提供Web上的全双工通信支持。
  • 使用STOMP作为上层协议,它基于帧(Frame),和Http请求很类似,提供了一种发布订阅的模式,很适合需求的群聊模式。
  • 后端采用Kotlin + SpringBoot,前端采用Typescript + Angular + AntDesign,均使用最新版本。
查看全文...