跨境外贸综合信息网跨境外贸综合信息网

跨境外贸综合信息网
分享海外社交app注册方法和使用交流。

googlec++命名规范(谷歌命名规范 )(谷歌的名称)

怎样典雅heard流程中的表达式和表达式重新命名

简而言之,依照语词来优先选择词汇,别无它法……不过,有时候他们会无人知晓用什么词汇更最合适。

当你想不到某一抽象化的小东西,你更偏激于种叠想不到的词汇,假如你蓄意不这样,那些词也会抢着出现,直至模糊不清或发生改变你的设想。

当你想不到一个具体内容的第一类,你真的无话可说,接着你想叙述的已经看见了,接着你竭尽全力找寻更适宜它的词。

呵呵,重新命名便成了程式设计中非常困难的事~

Martin Fowler曾在一则该文中曾提及过Phil Karlton不然:

There are only two hard things in Computer Science: cache invalidation

and naming things.

他说这句话在极短的一两年内都是他最喜欢不然。由此可见重新命名对各阶层的开发人员而言确实是个大难题。

对他们中国人而言,难题可能出在三个各方面:

– 唐汪式学程式设计已经开始就没被基础教育了要倚重重新命名。

这能在谭浩强的《C语言进阶》一书中可想而知。《C词汇进阶》能说是许多开发人员在理工学院时自学的因节程式设计词汇采用的教科书。而两本书全篇都是各式各样

a,b,c,x,y,z 的重新命名形式。此种poor naming的形式被各阶层开发人员争相效仿,引致现如今在许多工程项目标识符中经常出现。

– 重新命名须要很大的英文功底,而国内开发人员的英文水平参差不齐。

许多开发人员被基础教育后已经开始逐渐倚重重新命名,但是受限于英文水平,无人知晓道采用什么最合适的英文词汇来重新命名。有的甚至直接把中文直译为英文的形式重新命名,或者直接用拼音来重新命名,反而得不偿失。

重新命名的重要性我想不须要过于强调。现如今的软件开发早已不是求伯君那种单匹马的时代。你写下的每一行标识符都会在不久的以后被团队的其他人甚至你自己多次查看。如果是个开源工程项目,那么更会被全球各地的人查看源标识符。所以标识符的可读性就变得尤为重要。如果读者能够轻松读出你的标识符的意图,那么就说明你的重新命名功底相当扎实。

比如在一个管理系统中,你采用这样的标识符: a = b * c

很容易让人摸不着头脑,虽然流程能够正常运作,但恐怕没人敢轻易修改这行他们不了解的标识符。而如果修改成为这样: weeklypay =

hours_worked * pay_rate; 那恐怕极少有人不懂这行标识符的意图。

糟糕的重新命名也会引致大量无谓的注释,这是一个很容易跳进去的陷阱。下一段标识符怕别人不明白你的意图,那么就加上注释。这貌似是一个很精妙的设想,实际上却南辕北辙。比如以下的注释:

int d; // elapsed time in days

貌似很容易让人读懂,但是难题还是许多。首先注释不能跟着所有的提及,在定义处了解了d的含义,竭尽全力往下看不然却很容易忘记;其次标识符更新了,很可能会忘记修改注释,反而给把读者带入歧途。

与其用这样的注释,还不如直接重重新命名: int elapsedTimeInDays; 这样清晰易懂,还不用维护注释,何乐而不为?

那么怎样着手来提高的自己的重新命名技巧那?

首先找寻一份公认的标识符规范化,并严格按照这样的标准执行。比如google开源了自己内部采用的词汇编码规范化,他们能直接拿来采用。比如请看Google

Java的style guide,相当详实。除此之外还有C++等。这里收集了Google对各式各样词汇的编码规范化,非常具有参考价值。

标准的标识符规范化中的每一条都是有胜出的理由,值得他们遵从。但某些重新命名难题不很大只有一种最好的解决形式,这就须要团队自己建立起约定。比如对Java单元测试类的重新命名形式,不同的团队可能不一样。比如有的团队喜欢以should开头,有的喜欢test开头,有的喜欢骆驼重新命名法,有些喜欢下划线重新命名法,每种形式有各自的利弊,没有一种能完全脱颖而出,所以须要团队自行制定。一旦确定采用某一种,那么很大要保持一致。

