logo

All Posts

  • Published on
    安全存储密码需要三步:哈希将密码不可逆转为指纹,避免明文泄露;加盐为每个用户生成唯一盐,抵御彩虹表攻击;延展重复哈希多次,延缓暴力破解。结合 bcrypt 等算法,确保密码保护更安全高效,切勿直接存储明文密码。
  • Published on
    Go 的代码生成功能虽然简单,但非常强大和实用。通过 go generate 命令,我们可以实现自动化重复性代码的生成,实现类似泛型功能(在 Go 1.18 之前特别有用),生成高效的查找表和常量,自动化字符串表示的生成,集成各种代码生成工具。通过正确使用这些功能,我们可以大大提高 Go 开发的效率和代码质量。
  • Published on
    Postgres 的 LISTEN/NOTIFY 功能通过通知器模式优化了连接管理,减少了每个程序需要的数据库连接数量,避免了为每个主题创建多个连接。通过使用缓冲通道和非阻塞发送,通知器能够高效处理大量通知。同时,结合上下文超时机制和“让它崩溃”策略,可以确保系统在出现问题时快速恢复。PgBouncer 的会话池模式支持 LISTEN,提高连接效率。
  • Published on
    Go 1.22 将引入增强版 HTTP 路由多路复用器,提供更强大的路径匹配和方法路由能力。新的 ServeMux 支持通配符、方法限定和细粒度路由,有望减少对第三方路由库的依赖,为 Go Web 开发带来便利。
  • Published on
    Go 的 context 包提供了强大的工具,用于管理请求范围内的超时、取消和数据传递。通过函数如 WithCancel、WithTimeout 和 WithValue,开发者可高效处理并发任务和资源释放,是构建健壮程序的重要组件。