Martin Fowler说我们应该在添加新功能之前进行重构(假设原始程序结构不合理).
所以我们都想重构这个脏代码库,这是肯定的.我们也知道,如果没有单元测试代码,很容易引入细微的错误.
但它是一个庞大的代码库.添加一整套测试似乎是不切实际的.
在这种情况下你会做什么?
每次我创建一个项目时,我都会开发几个通用的例程/模块/库,我希望它能用于其他项目.
由于开发速度的原因,我不会花很多时间来完善这些模块 - 这个项目已经足够好了,并且足够记录和隔离,我可以轻松地将它们添加到另一个项目中.
到现在为止还挺好.
现在,当我在另一个项目中使用它们时,我不可避免地要改进它们 - 要么添加新的功能/功能,修复bug,使它们更通用等等.
那时我有几个问题:
你是如何管理的?当团队在不同项目中处理各种模块时,这些问题有何不同?
-亚当
我在Linux上使用PHP和Apache,使用Sendmail.我使用PHP mail函数.该邮件被发送,但信封中Apache_user@localhostname的MAIL FROM(例如nobody@conniptin.internal)和一些远程邮件服务器拒绝这一点,因为域不存在(显然).使用mail,我可以强迫它改变信封MAIL FROM吗?
编辑:如果我在mail()函数的第四个字段中添加一个标题,它会更改From邮件正文标题中的字段,并且不会更改信封MAIL FROM.
我可以通过生成sendmail sendmail -t -odb -oi -frealname@realhost并将电子邮件内容传送给它来强制它.这是一种更好的方法吗?
是否有更好,更简单,更适合PHP的方法?
编辑:底线是我应该有RTM.谢谢你的回答,第五个参数有效,一切都很好.
如何将JAR文件添加到Eclipse中现有的Java库?请注意,这不是用户库.
也就是说,如果查看Java项目的Java Build Path并单击Libraries选项卡,您将看到项目使用的库列表.如果展开给定库,您将看到该库中包含的JAR文件列表.我想在其中一个库中添加一个额外的JAR文件.
我使用的是Eclipse 3.4.0版.
在Gmail中,我有一堆带标签的邮件.
我想使用IMAP客户端来获取这些消息,但我不确定搜索咒语是什么.
c = imaplib.IMAP4_SSL('imap.gmail.com')
c.list()
('OK', [..., '(\\HasNoChildren) "/" "GM"', ...])
c.search(???)
Run Code Online (Sandbox Code Playgroud)
我没有找到很多这方面的例子.
有没有办法在Windows中以编程方式创建压缩文件夹?我无法使用FileSystemObject看到这样做的方法(尽管有'Compressed'属性).
我已经看过zip dll了,但是如果可能的话,我宁愿避免重新发布一个dll.Windows XP本身就支持压缩文件夹.
读完这个问题后,我安装了Consolas.麻烦的是,现在文字似乎太小了.我必须调整到12号才能舒服地使用它.切换到Consolas(或任何其他字体)时,其他人都会遇到这种情况吗?我的眼睛是否需要适应这种新字体,还是表明我的视力正在恶化?
我的分辨率是1280x1024
我正在编写一个应用程序,由于各种原因涉及Internet Explorer(IE7,用于记录),ActiveX控件和英雄数量的JavaScript,它分布在多个.js包括.
我们的一个远程测试人员遇到错误消息,IE的错误消息说明了以下情况:
Line: 719
Char: 5
Error: Unspecified Error
Code: 0
URL: (the URL of the machine)
Run Code Online (Sandbox Code Playgroud)
只有一个JavaScript文件超过719行,而行719是一个空行(在本例中).
项目中涉及的HTML或其他文件都没有719或更多行,但生成的HTML(它是服务器端包含的东西),至少从"View Source"中显示的IE确实有719或更多行 - 但是第719行(在这种情况下)是一个结束表行标记(换句话说,没有JavaScript).
在这种情况下,"查看生成的源"的结果仅为310行.
我想可能是整个页面,其中与HTML其余部分内联的JavaScript文件的内容可能是错误所指的位置,但我不知道有什么好的方法来查看它会是什么是,
那么,考虑到来自Internet Explorer的JavaScript错误,其中行号是唯一的提示,但页面实际上分布在多个文件中?
更新:由于遇到这种情况的用户是远程的并且由于各种网络原因,使用像Visual Studio 2008(顺便说一句,它具有很棒的JavaScript调试)之类的东西来调试它是不可能的.我只能让我们中的一个人看看源代码,试图找出它正在酝酿的代码行.
更新2:真正的答案(如下所述)似乎是"不,不是真的".尽管如此,罗伯特·J·沃克(Robert J. Walker)关于它被一个人关闭的事实确实让我指出了正确的方向,因为我认为这是违规行.但是,因为那不是我称之为好或可靠的(IE的错,而不是Robert J. Walker的错),我将接受"不,不是真的"答案.我不确定这是否是正确的SO礼仪.如果不是通过评论,请告诉我.
我刚刚在SQL Server 2005中的表中添加了一个索引,它让我思考.创建1个索引和定义多个列之间的区别在于每个列要索引1个索引.
是否有某些原因应该用于另一个?
例如
Create NonClustered Index IX_IndexName On TableName
(Column1 Asc, Column2 Asc, Column3 Asc)
Run Code Online (Sandbox Code Playgroud)
与
Create NonClustered Index IX_IndexName1 On TableName
(Column1 Asc)
Create NonClustered Index IX_IndexName2 On TableName
(Column2 Asc)
Create NonClustered Index IX_IndexName3 On TableName
(Column3 Asc)
Run Code Online (Sandbox Code Playgroud) 我们使用微软的ActiveX/COM(VB6)技术开发了一个软件系统.在过去的一年里,我对自动化构建流程和SCM的整体兴趣越来越大.我仔细搜索了网络的大部分内容,以获取有关如何使用基于COM的软件系统进行scm的最佳实践的信息.
COM的"问题"是,引用组件通过唯一的接口ID保存引用.重新编译引用的组件时,id可能会更改,并且引用不再有效.这里的主要问题是,iid被编译成二进制文件.因此,当我不想将已编译的文件签入版本控制时,每个开发人员都必须编译他/她自己的版本并获取其他ID.
当我想在干净的构建机器上检查源代码来编译系统时,它是不可能的,因为所有引用都是无效的(没有二进制文件,没有接口ID).
我只是想知道,如果有一些最佳实践,如何为COM项目(VB6)设置自动构建系统?
编辑: 是的,我知道兼容性设置.但是采取这种情况,我想在没有任何二进制文件的干净构建机器上构建wohle系统.当您说项目是二进制兼容的时,您必须提供与项目兼容的二进制文件.
我想我必须编写一个自定义构建工具,它在编译项目之前和之后修改项目文件中的引用和兼容性设置.
因为VB6/COM是一种非常广泛的技术,我只是认为必须有一个随时可用的解决方案.
我们通常用二进制兼容性编译.当我们修改组件的公共接口时,我们使用项目兼容性进行编译.但是当您更改许多其他组件使用的基本组件的接口时,您必须手动将所有引用项目更改为项目兼容性,重新编译它们并更改回二进制兼容性.这是我想要自动化的主要过程.
vb6 ×2
com ×1
database ×1
debugging ×1
eclipse ×1
email ×1
font-size ×1
gmail ×1
imap ×1
indexing ×1
jar ×1
javascript ×1
php ×1
python ×1
refactoring ×1
sql-server ×1
testing ×1
unit-testing ×1
vba ×1