写代码就像造房子。

像我们这些码农大多数是写所谓业务代码。你就当成装修房子。

毛胚房子就是我们用来构建这些所谓“系统”的软件,比如Web服务器/数据库/.NET运行时/JAVA运行时等。

装修用的成品家具,比如冰箱,洗衣机,衣柜等就是各种轮子/中间件。你排线,布局,各种软装就是写业务代码。

而用来造房子本身的工具/语言,我个人认为就算底层了。

c6fc38751305f6b6b24c0d990cc3eb8e

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++的指针可是直接在内存中寻址的啊。

虽然有保护机制和段页机制的隔离。但是还是很底层的啊。

余下全文(1/3)
分享这篇文章:

请关注我们:

发表评论

电子邮件地址不会被公开。 必填项已用*标注