问题列表 - 第17597页

基础功能的内存管理指南

虽然基础类的内存管理是一致的并且有文档记录,但我很惊讶地发现(通过友好的EXC_BAD_ACCESS)基础函数,例如NSStringFromSelector()似乎返回指向常量存储的指针 - 这至少在函数的文档中没有提到.

这种行为是否记录在某处?有没有一致的指导方针?

cocoa objective-c foundation

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

Django使用基于子域的不同settings.py文件

Django如何使用基于子域的不同settings.py文件.

如果有不同的设置连接到不同的数据库,是否仍然可以使用这些实用程序("django-admin","python manage.py").

python django subdomain

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

如何处理抛出已检查异常的静态最终字段初始值设定项

我正面临一个用例,我想声明一个static final带有初始化语句的字段,该语句被声明为抛出一个已检查的异常.通常,它看起来像这样:

public static final ObjectName OBJECT_NAME = new ObjectName("foo:type=bar");

我在这里遇到的问题是ObjectName构造函数可能会抛出各种已检查的异常,我并不关心这些异常(因为我知道我的名字是有效的,如果它没有崩溃就会崩溃).java编译器不会让我忽略它(因为它是一个经过检查的异常),我宁愿不诉诸:

public static final ObjectName OBJECT_NAME;
static{
    try{
        OBJECT_NAME = new ObjectName("foo:type=bar");
    }catch(final Exception ex){
        throw new RuntimeException("Failed to create ObjectName instance in static block.",ex);
    }  
}

因为静态块确实非常难以阅读.有没有人有一个关于如何以一个漂亮,干净的方式处理这种情况的建议?

java static final exception initializer

37
推荐指数
3
解决办法
2万
查看次数

命名类 - 如何避免将所有内容称为"<WhatEver> Manager"?

很久以前我读过一篇文章(我相信一篇博客文章),它让我在命名对象的"正确"轨道上:非常谨慎地命名程序中的东西.

例如,如果我的应用程序(作为一个典型的业务应用程序)处理用户,公司和地址我有一个User,一个Company和一个Address域类 - 可能在某个地方UserManager,一个CompanyManager和一个AddressManager会弹出来处理这些事情.

所以,你可以告诉那些UserManager,CompanyManagerAddressManager做什么?不,因为Manager是一个非常通用的术语,适用于您可以对域对象执行的任何操作.

我读过的文章建议使用非常具体的名称.如果它是一个C++应用程序并且该UserManager工作正在分配并从堆中释放用户,那么它将不会管理用户,而是保护他们的出生和死亡.嗯,也许我们可以称之为UserShepherd.

或者可能UserManager的工作是检查每个User对象的数据并以加密方式对数据进行签名.然后我们有一个UserRecordsClerk.

现在这个想法一直困扰着我,我尝试应用它.并且发现这个简单的想法非常难.

我可以描述这些类的功能和(只要我不进入快速和脏编码)我写的类只做件事.我想念从名称到名称的是一种名称目录,一种将概念映射到名称的词汇表.

最终,我想在我的脑海里有类似图案目录的东西(通常设计图案很容易提供对象名称,例如工厂)

  • Factory - 创建其他对象(从设计模式中获取命名)
  • 牧羊人 - 牧羊人处理物体的生命,它们的创建和关闭
  • 同步器 - 在两个或多个对象(或对象层次结构)之间复制数据
  • 保姆 - 帮助对象在创建后达到"可用"状态 - 例如通过连接到其他对象

  • 等等

那么,你如何处理这个问题呢?你有一个固定的词汇表,你是否动态发明新的名字,或者你认为命名的东西不是那么重要或错误?

PS:我也对链接​​到讨论这个问题的文章和博客感兴趣.首先,这是让我思考它的原始文章:在没有"经理"的情况下命名Java类


更新:答案摘要

以下是我在此期间从这个问题中学到的内容的一些总结.

  • 尽量不要创造新的比喻(保姆)
  • 看看其他框架做了什么

关于这个主题的进一步文章/书籍:

