尾递归是函数式语言中一个重要的性能优化策略,因为它允许递归调用消耗常量堆栈(而不是O(n)).
是否有任何问题根本无法以尾递归方式编写,或者总是可以将天真递归函数转换为尾递归函数?
如果是这样,有一天功能编译器和解释器可能足够智能以自动执行转换?
我经常需要处理脆弱的遗留网站,这些网站在更新逻辑或配置时会以意想不到的方式中断.
我没有创建Selenium脚本所需的系统时间或知识.此外,我不想检查具体的用例 - 我想验证网站上的每个链接和页面.
我想创建一个自动系统测试,它将通过一个站点进行爬行并检查链接和崩溃是否已损坏.理想情况下,我可以使用一种工具来实现这一目标.它应具有尽可能多的以下功能,按优先级降序排列:
有许多部分解决方案,如FitNesse,Firefox的LinkChecker和W3C链接检查器,但它们都没有做我需要的一切.
我想将这个测试用于使用各种技术和平台的项目,因此解决方案越便携越好.
我意识到这不能替代正确的系统测试,但如果我有一种方便且可自动化的方式来验证网站的任何部分是否明显被破坏,那将非常有用.
在传统的ASP.NET Web窗体应用程序中,UserControls是一种封装功能的好方法,可以重用它.但是,UserControls不适合MVC模型.他们经常大量使用ViewState,它们模糊了MVC所提出的关注点.
我的问题是,你如何最好地捆绑一个功能,以便它可以在MVC应用程序之间共享?
例如,考虑从/到日期选择器UserControl:
我如何在.NET MVC中最好地构建这样的东西,以便我可以轻松地重用它?
请注意,要完全模拟用户控件的功能,MVC组件必须管理提交的表单数据和验证 - 而不仅仅是演示文稿.
需要地址的英国网站经常要求用户提供邮政编码.然后,该站点为用户提供与该邮政编码匹配的不同地址之间的选择.
如何将邮政编码与街道地址相匹配?
如果他们切换到Monodevelop,开发人员在Visual Studio中工作的东西必须放弃什么?这个假设的开发人员通常使用C#开发ASP.NET Web应用程序.
我知道Monodevelop具有基本的Visual Studio功能,如语法突出显示和对Visual Studio解决方案的支持.哪些缺陷会影响放弃Visual Studio的开发人员的工作效率?
为了保持一致,请将您的答案局限于有关Visual Studio 2008和Monodevelop 2.0的要点.
我有一个带有autoincremented id列的MySQL表.id从1开始,现在是4000s.
但是,我还需要从旧版本的应用程序将一些遗留数据移植到此表中.此数据的ID从5000开始,必须保留用于审计目的.
如果我在自动增量计数器达到4999后插入一个条目会怎么样?自动增量是否足够智能以查找下一个可用的ID,或者它会因为尝试插入已存在的id 5000而崩溃?
虽然关于如何解决这个问题的建议非常有帮助,但我也想了解MySQL在这种情况下会做什么,以及我是否需要进行干预.
我想尝试在F#中开发ASP.NET和ASP.NET MVC应用程序.我喜欢使用功能语言,在我看来,功能范例更适合HTTP和Web而不是命令式编程(当然F#可以同时执行这两种操作).
我只打算尝试使用F#进行一些个人项目,但我希望最终F#将被视为适合商业ASP.NET项目的C#的有效替代品.
目前在ASP.NET中使用F#有哪些陷阱和粗糙的边缘?一个明显的缺点是F#比C#更加模糊,因此F#的代码示例和经验丰富的程序员更少.
我应该注意哪些其他潜在问题?
在性能黄金法则从雅虎的表现最佳实践是:
最终用户响应时间的80-90%用于下载页面中的所有组件:图像,样式表,脚本,Flash等.
这意味着当我在我的本地网络服务器上进行开发时,很难准确了解最终用户将体验到什么.
如何模拟延迟,以便我可以了解应用程序在Web上部署后的性能?
我主要在Windows上开发,但我也会对其他平台的解决方案感兴趣.
单元测试与生产代码有不同的要求.例如,单元测试可能不必像生产代码那样高效.
也许有时用一种更适合编写单元测试的语言编写单元测试是有意义的吗?我想到的具体示例是在C#中编写应用程序,但使用IronRuby或IronPython编写测试.
在我看来,使用IronPython和IronRuby比C#代码作为测试语言有几个优点:
使用两种不同语言进行测试和生产代码的权衡是什么?
Haskell是一种纯函数式语言,这意味着Haskell函数没有副作用.I/O使用代表I/O计算块的monad实现.
是否可以测试Haskell I/O函数的返回值?
假设我们有一个简单的'hello world'程序:
main :: IO ()
main = putStr "Hello world!"
Run Code Online (Sandbox Code Playgroud)
我是否可以创建一个可以运行的测试工具main并检查I/O monad是否返回正确的"值"?或者monad应该是不透明的计算块这一事实阻止我做这个吗?
注意,我不是要比较I/O操作的返回值.我想比较I/O函数的返回值 - I/O monad本身.
因为在Haskell中I/O被返回而不是执行,所以我希望检查I/O函数返回的I/O计算块并查看它是否正确.我认为这可以允许I/O功能以I/O是副作用的命令式语言中的方式进行单元测试.
.net ×2
asp.net ×2
asp.net-mvc ×2
unit-testing ×2
c# ×1
f# ×1
frontend ×1
haskell ×1
ironpython ×1
mono ×1
monodevelop ×1
mysql ×1
paf ×1
performance ×1
recursion ×1
testing ×1
web-crawler ×1