总说 c++ 写底层,但是底层是什么,c++ 怎么写?
写代码就像造房子。
像我们这些码农大多数是写所谓业务代码。你就当成装修房子。
毛胚房子就是我们用来构建这些所谓“系统”的软件,比如Web服务器/数据库/.NET运行时/JAVA运行时等。
装修用的成品家具,比如冰箱,洗衣机,衣柜等就是各种轮子/中间件。你排线,布局,各种软装就是写业务代码。
而用来造房子本身的工具/语言,我个人认为就算底层了。
C/C++的底层性在于
1. 直接管理内存,无论C/C++你都要了解结构体对象的内存布局、对齐等问题,自己根据自己的业务特性处理内存资源的优化管理,比如内存池、对象池,配合指针强转或者struct/union还有宏和模板,各种风骚,浪到没有朋友
2. 直接操作文件或者块设备,你要自己设计文件存储格式,考虑序列化与反序列化的兼容性,更高级的考虑DirectIO,AsyncIO,一致性、原子性等、并发保证等,终结目标就是自己造轮子,跳开文件系统自己玩^_^
3. 直接操作套接字,网路异步化,直接在TCP/UDP协议层面编程,各种千奇百怪的API和Option,自己造个网络框架,对OOP的理解会提升很多
4. 最底层的并发控制,一定要玩原子操作,pthread库都弱爆了,我们都用CAS调戏CPU,挑战最高性能的数据结构,玩转性能极限,这方面各种paper数不胜数
5. 直接调用syscall,围绕着文件IO、socket、多进程有各种乱起八糟的玩法和坑,踩踩更健康
而我对新入职场码农的建议是,如果有机会,一定要从底层开始做,你做7、8年底层开发,经过这些基本训练,转而再学习其他技术其实是很容易的。
有些哥们说的那些什么什么底层,你说他底层,那还有汇编呢。还有什么01呢。。
其实说这些玩意真没啥用。
人家问的是底层代表什么,没说哪种语言更底层。。
这就把一个很好的话题变成了一个辩论的主题,辩论谁更底层。俗话说的口水贴也就是这个玩意了,你不服我的我不服你的 你说0011底层,我还说电是底层呢,我还说水电站是底层呢。磨磨唧唧的没啥营养。还浪费时间
底层应该是相对来说的
尤其是在高级语言中相对底层
底层说的应该是计算机体系中的底层。。操作系统级别。。直接对内存操作。。
c++的指针可是直接在内存中寻址的啊。
虽然有保护机制和段页机制的隔离。但是还是很底层的啊。
你也许感兴趣的:
- Google 也要放弃 C/C++?Chrome 代码库中 70% 的安全漏洞是内存问题
- 为什么游戏引擎大多选择使用 c++ 而不是 c 开发?
- C++ 为什么不加入垃圾回收机制
- 【外评】电脑从哪里获取时间?
- 【外评】为什么 Stack Overflow 正在消失?
- Android 全力押注 Rust,Linux 却在原地踏步?谷歌:用 Rust 重写固件太简单了!
- 【外评】哪些开源项目被广泛使用,但仅由少数人维护?
- 【外评】好的重构与不好的重构
- C 语言老将从中作梗,Rust for Linux 项目内讧升级!核心维护者愤然离职:不受尊重、热情被消耗光
- 【外评】代码审查反模式
你对本文的反应是: