程序设计

专业和发烧友程序员的问答

13
命名类-如何避免将所有内容都称为“ <WhatEver> Manager”?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 很久以前,我读过一篇文章(我相信是博客文章),这使我走在命名对象的“正确”轨道上:在程序中命名事物时要非常谨慎。 例如,如果我的应用程序(作为典型的业务应用程序)正在处理用户,公司和地址,则我将具有User,a Company和Address域类-可能会弹出a UserManager,a CompanyManager和a AddressManager来处理这些问题。 所以,你可以告诉那些UserManager,CompanyManager和AddressManager做什么?不可以,因为Manager是一个非常通用的术语,适用于您可以使用域对象执行的所有操作。 我阅读的文章建议使用非常具体的名称。如果它是C ++应用程序,并且UserManager的工作是分配用户并将其从堆中释放出来,那么它将不会管理用户,而是保护用户的生死。嗯,也许我们可以将其称为UserShepherd。 或者,也许UserManager的工作是检查每个User对象的数据并用密码对数据签名。然后我们会有一个UserRecordsClerk。 现在,这个想法一直困扰着我,我尝试应用它。并且很难找到这个简单的想法。 我可以描述这些类的作用,并且(只要我不会陷入快速而肮脏的编码中)我编写的类就可以做一件事。从描述到名称,我想念的是一种名称目录,这是一个将概念映射到名称的词汇表。 最终,我想在脑海中想起一个模式目录(通常,设计模式很容易提供对象名称,例如工厂) 工厂-创建其他对象(取自设计模式的命名) 牧羊人-牧羊人处理对象的生命周期,对象的创建和关闭 同步器-在两个或多个对象(或对象层次结构)之间复制数据 保姆-帮助对象在创建后达到“可用”状态-例如,通过连接到其他对象 等等等 那么,您如何处理该问题?您是否有固定的词汇表,是否在动态地发明新名称,或者您认为命名不那么重要或错误? PS:我也对讨论该问题的文章和博客链接感兴趣。首先,这是让我思考的原始文章:不带“ Manager”命名Java类 更新:答案摘要 这是我同时从这个问题中学到的一些小知识。 尽量不要创建新的隐喻(保姆) 看看其他框架做什么 有关此主题的其他文章/书籍: 您会发现自己经常定期参加哪些课程? 命名类的最佳方法是什么? 图书:设计模式:可重用的面向对象软件的元素(精装本) 书籍:企业应用程序架构的模式(精装) 书籍:实施模式(平装本) 还有我从答案中(主观地!)收集的名称前缀/后缀的当前列表: 协调员 建造者 作家 读者 处理程序 容器 协议 目标 转换器 控制者 视图 厂 实体 桶 道路上的一个好提示: 不要让命名麻痹。是的,名称很重要,但它们的重要性还不足以浪费大量时间。如果您不能在10分钟内想到一个好名字,那就继续吧。

27
如何测量函数执行所需的时间
我需要获取执行时间(以毫秒为单位)。 我最初是在2008年问这个问题的。当时接受的答案是使用new Date()。getTime()。但是,我们现在都同意使用标准performance.now() API更合适。因此,我正在更改对此答案的公认答案。


23
检查是否已使用jQuery选中复选框
如何检查是否使用复选框数组的ID选中了复选框数组中的复选框? 我正在使用以下代码,但是无论ID为何,它始终返回已选中复选框的数量。 function isCheckedById(id) { alert(id); var checked = $("input[@id=" + id + "]:checked").length; alert(checked); if (checked == 0) { return false; } else { return true; } }

