Tag: 编码风格的

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

我有兴趣了解用于Java的高质量,独立源代码格式化器的可用select。 格式化程序必须是独立的,也就是说,它必须支持与任何特定开发环境分离的“批处理”模式 。 理想情况下,它也应该独立于任何特定的操作系统 。 因此,IDE du jour的内置格式化程序在这里没什么兴趣(除非IDE支持批处理模式格式化程序调用,可能来自命令行)。 用只能在Windows上运行的闭源C / C ++编写的格式化程序并不理想,但有点有趣。 要清楚的是,“格式化程序”(或“美化”)不同于“样式检查程序”。 格式化程序接受源代码作为input,应用样式规则,并生成语义上等同于原始源代码的样式化的源代码。 语法修改仅限于修改代码布局,如更改空白或组织import语句。 很less,如果有的话,执行其他重构。 样式检查器也应用样式规则,但只是报告违反规则而不产生修改的源代码作为输出。 所以图片看起来像这样: 格式化程序 (生成符合样式规则的修改的源代码) 阅读源代码→应用样式规则→编写风格的源代码 样式检查器 (不会产生修改的源代码) 阅读源代码→应用样式规则→写入规则违规 进一步说明 解决scheme必须是高度可configuration的。 我希望能够指定我自己的风格,而不是简单地从预设列表中select。 另外,我不是在寻找一种用Java编写的通用漂亮打印机,它可以打印很多东西。 我想风格的Java代码。 我也不一定对许多语言的macros大统一格式化程序感兴趣 。 我想这可能是一个很好的解决scheme来支持Java以外的语言,但这不是必需的。 而且, 只执行代码突出显示的工具 正确 无误 。 我对Web服务也不感兴趣。 我想要一个我可以在本地运行的工具。 最后,解决scheme不必限于开源,公共领域,共享软件,免费软件,商业或其他任何东西。 所有forms的许可都可以接受 。

在.cpp文件中定义C ++名称空间方法的正确方法

可能是重复的,但不是一个容易的search… 给定一个头像: namespace ns1 { class MyClass { void method(); }; } 我看到.cpp文件中以几种方式定义了method() : 版本1: namespace ns1 { void MyClass::method() { … } } 版本2: using namespace ns1; void MyClass::method() { … } 版本3: void ns1::MyClass::method() { … } 有没有一个“正确”的方法来做到这一点? 这些“错误”中的任何一个都不意味着同一件事情?

好的Haskell编码标准

有人可以提供一个良好的Haskell编码标准的链接? 我已经find这个和这个 ,但是他们还不够全面。 更不用说HaskellWiki包含了像“谨慎使用类”和“定义符号中缀标识符”这样的“gem”应该只留给图书馆作者。

使用'for'循环遍历C ++ Vector

我是C ++语言的新手。 我已经开始使用向量,并且已经注意到,在我看到的所有代码中,通过索引遍历一个向量, for循环的第一个参数总是基于向量。 在Java中,我可以用ArrayList做这样的事情: for(int i=0; i < vector.size(); i++){ vector[i].doSomething(); } 有没有一个原因,我没有看到这在C + +? 这是不好的做法吗?

XML元素是否有一个标准的命名约定?

XML文档是否有任何标准,事实上或其他方式? 例如哪个是写“标签”的“最佳”方式? <MyTag /> <myTag /> <mytag /> <my-tag /> <my_tag /> 同样,如果我有一个更好的属性的枚举值 <myTag attribute="value one"/> <myTag attribute="ValueOne"/> <myTag attribute="value-one"/>

如何命名工厂像方法?

我想大多数工厂像方法开始create 。 但为什么他们叫做“ 创造 ”? 为什么不“ 制造 ”,“ 生产 ”,“ build造 ”,“ 生成 ”或其他? 这只是一个品味问题吗? 一个约定? 还是在“创造”中有特殊意义? createURI(…) makeURI(…) produceURI(…) buildURI(…) generateURI(…) 一般你会select哪一个,为什么?

在Python中,什么时候应该使用函数而不是方法?

