coding-style相关内容

在 C++ 中使用 assert() 是不好的做法吗?

我倾向于在我的 C++ 代码中添加大量断言,以便在不影响发布版本性能的情况下更容易调试.现在,assert 是一个纯 C 宏,没有考虑 C++ 机制. 另一方面, C++ 定义了std::logic_error,它意味着在程序逻辑出现错误的情况下抛出(因此得名).抛出一个实例可能是 assert 的完美的、更 C++ 风格的替代方案. 问题在于assert 和abort 都立即终止程序而 ..
发布时间:2021-11-30 11:29:09 C/C++开发

我可以对代码实施哪些类型的模式以使其更容易转换为另一种编程语言?

我正在着手做一个副项目,其目标是将代码从一种编程语言翻译成另一种编程语言.我开始使用的语言是 PHP 和 Python(Python 到 PHP 应该更容易开始),但理想情况下,我能够(相对)轻松地添加其他语言.计划是: 这是面向 Web 开发的.原始代码和目标代码将位于框架之上(我也必须编写).这些框架将采用 MVC 设计模式并遵循严格的编码约定.这应该会使翻译更容易一些. 我也在关 ..
发布时间:2021-11-26 17:36:21 Python

独立的 Java 代码格式化程序/美化程序/漂亮的打印机?

我有兴趣了解高质量、独立的 Java 源代码格式化程序的可用选择. 格式化程序必须是独立的,也就是说,它必须支持“批处理"模式,即与任何特定的开发环境分离.理想情况下,它也应该独立于任何特定的操作系统.因此,IDE du jour 的内置格式化程序在这里没什么意义(除非 IDE 支持批处理模式格式化程序调用,可能是从命令行调用).用闭源 C/C++ 编写的格式化程序只能在 Windows 上 ..
发布时间:2021-11-25 21:14:06 Java Web开发

编码约定 - 命名枚举

Java 中是否有命名枚举的约定? 我的偏好是枚举是一种类型.因此,例如,您有一个枚举 水果{苹果、橙子、香蕉、梨子、... }网络连接类型{LAN,Data_3g,Data_4g, ... } 我反对命名: FruitEnum网络连接类型枚举 我知道很容易挑选出哪些文件是枚举,但你也会有: NetworkConnectionClass水果类 另外,是否有一个很好的文档来描述常量 ..
发布时间:2021-11-25 19:45:42 Java Web开发

for循环优化

