范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

难说

  缘起
  代码里有很多值得商榷的写法。今天来发点牢骚。 写法1bool bShouldModifyData = false; if (condition1 && condition2) {   bShouldModifyData = true; } else {   bShouldModifyData = false; }
  好吧,这种写法逻辑上没问题,但是我觉得一行代码更好: bool bShouldModifyData = (condition1 && condition2);写法2// 如果 map 中找到了 key 对应的数据,就用 map 中的数据,否则用 normalData // if 和 else 中,只有 Method 的参数传递的不一样,其它一模一样 int normalData = 0; auto it = map.find(key); if (it != map.end()) {   // lots of code     result = Method(it->second); } else {   // lots of code (same with if)     result = Method(normalData); }
  这样的写法在业务代码中比较多。猜测应该是写好了  if  部分的代码,else  部分的代码是直接复制粘贴的。我认为上面代码最致命的问题是:如果业务逻辑发生变化,那么需要同时修改 if  和 else  两个语句块中的代码。
  写代码的时候有一个最基本的原则:DRY ( D on"t  R epeat  Y ourself)。可以改成下面的样子,代码量不仅少了一半儿,逻辑也更加清晰了。 // 如果 map 中找到了 key 对应的数据,就用 map 中的数据,否则用 someNormalData // if 和 else 中,只有 Method 的参数传递的不一样,其它一模一样 int normalData = 0;  auto it = map.find(key); auto funcParam = (it != map.end()) ? it->second : normalData;  // lots of code   result = Method(funcParam); 写法 3struct HugeStruct {   // lots of members };  void DoSomething(HugeStruct data) {   // ... }
  作为一个有强迫症的  c++  程序员,看到上面的代码,我的直觉告诉我,写这段代码的人或者是不小心,或者是其它语言转过来的。在 c++  里,默认是值拷贝,上面的写法,在调用函数时会把 data  对应的内存在栈上拷贝一份。这会导致两个问题:1. 效率低(没必要拷贝整个结构体)。2. 可能爆栈(之前在项目中遇到过的)。
  如果我们不打算修改  data  的内容,那么应该使用 const &  修饰。代码改成下面这样,既高效又安全。void DoSomething(const HugeStruct& data) {   // ... } 写法 4int GetMoney(BankAccount& account) {   return account.money; }
  通过函数名判断,上面的函数只是获取一些值,不会修改参数。但是参数只用了引用修饰,没加  const ,意味着参数可能在函数内部被修改。让人迷惑。
  如果不需要修改参数,那么需要加上  const 。改成下面这样就没有任何歧义了。int GetMoney(const BankAccount& account) {   return account.money; }
  注意:   不需要对   int  ,  char  ,  short  ,  double   这种基础类型加  const &   修饰。加了效率也没什么提高,反而很别扭。 写法 5class Wall {   public:     std::vector GetHole() { return m_holeVec; }   private:     std::vector m_holeVec; };
  上面这段代码中规中矩。但是  GetHole()  的效率很低,可以优化一下。改成返回引用。class Wall {   public:     std::vector& GetHole() { return m_holeVec; }     const std::vector& GetHole() const { return m_holeVec; }   private:     std::vector m_holeVec; };
  有的小伙伴儿就有疑问了,返回引用,被别人改了怎么办?当  Wall  实例是 const  的,那么会调用带 const  的函数,返回的是 const & ,不会被意外修改。当 Wall  实例是非 const  的,那么会调用不带 const  的函数,返回的是引用,可以被修改。但是,这大概率是调用者所期待的。写法 6void ReallyComplexFunction() {   // start by xxx1 [2022-01-01]   // start by xxx2 [2022-02-01]   // start by xxx3 [2022-03-01]   // idx = 0;   // idx = 1;   // idx = 2;   idx = 0;   // end by xxx3 [2022-03-01]   // end by xxx2 [2022-02-01]   // end by xxx1 [2022-01-01] }
  上面的代码片段是非常典型的,三个同事改了三次,留下了三次改动记录,但是只是为了修改一个小小的地方。放眼望去,全是注释,真正有用的就一句话。 Taste
  之前看  Linus  大神的演讲视频时,他提到了一个观点:品味对科技人员非常重要。原话如下:
  I personally consider most important when it comes to technical people is this notion of taste.
  我特意截取了关键视频,并做了中英文字幕,发到视频号上了。
  我觉得每个人的水平,背景,阅历不同,品味有差异是正常的,甚至同一个人在不同时期的品味也不尽相同。希望您也觉得以上几个例子是反面教材。关于代码的品味,您想说些什么呢?快来视频号留言吧。

悖论公众认为亿万富翁阶层占有了太多的财富,但具体的某富翁其财富是他应得的心理学一系列新研究发现,大多数人希望对所有亿万富翁这一群体征税,但认为作为个人,他们应该保留辛苦挣来的财富。这是一个悖论,似乎说明一个具体的人,相比一个群体,更容易让我们产生共鸣。十个无人机航拍技巧,新手也能轻松出大片!大疆御Air2无人机现在无人机技术已经非常先进,尤其是大疆无人机操控性很友好,所以想学会飞无人机,其实很简单!但是想要玩好还是需要多揣摩多练习的,下面有十个航拍小技巧,只要掌握新手春和景明换一部新手机去踏青,京东放心换服务让你随心拍美景春天的气息扑面而来,正是赏花放风筝的季节,在空闲时外出走走。在这个温柔浪漫的季节里,万物可爱,万事皆可期待,最适合和朋友们一起出门踏青啦,带上新装备一起拥抱春日里的好时光吧。目前,风扇界颜值担当,无扇叶的戴森是如何把甲醛治得服服帖帖?都说装修一时爽,善后火葬场工作室在爽过之后,毛病也挨个蹦了出来。小伙伴最常念叨的,就是新影棚有股子刺鼻味儿。为了能持久压榨员工小伙伴们的健康,我们连夜网上冲浪,发现了更多细思极恐的为生孩子努力吧加油吧中午休息前,刷了几分钟抖音,发现大数据屡屡推送一大波平躺的视频。平躺意指90后00后对于奋斗的意志产生消极的对待,在互联网上产生了一大波争论。现在可好,关于平躺的争论还未结束,紧接夏天炎热空调制冷效果不佳?别只知道调低温度,使用技巧需牢记夏天炎热空调制冷效果不佳?别只知道调低温度,使用技巧需牢记又到了炎热的夏季了,最舒服的时候就是躺在床上,开着空调吃着冰镇西瓜的时候了。不过,经常听到小伙伴说家里空调不好用,制冷效果花友好物指南,让家里多一份活力,从一棵植物开始花友好物指南,让家里多一份活力,从一棵植物开始忙忙碌碌,拥拥挤挤,在快节奏地生活中,厌倦了城市地喧嚣,只想在下班时间享受片刻地宁静,但是目之所及都是灯火酒绿,如何才能找到属于自己地重量159g厚度6。81mm,小米11青春版为了极致轻薄,做了哪些努力?小米11系列一共有四款机型,其中最特殊的当属小米11青春版了,因为跟大杯和超大杯不同的是,小米11青春版走的是轻薄路线,在尽量不损失体验的基础上,把手机做的极致轻薄,整机仅159克小米MIX4应该买陶瓷白?体验一天后才发现黑色才是真香小米MIX4只有4999元起步的价格,让很多人心动了,开始纠结到底应该买黑色还是白色。相信大部分人的答案很一致白色。因为白色更能体现出陶瓷那种温润如玉的质感,刚开始我也这么想的,而脑力小体操网上名题之阿凡提卖萝卜本期问题在2000年以前非常有名阿凡提收获了1000斤萝卜,自己吃吃不完,要卖就要去大集市。但因为阿凡提离群索居,住的地方很偏僻。要去城里需要穿越100里的沙漠瀚海。已知阿凡提的驴方轮子和圆轮子,关于激光电视的两个铁球,早该落地了除了永远都不敢正视的阳光以外,激光电视另一大天敌就是时间。这里说的时间体现在两个方面1两三年过去了,第一批激光电视用户很快会发现,就像其他投影类产品一样,时间一到,亮度色准等指标的
知乎被曝大裁员!员工上午谈话下午走人又一家大型互联网公司被曝裁员过冬!最新陷入裁员风波的是国内知识问答网站知乎。12月11日,多位认证为知乎内部员工的网友在匿名社交平台上爆料,称自己或身边的同事遭到了裁员。上午还在干虚拟电信运营商的幻灭,实施一站式在线生活战略腾讯控股是我的第一重仓股,读吴晓波著的腾讯传能帮助大家更好的理解腾讯的商业模式。本文是腾讯传的第7篇。从2004年下半年开始,腾讯的无线增值业务就遭受到严重的冲击。马化腾后来说无线工信部基本功能软件外预置应用软件均可卸载来源人民网原创稿人民网北京2月17日电(申佳平)据工业和信息化部官网消息,为进一步规范移动智能终端应用软件预置行为,提升移动互联网应用服务供给水平,构建更加安全更有活力的产业生态,苹果未动果链先行,企业纷纷谋划汽车代工路中国商报(记者赵熠如)在苹果造车波折丛生之时,果链企业已按捺不住,纷纷加入汽车赛道。近日,苹果供应链巨头立讯精密豪掷百亿联手奇瑞造车。从代工手机到代工汽车,立讯精密汽车代工路好走吗数字经济与通用技术的进步在数字经济时代之前,人类经历了游牧经济农耕经济工业经济信息经济,什么因缘决定了不同的经济形式和经济时代?又是什么力量推动经济形态的更替和演进?在众多要素中,经济学家认为,技术特别是宁德时代有多需要特斯拉?图片来源视觉中国文深途(shentucar),作者黎明,编辑魏佳特斯拉对宁德时代很重要,以至于有人说宁德时代和特斯拉谈崩了,宁德时代马上报了警。近期跟宁德时代有关的传闻很多,除了跟破解行业困局技术深度融合支撑信息安全在大数据人工智能等新一代数字技术支撑下,以人脸识别为代表的计算机视觉技术应用充分展现其活力,依托广阔的应用场景正走向大规模的应用落地。然而,新技术带来红利的同时,其双刃剑效应也愈加中国电子信息工程科技发展十三大挑战(2022)发布(记者韩扬眉)2月15日,中国工程院信息与电子工程学部中国信息与电子工程科技发展战略研究中心在京发布中国电子信息工程科技发展十三大挑战(2022)。发布会由中国工程院院士信息与电子别下载!这14款APP涉嫌超范围采集个人隐私信息国家计算机病毒应急处理中心近期通过互联网监测发现14款移动应用存在隐私不合规行为,违反网络安全法个人信息保护法相关规定,涉嫌超范围采集个人隐私信息。1在App首次运行时未通过弹窗等芯片短缺激起中国企业斗志买不到就自己造蓝科技综述缺芯后遗症非常明显。华为受到器芯影响,全球市场份额从2020年的第三降至2021年的第七,导致华为手机一机难求,用户等待时间长,纷纷开启吐槽模式。三星作为全球最大的智能手九九久科技建设安全管理信息系统昨日,从江苏九九久科技有限公司传出消息,该公司建成了一套具有企业特色的五位一体安全管理信息系统,本质安全得到显著提升。该系统以朗坤智慧科技股份有限公司苏畅工业互联网平台为技术底座,