我肯定错过了什么.我无法在不直接访问对象的情况下初始化对象的继承字段.
我的目标是努力保持简单.
package main
type Page struct {
Title string
}
type Article struct {
Page
Id int
}
func main() {
// this generates a build error:
// "invalid field name Title in struct initializer"
//
p := &Article{
Title: "Welcome!",
Id: 2,
}
// this generates a build error:
// "invalid field name Page.Title in struct initializer"
//
p := &Article{
Page.Title: "Welcome!",
Id: 2,
}
// this works, but is verbose... trying to avoid this
//
p …Run Code Online (Sandbox Code Playgroud) 我正在查看 DynamoDB Go SDK 文档,但找不到如何连接到本地版本的 DynamoDB。我错过了什么?
修改性能监视器,我看到:
有更好的柜台可以看吗?或许还有其他软件?
更新:所有这些问题都是在Visual Studio中将网站应用程序转换为Web项目.一旦我挖出并找到了解决方案,我在下面标记为答案.
基本上,如果您想要将您的网站项目升级/移动到Web项目,您将遇到许多错误.简短的操作方法在下面的答案中.谢谢大家的意见和帮助.
旧问题和标题如下:
如何将名称空间xx {}包装到所有类文件中?
如何将命名空间包装到webproject(或任何项目)中的所有代码隐藏文件?
namespace MyDomain
{
// regular code here
}
Run Code Online (Sandbox Code Playgroud)
长话短说...
我一直在转换一个外包给海外的项目.仅在"网络"项目中就有超过20,000个文件,用于这样一个简单的网站(摇头).它是使用VB.NET和C#在vs2005中编写的(是的,两个编译).它最初是一个网站应用程序.我已将其转换为Web应用程序,主要是因为您发布时生成的8,000个"临时"程序集.
好的,我正在转换到VS2008.我已将所有代码转换为C#.看起来不错.我把所有特殊的App_Code/VB和C#代码都带到了单独的程序集中.
现在,当我再次尝试编译时,我会收到大量错误的警报.我通过将代码隐藏文件包装在命名空间中来修复这些问题,并更新usercontrol以使用新的命名空间.
但是......还有5000多个错误...帮助!
alt text http://eduncan911.com/blog/thumbnail/4-15-2009.6-00-13.PM.png
也许有另一种方式?以下是代码隐藏的示例代码段:
public partial class MyHomepage_MyStuff_MyPosts : SecurePage
{ ... }
Run Code Online (Sandbox Code Playgroud)
注意类名MyHomepage_MyStuff_MyPosts.这是指向/MyHomepage/MyStuff/MyPosts.aspx文件位置的目录路径.
错误是代码隐藏文件无法找到对正在使用的控件的引用.如:
ctl_website_rpt.RowCount = _totalCount;
Run Code Online (Sandbox Code Playgroud)
这是ASPX文件中名为"ctl_website_rpt"的控件(它们的命名约定).aspx页面在标题中:
<%@ Page Title="My Posts" Language="C#"
MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true"
CodeFile="MyPosts.aspx.cs"
Inherits="MyHomepage_MyStuff_MyPosts" %>
Run Code Online (Sandbox Code Playgroud)
也许有一种方法可以在其他地方引用这个页面?无需将其更改为命名空间?
namespace Website.MyHomepage.MyStuff
{
public partial class MyPosts
{ ... }
}
<%@ Page Title="My Posts" Language="C#"
MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true"
CodeFile="MyPosts.aspx.cs"
Inherits="Website.MyHomepage.MyStuff.MyPosts" %>
Run Code Online (Sandbox Code Playgroud) 我的第一个目标是使用泛型基于特定接口过滤类型.
我的第二个目标是获取泛型参数本身的类型.
public UserService : IUserService, IDisposable, IExportableAs<IUserService>
{
...
}
Run Code Online (Sandbox Code Playgroud)
我不能假设类的结构,它的接口(如果有的话)或类似的.我知道的唯一一件事就是我ExportableAs<T>用来创建这个插件的共享程序集.但是,我需要动态注册该类型.
所以,我使用通用接口来标记要导出的类型.在这种情况下,它是IUserService.我这样做假设一些漂亮的Linq查询可以给我我想要的东西.但是,我有点麻烦.
这是我到目前为止所拥有的:
assembly.GetTypes()
.Where(t => t.GetInterfaces().Any(i =>
i.IsGenericType &&
i.GetGenericTypeDefinition() == typeof(IExportableAs<>))
).ToList()
.ForEach(t => _catalogs.Add(
new ComposablePart()
{
Name = t.FullName,
Type = t // This is incorrect
})
);
Run Code Online (Sandbox Code Playgroud)
这是有效的,但请注意上面的评论"这是不正确的".这种类型是派生类UserService.
我最终的结果是:
IExportableAs<T>(IUserService在这种情况下)UserService)这个问题得到了很好的投票,因为它使我接近(如上所示):如何确定类型是否实现了特定的通用接口类型 但是,我需要更进一步找到该泛型类型.
随意修改上面的linq.
提前致谢!
我正在构建一个GPS相关的应用程序,显示其他计算中的坐标.我的演示代码设置为每秒触发事件.
每当我更新主页面UI(例如,具有计算的纬度的文本框)时,它都可以正常工作.
问题是如果我试图从一侧"轻弹"到另一侧,更改页面.在"轻弹"的过程中,如果要更新文本框,它会将主页面跳回到视图中.
没有视频很难在文本中解释.但想象一下,点击n-holding,然后轻轻地拉开全景屏幕 - 比如说,看看下一页,但还没有翻转.好吧,如果文本框在那段时间内要更新,你将松开鼠标点击保持,它会跳回到主页面.
一旦你到达下一页,它就会停留,我可以看到上一页的溢出更新.没什么大不了的.但它只是试图进入下一页.
我是WP7/Silverlight的新手,所以我一直在尝试使用Dispatcher来提高响应速度.无论我做什么(使用Dispatcher),都会发生这种情况.所以,我猜这与更新的UI有关.
一些小代码总能帮助:
void GeoWatcher_PositionChanged(object sender,
GeoPositionChangedEventArgs<GeoCoordinate> e)
{
Deployment.Current.Dispatcher.BeginInvoke(() => MyPositionChanged(e));
}
void MyPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate> e)
{
var model = GeoProcessor.GetPosition(e.Position);
latitude.Text = model.Latitude;
longitude.Text = model.Longitude;
altitude.Text = model.Altitude;
accuracy.Text = model.Accuracy;
direction.Text = model.Direction;
speed.Text = model.Speed;
speedAvg.Text = model.SpeedAvg;
}
Run Code Online (Sandbox Code Playgroud)
当更新任何这些文本框时,屏幕会"跳转"回主页面.有点不好的经历.
也许这是正常的?知道用户是否试图"滑动"到下一页是否有事件可以吸引?
提前致谢.
如何标记他们的 repo,并让它出现在go mod和/或 pkg.go.dev 中?
我已将我的一个包转换为go mod. 但是,该go mod工具本身似乎只能看到我的包的非常旧版本。
编辑:我只是注意到我的旧版本有一个“v”前缀,而我的新标签没有“v”前缀。
这是根本问题吗?该硬性要求记录在哪里?
我的包裹有问题:https : //github.com/eduncan911/podcast
还有我的标记发布:https : //github.com/eduncan911/podcast/releases
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0 <- this is the current version Go Modules sees available
Run Code Online (Sandbox Code Playgroud)
但是,pkg.go.dev 显示:
v1 – github.com/eduncan911/podcast
v1.3.0 – Feb 19, 2017
v1.1.0 – Feb 6, 2017
v1.0.0 – Feb 5, 2017
Run Code Online (Sandbox Code Playgroud)
https://proxy.golang.org/上的常见问题解答说:
我向存储库提交了新更改(或发布了新版本),为什么在我运行 go get -u 或 go list -m --versions 时它没有显示?
为了改善我们服务的缓存和服务延迟,新版本可能不会立即出现。如果您希望新代码立即在镜像中可用,那么首先要确保在底层源存储库中有此修订版的语义版本标记。然后通过 go get module@version 显式请求该版本 …
我继承了一个项目,该项目将视频发送到远程编码器以编码为FLV.
今天,我注意到我们要求他们以1024kbps的速度编码对我而言,这似乎非常高.
其他人用的是什么?YouTube用于"标准"版本与"高质量"版本的用途是什么?
先感谢您.
一位开发人员和我正在交谈(轻描淡写地)对象的属性的Lazy-Loading.
那么,在IoC和SRP之后你将如何处理Lazy-Loading?
你不能单元测试那个延迟加载的属性.他重申那句话说:"你已经为UserStatsService进行了单元测试 - 这是你的代码覆盖率." 有效点,但该物业仍然未经测试,但"完整"覆盖.
设置/代码模式:
一个例子如下.
public class User
{
public Guid UserId { get; set; }
private UserStats _userStats;
// lazy-loading of an object on an object
public UserStats UserStats
{
get
{
if (_userStats == null)
{
// ComponentsLookup is just a wrapper around IoC
// Castle/Unity/etc.
_userStats =
ComponentsLookup
.Fetch<UserStatsService>()
.GetByUserId(this.UserId);
}
return _userStats;
}
}
}
Run Code Online (Sandbox Code Playgroud)
以上显示了延迟加载对象的示例.我说不要使用它,并从UI层访问任何需要该对象的UserStatsService.
编辑:下面的一个答案让我想起了延迟加载的NHibernate技巧,即虚拟化你的属性,允许NHibernate创建一个懒惰加载本身的过载.光滑,是的,但我们没有使用NHibernate.
没有人真正解决Lazy-Loading的问题.一些好文章和SO问题接近:
我确实看到了延迟加载的好处.不要弄错我,我所做的只是懒惰加载我的复杂类型及其子类型,直到我切换到忍者的DI方式.好处在于UI层,其中用户的统计数据显示在具有100行的列表中.但是使用DI,现在你必须引用几行代码来获取用户统计数据(不违反SRP并且不违反Demeter法则),并且必须走这条长路径的查找次数100次.
是的,添加缓存并确保编写UserStatsService以用作Singleton模式,从而大大降低性能成本.
但我想知道是否有其他人有一个[顽固]开发人员,他们不会完全屈服于IoC和DI规则,并且拥有有效的性能/编码点来证明解决方案的合理性.
lazy-loading single-responsibility-principle inversion-of-control
如何比较具有多个位设置的枚举?我一定很遗憾.
我有一个枚举的目标持久值,我有相同枚举的用户设置.我需要比较两者以查看是否存在一个或多个枚举位的单个匹配.
额外奖励:我很乐意在这里使用按位运算符来快捷查询linq(因为我在不同的属性中复制了5到6次).我知道它不易读,但它确实有助于我正在做的事情.
public enum Targets
{
NotSet = 0,
Anonymous = 1,
Everyone = 2
Adult = 4,
Child = 8,
LikesFishing = 16
}
Run Code Online (Sandbox Code Playgroud)
我有多个目标设置的用户:
var loggedInUser = new User()
{
Username = "eduncan911",
Targets = Targets.Everyone | Targets.Adult | Targets.LikesFishing
};
Run Code Online (Sandbox Code Playgroud)
我有多个不同目标的文章:
var article1 = new Article()
{
Title = "Announcement for Parents and Children",
Targets = Targets.Adult | Targets.Child
};
var article2 = new Article()
{
Title = "What fishing boat do you own?",
Targets = …Run Code Online (Sandbox Code Playgroud) c# ×2
go ×2
aws-sdk ×1
bitrate ×1
code-behind ×1
enums ×1
flash ×1
flv ×1
generics ×1
go-modules ×1
iis ×1
lazy-loading ×1
linq ×1
monitor ×1
namespaces ×1
performance ×1
service ×1
single-responsibility-principle ×1
types ×1
video ×1