202004-15 为什么 Go 语言设计时没有泛型? HOT Go 是一门语法元素少、设计简单的编程语言,简单的设计往往意味着较弱的表达能力,工程师也需要使用更多时间编写重复的逻辑。Go 语言从发布到今天已经过去了 10 多年,向 Go 语言添加泛型的讨论也从 2010 年一直持续到今天。 继续阅读 >
202004-15 Go的泛型真的要来了—如何使用以及它们是怎么工作的 HOT 你没看错,这里讲的就是 Go 中的泛型。只不过还没有正式发布,是基于草案设计的,已经是实现了可运行的版本。所以,泛型到来真的不远了! Go 中的泛型已经接近成为现实。本文讲述的是泛型的最新设计,以及如何自己尝试泛型。 继续阅读 >
202004-13 php随机生成验证图片 HOT 为了防止用户利用机器人自动注册、登录、灌水,现在的网站一般都采用了验证码技术,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。 继续阅读 >
202004-13 负载均衡、分布式、集群理解以及多台服务器代码如何同步 HOT 我们的项目如果跑在一台机器上,如果这台机器出现故障的话,或者用户请求量比较高,一台机器支撑不住的话。我们的网站可能就访问不了。 那怎么解决呢? 继续阅读 >
202004-13 面试题:如何保证缓存与数据库的双写一致性? HOT 只要用缓存,就可能会涉及到缓存与数据库双存储双写。 你只要是双写,就一定会有数据一致性的问题。 那么你如何解决一致性问题? 继续阅读 >
202004-13 Kafka生产者的客户端(PHP)开发 HOT 虽然 Kafka 是用 Java/Scala 语言编写的,但这不妨碍它对多语言的支持。可以在 Kafka 官网的查看 Kafka 支持的语言,其中包括 C/C++、Python、Go 等语言。 继续阅读 >
202004-13 Go新手容易犯的三个致命错误,你中招了吗? HOT 最近因为以前一些重要且古老的go项目基本没有人专职维护了,所以被安排去熟悉这些项目的代码,所以看了大量go的代码。历史原因,这些代码中或多或少有一些刚刚从PHPer转过来的Gopher去设计和开发的,自然有不少是在php(fpm模式下)码代码思路下埋藏的一些坑。今天我就来和大家一起分享一下最近发现的出现比率比较高的三个致命错误。 继续阅读 >
202004-11 这可能是搭建Zookeeper集群介绍最全的文章 HOT Docker方式不太建议,要考虑的东西比较多,如果要用Docker方式还是比较建议自建镜像,假如是Docker专家可以忽略本句。 以下介绍的都是Linux服务器下搭建(Winserver服务器的也是雷同)先操作单机,再copy到其他机器。下载完Zookeeper(下称zk)后,进入zk解压目录下的conf文件夹,zoo_sample.cfg是zk的配置文件实例,Copy一个出来命名为zoo.cfg zk默认会读这个配置。 继续阅读 >
202004-11 linux使用grep条件搜索大文件的行数等操作 HOT 最近需要查询大日志文件的时候,每次打开vim,cat之类的都会卡死,但是需要查看符合条件的共有多少行数据,这可愁死我了,下面列出一些常用的匹配查询命令。 继续阅读 >
202004-11 打造 Zap 开箱即用日志组件 HOT 目前 golang 日志库的大众选择主要集中在: logrus, zap, zerolog. zap 和 zerolog 的性能都是优秀的, 但是从用法习惯上我更倾向于 zap. 继续阅读 >
202004-10 Go 每日一库之 validator:Go最优秀的验证库 HOT 今天我们来介绍一个非常实用的库——validator。validator用于对数据进行校验。在 Web 开发中,对用户传过来的数据我们都需要进行严格校验,防止用户的恶意请求。例如日期格式,用户年龄,性别等必须是正常的值,不能随意设置。 继续阅读 >
202004-10 项目使用了 ORM,具体执行的是什么 SQL 语句总是很迷?xorm1.0 解决了 HOT 自定义上下文 SQL Log 需求有哪些? 可以使用自己的封装日志库,拓展日志输出问题,可以输出到 es(elasticsearch)等,方便日志分析。 方便定位 sql 问题。 集成 sql 指标监控,可以找出慢 sql,优化 sql 语句。 集成链路追踪(opentracing),更清楚知道业务都执行了哪些 sql 语句。 继续阅读 >
202004-10 八个字节的 UDP 如何传输数据 HOT 为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。 继续阅读 >
202004-10 Go 中的 SetFinalizer 有什么用?怎么实现的? HOT 这篇文章基于 Go-1.12 版本 Go runtime 提供了一种允许开发者将一个函数与一个变量绑定的方法 runtime.SetFinalizer,被绑定的变量从它无法被访问时就被垃圾回收器视为待回收状态。这个特性引起了高度的争论,但本文并不打算参与其中,而是去阐述这个方法的具体实现。 继续阅读 >
202004-09 php多进程编程详解 HOT PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断。 进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果。 继续阅读 >
202004-09 openssl 下的对称加密和非对称加密 HOT 对称加密: 在加密和解密过程中使用相同的密钥, 或是两个可以简单地相互推算的密钥的加密算法. 非对称加密: 也称为公开加密, 它需要一个密钥对, 一个是公钥, 一个是私钥, 一个负责加密, 一个负责解密. 继续阅读 >
202004-09 Apache 和 Nginx 下的 URL 重写 HOT URL 重写是将页面映射到本站另一页面, 而重定向则是将页面映射到另一主机(域名). 其中临时重定向(R=302)和永久重定向(R=301)都是亲搜索引擎的, 是 SEO 的重要技术. 通过重定向, 浏览器和搜索引擎都意思到页面发生了变化, 从而分别改变地址栏显示的地址和更新搜索引擎索引。 继续阅读 >
202004-09 PHP命令行脚本接收传入参数的三种方式 HOT 通常PHP都做http方式请求了,可以使用GET or POST方式接收参数,有些时候需要在shell命令下把PHP当作脚本执行,比如定时任务。这就涉及到在shell命令下如何给php传参的问题,通常有三种方式传参。 继续阅读 >
202004-09 PHP单点登陆 HOT 本文主要介绍了利用webservice,session,cookie技术,来进行通用的单点登录系统的分析与设计。具体实现语言为PHP。单点 登录,英文名为Single Sign On,简称为 SSO,是目前企业,网络业务的用户综合处理的重要组成部分。而SSO的定义,是在多个应用系统中,用户只需要登陆一次就可以访问所有相互信任的应用系 统。 继续阅读 >
202004-08 PHP实现用户异地登录提醒功能的方法 有时候你的网站账号被盗或你在别处登录操作后台时,右下角会弹出提示信息,提醒你的账号异地登录,或者会被强制下线。对于这种安全性要求比较高的web网站,很多后台管理都会做这种功能提醒。 甄别自己的账号是否被盗或者是否有另一个人此刻登陆了在进行后台操作,这些都是很不安全的,为了避免两个人同时登录同时操作,可强制下线一个账号。我们今天就来讲解这个知识点。 继续阅读 >
202004-08 PHP 注册错误和异常处理机制 HOT 注册错误和异常处理机制有三个PHP函数需要学习 1. register_shutdown_function('Bootstrap\Library\Frame::fatalError'); 2. set_error_handler('Bootstrap\Library\Frame::appError'); 3. set_exception_handler('Bootstrap\Library\Frame::appException'); 继续阅读 >
202004-08 php接受post传值的方法 HOT 对于这种post给服务器的数据类型,在php中需要通过‘php://input'原生接收数据类型(post传输过去的数据方式),然后再用json_encode解析,之后才能操作, 继续阅读 >