我目前在我的应用程序的配置文件中有以下内容:
define('DOCROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);
define('WEBROOT', 'http://localhost/samples/');
Run Code Online (Sandbox Code Playgroud)
第一行完美无缺.我可以在任何地方包含配置文件,然后DOCROOT
按预期使用常量.
第二行也适用,但它是硬编码的,这意味着当我将此文件上传到我的网络服务器时,它将是错误的.它应该是http://samples.example.com
.是否有一种好方法可以防止这种硬编码?我觉得我必须在某个地方硬编码,在那种情况下,我可以逃脱的是什么和多少?
在C#中,我可以这样做:
IEnumerable<long> ids = things.select(x => x.Id);
Run Code Online (Sandbox Code Playgroud)
在Java中我必须这样做:
Collection<Long> ids = new ArrayList<Long>(things.size());
for(Thing x : things)
ids.add(x.getId());
Run Code Online (Sandbox Code Playgroud)
现在必须做很多这样的事情并且想知道在Java中是否有更通用的方法来做这件事.可以创建一个方法来做到这一点,但后来我将不得不添加一个接口与getId方法或类似的...我不能...
默认的AssemblyInfo.cs如下所示:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Foobar")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Foobar")]
[assembly: AssemblyCopyright("Copyright © 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly …
Run Code Online (Sandbox Code Playgroud) 鉴于此XSD:
<xsd:element name="ServiceList">
<xsd:complexType>
<xsd:sequence>
...
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ServiceList">
<xsd:sequence>
...
</xsd:sequence>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)
这两者之间的语义差异是什么?即命名element
s和complexType
s,它们是a的直接孩子schema
.
我问的原因是我尝试在XSD中执行此操作:
<xsd:element name="AvailableServices" type="cm:ServiceList" />
<xsd:element name="ExistingServices" type="cm:ServiceList" />
<xsd:complexType name="ServiceList">
<xsd:sequence>
...
</xsd:sequence>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)
但是当使用Maven JAXB插件将其编译成Java类时,我只能创建一个new ServiceList()
.AvailableServices
并且ExistingServices
似乎甚至不存在于生成的类中.那么,这里发生了什么?
我点击哈希链接时使用这段JavaScript添加了平滑滚动到我的网站.
$('a[href*=#]')
.click(onAnchorClick);
function onAnchorClick(event)
{
return ! scrollTo(this.hash);
}
function scrollTo(target)
{
var e = $(target);
var y = e.exists() ? e.offset().top : 0;
if(y == 0 && target != '#top')
return false;
if(Math.max($('html').scrollTop(), $('body').scrollTop()) != y)
$('html,body')
.animate({scrollTop: y}, 500, function() { location.hash = target; } );
else
location.hash = target;
return true;
}
$.fn.exists = function()
{
return this.length > 0 ? this : false;
}
Run Code Online (Sandbox Code Playgroud)
在桌面浏览器中运行非常棒,并且至少在iOS设备上也可以正常工作.但是,在我的WinPhone 8设备上它是垃圾.滚动是一团糟,甚至没有结束它应该的地方.所以我决定不通过它启用它if( ! /Windows Phone 8\.0/.test(navigator.userAgent))
.
现在它运行良好,并且看起来WinPhone上的浏览器实际上默认是平滑滚动,这很棒.
但是,如果浏览器默认情况下已经执行此操作,则平滑的滚动脚本处于活动状态当然有点愚蠢.有没有办法可以检测浏览器是否已启用平滑滚动功能?
在将我的网站提交给Google和Bing时,他们要求我通过(例如)上传文件进行验证.
如果我理解了这个文件,则不应该删除,因为他们定期重新检查并删除它意味着我将失去访问权限并需要再次验证它.
鉴于本网站的来源可在GitHub上公开获取,是否安全/确定将这些验证文件添加到源代码管理中?或者这会增加某种风险?
security version-control google-webmaster-tools bing-webmaster-tools
包装简单的 HTML 元素时,以这个MyLink
标签为例:
// MyLink.tsx
import React from 'react';
import { Omit } from 'type-zoo';
interface MyLinkProps
extends Omit<?, 'href'> {
to: string;
children: React.ReactNode;
}
export const MyLinkProps: React.FC<MyLinkProps> = ({
children,
to,
...attributes
}) => (
<a href={to} {...attributes}>
{children}
</a>
);
// Elsewhere
<MyLink to="https://example.com">Example</MyLink>
Run Code Online (Sandbox Code Playgroud)
看来我可以?
用以下任何一种来换掉它:
React.HTMLProps<HTMLAnchorElement>
React.HTMLAttributes<HTMLAnchorElement>
React.AnchorHTMLAttributes<HTMLAnchorElement>
但实际上应该在这里使用什么?如果它变化,人们如何选择?
我有什么理由选择其中一个而不是另一个吗?或者它真的不重要吗?
var a = data.Cars.Where(ø => ø.LicensePlate != null);
var b = data.Cars.Where(ø => ø.LicensePlate.HasValue);
Run Code Online (Sandbox Code Playgroud)
我以前用过!= null
,但开始认为我应该切换,因为HasValue读取更好.你们有什么感想?有什么不同吗?除了一个角色以外?任何性能差异?Sql差异?
有人可以帮我解决这个例外吗?我不明白它意味着什么或如何解决它...这是一个SqlException,带有以下消息:
使用UNION,INTERSECT或EXCEPT运算符组合的所有查询在其目标列表中必须具有相同数量的表达式.
我在伪代码中运行查询时得到它,如下所示:
// Some filtering of data
var query = data.Subjects
.Where(has value)
.Where(has other value among some set of values);
// More filtering, where I need to have two different options
var a = query
.Where(some foreign key is null);
var b = query
.Where(some foreign key is not null)
.Where(and that foreign key has a property which is what I want);
query = a.Union(b);
// Final filter and then get result as a list
var list = …
Run Code Online (Sandbox Code Playgroud) 当我将代码签入我们的Team Foundation Server时,有时候(可能比我实际做的更频繁......)应该将我的签到与我正在努力的任务或错误相关联.当我标记任务或签入时,它会设置要解决的签入操作.但几乎总是,我只想把它当作助理.结果是我经常最终将任务标记为错误解决.有没有办法在标记任务时使关联成为默认值?
解决错误或任务应该是我主动选择的东西.比如,这个工作项与我的签到有关,现在已经解决了.不是,这个工作项目与我的办理登机手续有关,顺便说一句,我还没有完全修复它...
c# ×3
attributes ×2
linq-to-sql ×2
browser ×1
collections ×1
dom ×1
html ×1
java ×1
javascript ×1
jaxb ×1
path ×1
php ×1
properties ×1
reactjs ×1
security ×1
sql ×1
tfs ×1
typescript ×1
xsd ×1