C_and_CPP 板


LINE

匈牙利命名规则 https://idleloop.com/hungarian/ Charles Simonyi 匈牙利记谱法的创造者 在微软公司工作时研发出来 您可以找到 2000年~2004年的 Directx SDK source code 符合这种写作方式 匈牙利人名和大多数其他欧洲人名相比是反过来的,即姓氏在名字的前面。 举个例子,英语化的名字「Charles Simonyi」在匈牙利语中原本是 「Simonyi Karoly」。 这与中文名字是一样的 它是一种语义学用在程式写作上 语义学(英语:semantics)也作语意学,是对指称、意义或真理的研究;语义学 涉及了语言学、逻辑学、计算机科学、自然语言处理、认知科学、心理学等 诸多领域。 有两种匈牙利表示法。 系统匈牙利语 和 应用程序匈牙利语 使用应用匈牙利符号来命名语义更好 匈牙利语命名语义分为 3 个部分 1. 种类 从最接近目的名的种类至最远的目的名种类 在简短的命名时可以跳过种类 2. 集合的缩写 或 代表意思的缩写。 3. 目的缩写 类似於告诉你的老板这个命名是什麽用途 范例: (a) PT_WRITE_COMMAND is a point structure. structure T must at fisrt. if point structure then PT at first PT_WRITE_COMMAND aptwcShare[8]; 等同 T_WRITE_COMMAND* aptwcShare[8]; a = array -> type abbreviation of close to far from purpose. p = point -> type of the middle distance from purpose t = struct -> type of the far distance from purpose wc = WRITE_COMMAND -> set abbr. Share = purpose (b) int nPort; n = number -> meaning abbr. Port = purpose (c) const char aszProtocol[8] a = array -> type abbreviation close to far from purpose. sz = string zero ending -> meaning abbr. Protocol = purpose const can skip (d) class member int m_iCount; static variable int s_iCount; global variable int g_iCount; //////////////////////////// Linus Torvalds linux 创始者的看法 https://www.kernel.org/doc/html/v4.10/process/coding-style.html Encoding the type of a function into the name (so-called Hungarian notation) is brain damaged - the compiler knows the types anyway and can check those, and it only confuses the programmer. No wonder MicroSoft makes buggy programs. James Ritchie Carroll openPDC 首席设计师 程式说明 https://www.gridprotectionalliance.org/docs/GPA_Coding_Guidelines_2011_03.pdf Do not use Hungarian notation Do not abbreviate Do not prefix enums, classes, or delegates with any letter 各路名人的观点 https://en.wikipedia.org/wiki/Hungarian_notation#Notable_opinions Joel Spolsky的观点 中译: https://blog.csdn.net/u010133610/article/details/103462974 它在微软的历史 https://en.wikipedia.org/wiki/Talk%3AHungarian_notation Systems Hungarian was banned from the Windows NT project by its chief architect Dave Cutler. His decision to do this was correct, in my opinion. The best counter-example for the usefulness of Hungarian notation is IMHO provided by Microsoft themselves. From How To Write Unmaintainable Code: One followon trick in the Hungarian notation is "change the type of a variable but leave the variable name unchanged". This is almost invariably done in windows apps with the migration from Win16 WndProc(HWND hW, WORD wMsg, WORD wParam, LONG lParam) to Win32 WndProc(HWND hW, UINT wMsg, WPARAM wParam, LPARAM lParam) where the w values hint that they are words, but they really refer to longs. The real value of this approach comes clear with the Win64 migration, when the parameters will be 64 bits wide, but the old "w" and "l" prefixes will remain forever. https://www.makeuseof.com/what-is-hungarian-notation-and-should-i-use-it/ But you might want to heed the latest advice from Microsoft, the company where Hungarian Notation originated. Since 2008, their General Naming Conventions have included this simple note: [DO NOT use Hungarian notation.] 出处如下 General Naming Conventions https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/general-naming-conventions 缩址: https://reurl.cc/9V3O08 Word Choice DO choose easily readable identifier names. For example, a property named HorizontalAlignment is more English-readable than AlignmentHorizontal. DO favor readability over brevity. The property name CanScrollHorizontally is better than ScrollableX (an obscure reference to the X-axis). DO NOT use underscores, hyphens, or any other nonalphanumeric characters. [DO NOT use Hungarian notation.] AVOID using identifiers that conflict with keywords of widely used programming languages. Hungarian notation 的优点 https://en.wikipedia.org/wiki/Hungarian_notation#Advantages Hungarian notation 的缺点 https://en.wikipedia.org/wiki/Hungarian_notation#Disadvantages 匈牙利符号的优缺点 https://www.fluentcpp.com/2019/06/21/the-cons-and-cons-of-the-hungarian-notation/ 缩址: https://reurl.cc/5MdGaR // 请问各位的公司还使用 Hungarian Notation? ※ 引述《fatalfeel2 (风在动)》之铭言: : 程式命名规则 与 Makefile : 1. 查阅了 ISO 1999 C99, ISO 2011 C++, ISO 2014 C++, ISO 2020 C++, : https://reurl.cc/gZGz6L : https://reurl.cc/XLGlq0 : ISO都有基本的命名规则 : 另查阅 微软 安卓 程式规范 : 微软 的 命名规则偏向 The Hungarian Naming Convention : 由2001 制定完整规范, prefix 如ch, sz, p : https://idleloop.com/hungarian/ : 2. variable prefix naming convention 一定是正确的吗? : (a) : 北美电网程式规范与openPDC 首席设计师 James Ritchie Carroll : https://www.gridprotectionalliance.org/docs/GPA_Coding_Guidelines_2011_03.pdf : Page 12 原文贴上 : Do not use Hungarian notation : Do not abbreviate : Do not prefix enums, classes, or delegates with any letter : (b) : Linux核心的创始者 开源专案Git创始者 Linus Torvalds : https://www.kernel.org/doc/html/v4.10/process/coding-style.html : https://slurm.schedmd.com/coding_style.pdf : 第四章 原文贴上 : Encoding the type of a function into the name (so-called Hungarian notation) : is brain damaged - the compiler knows the types anyway and can check those, : and it only confuses the programmer. No wonder MicroSoft makes buggy programs. : (注意一下这两位大神coding在意的重点是什麽) : 3. : GNU MAKE : https://www.gnu.org/software/make/manual/make.html : #dir named with www.gnu.org/software/make/manual/make.html 4.3 16.3 16.5 : SRCDIR = ./source : OBJDIR = ./obj : BINDIR = ./bin : #compile optione with www.gnu.org/software/make/manual/make.html 4.3 16.3 16.5 : $(OBJDIR)/%.o : ./$(SRCDIR)/%.cpp : $(CXX) -c $(CXXFLAGS) $< -o $@ : #link : $(TARGET): $(OBJFILES) : $(CXX) $^ $(LDFLAGS) -o $(BINDIR)/$@ : 有人习惯使用 : $(CXX) $(LDFLAGS) $^ -o $(BINDIR)/$@ : $^ 代表着许多 .o 档 : $(LDFLAGS)若放在 $^ 前面 : ubuntu 16/18 x86_64 g++ link -lpthread 时会找不到 : 故$(LDFLAGS) 一定要放在 $^ 之後 : #Note: CPPFLAGS at www.gnu.org/software/make/manual/make.html 10.3 : CC : Program for compiling C programs; default ‘cc’. : CXX : Program for compiling C++ programs; default ‘g++’. : CPPFLAGS : Extra flags to give to the C preprocessor and programs that use it (the : C and Fortran compilers). : CXXFLAGS : Extra flags to give to the C++ compiler. : ※ 引述《heaviest (heaviest)》之铭言: : : 最近开始学C,刚刚把前几天写的程式,打开来看 : : 发现变数一时之间完全搞不清楚 : : 明明当初有尽力的取有意义的名称,然後照着大写来分开字这样打 : : 跑去问了学长,他叫我去背单字,他说变数名字取不出来是我单字被太少QQ : : 请问各位前辈们都怎麽取有意义的名字 --
QR Code



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.187.80.32 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1679154803.A.3A8.html
1F:→ LPH66: 竟然没有 Joel Spolsky 的这篇 03/19 04:45
3F:→ LPH66: code-look-wrong/ 03/19 04:45
谢谢中译已补上 ※ 编辑: fatalfeel2 (218.187.80.32 台湾), 03/19/2023 06:40:07
4F:推 DerLuna: 缩8个真的太多了 04/03 13:40







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP