尽管Steve Yegge的智慧,大多数开发人员都面临着从非技术客户那里收集的需求.有时,有些项目经理会与客户打交道并转换他们的要求,有时则不然.无论如何,要求将改变的事实是不可避免的.
大多数构成"良好的编程实践"的东西都与开发适应性强的系统有关,因此它们可以承受不断变化的要求.YAGNI,DRY,松散耦合等原理对此有所贡献.诸如敏捷之类的迭代开发过程也试图解决尝试击中移动目标的问题,当然,正在测试的系统使得进行更改变得更加可行.
尽管如此,似乎对于我们中的许多人而言,不断变化的要求不仅会损害我们软件的质量,还会耗尽我们的动力并使我们想要刺伤某人.
这个问题是关于如何管理客户,使他们能够以他们需要的方式改变他们的要求,同时阻止任意或无聊的变化.你怎么做呢?
我正在用Python构建一个简单的基于Web的RSS阅读器,但是我在解析XML时遇到了问题.我从Python命令行中尝试了一些东西开始.
>>> from xml.dom import minidom
>>> import urllib2
>>> url ='http://www.digg.com/rss/index.xml'
>>> xmldoc = minidom.parse(urllib2.urlopen(url))
>>> channelnode = xmldoc.getElementsByTagName("channel")
>>> channelnode = xmldoc.getElementsByTagName("channel")
>>> titlenode = channelnode[0].getElementsByTagName("title")
>>> print titlenode[0]
<DOM Element: title at 0xb37440>
>>> print titlenode[0].nodeValue
None
Run Code Online (Sandbox Code Playgroud)
我玩了一段时间,但nodeValue一切似乎都是None.然而,如果你看一下XML,肯定有值.我究竟做错了什么?
我正在编写一个小程序,它创建了我目录中所有文件的索引.它基本上遍历磁盘上的每个文件并将其存储到可搜索的数据库中,就像Unix的locate一样.问题是,由于我有大约一百万个文件,因此索引生成非常慢.
生成索引后,是否可以快速找到自上次运行以来在磁盘上添加或删除的文件?
编辑:我不想监视文件系统事件.我认为风险太高而无法实现同步,我更喜欢快速重新扫描,以便快速找到添加/删除文件的位置.也许目录上次修改日期或其他什么?
我刚做了一点基准.运行
dir /b /s M:\tests\ >c:\out.txt
Run Code Online (Sandbox Code Playgroud)
需要0.9秒,并提供我需要的所有信息.当我使用Java实现(很像这样)时,大约需要4.5秒.任何想法如何改善至少这种蛮力的方法?
相关文章:如何查看目录的子文件是否已更改
监视磁盘对文件活动的最佳方法是什么.我的意思是获取完整的文件名(c:\ temp\abc.txt),操作(创建/删除/修改/重命名),以及导致该文件的用户(user1)和进程名称(notepad.exe)(多个)删除)活动.
我听说过一些API和ShellNotifications,但不能将它们用于上述所有需求.
最好的祝福.
VB.NET自动将项目属性中设置的根命名空间前缀添加到每个类的命名空间.这与C#不同,后者必须每次都声明完整的命名空间.
是否可以覆盖此行为,在根命名空间之外创建命名空间?
有人能指出我将如何做以下事情:
我想创建一个列表,从其他列表(多个)中提取(前3个)项目,并将它们显示在一个统一列表中.这可能吗?如果是这样,请指出我如何实现这一目标,谢谢.
众所周知,如果已经加载了实体,则无法直接在Linq to SQL中设置外键ID.但是,您可以通过它的外键查找实体,然后使用实体关系将实体设置为外部实体.(为了简单起见,我在这里取出了枚举并使用了整数值).即如果我有一个加载的约会实体和一个相关的AppoinmentStatus实体,我不能这样做: -
ExistingAppointment.AppointmentStatusID = 7
Run Code Online (Sandbox Code Playgroud)
但我可以这样做: -
ExistingAppointment.AppointmentStatus = (From appstat In db.AppointmentStatus _
Where appstat.StatusID = 7 _
Select appstat).Single
Run Code Online (Sandbox Code Playgroud)
我有这样的事情乱丢我的代码,我想重构.所以...
我显然可以在这样的模块中使用辅助方法: -
Module Helper
Public Shared Function GetAppointmentStatus(ByVal AppStatusID As Integer) As AppointmentStatus
GetAppointmentStatus = (From appstat In db.AppointmentStatus _
Where appstat.AppointmentStatusID = AppStatus _
Select appstat).Single
End Function
End Module
Run Code Online (Sandbox Code Playgroud)
我甚至可以把它变成一个扩展方法,就像这样.
Imports System.Runtime.CompilerServices
Module Helper
Extension()> _
Public Shared Function GetAppointmentStatus(ByVal db as DataClassesDataContext, ByVal AppStatusID As Integer) As AppointmentStatus
GetAppointmentStatus = (From appstat In …Run Code Online (Sandbox Code Playgroud) 我正在使用Eclipse 3.4,EclipseMe 1.7.9.我试图部署/"创建包"一个包含外部.jar文件(LWUIT.jar)的简单项目.当我尝试使用导出的.jar文件创建包时(属性 - > Java构建路径 - >顺序和导出)我收到以下错误消息:"构建期间出错"
(详细信息:构建期间的错误.错误在项目上运行构建器'Preverification''尝试'.org.eclipse.jdt.internal.core.JavaModel.getTarget(Lorg/eclipse/core/resources/IContainer; Lorg/eclipse/core/runtime/IPath; Z)Ljava/lang/Object; org.eclipse.jdt.internal.core.JavaModel.getTarget(Lorg/eclipse/core/resources/IContainer; Lorg/eclipse/core/runtime/IPath; Z)Ljava/lang/Object;)
如何使构建成功?
使用.NET替换Uri的主机部分最好的方法是什么?
即:
string ReplaceHost(string original, string newHostName);
//...
string s = ReplaceHost("http://oldhostname/index.html", "newhostname");
Assert.AreEqual("http://newhostname/index.html", s);
//...
string s = ReplaceHost("http://user:pass@oldhostname/index.html", "newhostname");
Assert.AreEqual("http://user:pass@newhostname/index.html", s);
//...
string s = ReplaceHost("ftp://user:pass@oldhostname", "newhostname");
Assert.AreEqual("ftp://user:pass@newhostname", s);
//etc.
Run Code Online (Sandbox Code Playgroud)
System.Uri似乎没什么帮助.
我试图将.csv文件插入到具有unix换行符的数据库中.我正在运行的命令是:
BULK INSERT table_name
FROM 'C:\file.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
Run Code Online (Sandbox Code Playgroud)
如果我将文件转换为Windows格式,则加载有效,但如果可以避免,我不想执行此额外步骤.有任何想法吗?
.net ×2
file ×2
vb.net ×2
bulkinsert ×1
c# ×1
delphi ×1
deployment ×1
directory ×1
eclipse ×1
filesystems ×1
java ×1
java-me ×1
linq-to-sql ×1
list ×1
lwuit ×1
minidom ×1
monitoring ×1
namespaces ×1
python ×1
requirements ×1
rss ×1
sharepoint ×1
sql ×1
sql-server ×1
uri ×1
xml ×1