2.1 gofmt 的文化演变Cultural Evolution of gofmt Robert Griesemer Google, Inc. ## gofmt • Go源代码格式化工具 • 定义了“标准”格式 • golang.org代码库中所有提交的Go代码都必须通过gofmt格式化过 - 除了gofmt之外,相同功能可以通过go/format库获得 - 不需要设置! ## 初衷 • 代码审查是软件工程的最佳实践 ObjectiveC, D, Java, Pawn and VALA的美化器| |等等|| ## 事实上 在2007年,没人喜欢代码格式器 • 例外:IDE强制的格式化 但是:很多程序员不用IDE... - 问题:如果是格式化太具有毁坏性,那么就没有人会用 - 被忽视的观点:“刚刚好”的,统一化的格式是好过于各种不同的格式的。 - 规范的价值在于:整齐划一,而不是完美 ## 好的格式美化器的问题 处理注释是很难的 - 语言本身也会增加很多额外的复杂度(比如,C的宏) ## 格式化Go ## 尽量保证其简单 • 小的语言能让事情变得简单 不要为行长度烦恼 相反的,尊重用户:考虑原有代码中的断行 - 不要支持任何选项 • 使其使用傻瓜化 一个格化标准搞定所有! ## gofmt的基本结构 • 源代码的处理 - 基本的格式化 • 附加:注释的处理 - 完善:代码和注释的对齐 但是,没有牛X的通用布局算法0 码力 | 34 页 | 9.97 MB | 2 年前3
《深入浅出MFC》2/e式。对我而言,以往遗留的许多疑惑,在此都一一得到了解答。最重要的是,您曾经说过, 学习MFC 的过程中最重要的莫过于自我审视MFC 程序代码的能力。很高兴地,在我看完本书 之后,我确实比以前更有能力来看MFC 源代码了。总之,我为自己能够更深入了解MFC 而 要向您说声谢谢。谢谢您为我们写了深入浅出MFC 这本书。我受益匪浅。 加拿大. 温哥华. 陈宗泰 阁下之书,尚有人性,因此我参而再参,虽不悟,也是enjoyable。看阁下之书的附带效果 不应同时 存在。然而,没有深入如何浅出?不入虎穴焉得虎子? 唯有把MFC 骨干程序的每一个基础动作弄懂,甚至观察其源代码,才能实实在在掌握MFC 这一套application framework 的内涵,及其对象导向的精神。我向来服膺一句名言:源代码 说明一切,所以,我挖MFC 源代码给你看。 这是我所谓的深入。 9 唯有掌握住MFC 的内涵,对于各式各样的MFC 应用才能够如履平地,面对庞大的 的原理,再至物 件导向的精神,然后回到MFC 的运用。这会是一条迢迢远路吗? 似远实近! 许多朋友曾经与我讨论过,对于MFC 这类application framework,应该挖掘其内部机制到什 么程度?探究源代码,岂不有违「黑盒子」初衷?但是,没有办法,他们也同意,不把那些 奇奇怪怪的宏和指令搞清楚,只能生产出玩具来。对付MFC 内部机制,态度不必像对付 MFC 类别一样;你只需好好走过那么一回,有个印象,0 码力 | 1009 页 | 11.08 MB | 2 年前3
基于 Java EE 的企业应用系统设计 - Spring MVC 02231babb9351930/p2_1.jpg) ## 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL ## 接下来… 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL ## 转换器和格式化(Converter and Formatter) Spring MVC Registrar 注册 Formatter 也可以用 Registrar 注册 Formatter,自行搜索学习。 ## 接下来… 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL ## 验证器 输入验证是 Spring 处理的最重要 Web 开发任务之一。在 Spring MVC Validator,则其事件执行顺序是: 1. 调用 Controller 期间,将会有一个或者多个 Formatter,试图将输入字符串转换成 domain 对象中的 field 值。 2. 一旦格式化成功,验证器就会介入。 例如,Order 对象可能会有一个 shippingDate 属性(其类型为 Date),其值绝对不可能早于今天的日期。当调用 OrderController 时,DateFormatter0 码力 | 56 页 | 866.07 KB | 2 年前3
Adventures with Legacy Codebases: Tales of Incremental Improvement0 码力 | 77 页 | 4.34 MB | 1 年前3
鸟哥的Linux私房菜:基础学习篇 第四版参考资料与延伸阅读 9. 第七章、Linux 磁盘与文件系统管理 9.1.7.1 认识 Linux 文件系统 9.2.7.2 文件系统的简单操作 9.3.7.3 磁盘的分区、格式化、检验与挂载 9.4.7.4 设置开机挂载 9.5.7.5 内存交换空间(swap)之创建 9.6.7.6 文件系统的特殊观察与操作 9.7.7.7 重点回顾 本章习题 12.9.10.9 参考资料与延伸阅读 13. 第十一章、正则表达式与文件格式化处理 13.1.11.1 开始之前:什么是正则表达式 13.2.11.2 基础正则表达式 13.3.11.3 延伸正则表达式 13.4.11.4 文件的格式化与相关处理 13.5.11.5 重点回顾 13.6.11.6 本章习题 22.6. 20.6 灾难复原的考虑 22.7. 20.7 重点回顾 22.8. 20.8 本章习题 22.9. 20.9 参考资料与延伸阅读 23. 第二十一章、软件安装:源代码与 Tarball 23.1. 20.1 开放源码的软件安装与升级简介 23.2. 21.2 使用传统程序语言进行编译的简单范例 23.3. 21.3 用 make 进行宏编译 230 码力 | 1057 页 | 14.60 MB | 2 年前3
Weblate 4.4.1 用户文档342 3 Contributor docs 344 3.1 为 Weblate 做贡献 …… 344 3.2 开始为 Weblate 贡献代码 …… 345 3.3 Weblate 源代码 …… 349 3.4 调试 Weblate …… 349 3.5 Weblate 内部 …… 351 3.6 开发附加组件 …… 352 3.7 Weblate 前端 …… 354 Weblate 中汇报问题。 ## 双空格 翻译包含双空格 检查翻译中是否存在双空格,以避免其他与空格相关的检查出现误报。 当在源中找到双空格时,检查为假,这意味着故意使用双空格。 ## 格式化字符串 检查字符串格式是否在源和翻译之间复制。在翻译中省略格式字符串通常会导致严重的问题,因此字符串中的格式通常应与源匹配。 Weblate 支持检查几种语言的格式字符串。仅当适当地标记了字符串时(例如,C 可以按每单位(请参阅源字符串另外的信息)或在组件配置中完成此操作。为每个组件定义它比较简单,但是如果该字符串未解释为格式化字符串,而碰巧使用了格式化字符串语法,则可能导致误报。 提示:如果 Weblate 中不提供特定格式的检查,则可以使用通用占位符。 除了检查,这也将高亮格式化字符串,方便将它们插入到已翻译字符串: 或在组件配置中完成此操作。为每个组件定义它比较简单,但是如果该字符串未解释为格式化字符串,而碰巧使用了格式化字符串语法,则可能导致误报。 提示:如果 Weblate 中不提供特定格式的检查,则可以使用通用占位符。 除了检查,这也将高亮格式化字符串,方便将它们插入到已翻译字符串: 或在组件配置中完成此操作。为每个组件定义它比较简单,但是如果该字符串未解释为格式化字符串,而碰巧使用了格式化字符串语法,则可能导致误报。 提示:如果 Weblate 中不提供特定格式的检查,则可以使用通用占位符。 除了检查,这也将高亮格式化字符串,方便将它们插入到已翻译字符串: 












