应用程序健康监控系统至少应该为您(开发人员)和/或您的老板(IT经理)和/或操作(待命)员工做些什么?
除最低要求外还应该做些什么?
监控"基础架构"应用程序(ms-exchange,apache等)是否足够,或者是否还需要监控单个用户应用程序,网站和数据库?
如果是后者,你需要了解他们什么?
附录:感谢您的投入,我真的在寻找应用程序级别的监控,而不是基础设施监控,但很高兴知道两者
两者都是委托并具有相同的签名,但我不能将Action用作ThreadStart.
为什么?
Action doIt;
doIt = () => MyMethod("test");
Thread t;
t = new Thread(doIt);
t.Start();
Run Code Online (Sandbox Code Playgroud)
但这似乎有效:
Thread t;
t = new Thread(() => MyMethod("test"));
t.Start();
Run Code Online (Sandbox Code Playgroud) 我经常听说C会崩溃.最近,当我希望返回一个字符串的函数返回一些快乐的面孔时,我第一次尝到了这个.从那时起,我一直在更加小心地初始化指针和为数组mallocing内存.尽管如此,我仍然很难相信一个程序可能会严重崩溃......
我想这取决于该计划的范围?我的意思是,如果一个处理你的粉丝的程序中的一个错误将幸福的面孔复制到记忆中的一些重要空间......?
我的问题是,在壮观的C崩溃世界中有多少神话?我可以得到一些应该避免的危险事物的具体例子吗?
ž.
我有一些旧的软件(用一种不死的语言,但对我来说是死的;-))实现了源代码的基本模式匹配和写入系统.我正在考虑复制这段代码,将其翻译成现代语言,并将项目作为重构的动力工具开源.在我走得更远之前,我想知道是否已经存在这样的事情(我的google-fu今晚正在煽风点火).
以下是它的工作原理:
该软件在输入应用程序的抽象语法树(AST)上运行,并输出一个修改后的AST,然后可以将其重新生成为新的源代码
例如,假设我们发现了一堆真正应该是for循环的while循环.以下模板将匹配while循环模式:
Template oldLoopPtrn
int @cnt@ = 0;
while (@cnt@ < @max@)
{
… @body@
++@cnt@;
}
End_Template
Run Code Online (Sandbox Code Playgroud)
而以下模板将指定输出重写模式:
Template newLoopPtrn
for(int @cnt@ = 0; @cnt@ < @max@; @cnt@++)
{
@body@
}
End_Template
Run Code Online (Sandbox Code Playgroud)
和一个简单的规则来关联它们
Rule oldLoopPtrn --> newLoopPtrn
Run Code Online (Sandbox Code Playgroud)
所以看起来像这样的代码
int i=0;
while(i<arrlen)
{
printf("element %d: %f\n",i,arr[i]);
++i;
}
Run Code Online (Sandbox Code Playgroud)
自动重写后看起来像这样
for(int i = 0; i < arrlen; i++)
{
printf("element %d: %f\n",i,arr[i]);
}
Run Code Online (Sandbox Code Playgroud)
我见过的最接近的事情是一些代码重构工具,但它们似乎是针对所选片段的交互式重写,而不是批量自动更改.
我相信这种工具可以增加重构,并且可以使用多种语言(甚至是HTML/CSS).我也相信转换和抛光代码库将是一个巨大的项目,我无法在任何合理的时间内单独完成.
那么,那里有这样的东西吗?如果没有,任何明显的功能(除了重写规则条件)要考虑?
编辑:我非常喜欢这个系统的一个特点是模板模式非常明显且易于阅读,因为它们使用与目标源代码相同的语言编写,而不是以某种深奥的变异正则表达式/ BNF格式编写.
考虑到各种有条不紊的开发方法,我们可以一起得到一些启发式方法,了解哪些方法适合于什么情况,例如
没有方法太老,专业,或"在那里";-)
请为每个答案仅列出一种方法,并包括最合适和最不合适的情况.例如:
黑客
注意:寻找每种方法的细节,而不是一般建议.谢谢.
我目前与熟人有技术上的不同点.简而言之,这两种基本Java异常处理方式的区别在于:
选项1(我的):
try {
...
} catch (OneKindOfException) {
...
} catch (AnotherKind) {
...
} catch (AThirdKind) {
...
}
Run Code Online (Sandbox Code Playgroud)
备选案文2(他的):
try {
...
} catch (AppException e) {
switch(e.getCode()) {
case Constants.ONE_KIND:
...
break;
case Constants.ANOTHER_KIND:
...
break;
case Constants.A_THIRD_KIND:
...
break;
default:
...
}
}
Run Code Online (Sandbox Code Playgroud)
他的论点 - 在我使用关于用户输入验证,异常处理,断言和合同等的大量链接来支持我的观点之后 - 归结为:
"这是一个很好的模型.自从我和我的一位朋友在1998年,大约10年前提出它以来,我已经习惯了.再看看你会看到我们对学术论点的妥协做了很多感觉."
对于为什么选择1是要走的路,有没有人有一个可摧毁的论点?
任何人都有任何想法或经验使用程序切片技术来调试MS Visual Studio 2008中的OO项目?工具建议会有所帮助.
Python3/Numpy中是否有任何内置函数可以过滤数组并返回剩下的元素的索引?类似于numpy.argsort的东西用于排序.我的滤波器设置了最小和最大阈值 - 必须滤除低于/高于最小值/最大值的所有值.
我见过Python的函数过滤器,但我没有看到使用它提取索引的方法.
编辑:答案中有很多有用的信息,谢谢!
正如@SvenMarnach指出的那样,面具就足够了:
mask = (min_value < a) & (a < max_value)
Run Code Online (Sandbox Code Playgroud)
现在我必须将此蒙版应用于其他形状相同的阵列a,但不确定最佳方法是什么...
如何实现在调整浏览器窗口大小时缩放的网页?
我可以使用表格或CSS浮动部分布置页面的元素,但我希望在调整浏览器窗口时重新调整显示
我有一个工作解决方案使用AJAX PRO和DIVs溢出:auto和onwindowresize挂钩,但它很麻烦.有没有更好的办法?
感谢大家到目前为止的答案,我打算尝试所有(或至少大部分),然后选择最佳解决方案作为这个线程的答案
使用CSS和百分比似乎效果最好,这是我在原始解决方案中所做的; 使用可见性:隐藏div设置为100%×100%提供了一种方法来测量窗口的客户区域[否则在IE中很难],并且onwindowresize javascript函数允许AJAXPRO方法在调整窗口大小以重绘时启动新分辨率下的布局单元格内容
编辑:我为不完全清楚而道歉; 我需要一个"液体布局",主要元素('窗格')会随着浏览器窗口的大小调整而缩放.我发现在调整大小后我必须使用AJAX调用重新显示"窗格"内容,并保持溢出:自动打开以避免滚动
我在asp.net 2.0中有一个带有行选择链接的数据绑定GridView.当选择一行时,我想以编程方式在所选行下面添加一个表行,以嵌套另一个网格等.
我正在为客户和一篇文章研究这个问题,我认为今晚我的google-fu并不强大.有什么建议?
编辑:我实际上有一个工作的解决方案,但Visual Studio以某种方式被搞砸了; 关闭并重新开放VS并重建一切修复问题;-)
我的解决方案发布在下面,请告诉我如何做到更好.谢谢!
action ×1
ajax ×1
asp.net ×1
c ×1
c# ×1
crash ×1
css ×1
databound ×1
debugging ×1
delegates ×1
exception ×1
filtering ×1
gridview ×1
heuristics ×1
html ×1
java ×1
javascript ×1
methodology ×1
monitoring ×1
numpy ×1
python ×1
python-3.x ×1
templates ×1