某些重新命名规范化其实是能进行自动化检查的,比如在Java应用的构建过程中能提及checkStyle这款插件,对重新命名进行一些基本的检查,比如方法名、表达式名是否遵循了很大模式等。这样在很大程度上能强制大家遵守某些约定。自己以前曾写过一则该文,请参见这里。

最后要在团队中建立起code review的机制,通过code

review来相互监督纠正重新命名难题,并且这样更容易达成一致的重新命名约定,方便协作开发。code

review能采取非正式会议评审的形式。最简单的形式就是每天找个固定时间大家一起聚在一个显示器前review每个人的标识符,现场提出难题,当事人记录下来会后更改。此种形式非常高效。另外有的团队在嵌入标识符时可能会引入一些标识符评审机制,比如pull

request, cherry pick等。此种review形式比较重量级,反馈周期也较长,好处是能保证最终迁入的标识符是没有难题的。

许多词汇和框架为了更加可读,都把重新命名玩出花来了。比如JavaScript生态圈中重要的单元测试工具Jasmine把测试表达式以it重新命名,这样能与参数连接起来成为一种表意的自然词汇:

怎样典雅heard流程中的表达式和表达式重新命名?

- 不同的标识符段采用不同的重新命名长度。通常而言,循环计数器(loop

counters)采用1位的单字符来重新命名,循环判断表达式(condition/loop

variables)采用1个单词来重新命名,方法采用1-2个单词重新命名,类采用2-3个单词重新命名,全局表达式采用3-4个单词重新命名。

- 对表达式采用具体内容的重新命名(specific names)形式,”value”, “equals”,

“data”在任何情况下都不是一种有效的重新命名形式。

- 采用有意义的重新命名(meaningful names)。表达式的名字必须准确反映它的含义和内容。

- 不要用 o_, obj_, m_ 等前缀重新命名。表达式不须要前缀标签来表示自己是一个表达式。

- 遵循公司的表达式重新命名规则,在工程项目中坚持采用同一种表达式重新命名形式。例如txtUserName, lblUserName,

cmbSchoolType等,否则会对可读性造成影响,而且会令查找/替换工具(find/replace tools)不可用。

- 遵循当前词汇的表达式重新命名规则,不要不统一(inconsistently)地采用大/小写字母。例如:userName, UserName,

USER_NAME, m_userName, username, …。

以Java为例:

* 类名采用驼峰重新命名法(Camel Case):VelocityResponseWriter

* 包名采用小写:com.company.project.ui

* 表达式采用首字母小写的驼峰重新命名法(Mixed Case):studentName

* 常量使用大写:MAX_PARAMETER_COUNT = 100

* 枚举类(enum class)采用驼峰重新命名法,枚举值(enum values)采用大写。

* 除了常量和枚举值以外,不要采用下划线’_’

- 在同一个类不同的场景(contexts)中不要复用表达式名。例如在方法、初始化方法和类中。这样做能提高可读性和可维护性。

- 不要对不同采用目的的表达式采用同一个表达式名,而是赋予它们不同的名字。这同样对保持可读性和可维护性很重要。

- 表达式名不要采用非ASCII字符(non-ASCII chars)。这样做可能会在跨平台采用时产生难题。

-

不要采用过长的表达式名(例如50个字符)。过长的表达式名会引致标识符丑陋(ugly)和难以阅读(hard-to-read),还可能因为字符限制在某些编译器上存在兼容性难题。

- 仅采用一种自然词汇(natural language)来重新命名表达式。例如,同时采用德语和英语来重新命名表达式会引致(理解)不一致和降低可读性。

- 采用有意义的方法名。方法名必须准确表达该方法的行为,在多数情况下以动词(verb)开头。(例如:createPasswordHash)

- 遵循公司的方法重新命名规则,在工程项目中坚持采用同一种方法重新命名形式。例如 getTxtUserName(), getLblUserName(),

isStudentApproved(),否则会对可读性造成影响,而且会令查找/替换工具不可用。

- 遵循当前词汇的表达式重新命名规则,不要不统一地采用大/小写字母。例如:getUserName, GetUserName, getusername,

…。

以Java为例:

* 方法采用首字母小写的驼峰重新命名法:getStudentSchoolType

* 方法参数采用首字母小写的驼峰重新命名法:setSchoolName(String schoolName)

- 采用有意义的方法参数重新命名,这样做能在没有文档的情况下尽量做到“自解释(documentate itself)”

