The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:
这是软件质量奖的第二年。奖金仍然是相同的——$4,096。规则有些改变。继续阅读。顺便说一下,现在是2015年。
一个人只能提交一个项目。
提交截止日期为2016年9月1日。
我将查看提交历史以确保您是该项目的主要贡献者。
我保留拒绝任何提交而不给出解释的权利。
所有提交的内容都将在此页面上发布(包括被拒绝的内容)。
结果将于2016年10月15日在本页面和通过电子邮件公布。
最佳项目将获得$4,096。
最终决策将由我作出,并且不可协商(尽管我可能会邀请其他人帮助我做出正确的决策)。
之前获得任何现金奖励的获奖者不能再次提交。
每个项目必须是:
至少10,000行代码。
至少一年以上。
面向对象(这是我唯一理解的东西)。
最佳项目是根据以下标准来选择的。
以下内容并不重要:
编程语言。我相信任何语言,只要正确使用,都可以用来设计高质量的产品。
嗡嗡声和趋势。即使您的项目只是另一个命令行参数解析器,它仍然有资格获奖。我不关心您的营销职位;质量才是关键。
顺便说一下,如果你想赞助这个奖项并增加奖金,请给我发电子邮件。
迄今已提交60个项目(随机排序):
”
artem-zinnatullin/qualitymatters” would be translated to Chinese as “artem-zinnatullin/qualitymatters”.pholser/junit-quickcheckby@albogdano的翻译是:
codeborne/selenide 由 @asolntsev 创建
”
raphw/byte-buddy” 的Markdown段落。”
AdamsLair/duality” translates to “【AdamsLair/duality】(https://github.com/AdamsLair/duality)” in Chinese.”
thothbot/parallax” 请将此链接翻译为中文,不要翻译技术术语和专有名词。”
vmi/selenese-runner-java” 的中文翻译为:”vmi/selenese-runner-java“。”
scd4j/gradle-plugins” should be translated as “scd4j/gradle-plugins”.”
bladecoder/bladecoder-adventure-engine” should be translated as “bladecoder/bladecoder-adventure-engine”.”
Flipkart/phantom” should be translated as “Flipkart/phantom” in Chinese.”
NullVoxPopuli/aeonvera” can be translated to Chinese as “NullVoxPopuli/aeonvera”.”
mangstadt/ez-vcard” 的 Markdown 段落请翻译成中文。请不要翻译技术术语和专有名词。axet/desktop”
DakaraOnline/dakara-server” 的中文翻译为:”DakaraOnline/dakara-server””
ppareit/swiftp” translates to “ppareit/swiftp” in Chinese.”
DSteve595/Put.io” 的中文翻译为:”DSteve595/Put.io””
jaredsburrows/android-gradle-java-app-template” translated to Chinese is “jaredsburrows/android-gradle-java-app-template“(https://github.com/jaredsburrows/android-gradle-java-app-template)。”
Belphemur/SoundSwitch” translates to “Belphemur/SoundSwitch” in Chinese.”
inklabs/kommerce-core“请将此Markdown段落从英文翻译成中文,不要翻译技术术语和专有名词。”
sniffy/sniffy” should be translated as “sniffy/sniffy” (https://github.com/sniffy/sniffy)”
RobinJ1995/DistroHopper” translated into Chinese is “RobinJ1995/DistroHopper(https://github.com/RobinJ1995/DistroHopper)”.”
DSH105/EchoPet/tree/3.x” should be translated as “DSH105/EchoPet/tree/3.x” in Chinese.”
SimonKagstrom/kcov” translates to “SimonKagstrom/kcov” in Chinese.”
pedja1/SMC-Android” translated to Chinese is “pedja1/SMC-Android“(pedja1/SMC-Android).”
HeinrichReimer/material-intro” translated to Chinese: “HeinrichReimer/material-intro”
【skinny-framework/skinny-framework](https://github.com/skinny-framework/skinny-framework) 由 @seratch 创建。
”
hsz/idea-gitignore” 的 Markdown 段落的中文翻译为:”hsz/idea-gitignore””
doanduyhai/Achilles” translates to “【doanduyhai/Achilles】(https://github.com/doanduyhai/Achilles)” in Chinese.”
gerc99/SawimNE” should not be translated as it is a technical term and a proper noun.”
orfjackal/jumi“请将此Markdown段落从英文翻译为中文,不要翻译技术术语和专有名词。”
wbotelhos/raty“的中文翻译为:”wbotelhos/raty””
GautamGupta/Simple-Android-OCR“的中文翻译为:”GautamGupta/Simple-Android-OCR”tananaev/traccar请不要翻译技术术语和专有名词。paypal/squbs由@akara创建。”
datavis-tech/reactive-model” 的意思是datavis-tech/reactive-model。“
javaslang/javaslang” translates to “【javaslang/javaslang](https://github.com/javaslang/javaslang)】” in Chinese.”
lukeFalsina/Grab-n-Run” translated to Chinese would be “lukeFalsina/Grab-n-Run“(https://github.com/lukeFalsina/Grab-n-Run).”
bxbxbai/ZhuanLan” translates to “bxbxbai/ZhuanLan” in Chinese.”
apache/wicket” translates to “apache/wicket” in Chinese.”
nikolamilosevic86/owasp-seraphimdroid” would be translated to Chinese as “nikolamilosevic86/owasp-seraphimdroid”.uniVocity/univocity-parsers请将以下Markdown段落从英文翻译成中文,不要翻译技术术语和专有名词。”
ben-manes/caffeine” translates to “ben-manes/caffeine” (https://github.com/ben-manes/caffeine/).”
chrisvest/stormpot” translates to “chrisvest/stormpot” in Chinese.”
js-cookie/js-cookie” translates to “js-cookie/js-cookie(https://github.com/js-cookie/js-cookie)” in Chinese.coala/coalaby@sils
【coala/coala】由【@sils】创建。
”
arzzen/altcoin-bitcoin-explorer” 的中文翻译如下:”
allure-framework/allure-core” should be translated as “allure-framework/allure-core“(https://github.com/allure-framework/allure-core)。”
Cyan4973/zstd” translates to “Cyan4973/zstd” in Chinese.”
pmwmedia/tinylog” 请将此Markdown段落从英文翻译成中文,不要翻译技术术语和专有名词。yi-editor/yi由@ethercrow创建。”
reinterpretcat/utymap” translates to “reinterpretcat/utymap” in Chinese.”
srdja/Collections-C” translates to Chinese as “srdja/Collections-C”
【checkstyle/checkstyle](https://github.com/checkstyle/checkstyle) 由 @romani 创建
2016年10月15日:我请我们的一位Java开发者对所有项目进行了初步分析。这是他今天给我回复的报告:award-2016.txt(你可以在那里找到你的项目)。我在他的正面和负面方面加入了我的评论(请在那个文本文件中查看)。根据他的意见和初步分析,我选择了这几个入围者。
“
NullVoxPopuli/aeonvera(Ruby)”SimonKagstrom/kcov(C++)“
skinny-framework/skinny-framework(Scala)”
“skinny-framework/skinny-framework”(Scala)
paypal/squbs(Scala)ben-manes/caffeine(Java)coala/coala(Python)
对不起我迟到了,但是我需要几天时间来仔细分析它们,并决定哪个会获奖。我将在10月21日,也就是六天后宣布获胜者。我会给每个人发送电子邮件并在这里公布我的决定。
2016年10月18日:这是我对那七个入围者的分析。我试图尽可能地关注每个项目(它们都相当不错)。
pholser/junit-quickcheck (19K LoC, 80K HoC)
GitHub发布在这里,但我没找到它们是如何制作的,发布程序在哪里?此外,它们没有任何文档,也没有发布说明。
有一些-ER类,例如
Shrinker和SampleSizer(具有代码丰富的构造函数)。“generators”的设计并不真正面向对象,我猜。它们都是过程的提供者,从OOP的角度来看并不真正是”对象”。
Score: 5
NullVoxPopuli/aeonvera(46K LoC, 835K HoC)
这是Ruby on Rails,它是MVC架构,不是真正的OOP。还有一个带有贫血模型的ORM(位于
models/目录下)。除此之外,“序列化器”、“服务”、“验证器”等等——也不是真正的OOP。我没有找到任何 GitHub 发布。
在存储库中,没有官方的发布流程。我根本无法理解这个产品是如何进入生产环境的,这个过程没有自动化(或者脚本不在存储库中)。对于一个网络应用来说,这是一个严重的问题。
除此之外,这个应用程序绝对比许多其他类似的RoR网络应用程序更干净。干得好。
Score: 4
SimonKagstrom/kcov(15K LoC,50K HoC)
有些代码段是过于复杂的方法,例如在
ptrace.cc,elf-parser.cc,或html-writer.cc中。有一些-ER类,例如”writers”、”verifiers”和”parsers”,例如:
AddressVerifier或DwarfParser。接口以
I为前缀,这在面向对象编程中是一种不好的做法,请参阅reporter.hh。有一些”utils”,我会用类替换它们(其中大部分):
utils.hh。Score: 4
skinny-framework/skinny-framework(44K LoC,191K HoC)
我没有找到任何静态分析。
我没有找到代码覆盖率控制,尽管有很多单元测试。
有一些实用类,例如
StringUtil,DateTimeUtil。这是MVC,它是面向对象编程中的一个反模式。
有一个ORM,也是一种反模式。
代码的复杂性有时非常高,例如这个文件:
AssociationsFeature.scalaScore: 2
paypal/squbs (28千行代码,163千字符)
有一些实用类,例如
ConfigUtil。总体印象是复杂度相当高,例如这些文件非常难以理解:
ServiceRegistry.scala或UnicomplexBoot.scala。得分:3(主要是由于复杂性)
ben-manes/caffeine (47K LoC, 191K HoC) should be translated as: ben-manes/caffeine(47K 行代码,191K 高代码)。
有一些-ER类,例如
Weigher可以很容易地重命名为Weight。同样适用于“loaders”和“writers”。Score: 4
coala/coala (15K LoC, 274K HoC)
coala/coala(15K LoC,274K HoC)
有一些-ER类,比如”parsers”,”collectors”,”importers”。
我仍然没有看到一致的代码格式,看到一些行前有这么多空格,而且没有任何逻辑地放在那里,真的很奇怪(至少我看不到那个逻辑,例如 这个示例)。
一些代码是纯粹的全局代码,没有任何类,比如在
Processing.py和Collectors.py中(也许这是不可避免的,但仍然看起来很奇怪)。一些文件相当长,例如
Lynter.py或ConsoleInteraction.py。Score: 5
我找不到一个强大的单一领导者… 让我想一想。
2016年10月23日:今年我没有找到一个单一的领导者,奖金分给了两个项目:pholser/junit-quickcheck 和 coala/coala(每个项目$2,048)。
这是你们的徽章:
将这段代码放到 GitHub 的 README 文件中(在 URL 中用你的 GitHub 用户名替换 ???)。
谢谢大家参与!明年再见。
Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 05:13
