我读过某个地方(我忘记了来源,抱歉 - 我认为MS Office开发人员的博客?),当你对用户进行调查时询问他们希望在你的软件/网站上看到哪些功能时,他们会更多往往不是说他们想要每件小事,而收集的指标显示,最终,大多数人不使用这些功能的99%.来自博客文章的一般信息是,您不应该问人们他们使用什么,您应该自己跟踪它.
当试图找出接下来要添加的新功能时,这会导致鸡和蛋的不幸情况.如果没有这个功能,我无法衡量它实际使用的程度.对于有限(且严重拉伸)的资源,我也无法负担添加所有功能,然后删除未使用的功能.
您如何找到对您的用户有用的内容?如果调查是唯一的选择,您是否必须以某种方式构建问题(例如:不显示可能的功能列表,因为这将引导他们)?
我想知道哪些是在Rails迁移中向数据库表添加记录的首选方法.我读过Ola Bini的书(Jruby on Rails),他做了这样的事情:
class CreateProductCategories < ActiveRecord::Migration
#defines the AR class
class ProductType < ActiveRecord::Base; end
def self.up
#CREATE THE TABLES...
load_data
end
def self.load_data
#Use AR object to create default data
ProductType.create(:name => "type")
end
end
Run Code Online (Sandbox Code Playgroud)
这很干净但是由于某些原因,它不适用于持续版本的导轨......
问题是,如何使用默认数据(如用户或其他东西)填充数据库?
谢谢!
让我们暂时忽略Damian Conway对任何给定子程序不超过三个位置参数的最佳实践.
以下两个示例在性能或功能方面有什么区别吗?
使用shift:
sub do_something_fantastical {
my $foo = shift;
my $bar = shift;
my $baz = shift;
my $qux = shift;
my $quux = shift;
my $corge = shift;
}
Run Code Online (Sandbox Code Playgroud)
使用@_:
sub do_something_fantastical {
my ($foo, $bar, $baz, $qux, $quux, $corge) = @_;
}
Run Code Online (Sandbox Code Playgroud)
如果两个示例在性能和功能方面相同,那么人们对一种格式的看法是什么?显然,使用的示例@_是更少的代码行,但使用它是否更清晰,shift如另一个示例所示?欢迎有良好推理的意见.
好奇,如果有人对哪种方法更适合asp.net缓存有意见.选项一,缓存中较少的项目较复杂,或许多项目较不复杂.
为了便于讨论,我们假设我的网站有SalesPerson和Customer对象.这些是非常简单的类,但我不想对数据库很讨厌,所以我想懒得将它们加载到缓存中,并在我做出更改时将它们从缓存中失效 - 这很简单.
选项1创建字典并缓存整个字典.当我需要从缓存中加载SalesPerson的一个实例时,我得到了Dictionary并对Dictionary进行了正常的键查找.
选项2在每个项目的键前面加上它,并将其直接存储在asp.net缓存中.例如,缓存中的每个SalesPerson实例都将使用前缀加上该对象的键的组合,因此它可能看起来像sp_ [guid]并存储在asp.net缓存中,而且还存储在缓存中的Customer对象中.像cust_ [guid]这样的关键.
我对选项二的恐惧之一是条目数量会变得非常大,在SalesPerson,Customer和十几个其他类别之间我可能在缓存中有25K项目和高度重复查找类似于我正在使用的字符串资源在几个地方可能会支付罚款,而代码通过缓存的密钥集合查找它在其他25K之间找到它.
我确信在某些时候,在缓存中存储太多项目的回报正在减少,但我对这些问题的意见感到好奇.
假设我正在使用Sharepoint(这也适用于其他对象模型)并且在我的语句中间,我调用了一个方法,在本例中为"OpenWeb()",它创建了一个IDisposable SPWeb对象.现在,我无法在SPWeb对象上调用Dispose(),因为我没有对它的引用. 那么我需要关注这个泄漏的记忆吗?
SPUser spUser = SPControl.GetContextSite(HttpContext.Current).OpenWeb().SiteUsers[@"foo\bar"];
Run Code Online (Sandbox Code Playgroud)
我知道我可以将语句拆分成多行并获取SPWeb引用来调用Dispose:
SPWeb spWeb = SPControl.GetContextSite(HttpContext.Current).OpenWeb();
SPUser spUser = spWeb.SiteUsers[@"foo\bar"];
spWeb.Dispose();
Run Code Online (Sandbox Code Playgroud)
请记住,我的问题不是关于美学,而是关于IDisposable对象发生了什么,我无法明确地调用Dispose(),因为我没有引用.
很抱歉在我第一次提出问题时不够清楚.我已经改写了它.感谢到目前为止的所有回复.
我已经使用了许多不同的基于*nix的系统,看起来我使用的Bash的每种风格都有不同的算法来决定运行哪些启动脚本.出于设置环境变量和别名以及打印启动消息(例如MOTD)等任务的目的,启动脚本是否适合执行这些操作?
是什么把事情之间的差异.bashrc,.bash_profile以及.environment?我也看到其他的文件,例如.login,.bash_login和.profile; 这些是否相关?在物理登录,通过ssh远程登录以及打开新的终端窗口时,运行哪些不同?跨平台(包括Mac OS X(及其Terminal.app)和Cygwin Bash)是否存在显着差异?
我正在使用python创建一个简单的服务器应用程序,我正在尝试将IP绑定到侦听套接字.我看过的一个例子使用了这个:
HOST = gethostbyaddr(gethostname())
Run Code Online (Sandbox Code Playgroud)
在此之后稍微处理一下,它应该只给出主机IP作为字符串.这应该返回IPv4地址.但是当我运行此代码时,它会返回我的IPv6地址.为什么这样做以及如何获取我的IPv4地址?
如果相关,我使用的是windows vista和python 2.5
为了运行一个应用程序,必须启动一个批处理文件(例如启动Jetty,显示实时日志等).仅当此批处理文件正在运行时,该应用程序才有效.因此我被迫让这个批处理文件运行,而不是从Windows服务器注销.
此批处理文件可以作为服务运行吗?我正在尝试一个类似问题的建议之一.
c# ×4
arrays ×1
asp.net ×1
bash ×1
batch-file ×1
caching ×1
database ×1
dispose ×1
environment ×1
ip-address ×1
ipv4 ×1
ipv6 ×1
migration ×1
parameters ×1
perl ×1
python ×1
sharepoint ×1
shell ×1
sockets ×1
sse ×1
subroutine ×1
windows ×1