Python的禅说,应该只有一种方法来做事情 – 但我经常遇到决定何时使用函数与何时使用方法的问题。 我们来看一个简单的例子 – 一个ChessBoard对象。 比方说,我们需要一些方法来获得董事会提供的所有合法的国王移动。 我们写ChessBoard.get_king_moves()或get_king_moves(chess_board)吗? 以下是我看到的一些相关问题: 为什么python使用“魔术方法”? 是否有一个原因Pythonstring没有string长度的方法? 我得到的答案很大程度上是不确定的: 为什么Python使用一些function的方法(如list.index()),但其他function(例如len(列表))? 主要原因是历史。 函数被用于那些对于一组types是通用的操作,并且即使对于根本没有方法的对象(例如,元组)也可以工作。 当你使用Python的function特性(map(),apply()等)时,有一个函数可以很容易地应用到非对象集合中。 实际上,实现len(),max(),min()作为一个内置的函数,实际上比实现它们的方法更less。 人们可以对个别案例进行质疑,但是它是Python的一部分,现在就做出这种根本性的改变为时已晚。 函数必须保持以避免大量的代码破坏。 有趣的是,上面的内容并没有太多说明采取什么策略。 这是原因之一 – 使用自定义方法,开发人员可以自由select不同的方法名称,如getLength(),length(),getlength()或任何其他方法。 Python强制严格命名,以便可以使用常用函数len()。 稍微有趣一点。 我认为function是某种意义上的Pythonic版本的接口。 最后, 从圭多本人 : 谈到能力/接口让我想起了一些“stream氓”特殊的方法名称。 在“语言参考”中,它指出:“一个类可以通过定义具有特殊名称的方法来实现特定语法(如算术运算或者下标和切片)所调用的某些操作。 但是,所有这些方法都有一些特殊的名字,比如__len__或__unicode__ ,它们似乎是为了内置函数而提供的,而不是为了支持语法。 据推测,在基于接口的Python中,这些方法会变成ABC上的定期命名方法,这样__len__会变成 class container: … def len(self): raise NotImplemented 虽然再想一想,但我不明白为什么所有的句法操作都不会在特定的ABC上调用适当的通常命名的方法。 例如,“ < ”大概会调用“ object.lessthan ”(或者可能是“ comparable.lessthan object.lessthan ”)。 所以另外一个好处就是能够让Python远离这个蹩脚的怪名,这在我看来是一个HCI的改进 。 嗯。 我不确定我是否同意(数字:-)。 有两个“Python基本原理”,我想先解释一下。 […]

为什么大多数C开发人员使用define而不是const?

在许多程序中,# #define与常量具有相同的用途。 例如。 #define FIELD_WIDTH 10 const int fieldWidth = 10; 我通常会看到第一种forms比其他forms更受欢迎,依靠预处理器来处理基本上是应用程序决策的内容。 这个传统有什么理由吗?

R中命名variables的首选样式是什么?

R代码支持哪些命名variables和函数的约定? 据我所知,有几个不同的约定,所有这些约定并存在和谐的和声中: 1.使用周期分隔符,例如 stock.prices <- c(12.01, 10.12) col.names <- c('symbol','price') 优点:在R核心领域具有历史意义,在R核心中stream行,并由Google R风格指南推荐 。 缺点: Rife具有面向对象的含义,并且混淆了R的新手 2.使用下划线 stock_prices <- c(12.01, 10.12) col_names <- c('symbol','price') 优点:在许多编程语言中是一个常见的约定; 受到Hadley Wickham风格指南的青睐,并在ggplot2和plyr软件包中使用。 缺点: R程序员没有被历史使用; 在Emacs-Speaks-Statistics(可以用'ess-toggle-underscore'改变)中被烦人的映射到'< – '操作符。 3.使用混合大写字母(camelCase) stockPrices <- c(12.01, 10.12) colNames <- c('symbol','price') 优点:似乎在多个语言社区有广泛的采用。 缺点:有近期先例,但没有历史使用(无论是在R基地还是其文件)。 最后,就好像它不够混乱,我应该指出,谷歌风格指南认为variables的点符号,但function的混合大写。 R包缺乏一致的风格在几个层面上是有问题的。 从开发者的angular度来看,这使得维护和扩展其他代码变得困难(特别是其风格与您自己的风格不一致的地方)。 从R用户的angular度来看,不一致的语法会加深R的学习曲线,通过乘以一个概念可能被expression的方式(例如,该date的铸造函数为Date(),as.date()或as_date()?date())。

命名“class”和“id”HTML属性 – 破折号与下划线

<div id="example-value">或<div id="example_value"> ? 这个网站和Twitter使用第一种风格。 Facebook和Vimeo – 第二。 你使用哪一个?为什么?