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年。
一个人只能提交一个项目。
提交截止日期为2017年9月1日。
我会检查提交历史,以确保您是该项目的主要贡献者。
我保留拒绝任何提交而无需解释的权利。
所有提交内容将会在此页面上发布(包括被拒绝的内容)。
结果将于2017年10月15日在本页面和通过电子邮件公布。
最佳项目将获得4096美元。
最终决策将由我做出,并且不可协商(尽管我可能会邀请其他人帮助我做出正确的决定)。
之前获得任何现金奖励的获胜者不能再次提交。
每个项目必须遵循以下要求:
至少10,000行代码。
至少一年。
面向对象(这是我唯一理解的东西)。
使用这些标准来选择最佳项目。
不重要的是:
编程语言。我相信任何语言,只要使用正确,都可以应用于设计高质量的产品。
Buzz和趋势。即使你的项目只是另一个命令行参数解析器,它仍然有资格获奖。我不在乎你的市场营销地位;质量才是关键。
顺便说一句,如果您想赞助这个奖项并增加奖金,请给我发送电子邮件。
这些迄今为止提交的28个项目(按提交顺序排列):
JnRouvignac/AutoRefactor
(Java)javaslang/javaslang
(Java) translates to:
javaslang/javaslang
(Java)
HDouss/jeometry
(Java)ntpsec/ntpsec
(C) translates tontpsec/ntpsec
(C)in Chinese.php-ai/php-ml
(PHP)LobbyOS/lobby
(PHP) 走廊操作系统/大厅 (PHP)onqtam/doctest
(C++) 请将此段Markdown段落从英文翻译成中文,不要翻译技术术语和专有名词。iboB/dynamix
(C++)的中文翻译为:iboB/dynamix
(C++)。atk4/data
(PHP) 的中文翻译为:”atk4/data”(PHP)laravel/framework
(PHP)zetaops/ulakbus
(Python)请mgramin/sql-boot
(Java) 的中文翻译为:mgramin/sql-boot
(Java)。goreleaser/goreleaser
(Go) 请不要翻译技术术语和专有名词。kogoia/MRTD.NET
(C#) translates tokogoia/MRTD.NET
(C#) in Chinese.mafagafogigante/dungeon
(Java)javascript-obfuscator/javascript-obfuscator
(TypeScript)klapuch/Remembrall
是一个 PHP 项目。zahasoft/repository
(C#) ->zahasoft/repository
(C#)”
DrBookings/drbookings
(Java)” translated to Chinese is “DrBookings/drbookings
(Java)”.flyimg/flyimg
(PHP)miso-belica/sumy
(Python) 的中文翻译如下:simplcommerce/SimplCommerce
(C#) translated to Chinese is:
simplcommerce/SimplCommerce
(C#)
dkhmelenko/Varis-Android
(Java)
【dkhmelenko/Varis-Android】(Java)
ribtoks/xpiks
(C++) 的 Markdown 段落。octaviospain/Musicott
(Java)
[2017年9月15日] 我邀请了六个人帮我审查这些项目。他们的名字是:
Filipe Freire (C/C++, 6 projects) - 菲利普·弗雷雷
Sergey Kapralov(Java,3个项目)
Mihai Andronache(Java,3个项目)
Sergey Bukharov(Java,3个项目)
Valentin Ignatyev: (Python, 2 个项目)
[2017年10月15日] 这是他们给我的总结:award-2017.txt。我会在接下来的几天内选择获胜者,请保持关注!
[2017年10月21日] 我的候选名单包括以下六个项目(随机排序):php-ai/php-ml
、vavr-io/vavr
、zetaops/ulakbus
、mafagafogigante/dungeon
、ribtoks/xpiks
、javascript-obfuscator/javascript-obfuscator
。明天(希望如此)我会决定如何分配4096美元。
[2017年10月23日] 这是我对候选名单中每个项目的个人观察。我只会提到负面的问题,因为所有项目都很不错,没必要说它们有多好。我按重要性排序列出了问题(最重要的在前面)。
php-ai/php-ml
(9.8K行PHP代码,29K行注释):
获取器、设置器以及可变性在许多地方。
NULL在许多地方都存在(再次强调,我知道PHP中没有方法重载)。
-ER:Estimator(估计器)、Classifier(分类器)、Clusterer(聚类器)、Optimizer(优化器)等等。
在构造函数中编写代码(是的,我明白这是PHP)。
方法体中的空行
Score: 5
vavr-io/vavr
(70K LoC Java,834K HoC):
在
io.vavr.collection
包中有非常大的”类”,它们非常庞大。接口
Seq
有120多个方法!发生了什么?实用类,静态方法
一些
.java
文件中有几个Java类。为什么?无法构建主分支:#2147
Score: 4
zetaops/ulakbus
(25K 行 Python 代码,707K 字符):
没有持续集成,没有测试覆盖率,没有静态分析自动化?
查看评审者的评论
Score: 2
mafagafogigante/dungeon
(14K LoC Java,88K HoC):
静态方法、获取器、设置器、可变性
提交不会链接到问题和PR。
在许多地方中,存在着方法体内的注释,这是一个不好的习惯。
Score: 5
ribtoks/xpiks
(180K+ LoC C/C++, 739K HoC):
类型相当大,具有许多方法
Util类,助手
-ERs: CommandManager, SpellCheckWorker, etc. -ERs:CommandManager,SpellCheckWorker等。
我没有在代码中找到太多的文档。
提交不与问题/PR链接
Score: 4
javascript-obfuscator/javascript-obfuscator
(72K LoC JS/TS, 400K HoC):
注释驱动的可注入依赖
-ERs:reader,sanitizer,emitter
类中的公共属性
我相信这里许多的“对象”只是DTOs(数据传输对象)。
接口以
I
作为前缀,这是一种反模式。Score: 4
今年的整体印象是,我收到的垃圾信息明显减少了。提交的项目数量较少,但其质量比前两年都要高得多。看到这种趋势,我感到很高兴。这对我来说意味着我正在做正确的事情。
这一次,我更加注重面向对象编程的优雅性和代码库的可维护性。保持代码可维护性的关键因素有:
自动静态分析
自动构建(CI)
Automated tests
纪律严明的提交,通过问题和PRs
对于面向对象编程的优雅性,像往常一样,我注意到了反模式的缺失,包括NULL、getters、setters、static、mutability等等。
今年有两位获胜者:php-ai/php-ml
和mafagafogigante/dungeon
。但我并不是真的喜欢我在这些代码库中找到的代码。它显然比其他人都要好,但并不完美。
因此,这是我的决定:我将每位获胜者只给予1024美元,而不是2048美元。
祝贺@itcraftsmanpl
获得php-ml
(1024美元)和@mafagafogigante
获得dungeon
(1024美元)。
这是你们的徽章:
将此代码放入GitHub的README文件中(将URL中的???
替换为您的GitHub用户名)。
感谢大家的参与!明年再见。
Translated by ChatGPT gpt-3.5-turbo/36 on 2023-11-17 at 12:43