List鲜花 = 新的 ArrayList(); 我的 for 循环目前看起来像这样... for (int i = 0; i 或者我应该把它改成下面给出的代码 int size = flowers.size();for (int i = 0; i ..
发布时间:2021-11-25 18:49:44 Java Web开发

明确地与布尔常量进行比较是否不好,例如如果 (b == false) 在 Java 中?

写的不好: if (b == false)//...while (b != true)//... 是否总是改为写: if (!b)//...而 (!b)//... 大概在性能上没有区别(或者有没有?),但是你如何权衡两者之间的明确性、简洁性、清晰性、可读性等? 更新 为了限制主观性,我也很感激权威编码风格指南中的任何引用,关于哪种总是更可取或何时使用. 注意:变量名b只是 ..
发布时间:2021-11-25 18:22:07 Java Web开发

Java - 何时使用“this"关键字

在 Java 中使用 this 关键字的最佳实践是什么?例如,我有以下课程: class Foo {吧台;公共 Foo(酒吧酒吧){this.bar = 酒吧;}} 这很好,但 Java 足够聪明,知道如果我将构造函数中的语句更改为 bar = bar; 那么为什么要使用 this 关键字?(我意识到在某些情况下,完全有必要使用它,我只是要求这样的情况).实际上,我倾向于纯粹为了可读性而 ..
发布时间:2021-11-25 16:55:55 Java Web开发

.toArray(new MyClass[0]) 还是 .toArray(new MyClass[myList.size()])?

假设我有一个 ArrayList ArrayList我的列表; 而且我想调用toArray,是否有使用的性能原因 MyClass[] arr = myList.toArray(new MyClass[myList.size()]); 结束 MyClass[] arr = myList.toArray(new MyClass[0]); ? 我更喜欢第二种风格,因为它不那么冗长,而且 ..
发布时间:2021-11-25 14:54:36 Java Web开发

如果我在 Java 中省略花括号可以吗?

我已经搜索过这个,但找不到答案,无论出于何种原因,我都不好意思问教授,因为当数百人盯着你时的感觉...... 无论如何,我的问题是括号的重要性是什么?如果我省略它们可以吗?示例: for (int i = 0; i 对比 for (int i = 0; i 我知道它们都可以工作,但是如果我省略括号(由于可见性,我倾向于做很多事情),这会改变什么,有什么改变吗?正如我所说,我知道它 ..
发布时间:2021-11-25 14:16:18 Java Web开发

__USE_FILE_OFFSET64 与 _FILE_OFFSET_BITS=64

我正在尝试维护可在许多不同系统上编译的代码.我见过十几种不同的请求 lseek 需要 64 位的方法.有些系统使用lseek64,有些使用lseeko,有些需要你定义_FILE_OFFSET_BITS=64,现在我刚刚发现了一个新的需要您定义 __USE_FILE_OFFSET64. 这一切有什么标准吗? 解决方案 有IEEE Std 1003.1-2004 中的 getconf 值 ..
发布时间:2021-11-25 06:18:25 C#

css3 转换 matrix3d 值

我想知道如何获取 matrix3d 的 rotateX 和 rotateY 值,例如: matrix3d(0.9999999970415847, 0, 0.00007692093651178932, 0, 0, 1, 0, 0, -0.00007692093651178999, 0.0007692093651178932, 0, 0, 1, 0, 0, -0.000076920936511789 ..
发布时间:2021-11-25 01:51:23 C#

代码风格;将 javadoc 放在注释之前还是之后?

我知道这不是最重要的问题,但我刚刚意识到我可以在注释之前或之后放置 javadoc 注释块.我们希望采用什么作为编码标准? /*** 这是注解前的 javadoc 注释*/@成分公共类 MyClass {@自动连线/*** 这是注解后的javadoc注释*/私人 MyOtherClass 其他;} 解决方案 在注解之前,因为注解是“属于"类的代码.请参阅官方文档中的javadoc 示例. ..
发布时间:2021-11-22 17:06:00 Java Web开发

Intellij Idea/Android Studio 中的 Android 代码风格

在 Android Studio 之前,我使用的是 android-formatting.xml 作为 Eclipse 中的代码样式. 如何设置 Android Studio/Intellij Idea 以像在 Eclipse 中一样格式化代码? 更新 我尝试了 Eclipse Code Formatter 插件.它似乎有效,但您根本无法编辑任何设置.我的团队更喜欢 120 列而 ..
发布时间:2021-11-21 19:15:54 Android

Intellij (Android studio) 成员变量前缀

如何配置 Android Studio(或通常的 Intellij)以正确生成带有前缀的成员变量的 getter 和 setter? 如果我有一堂课 公共类Foo{国际毫巴;} 我希望它在执行 Refactor->Encapsulate 或 Generate 时创建 getBar() 而不是 getMBar代码> 编辑 我找到了按项目执行此操作的方法:您只需转到 File-> ..
发布时间:2021-11-21 18:31:29 Android

计算矩阵中大于某个值的所有值

我必须计算矩阵(二维数组)中大于 200 的所有值. 我为此写的代码是: za=0p31 = numpy.asarray(o31)对于范围内的 i(o31.size[0]):对于范围内的 j(o32.size[1]):如果 p31[i,j]<200:za=za+1印扎 o31 是一个图像,我将其转换为矩阵,然后找到值. 我的问题是,有没有更简单的方法来做到这一点? 解决方案 ..
发布时间:2021-11-18 04:52:52 其他开发

使用数组代替 std::vector 的优点?

我目前看到很多标记为 C++ 并且与处理数组有关的问题. 甚至还有一些问题会询问 std::vector 无需任何魔法就可以提供的数组的方法/特性. 所以我想知道为什么这么多开发人员在 C++ 中选择数组而不是 std::vector? 解决方案 一般来说,我非常喜欢使用向量而不是数组来完成重要的工作;然而,数组有一些优点: 数组稍微紧凑一些:大小是隐式的. 数组不可调整大 ..
发布时间:2021-11-18 03:30:03 其他开发