为什么我们需要现代C ++准则?

原文:https://www.modernescpp.com/index.php/why-do-we-need-guidlines-for-modern-c

此主观帖子基于15多年的C ++,Python和软件开发培训师经验。在过去的几年中,我负责软件和除颤器软件开发团队。这包括我们设备的法规事务。为除颤器编写软件极具挑战性,因为它们可能导致患者和操作人员死亡或重伤。

我想到一个问题,我们应该作为C ++社区来回答。

为什么我们需要现代C ++的准则?

这是我的想法。我只专注于三个事实。当然,有三个以上。这三个代表我的个人观点。

对于新手来说,C ++本质上很复杂

对于初学者来说,C ++特别是一种固有的复杂语言。当教人C ++时,您应该提供一套在至少90%的用例中对他们有用的规则。我考虑的规则包括使用自动,用花括号初始化,优先于线程而不是任务或不占用内存。我越来越多地教他们,并将它们纳入我的培训中。因此,我们需要使用C ++的最佳实践。它们说明了您应该如何编写代码。

我正在积极寻找这些线索。因此,我作了一些介绍,其中包括10个如何编写现代C ++的技巧。目前,我为《德国Linux杂志》撰写了由十部分组成的系列文章,其中涉及这些技巧。我以蒂姆·彼得斯(Tim Peters)的《 Python Zen》作为起点:这是20种格言如何用Python编写代码。

这是用Python编写惯用代码的20条规则。二十条,真的吗?实际上,这只是19条规则。最后一个仍然不见了。

我不喜欢每位培训师都会制定一套规则的想法。在好的情况下,这项工作是多余的。在最坏的情况下,我们会教不同的或可能相互矛盾的规则。

C ++对于专业程序员而言变得越来越具有挑战性

我不太担心新功能的数量,每个新的C ++标准都会为我们提供。我更关心现代C ++支持的新概念。老实说,这是专业C ++程序员最具挑战性的主题。您必须重新考虑并可能改变解决问题的方式。考虑使用协同程序,惰性求值,无限数据结构,函数组合或范围库进行范围理解的事件驱动编程。考虑一下现代C ++中基于合同的编程,反射或越来越多的功能和数学概念。这还不是全部。概念将彻底改变模板。

我说过,过多的新概念尤其会使专业程序员不知所措。他是用来解决经典工具问题的人。他很可能会落入铁钉子陷阱

C ++经常用于安全关键型系统

最后,我非常关注。在嵌入式软件开发中,您通常必须坚持使用MISRA C ++。当前MISRA C ++:2008和规范是由 Motor Industry Software Reliability Association公布的。它们基于1998 年的MISRA C准则。最初为汽车行业设计,它们已成为在航空,军事和医疗领域中实施安全关键软件的事实上的标准。作为MISRA C,MISRA C ++描述了安全的C ++子集的准则。如果您不了解MISRA C ++,则这里有更多详细信息:事实。 

有一个概念上的问题。我们必须遵循从2008年开始的C ++标准。换句话说,指南并不是C ++中现代软件开发的最新技术。后面是三个标准(包括C ++ 17)。

我想,以提供一个例子: MISRA C ++不允许操作符重载。这不是编写C ++的最新技术。我在研讨会上教授用于实现类型安全算术的文字运算符,例如: auto constexpr dist = 4 * 5_m + 10_cm-3_dm。要实现这种类型安全的算术,您必须重载后缀的算术运算符和文字运算符。这是用户定义文字的详细信息。

老实说。我认为MISRA C ++不会与当前的C ++标准并驾齐驱。我的希望是不同的。

我的希望

我的希望是,我在“ 什么是现代C ++ ” 一文中介绍的C ++核心准则成为了现代C ++的准则。这尤其意味着,C ++核心准则将在长期运行中取代MISRA C ++,成为安全关键系统中C ++的强制性标准。

当然,那是一个非常主观的帖子。你怎么看?我对您的评论很好奇。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容