-
直接用colly.NewCollector()会漏抓页面,因其默认不启用重试、不处理重定向、不设User-Agent,遇302/403即放弃;真实网站多校验UA,无设置易被nginx拦截。300 收藏 -
Go不支持真正的全局常量,但可通过点导入或统一错误包等方式实现跨包访问;然而直接省略包名会损害可读性与可维护性,推荐使用语义化错误类型或带前缀的常量导出。300 收藏 -
核心是“要不要”而非“能不能”:标准库encoding/json已足够健壮,自写反射序列化仅适用于需绕过标签规则、序列化私有字段、注入元信息或对接非标协议等特定场景。300 收藏 -
应使用prometheus.NewCounter定义请求总数和错误总数指标,提前注册带ConstLabels的Counter并在handler中调用Inc(),不可用全局变量或Set();需按维度打标签时改用NewCounterVec。300 收藏 -
Go不支持直接类型断言或强制转换字符串切片为interface{}切片,必须逐项遍历并显式装箱(boxing)每个元素,才能正确传递给接受...interface{}的函数。300 收藏 -
Go适合云原生开发因其运行时行为、构建产物和并发模型天然适配容器化场景:goroutine内存占用低、调度不依赖OS线程、静态二进制轻量安全,且能自动适配cgroup限制。300 收藏 -
使用反射调用函数需先通过reflect.ValueOf获取函数值,再准备对应类型的参数切片并调用Call方法,返回值为[]reflect.Value类型,从中提取结果并做类型断言即可。299 收藏 -
Go标准库无并发安全树,第三方btree不处理并发;直接套RWMutex会串行化吞吐,应选tidwall/btree或节点级锁;google/btree迭代器并发删节点会panic;写多时Mutex比RWMutex更优;Less需满足严格弱序。299 收藏 -
应执行gomodtidy自动合并重复require并选择最小可行版本,而非手动删除;若存在版本冲突,需通过gomodgraph定位源头、检查CHANGELOG或使用replace临时锁定版本。299 收藏 -
使用gobuild命令可安全、轻量地检查单个Go包的编译可行性,无需安装依赖、不执行测试、也不生成正式二进制文件。299 收藏 -
使用httptest创建测试服务器,通过http.Client发送请求并校验状态码、响应头和结构化JSON数据,需覆盖正常流程与错误场景,如参数缺失、认证失败等,确保API稳定性和健壮性。299 收藏 -
直接传map即可,因其本身是引用类型;仅当需替换整个map实例时才用*map,但需双重判空防panic。299 收藏 -
Go命令提示“commandnotfound”是因PATH未包含Go安装路径的bin目录,需确认安装路径存在go可执行文件,并将对应bin目录加入PATH后重载配置。299 收藏 -
应直接使用github.com/pquerna/otp而非自行实现TOTP,因其避免时间窗口偏移、base32编解码不一致、HMAC-SHA1截断错误以及时区问题,且维护活跃、测试充分、支持热重载与自定义步长。299 收藏 -
为什么html/template默认不防所有XSS?它只对特定上下文做自动转义,不是万能盾牌。比如你在href或onclick里插数据,它不会帮你判断JS语法是否安全,而是按HTML属性规则转义——结果可能仍是可执行的JS。常见错误现象:template:"xxx":123:unexpected"javascript:void(0)"inattribute这类报错其实不是模板出错,是你硬塞了非法值;更危险的是没报错但渲染出了。使用场景:所有动态插入用户输入的地299 收藏