在反作弊场景中,黑产必须通过文本进行信息传递或触达受害者,而文本由于其生产成本低廉、传递信息能力强的特点成为了黑产与我们进行对抗的主要战场。文本理解算法为应对各类强对抗提供了文本检索、文本风险标签、风险信息提取的能力,以及一个文本模型训练平台。这些能力的组合使用可有效打击文本内容维度的作弊行为,现已在反作弊的各业务场景中得到应用。
从系统设计角度看,一个系统从设计搭建到数据逐步增长,SQL 执行效率可能会出现劣化,为继续支撑业务发展,我们需要对慢 SQL 进行分析和优化,严峻的情况下甚至需要对整个系统进行重构。所以我们往往需要在系统设计前对业务进行充分调研、遵守系统设计规范,在系统运行时定期结合当前业务发展情况进行系统瓶颈的分析。
为什么我们需要一把分布式锁? 1.为了效率(efficiency),协调各个客户端避免做重复的工作。即使锁偶尔失效了,只是可能把某些操作多做一遍而已,不会产生其它的不良后果。比如重复发送了一封同样的 email(当然这取决于业务应用的容忍度)。 2.为了正确性(correctness)。在任何情况下都不允许锁失效的情况发生,因为一旦发生,就可能意味着数据不一致(inconsistency),数据丢失,文件损坏,订单重复,超卖或者其它严重的问题。
Thrift 是 Facebook 开源的一个高性能,轻量级 RPC 服务框架,是一套全栈式的 RPC 解决方案,包含序列化与服务通信能力,并支持跨平台/跨语言。
丰富的 chrome 插件极大的提升我们的工作效率和辛福感,比如大名鼎鼎的 adblock 广告屏蔽、GoFullPage 网页长截图、evernote web clipper 收藏网页。一般来说,插件的原理是向页面中注入 javascript 脚本,对页面进行处理,比如屏蔽页面中可能的广告元素,改变某些元素的样式,增加一些 UI。开发插件需要使用前端技术:html css javascript。本文就从入门开始讲述如何开发一款 chrome 插件。
埋点数据作为推荐、搜索、产品优化的基石,其数据质量的重要性不言而喻,而要保障埋点数据的质量,埋点验证则首当其冲。工欲善其事必先利其器,要做好埋点验证会面临很多技术挑战:易用性、准确性、实时性、稳定性、扩展性,如何攻克这些挑战呢,其实还是技术,这也是本文的主旨所在。
问题和思考: 1.序列化参数有枚举属性,序列化端增加一个枚举,能否正常反序列化? 2.序列化子类,它和父类有同名参数,反序列化时,同名参数能否能正常赋值? 3.序列化对象增加参数,反序列化类不增加参数,能否正常反序列化? 4.用于序列化传输的属性,用包装器比较好,还是基本类型比较好?
抖音 Feed 容器在推荐、关注、同城、朋友等多个场景中使用,每个场景都有自身的逻辑和业务,最终汇总在 FeedViewController 中,随着业务的迭代,代码越来越臃肿,面临如下的问题: