这绝对是主观的,但我想尽量避免它变得有争议.我认为如果人们适当地对待它可能是一个有趣的问题.
对这个问题的想法来自评论跟帖从我的回答到:"你恨你喜欢的语言什么的五件事?" 问题.我争辩说C#中的类应该默认密封 - 我不会把我的推理放在这个问题上,但我可以写一个更全面的解释作为这个问题的答案.我对评论中讨论的热度感到惊讶(目前有25条评论).
那么,你持有什么有争议的意见?我宁愿避免那种以相对较少的基础(例如括号放置)而变得非常宗教的东西,但是例子可能包括诸如"单元测试实际上并不十分有用"或"公共领域真的很好"之类的东西.重要的是(对我来说,无论如何)是你有理由支持你的意见.
请提出您的意见和推理 - 我鼓励人们投票支持有争议和有趣的意见,无论您是否恰好同意这些意见.
我最近在SO上看到过一些与"代码指标"相关的问题,不得不想知道这些魅力是什么?以下是一些最近的例子:
在我看来,没有指标可以替代代码审查,但是:
但我想不出一个单独的指标本身总是表示"好"或"坏"代码 - 测量无法看到的东西总是有例外和原因.
从我忽略的代码指标中获得了一些神奇的洞察力吗?懒惰的程序员/经理是否在寻找不读代码的借口?人们是否提供了巨大的遗留代码库并寻找起点?这是怎么回事?
注意:我已经在答案和评论中询问了一些关于特定线程的问题并且没有得到回复,所以我认为我应该问整个社区,因为我可能错过了一些东西.运行一个指标批处理作业并不是真的必须再次阅读其他人的代码(或我自己的代码)会很好,我只是觉得它不实用!
编辑:我很熟悉大多数(如果不是所有)正在讨论的指标,我只是没有看到它们孤立或作为任意质量标准.
我正在考虑编写一个新的Windows GUI应用程序,其中一个要求是应用程序必须响应迅速,加载速度快,内存占用少.
我已经将WTL用于我之前使用此类要求构建的应用程序,但由于我在日常工作中一直使用.NET,因此返回WTL变得越来越痛苦.我对这个应用程序使用.NET不感兴趣,因为我仍然发现较大的.NET UI缺乏性能,但我有兴趣为UI使用更好的C++框架 - 比如Qt.
在开始之前我想要确定的是,我不会在性能方面对此感到后悔.
那么:Qt快吗?
我将尝试通过我希望接近匹配的示例来限定问题:我当前的WTL应用程序是程序员的记事本.我正在研究的当前版本重约4mb的代码,用于32位版本的单一语言翻译版本.在现代快速PC上加载需要1-3秒,这很重要,因为人们经常启动它以避免IDE等.一旦你编辑了一个内存占用,通常在64位Win7上12-20 mb而.您可以不间断地运行应用程序,将其保持最小化,无论如何,当您切换到它时,它总会立即引起注意.
为了争论,我想说我想将我的WTL应用程序移植到Qt,以便将来可能的跨平台支持和/或更简单的UI框架.如果不与Qt的这种性能水平相匹配,我想接近.
我偶然发现了Stack Overflow问题,差异执行如何工作?,这是一个非常详细和详细的答案.所有这一切都有意义......但是当我完成时,我仍然不知道差异执行究竟是什么.真的是什么?
在考虑软件工程的同时,我遇到了一个问题,为什么我们没有看到编写/记录代码的方式有任何改进.
想一想:自从我们从穿孔卡转向文本编辑以来,没有一个革命性的改进.我见过的最后一项改进是语法高亮和上下文敏感的帮助(例如Intellisense或ctags).不是我称之为革命性的东西.
这让我想知道:为什么会这样?
我会从错过的东西开始:
您能想到什么会使您的编码/文本编辑/文档任务更容易?
当前项目中的许多代码与使用第三方3D渲染引擎显示内容直接相关.因此,很容易说"这是一个特例,你无法对它进行单元测试".但我想知道这是否是一个有效的借口......很容易想到"我很特别",但事实上并非如此.
是否存在真正不适合单元测试的代码类型?合适的,我的意思是"没有花费更长的时间来弄清楚如何编写测试而不是值得努力"......处理大量的3D数学/渲染它可能需要大量的工作才能证明函数的输出与仅查看渲染图形相比是正确的.
每当我开始一个新的软件项目时,我都会在开始绘制类图和其他流程图时花费大量时间来规划我如何看待应用程序的工作情况.这部分只需要进行大量的思考和测试.但是在某些事情已经计划好的时候,我不需要再考虑它了,我只需要对它进行编码.
IntelliSense绝对是天赐之物,因为能够通过点击TAB键自动生成代码.但现在我想知道:人们使用什么其他技术或工具尽可能快地将代码放到屏幕上?
在网站周围遇到代码高尔夫琐事之后,显然人们试图找到在字符,线条和总大小方面尽可能短的编写代码和算法的方法,即使这意味着写下这样的东西:
//Code by: job
//Topic: Code Golf - Collatz Conjecture
n=input()
while n>1:n=(n/2,n*3+1)[n%2];print n
Run Code Online (Sandbox Code Playgroud)
所以作为初学者,我开始怀疑尺寸是否真正重要:D
这显然是一个非常主观的问题,高度依赖于所使用的实际代码,但现实世界中的经验法则是什么.
在尺寸不重要的情况下,那么我们怎么不关注性能而不是尺寸呢?
我正在构建一个包含15x15 = 225个按钮的控件,需要调整大小.因为它是一个网格,锚定和对接将不起作用.我已经尝试了TableLayoutPanel以及处理resize事件来手动放置和调整控件.在这两种情况下,调整大小都是慢得令人无法接受的.当我手动处理布局时,在调整大小功能中暂停/恢复布局没有帮助.
有什么基本的东西我可以改变以加快速度,或者这只是本机控制的限制?我知道我可以从头开始构建自定义控件,处理点击并自己绘画 - 尽管如果可能的话我宁愿坚持使用原生控件.
编辑
我知道这是很多按钮.我的问题是技术问题; 不是关于UI设计的.
performance ×4
.net ×2
c# ×2
winforms ×2
c++ ×1
code-metrics ×1
editing ×1
qt ×1
unit-testing ×1