21
创建将T约束为枚举的泛型方法
我建立一个功能扩展Enum.Parse的概念, 如果找不到Enum值,则允许解析默认值 不区分大小写 所以我写了以下内容: public static T GetEnumFromString&lt;T&gt;(string value, T defaultValue) where T : Enum { if (string.IsNullOrEmpty(value)) return defaultValue; foreach (T item in Enum.GetValues(typeof(T))) { if (item.ToString().ToLower().Equals(value.Trim().ToLower())) return item; } return defaultValue; } 我收到错误约束不能是特殊类System.Enum。 足够公平,但是有没有允许通用枚举的变通办法,或者我将不得不模仿该Parse函数并将类型作为属性传递,这对代码强制了严格的装箱要求。 编辑谢谢所有下面的建议。 已经解决(我离开了循环以保持不区分大小写-解析XML时正在使用它) public static class EnumUtils { public static T ParseEnum&lt;T&gt;(string value, T defaultValue) …


21
将文本粘贴到Vim中时关闭自动缩进
我正在努力学习Vim。 当我从剪贴板将代码粘贴到文档中时,在每一行的开头都有多余的空格: line line line 我知道您可以关闭自动缩进,但由于其他设置有冲突或其他原因(在我的.vimrc中看起来很明显,但是取出它们似乎并不重要),我无法使它起作用。 如何在粘贴代码时关闭自动缩进功能,但是在编写代码时仍然具有vim自动缩进功能?这是我的.vimrc文件: set expandtab set tabstop=2 set shiftwidth=2 set autoindent set smartindent set bg=dark set nowrap

24
如何将类添加到给定的元素?
我有一个已经有一个类的元素: &lt;div class="someclass"&gt; &lt;img ... id="image1" name="image1" /&gt; &lt;/div&gt; 现在,我想创建一个JavaScript函数,将一个类添加到div(不是替换,而是添加)。 我怎样才能做到这一点?

30
如何使用Windows开发机为iPhone开发?
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 有什么办法可以在Windows计算机上修补iPhone SDK?是否有针对Windows的iPhone SDK版本的计划? 我可以想到的唯一另一种方法是在Windows 上运行的VMWare服务器上运行Mac VM映像,尽管我不太确定这样做的合法性。
1185 ios  iphone  windows 

30
基于容器宽度的字体缩放
我很难理解字体缩放。 目前,我有这个网站与身体font-size的100%。不过是100%这似乎可以计算出16个像素。 我给人的印象是100%会以某种方式引用浏览器窗口的大小,但是显然不是因为将窗口缩小到移动宽度还是全尺寸的宽屏桌面总是16像素。 如何使网站上的文本相对于其容器而言?我尝试使用em,但这也无法扩展。 我的理由是,当你调整,这东西像我的菜单中就被压扁,所以我需要降低px font-size的.menuItem相对其它元素的容器的宽度之中。(例如,在大型桌面上的菜单中,22px效果很好。向下移动至数位板宽度16px比较合适。) 我知道我可以添加断点,但是我确实希望文本能够缩放并具有额外的断点,否则,每控制100像素的宽度,我将得到数百个断点来控制文本。


22
有条件申请课程的最佳方法是什么?
假设您有一个呈现为的数组,ul其中li每个元素都有一个,控制器上有个名为的属性selectedIndex。li用selectedIndexAngularJS中的索引向类添加类的最佳方法是什么? 我目前正在(手动)复制li代码并将类添加到li标签之一中,并使用ng-show和ng-hide仅显示li每个索引一个。
1183 css  angularjs 

30
如何在div中垂直对齐文本?
我试图找到最有效的方法来将文本与div对齐。我尝试了几件事,但似乎都没有用。 .testimonialText { position: absolute; left: 15px; top: 15px; width: 150px; height: 309px; vertical-align: middle; text-align: center; font-family: Georgia, "Times New Roman", Times, serif; font-style: italic; padding: 1em 0 1em 0; } &lt;div class="testimonialText"&gt; Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et …

30
如何以CSV格式输出MySQL查询结果?
有没有一种简单的方法可以从Linux命令行运行MySQL查询并以CSV格式输出结果? 这是我现在正在做的事情: mysql -u uid -ppwd -D dbname &lt;&lt; EOQ | sed -e 's/ /,/g' | tee list.csv select id, concat("\"",name,"\"") as name from students EOQ 当有很多列需​​要用引号引起来时,或者结果中有引号需要转义时,它将变得混乱。
1182 mysql  csv  quotes 

21
在HTML中嵌入PDF的推荐方法?
将PDF嵌入HTML的推荐方法是什么? iFrame? 宾语? 嵌入? Adobe对此有何评价? 就我而言,PDF是动态生成的,因此在刷新之前无法将其上载到第三方解决方案。
1181 html  pdf 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.