小编Mar*_*ers的帖子

将MVP界面模式中的演示者划分为过大的优秀做法是什么?

我最近经常遇到的一个问题是我的演示者课程变得太大了.通常,我可以在不跳过节拍的情况下切断常规的大班.但是主持人有时候会更难以削减,而不会让代码更难以遵循.

特别是当页面开始填充CRUD导向控件时.有时我将控制分开,但如果它们受到其他控制的影响,协调逻辑本身就很复杂.有时我将列表或网格数据检索分开,但有时候会有类似的陷阱.

是否有任何技术,或经验法则或您从演示者中重构的公共区域?

mvp user-interface refactoring

3
推荐指数
1
解决办法
1738
查看次数

React 是否正在从 React.memo 转向 useMemo?

无论React.memouseMemo钩通过减少重新计算和重新描绘允许性能优化。然而,它们确实有效,因为 React.memo 用于包装函数组件,并且useMemo钩子几乎可以用于任何函数,甚至是纯计算。更重要的useMemo是,通常从父组件React.memo调用子组件,而通常在子组件本身的声明上调用。

虽然两者都有不同的优点,但一个优点React.memo是不必从每个父子关系中调用它。然而,随着钩子的发布,很明显 React 开发希望转向使用钩子来处理状态、副作用事件和其他效果的功能组件。虽然我认为 React 开发团队不会有勇气或无视他们的用户群React.memo在未来 2 年内随时删除,但我想知道他们是否希望最终用户出于风格原因停止使用 React.memo。就像他们有种被动积极地从类组件转移到带有钩子的功能组件。

当使用带有钩子的功能组件时,react 框架是否正在远离React.memo? 如果将来想跟上 React 最佳实践,习惯使用钩子版本会更好吗?

reactjs react-hooks react-memo react-usememo

2
推荐指数
1
解决办法
1784
查看次数

在JSON中表示子对象的正确语法是什么?

我有一个简单的对象,从JSON反序列化为服务器端对象.

JSON:

{
   name             : 'ObjectName',
   host             : 'http://localhost',
   ImagesPath       : '/Images/'
}
Run Code Online (Sandbox Code Playgroud)

在服务器端,上面的JSON代码通过以下方式反序列化到此C#对象中System.Web.Script.Serialization.JavaScriptSerializer:

public class InfoObject
{
    public string Name { get; set; }
    public string Host { get; set; }
    public string ImagesPath { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

目前上面工作正常,但我想添加很多属性.我想添加子对象来保存额外的数据,以便所有属性都不在一个长类中.

子对象对象:

public class TestSubObject
{
     public string TestString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这样新的C#对象看起来像:

public class InfoObject
{
    public string Name { get; set; }
    public string Host { get; set; }
    public string ImagesPath { get; …
Run Code Online (Sandbox Code Playgroud)

javascript c# syntax serialization json

1
推荐指数
1
解决办法
3194
查看次数

可以配置StructureMap,以便根据项目是在调试模式还是在发布模式下构建,可以使用不同的.config设置?

我知道在StructureMap中,当我想将特定参数传递给对象的构造函数时,我可以从我的*.config文件(或它们引用的文件)中读取.

ForRequestedType<IConfiguration>()
                .TheDefault.Is.OfConcreteType<SqlServerConfiguration>()
                .WithCtorArg("db_server_address")
                .EqualToAppSetting("data.db_server_address")
Run Code Online (Sandbox Code Playgroud)

但我想要做的是从调试模式下的一个配置设置和另一个在发布模式下读取.

当然,我可以环绕.EqualToAppSetting("data.db_server_address"),有#if DEBUG,但由于某些原因这些语句让我畏缩了一点,当我把他们.我想知道是否有某种方式与StructureMap库本身做到这一点.

那么我可以根据项目是在调试模式还是发布模式下为我的对象提供不同的设置?

structuremap web-config configuration-files ioc-container

1
推荐指数
1
解决办法
504
查看次数