草庐IT

坏主意

全部标签

c# - 将开发快捷方式放在#if DEBUG block 中是个坏主意吗?

在我们代码的一些地方,我们使用#ifDEBUGblock来简化开发。像这样的东西:#ifDEBUGserverIP=localhost;#elseserverIP=GetSetting()#endif或privateboolisLicensed()#ifDEBUGreturntrue;#endifreturnCheckSetting()还有一些地方我们会像这样进行外观更改:#ifDEBUGbackground=humorousImage.jpg#elsebackground=standardColor#endif依赖#ifdebug来简化开发是否危险?如果是,#ifdebug的有效用法

c# - 继承 List<T> 来实现集合是个坏主意吗?

我曾经读过ImaarSpaanjars的一篇关于如何构建3层应用程序的文章。(http://imar.spaanjaars.com/416/building-layered-web-applications-with-microsoft-aspnet-20-part-1)这已经成为我编码的基础了一段时间。因此我像他一样通过继承List来实现集合.因此,如果我有一个名为Employee的类,为了实现一个集合,我还将有一个Employees类,如下所示。classEmployee{intEmpID{get;set;}stringEmpName{get;set;}}classEmployee

C# action.BeginInvoke(action.EndInvoke,null) 是个好主意吗?

如果我想对某些代码进行“即发即忘”,但仍想确保我的内存被清理(根据WhydoesasynchronousdelegatemethodrequirecallingEndInvoke?),下面的方法是否可以实现该目标?ActionmyAction=()=>LongRunTime();myAction.BeginInvoke(myAction.EndInvoke,null);我环顾四周,但没有看到任何地方使用过这种模式。相反,人们使用annonomoyus方法作为他们的回调(例如TheproperwaytoendaBeginInvoke?)或者他们定义一个实际的回调方法。由于我还没有看到其他

c# - 使用扩展方法来类型转换一个坏主意吗?

我最近开始使用WPF,我注意到您必须进行大量转换(尤其是事件转换)。这是一个审美问题,但我想知道如果我使用扩展方法进行转换而不是使用普通转换会有多糟糕。publicstaticTCast(thisobjectobj){return(T)obj;}这意味着我可以防止一些嵌套的括号,并更改:Console.WriteLine(((DataGridCell)e.OriginalSource).ActualHeight);到:Console.WriteLine(e.OriginalSource.Cast().ActualHeight);是否有任何我可能忽略的明显缺点?人们在代码中遇到这种情况会

c# - 将所有枚举保存在一个地方是个好主意吗?

当我构建类库时,我通常会创建一个文件Enums.cs来保存程序集中使用的所有枚举。这是一个例子:namespaceMyNamespace{publicenumColors{Red,Green,Blue}publicenumShapes{Circle,Square,Triangle}}这使我的所有枚举都易于查找、组织良好且易于在代码中访问。我想知道为什么这不是一个好主意? 最佳答案 通常按模块化而不是按种类来安排定义会更好。 关于c#-将所有枚举保存在一个地方是个好主意吗?,我们在Stac

c# - 为什么锁定公共(public)对象是个坏主意

好吧,我用过很多锁,但我以前从未遇到过这种情况。我有两个不同的类,它们包含用于修改同一个MSAccess数据库的代码:publicclassDatabaseNinja{publicvoidUseSQLKatana{//Codetoexecutequeriesagainstdb.TableAwesome}}publicclassDatabasePirate{publicvoidUseSQLCutlass{//Codetoexecutequeriesagainstdb.TableAwesome}}这是一个问题,因为无法并行执行对数据库的事务,并且这些方法(UseSQLKatana和UseS

javascript - 在 AngularJS 指令中使用 Jquery 是好主意还是坏主意?

下面你可以看到我的指令代码。我的问题是:“我可以将jquery与指令一起使用吗?这是个好主意吗?如果不是,为什么?”outsource.directive('dedicated',function(){return{restrict:'E',link:function(scope,element,attribute){$("#klik").click(function(){alert('works');});},replace:true,templateUrl:'src/app/components/views/dedicated-prices.html'};});请注意,此代码有效。

javascript - 在 Javascript 中强制执行私有(private)方法是个好主意吗?

我正在与一位开发人员讨论侵入javascript私有(private)函数是否有意义。备选方案是:一个构造函数和一个包含所有函数的原型(prototype),非API方法(私有(private))将仅使用下划线_function_name命名,以便开发人员知道他们可以调用什么,不能调用什么。API函数的构造函数和原型(prototype),以及在私有(private)命名空间内作为私有(private)函数的自由函数,除了这个命名空间之外,其他命名空间都隐藏了它们。我们不考虑其他方法,例如在varprivate_var=function(){}形式的构造函数中创建私有(private)

javascript - 为 jQuery(或其他静态文件/脚本)使用 CDN 真的是个好主意吗?

它说到处都可以使用CDN,例如Google或Microsoft的AJAXCDN来加载静态脚本库,例如我的jQuery。我不明白这对提高我的网站速度有何帮助。在firebug中,当我加载jQuery时,Google和MicrosoftAJAX服务器的时间都在300毫秒左右,而在Chrome中,我的时间大约为100毫秒(不知道是什么造成了差异,没有进行下载,都尝试了几次,但无论如何这不是重点),我的站点在部署时估计平均响应时间为30到40毫秒。CDN加载文件对我的网站有什么好处?这会让一切变得更糟!我知道当我使用来自GoogleCDN的jQuery访问许多网站时,它必须在很长一段时间内只“

javascript - 为什么在 JavaScript 中允许这些是个坏主意 == , != ,++ , --

我正在查看JSLint,一些规则激起了我的兴趣。特别是这个:Disallow==and!=Disallow++and--为什么禁止这些是个坏主意?我理解第一部分,基本上它要我做===而不是==。虽然我不明白为什么。我明白两者之间的区别,我只是想知道为什么这是不好的做法。有时我真的很想做==这样它会评估trueforundefined==null第二个,我完全不明白。它要我执行myInt+=1而不是myInt++吗?谢谢! 最佳答案 我不太同意这些规则,而不是劝阻使用==,我会建议学习类型强制转换。Crockford想要避免==的主要