选择ACE和Boost进行学习

Mah*_*San 1 multithreading boost network-programming ace

我是一名中级c ++程序员,并使用ACE完成了一些工作,现在我想彻底学习其中一个库,以进入我的职业生涯.这就是为什么我需要你帮助做出决定,我应该先学习什么.另外请考虑我的目的地是专家网络程序员和协议设计师.感谢您的时间和善意的答案提前.

Tim*_*sch 5

这可能不是您正在寻找的答案,但我强烈建议您在职业目标方面不要过分人为地限制自己.弄清楚你希望自己作为程序员的职业生涯能够持续多长时间,然后问问自己(a)是否能真正看到自己只在这段时间内进行网络编程,以及(b)如果你真的相信那个图书馆您选择的深入知识将能够满足您在职业生涯中的所有需求,而不会让您的职业生涯陷入停滞.

从长远来看,维持你的编程生涯的不是对一两个库的深入了解,而是你作为程序员的整体能力.库是工具(除非你是一个图书馆设计师),就像编程语言是工具一样(除非你是一名语言设计师),一个优秀程序员的标记是她或他为这项任务选择合适工具的能力.

尽管如此,我建议每个C++程序员至少熟悉boost存在的事实和一些核心库,如智能指针库,正则表达式等.我不希望任何人为我工作在加速的各个方面的专家,但我确实希望甚至相当经验的C++程序员知道哪里可以找到它,他们会更好使用代码加速而不是试图去,说,写自己的池内存分配器.我给出的例子可能看起来不是直接适用于最狭义的网络编程,但在大多数非平凡大小的程序中肯定需要它们.

跟上Boost的另一个好理由是,最终将/可能进入C++标准库的许多技术都来自Boost.保持Boost所处的位置将使您能够密切关注C++社区中的某些发展,因为新的用法习惯仍然是用C++开发的; 语言及其规范用法并非"固定",至少现在不是这样,如果您计划作为C++程序员的长期职业,这将是您必须要跟上的.