我们子公司的 IT 部门让一家咨询公司为他们编写了一个 ASP.NET 应用程序。现在,它会间歇性地混淆当前用户是谁,并且会错误地向 Joe 显示 Bob 的一些数据。
顾问被召回进行故障排除,我们被邀请聆听他们的解释。有两件事很突出。
首先,顾问领导提供了这个伪代码:
void MyFunction()
{
Session["UserID"] = SomeProprietarySessionManagementLookup();
Response.Redirect("SomeOtherPage.aspx");
}
他接着说session变量的赋值是异步的,这好像不对。允许对查找函数的调用可以异步执行某些操作,但这似乎不明智。
鉴于所谓的异步性,他的理论是在重定向不可避免的 ThreadAbort 异常出现之前, session 变量没有被分配。然后,此错误阻止了 SomeOtherPage 显示正确的用户数据。
其次,他举例说明了他推荐的编码最佳实践。而不是写:
int MyFunction(int x, int x)
{
try
{
return x / y;
}
catch(Exception ex)
{
// log it
throw;
}
}
他推荐的技术是:
int MyFunction(int x, int y, out bool isSuccessful)
{
isSuccessful = false;
if (y == 0)
return 0;
isSuccessful = true;
return x / y;
}
这肯定会起作用,并且在某些情况下从性能的角度来看可能会更好。
但是,从这些和其他讨论点来看,我们觉得这个团队在技术上并不精通。
意见?
最佳答案
经验法则:如果您需要询问顾问是否知道他在做什么,他可能不知道 ;)
我倾向于同意这一点。显然你没有提供太多,但他们似乎并不十分胜任。
关于c# - 这个 ASP.NET 顾问知道他在做什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/164468/