总之,重新命名难题只是整个编码规范化中的一小部分,但是起的作用举足轻重,它是判断一个开发人员是否专业的必要标准。

Googlea和Googlec啥区别

GoogleA和GoogleC的标识符不同,GoogleA英文全称为GOOGLE CLASS A COMMOM STOCK,标识符GOOGL;GoogleC英文全称为GOOGLE CLASS C COMMOM STOCK,标识符为GOOG。

GoogleA和GoogleC的权利不同,GOOGLE CLASS A COMMOM STOCK有投票权,GOOGLE CLASS C COMMOM STOCK没有投票权。其中,每股GOOGLE CLASS A COMMOM STOCK具有1股的投票权。

GOOGLE CLASS A COMMOM STOCK属于互联网服务与基础设施行业,GOOGLE CLASS C COMMOM STOCK属于互联网信息提供商。GOOGLE CLASS A COMMOM STOCK包括远离互联网产品的企业,如Access、Calico、CapitalG、GV、Nest、Verily、Waymo和X。

所有非Google业务统称为Other Bets,Alphabet结构是关于通过强有力的领导和独立性来帮助旗下所有企业实现繁荣。2014年4月3日,Google股票进行拆股,拆分成GOOGLE CLASS A COMMOM STOCK和GOOGLE CLASS C COMMOM STOCK。

Google的持股机构:JENNISON ASSOCIATES LLC、CHARLES SCHWAB INVESTMENT MANAGEMENT INC、SWISS NATIONAL BANK等。

以上是小编为大家分享的关于Googlea和Googlec啥区别的相关内容,更多信息能关注建筑界分享更多干货

股市里面Googlea 和Googlec 什么意思?

Google有三类普通股,是在2014年4月2日完成拆分的,当时的拆分原因大致如下:

是Google的股价高的吓人。当时的Google价格是每股1228.8美元,而拆分后每股是500多美元。

拆分有利于巩固创始人对公司的控制权,当增发股票时可增发没有投票权的Class C股票,创始人的股份就不会被稀释了。

拆分股票介绍:

GOOGLE CLASS A COMMOM STOCK (简称A) ,代号:$(GOOGL)$, A有投票权。每股A具有1 股的投票权

GOOGLE CLASS C COMMOM STOCK (简称C),代号:$(GOOG)$, C没有投票权

GOOGLE CLASS B COMMOM STOCK (简称B) ,这B是给两位创办人Larry Page and Sergey Brin所专有,每股B 有10 股的投票权,且转换权各方面B 能转换为其他股份,A 及C 则载明禁止转换为其他级别股票。

至于在股利各方面,分割后, A 、 B 、 C 股都是用每股计算,享有相同的股利分配权利,亦即在股利分配上,三种级别的拥有者权利相同。如果追求股东价值和投票权,则能优先选择GOOGL。

关于Google CTemplate的采用

Google CTemplate提供了调节器(Modifier)功能。所谓调节器,类似于在模板中能采用的用户自定义表达式,也就是对相同的数据字典内容,模板中采用不同的调节器就能显示不同的内容。

要编写一个调节器,须要从template_modifiers::TemplateModifier派生一个类:

class BitStringModifier : public template_modifiers::TemplateModifier {

void Modify(const char* in, size_t inlen,

const ctemplate::PerExpandData* per_expand_data,

ExpandEmitter* outbuf, const std::string arg) const;

};

BitString 调节器的作用是将数值型数据转换为二进制字符串显示。其在模板中的采用如下所示:

bstr = bstr + {{item_type3id:x-bitstring=4}}b;

用户自定义的调节器一般采用“x-”开头。调节器能带有用户参数,例如上例的“=4”就是用户参数,表示生成的二进制串的长度为4,如果不足4位,前面自动补0。

调节器的主要功能是在Modify表达式中实现的,在该表达式中调用outbuf-Emit表达式来输出所须要的结果。

关于googlec++重新命名规范化和Google重新命名规范化的介绍到此就结束了,无人知晓道你从中找到你须要的信息了吗 ?如果你还想了解更多这各方面的信息,记得收藏关注本站。有须要独享得id能点击下方广告链接进入。独享一人一号。

未经允许不得转载:跨境外贸综合信息网 » googlec++命名规范(谷歌命名规范 )(谷歌的名称)
分享到: 更多 (0)

跨境外贸综合信息网 带给你想要内容

联系我们