如果我不完全错误,javascript中的每个框架/库/方法都会模仿基于类的OOP样式继承.原因似乎是人们认为基于类的OOP继承更容易理解并且大多数程序员都知道OOP.
根据我的经验,我没有找到任何一种观点的证据.我认为javascript原型继承很好(我怀疑强制另一种语言的有用性而不是它构建的语言).我遇到的大多数开发人员在经典OOP中都没有那么好.那么选择经典OOP样式继承而不是原型继承的原因是什么?
我们正在考虑从现有的MediaWiki安装转向功能更丰富的功能.我试图找到人们今天使用MediaWiki所带来的所有痛苦(主要是它与外部文档的处理能力差,而且与Word相比,编辑能力不够完美).
我们正在使用wiki来设计,规范和流程指南.我们有几个外部文档(docs,powerpoint),我们目前正在将这些文档放在一个共享文件夹上并从wiki链接到(因为在MediaWiki中上传文件不是很方便).我们试图使摩擦力最小化,以便没有人会有借口或理由不使用它.
我们正在考虑的一些选项是Confluence,Trac和Sharepoint.资金不是一个大问题,只是易用性(和维护)和功能丰满.你会用什么?
请考虑以下代码:
template<typename T>
char (&f(T[1]))[1];
template<typename T>
char (&f(...))[2];
int main() { char c[sizeof(f<void()>(0)) == 2]; }
Run Code Online (Sandbox Code Playgroud)
我期待它做SFINAE并选择第二次超载,因为替换T为T[1]收益率
void [1]()
Run Code Online (Sandbox Code Playgroud)
当然,这是一种无效的类型.在将模板参数替换为函数参数并检查有效的结果类型(如14.8.2 [temp.deduct]描述)之后,完成参数类型(数组 - >指针)的调整.
但是考勤和海湾合作委员会都未能编制上述内容.两者都有不同的诊断.
Comeau说:
"ComeauTest.c",第2行:错误:不允许使用函数数组
char (&f(T[1]))[1];
GCC说(版本4.3.3):
错误:ISO C++禁止零大小的数组
c
意思是,海湾合作委员会不会无法替代,但它选择了第一次超载f,返回sizeof1,而不是像Comeau那样无法替代它.
什么编译器是正确的,我的代码是否有效?请参阅或引用答案中适当的标准部分.谢谢!
更新:标准本身在列表中包含这样的示例14.8.2/2.我不知道为什么我先忽略它:
template <class T> int f(T[5]);
int I = f<int>(0);
int j = f<void>(0); // invalid array
Run Code Online (Sandbox Code Playgroud)
虽然这个例子只是提供信息,但它显示了所有这些神秘段落的意图,并且似乎表明上面的代码应该起作用并拒绝第一次重载.
我问这个问题,因为它不是特别适合这种任务,因为它是专门用于提出这样的问题.因此,我并没有问过它与SO有关.我问是否有一种工具更适合与编程相关的讨论,而不是老式的论坛,邮件列表,维基,IRC或afk聊天.
像这样的工具将允许人们提炼有趣的讨论,总结它,帮助他们进行逻辑分析,并提供比我刚才描述的任何服务更好的建设性讨论.
所以继续,回答,我会看到哪个答案最匹配.
(不标记这个'讨论',因为即使它相关,讨论标签也用于忽略需要讨论的问题.这个问题显然不是这样,因为一个人可以用软件的名称回答问题.)
(为什么我需要这种类型的应用程序?更多的是我从非常熟练的人那里得到的,更难以用非常难的答案或根本没有回答的问题.除非我花了几个月或几年寻求这样的答案问题 - 或者甚至更糟糕的是,寻求答案只是为了注意到没有答案 - 我认为没有其他方法可以回答这些问题而不是讨论它们.我相信很多人会再次提出同样的问题所以我最好不要甚至不需要问问题,他们已经被我们问过了.我只需要找到他们.我想在问这个时我真的很懒.)
我正在寻找一种方法来使用交互式JIT调试器,最好与Firebug集成.
我从PHPEd得到了这个想法,它有一个"立即"调试选项卡,您可以在其中输入PHP代码并动态修改对象.这使得调试变得轻而易举,因为您可以多次重新分配变量,重新执行函数等,而无需离开程序.
这是我认为非常棒的: - 在Firebug中设置一个断点 - 到达断点 - 有一个Execute JS选项卡,可以输入JS代码,类似于我上面描述的
有这样的事情吗?
TIA.
您是否有可以在开发过程中使用的优质服务来试用您的网站在不同浏览器中呈现的方式?我们在mac上开发.我希望能够每月支付20美元或类似的东西,并能够在IE6,IE7,Opera等中测试我的网站,而无需保留一个Windows框.
是否有任何命令行脚本和/或在线工具可以扭转缩小的影响,类似于Tidy如何清理可怕的HTML?
(我特意想要消除一个缩小的JavaScript文件,因此变量重命名可能仍然是一个问题.)
我正在寻找模糊日期算法.我刚刚开始写一个,并意识到它是一个繁琐的任务.它迅速退化为许多可怕的代码,以应对特殊情况,如"昨天","上周"和"上个月末"之间的差异,所有这些都可以(在某些情况下)指的是同一天但是个别正确根据今天的日期.
我确信必须有一个开源模糊日期格式化器,但我找不到它.理想情况下,我喜欢使用NSDate(OSX/iPhone)及其格式化程序,但这并不困难.有没有人知道模糊日期格式化程序相对于现在采取任何时间段并返回像(但不限于)的字符串:
在一个理想的世界中,我希望字符串尽可能丰富(即在"刚才之前"返回随机变体,例如"just now").
澄清.我正在寻找比基本的buckts和字符串更微妙的东西.我想要一些知道"昨天"和"上周三"的东西都可以指同一时期,但只有一个是正确的,今天是星期四.
我有一个文本文件,我想用Java编辑.它有成千上万行.我基本上想要遍历这些行并更改/编辑/删除一些文本.这需要经常发生.
从我在其他网站上看到的解决方案来看,一般方法似乎是:
这个解决方案对我来说似乎有点"hacky",特别是如果我的文本文件中有数千行.
有人知道更好的解决方案吗?
我有一个字符串从另一个源读取,如"\ b\bfoo\bx".在这种情况下,它将转换为单词"fox",因为前2个\ b被忽略,最后的"o"被删除,然后被替换为"x".另外一种情况是"patt\b\b\b\b\b\b\b\b\b\bfoo"应翻译为"foo"
我用String.Replace提出了一些东西,但它很复杂,我担心它不能正常工作,它也创建了许多我想避免的新字符串对象.
有任何想法吗?