首页
学习
活动
专区
工具
TVP
发布

高性能服务器开发

专栏作者
344
文章
519292
阅读量
213
订阅数
为什么时不时会看到「珍惜生命,远离 C++」?
这个问答提问一下子把我的思绪拉入往昔那些使用 C/C++ 的“峥嵘岁月”里。女朋友还是原来的女朋友,而我却不是当初的那个我了。
范蠡
2023-01-04
7970
如何在 Visual Studio 编译调试 Windows 版本的 Nginx 源码?
在我们的《C/C++ 网络编程实战训练营》第二课,我们给大家布置了两个作业,其中之一是为 Nginx 源码制作一个 Visual Studio 工程文件,可以在 Visual Studio 中调试 Windows 版本的 Nginx,这个作业的目的是:
范蠡
2023-01-04
1.7K0
一个优秀的程序员应该养成哪些好的习惯?
多次担任技术面试官,遇到很多优秀的名校毕业生。凡此种种,从自己和别人身上总结出如下一些好的习惯。
范蠡
2023-01-04
1.2K1
我与声网 RTE 的故事
创新的实时互动场景不断涌现,而且提出了越来越复杂的技术需求,这推动了实时互动相关技术边界的拓展。 以“聚享万象”为主题,声网 RTE 2022 实时互联网大会将于 11 月 1 日 - 4 日,通过线上与大家见面。 技术专场一直都是 RTE 大会的重要日程之一。在 11 月 2 日的「开发者日」将由多位行业一线专家,结合场景分享本年度 RTE 行业技术成果与应用实践经验。 今年的「开发者日」将由五个技术专场组成,包括视频技术专场、音频技术专场、RTE Cloud专场、RTE 场景最佳实践专场,以及开源技术专
范蠡
2022-09-20
4570
不到 20 人的 IT 公司该去吗?
今天早上在知乎看到一个挺有意思的话题:不到 20 人的 IT 公司该去吗? 回答区有一位老哥分享了自己在一个20 来人的小公司的奇葩工作经历,分享一下。 原回答地址:https://sourl.cn/hy9TD 下面是正文。 刚到西安有幸加入了一个 20 来人的 it 公司。 本来是不想去那种小公司的,为什么加入呢?原因大概有二: 其一就是该公司号称是某互联网大厂旗下的子公司,公司资源共享。 其二就是感觉经历了四面感觉心好累,不想再面试,就这个吧。 第一天 然鹅,当入职第一天开始我就渐渐发现情形怪异。 第
范蠡
2022-09-07
3890
女朋友:有点感慨,这些年她在背后默默为你做了那么多事......
我之前在 《女朋友问我:什么时候用 C 而不用 C++?》这篇文章中说,C++ 与 C 语言的一个很大区别是,C++ 编译器在我们的代码背后偷偷加了许多代码,尤其是 C++11 有了明确的右值引用,引出移动构造和右值赋值(operator =(T&&))之后,这一点更加明显。 最近把 C++11 右值相关的内容重新复习了一下之后,加上使用右值技术改造了一些项目之后,甚是感慨,所以有了这篇文章。 先来看一段代码吧: /**  * 版本1  */ #include <iostream> #include <f
范蠡
2022-08-26
3700
女朋友要去面试 C++,我建议她这么做
大家好,我是张小方。 事情是这样的,有一位学医的小同学有个学计算机的女朋友,她投递了大厂 C++ 研发实习岗位,准备去参加 C++ 面试了,找到小方求助如何准备,于是有了这篇文章。 小方作为《C++服务器开发精髓》一书作者,资深 C++ 面试官,这次就来和大家聊一聊 C++ 研发实习生面试如何准备以及面试会被问到哪些问题。 1. 自我介绍的技巧 面试的开场通常是面试官让面试者做一下自我介绍。这个自我介绍比较有讲究,但是大多数同学的自我介绍都平平无奇,基本上是,我叫 XXX,毕业于 XXX 院校 XXX
范蠡
2022-08-26
7870
包装开源项目作为自己的项目,来字节面试的同学现场翻车了......
1. 项目介绍 最近在 github 上找了一个开源的 C++ 版本的 http server 代码,如果你很好奇,为什么我会看起这个项目来,可以拉到文末。 项目地址: https://github.com/yhirose/cpp-httplib 这个项目在 github 上看起来挺流行的,有 7.4k 的 star 和 1.6k 的 fork,属于比较受欢迎的项目了。 深入地看了下该项目,有如下优点: 代码整体风格和质量还不错,支持 C++ 11 语法; 代码量不大,如果想在项目中使用,只要包含一个 ht
范蠡
2022-08-26
7600
C++ 为什么不加入垃圾回收机制
来源:http://www.codeceo.com/article/why-cpp-not-use-gc.html 作者:M-先生 ---- Java的爱好者们经常批评C++中没有提供与Java类似的垃圾回收(Gabage Collector)机制(这很正常,正如C++的爱好者有时也攻击Java没有这个没有那个,或者这个不行那个不够好),导致C++中对动态存储的官吏称为程序员的噩梦,不是吗?你经常听到的是内存遗失(memory leak)和非法指针存取,这一定令你很头疼,而且你又不能抛弃指针带来的灵活性。
范蠡
2022-06-29
7550
我把 b 站拉黑了!
分享一篇旧文: 无意中在知乎看到这样一个提问: 感觉算法在程序员中快被吹上天了,如果只是搞编程的话,是不是没必要死磕算法? 看到不少人各种吹算法,什么刷leetcode啥的,之前刚入门编程之前我也以为算法有那么重要,我还担心我那点算法功底进公司抗不了几天就被劝退了,身边也见过不少刷题家,完全把自己刷魔怔了,只会刷题,连接个linux服务器问我说用windows远程连接能连接上吗?让他关闭个连接,不会关,之后半天连不上问我咋回事原来是把服务器关机了,业务代码几乎写不出来,天天死磕算法,我跟他们不一样入门了之
范蠡
2022-06-16
4360
最怕同事写出这样的代码。。。
源 | 机器之心 整理编辑:Jack-Cui 在 GitHub 上有一个项目,它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写,这些准则将指导你写出最亮眼的烂代码。 为了保持与原 GitHub 项目一致的风格,下文没有进行转换。读者们可以以相反的角度来理解所有观点,这样就能完美避免写出垃圾代码。 项目地址: https://github.com/trekhleb/state-of-the-art-shitcode 当然,以下十九条垃圾代码书写准则并没有面面俱到,如果读者们发现有一些难以忍受的烂
范蠡
2022-06-01
3280
他教全世界程序员怎么写好代码,而且将所有答案写在这本书里!
如果你已经写了好几年代码,你写的软件也已经稳定运行了很久,你甚至知道有多少用户在使用你的系统,包括你的女友、家人和同学。让系统成功部署和运转能给我们这些程序员带来满足感、成就感,但很难持续太久。 艰难编程一整天以后,当你回到家里时,你是会: 对着镜子里的自己说:“今天干得真棒!”  还是会觉得自己只是流水线中的“码农”,深陷低水准工作的泥潭? 你是否开始信奉,只有降低质量才能赶上进度,而且这已经成为团队的潜规则;你们只差喊出这句话:生产力与质量就是成反比的!!! 这还不是最糟糕的。焦虑、困惑、内卷将会接踵而
范蠡
2022-05-16
2140
四月份再不跳槽,真的晚了
从时间节点上来看,3月、4月是每年跳槽的黄金季! 以 BAT 为代表的互联网大厂,无论是薪资待遇、还是平台和福利,都一直是求职者眼中的香饽饽,“大厂经历” 在国内就业环境中无异于一块金子招牌。在这金三银四的时间里,进大厂,是绝佳机会,也是大部分小伙伴的第一选择! 很多想进大厂的朋友都在问,该怎么备战 2022年春招? 为此我专门打造了一份《Java进阶学习+面试宝典》分享给大家,内容涵盖:计算机基础、Java、JVM、spring、算法、微服务、分布式、大厂面经、技术脑图等等...质量非常高!!! 不管最
范蠡
2022-03-14
5690
推荐好用 Spring Boot 内置工具类
最近发现同事写了不少重复的工具类,发现其中很多功能,Spring 自带的都有。于是整理了本文,希望能够帮助到大家! 断言 1. 断言是一个逻辑判断,用于检查不应该发生的情况 2. Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启 3. SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查 // 要求参数 object 必须为非空(Not Null),否则抛出异常,不予放行 // 参数 message 参数用于定制异常信息。
范蠡
2022-03-14
8430
那些做客户端 C/C++ 开发的同学,现在怎么样了?
我读研的时候,沉迷于 Windows 编程而不能自拔,那个时候也和楼主有一样的困惑。毕业的时候找工作,非 Windows C/C++ 岗位不去,因为技术功底比较好,很快就成为客户端负责人。 为了说明问题,我来给你讲个案例吧。 一、如何开发一款类电驴客户端? 假设我们现在要开发一个类似电驴这样的软件,软件界面如下图: 对电驴源码感兴趣的,可以点击下面的公众号获取:  打开后回复“五套源码”,获取电驴源码 如上图所示,假设操作系统选择 Windows,使用语言使用 C++,这就要求您必须熟悉 C++ 常用
范蠡
2022-03-08
3.6K0
从 Kafka 看时间轮算法设计
点击上方“高性能服务器开发”,马上关注回复“文章下载”,获取一份专属大礼包真爱,请设置“星标”或点个“在看” 前言 Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 时等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。 Kafka 没有使用 JDK 自带的 Timer 和 DelayQueue 实现。因为时间复杂度上这两者插入和删除操作都是 O(logn),不能满足 Kafka 的高性能要求。 冷知识:JDK
范蠡
2022-03-04
6090
400 行 C 代码实现一个虚拟机
击上方“高性能服务器开发”,选择“关注/置顶/星标公众号” 干货福利,第一时间送达! 1. 引言 本文将教你编写一个自己的虚拟机(VM),这个虚拟机能够运行汇编语言编写的程序, 例如我朋友编写的 2048 或者我自己的 Roguelike。如果你会编程,但希望 更深入地了解计算机的内部原理以及编程语言是如何工作的,那本文很适合你。从零开始 写一个虚拟机听起来可能让人有点望而生畏,但读完本文之后你会惊讶于这件事原来如此简 单,并从中深受启发。 本文所说的虚拟机最终由 400 行左右 C 代码组成。理解这些代码
范蠡
2022-03-04
8080
C/C++ 服务器并发
1. 单线程 / 进程 在 TCP 通信过程中,服务器端启动之后可以同时和多个客户端建立连接,并进行网络通信,但是在介绍 TCP 通信流程的时候,提供的服务器代码却不能完成这样的需求,先简单的看一下之前的服务器代码的处理思路,再来分析代码中的弊端: // server.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <arpa/inet.h> int main() {    
范蠡
2022-03-04
8220
如果一定要在 C++ 和 Java 中选择,是选 C++ 还是 Java ?
如果你是学生或有大把空余时间,那建议你把 C++ 学好,C++ 被称为程序员的九阳神功是有一定的道理的,并不是说 C++ 有多难学,而是 C++ 技术栈的学习讲究的是其背后的一系列操作系统原理,你把 C++ 学好了,就意味着你把这些背后的原理学好了,你之后再学其他任何语言和机制都轻松很多;
范蠡
2022-02-12
3.1K0
大灰狼远控木马源码分析
大灰狼远程控制木马是一个较为常见的远控工具,不同的木马病毒团伙对其定制改造后发布了诸多变种。本章将从启动过程、通信协议、远控功能三个方面逆向分析该木马的实现原理。
范蠡
2021-12-08
5.4K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档