以及我从答案中收集的主观名称前缀/后缀的当前列表:

  • 协调员
  • 生成器
  • 作家
  • 读者
  • 处理器
  • 容器
  • 协议
  • 目标 …

oop naming design-patterns naming-conventions

1147
推荐指数
11
解决办法
20万
查看次数

在SQL Server 2005中将Unicode整数转换为Unicode字符

如何在SQL Server 2005中将Unicode整数转换为Unicode字符.

例如,SELECT UNICODE('$')返回36.

我正在寻找一个需要36并返回'$'的函数.

sql-server sql-server-2005

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

MVC是设计模式还是建筑模式

根据SunMsdn的说法,它是一种设计模式.

根据维基百科,它是一种建筑模式

与设计模式相比,建筑模式的规模更大.(维基百科 - 建筑模式)

或者它是一种具有设计模式的建筑模式?

哪一个是真的?

model-view-controller design-patterns architectural-patterns

101
推荐指数
5
解决办法
6万
查看次数

为什么这个LINQ-to-SQL查询会出现NotSupportedException?

以下LINQ语句:

public override List<Item> SearchListWithSearchPhrase(string searchPhrase)
{
    List<string> searchTerms = StringHelpers.GetSearchTerms(searchPhrase);

    using (var db = Datasource.GetContext())
    {
        return (from t in db.Tasks
                where searchTerms.All(term => 
                    t.Title.ToUpper().Contains(term.ToUpper()) &&
                    t.Description.ToUpper().Contains(term.ToUpper())) 
                select t).Cast<Item>().ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

System.NotSupportedException:除Contains()运算符外,本地序列不能用于查询运算符的LINQ to SQL实现.

看看它似乎我唯一的选择是将我的所有项目首先放入一个通用列表,然后对其进行LINQ查询.

或者是否有一种巧妙的方法来重新编写上述LINQ-to-SQL语句以避免错误?

回答:

感谢Randy,您的想法帮助我构建了以下解决方案.它不优雅,但它解决了问题,因为这将是代码生成,我可以处理多达20个搜索术语,而无需任何额外的工作:

public override List<Item> SearchListWithSearchPhrase(string searchPhrase)
{
    List<string> searchTerms = StringHelpers.GetSearchTerms(searchPhrase);

    using (var db = Datasource.GetContext())
    {

        switch (searchTerms.Count())
        {
            case 1:
                return (db.Tasks
                     .Where(t =>
                         t.Title.Contains(searchTerms[0])
                         || t.Description.Contains(searchTerms[0])
                         )
                     .Select(t => t)).Cast<Item>().ToList(); …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-sql

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

搜索django中表格中的所有字段

如何使用filter子句ex:table.object.filter(表中的任何字段="sumthing")搜索django中表中的所有字段

谢谢.

python django

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

使用"不同语言"源代码

如果给你一个大的n层项目(.NET),其中15,000行代码用"西班牙语"(变量,表格,类名等)编写,需要添加功能和修复错误,那么你的策略是什么呢? ?

  1. 将整个项目转换为英语(谷歌翻译或其他工具)名称似乎不是一个好的选择,因为它将是耗时的
  2. 聘请了解"西班牙语"或翻译的开发人员

编辑:编写原始软件的开发人员不懂英语,所以在这种情况下他们没用.

project-management

4
推荐指数
2
解决办法
269
查看次数

如何在GUI中显示Perl控制台输出?

我有几个简单的Perl程序写入标准输出,但这有一些问题:

  • 我的一些用户被控制台吓坏了
  • 我的用户在Windows上工作,所以我的程序输出显示在cmd控制台上,所以我无法控制它的显示方式(颜色和终端大小),更糟糕的是,控制台无法调整大小(至少在宽度上)

为了解决这些问题,我希望能够在一个简单的GUI界面中显示输出作为选项.GUI应该响应直到程序结束(应该可以在窗口运行时滚动或调整窗口大小).

我可以使用什么简单的工具包和小部件来执行此操作?(我使用ActivePerl在Windows上开发).

windows console perl

8
推荐指数
2
解决办法
4466
查看次数