我遇到过一篇讨论"代码钦佩"问题的文章.基本上,作者讨论了开发人员应该如何对他们编写的代码持更多怀疑态度.我们如何过分"钦佩"我们的代码,将自己与自己联系起来,使我们更容易受到可能在我们面前的错误和其他不幸事件的影响.
你觉得这个问题怎么样?您是否有关于如何避免/更多地意识到这个问题的更多提示?
我有许多类的集合,我需要重构为新类.我在Eclipse或Netbeans中使用Java.目前,我使用委托List <Foo>创建新类FooList,然后按照代码无法编译的所有位置进行操作.有没有办法在不破坏代码的情况下执行此操作(最好是单个操作)?
编辑我有以下类型的构造:
public static List<Foo> Bar.createFooList(String s)
Run Code Online (Sandbox Code Playgroud)
并List<Foo>在其他地方经常使用,它作为业务对象是有意义的FooList.我手动完成了这个:
public class FooList {
private List<Foo> fooList;
public FooList(String s) {
createList(s);
}
private void createList(String s) {//...}
public int size() {return fooList.size();}
}
Run Code Online (Sandbox Code Playgroud)
FooList还将包含List之外的方法.例如现在:
Bar.normalize(List<Foo> fooList);
Run Code Online (Sandbox Code Playgroud)
然后会成为
fooList.normalize();
Run Code Online (Sandbox Code Playgroud)
其他函数需要List I的方法时,我使用Eclipse中的Source | Generate Delegate Methods选项在FooList中生成这些方法(与上面的size()一样).
我可以看到实现List <Foo>的吸引力@JonSkeet,但我看不出如何自动更改我的所有代码.
我想从garmin地图中提取信息(经度,纬度,位置名称),并在我的java Web应用程序中使用此信息的数据库.但我不知道如何从garmin地图中提取诸如城市之类的区域信息作为文本或二进制文件.如果有人知道它请帮助我.
我正在尝试链接到Kernel框架,因为第三方库正在使用I / O Kit库中的函数(http://developer.apple.com/mac/library/documentation/Darwin/Reference/KernelIOKitFramework/index.html)。
我是MacX开发的新手,我是Snow Leopard的开发人员,并且使用-m32标志进行编译。
g++-4.2 -headerpad_max_install_names -m32 -F/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/ -F/System/Library/Frameworks/ -o myApp debug/main.o -F/Library/Frameworks -L/Library/Frameworks -framework OpenCL -framework CoreAudio -framework Kernel -framework QtGui -framework Carbon -framework AppKit -framework QtCore -lz -lm -framework ApplicationServices
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ld: framework not found Kernel
Run Code Online (Sandbox Code Playgroud)
我确定内核框架在/ System / Library / Frameworks中(就像CoreAudio一样)。但是链接器找不到内核框架。是否禁止与内核框架链接?
有任何想法吗 ?
谢谢保罗
我得到一个HTML文件作为NSData,需要提取它的一些部分.为此,我需要使用UTF8编码将其转换为NSString.问题是这种转换失败,可能是因为NSData包含对UTF8无效的字节.我试图获取数据的字节数组并重复它,但每次我遇到非ASCII字符(例如希伯来字母)时,我得到了jibrish.
帮助将不胜感激.
更新:
对戈登 - NSData生成如下:
NSData *theData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&theResponse error:&theError];
Run Code Online (Sandbox Code Playgroud)
当我说转换失败时,我的意思是
[[NSString alloc] initWithData:temp encoding:NSUTF8StringEncoding]
Run Code Online (Sandbox Code Playgroud)
返回零
To Ed - 这是我的代码(我从NSData获得了Byte数组,找到了我需要的东西,并从中构造了另一个Byte数组 - 将其转换为NSData然后尝试将其转换为NSString ...听起来有点复杂...... )
-(NSString *)UTF8StringFromData:(NSData *)theData{
Byte *arr = [theData bytes];
NSUInteger begin1 = [self findIndexOf:@"<li>" bArr:arr size:[theData length]]+4;
NSUInteger end1 = [self findIndexOf:@"</li></ol>" bArr:arr size:[theData length]];
Byte *arr1 = (Byte *)malloc(sizeof(Byte)*((end1-begin1+1)));
NSLog(@"%d %d",begin1, end1);
int j = 0;
for (int i = begin1; i < end1; i++){
arr1[j] = arr[i];
j++;
}
arr1[j]='\0';
NSData *temp …Run Code Online (Sandbox Code Playgroud) 如何在页面上的特定位置打印文本?当我使用 document.write() 时,文本会打印在新页面上。
我不知道他们在普通的Windows搜索中使用了什么.但是有一种技术可以让你立刻使用文件索引,然后再使用索引来加快搜索速度.(例如Windows搜索4.0)
除此之外还有其他方法可以加快搜索速度吗?你能从实施的角度详细说明吗?(假设我可能需要实现它)
为了简化理解,让我这样说:
假设我想构建一个搜索应用程序,它执行类似于我们在windows中使用的搜索操作.
我的问题是,有哪些可用的选项/方法/方法可用于构建此类应用程序?(并且比现有的更快.)
(可以使用二叉搜索树类技术吗?)
我使用SQL Server编写的数据库应用程序,使用sql server作为后端.为了数据完整性,我尝试在数据库级别上尽可能强制执行 - 关系,检查约束,触发器.
由于它们,如果数据不一致,则save/update/insert可能会失败,并且app会抛出SqlException.
我在UI中进行各种验证(如果输入的数据无效,则向用户显示有意义的信息),也在BL中,它将错误报告给用户提供给用户的UI.
但是,有些东西确实无法在应用程序中检查,并且由db处理:我的意思是当没有级联删除和用户尝试从主表中删除实体时删除错误等.
例如,员工表在很多关系中充当主人 - 员工经理,部门经理,收银员,团队负责人,团队成员等等.如果我添加一个没有涉及任何关系的新员工我可以删除它,但是用户尝试删除一个主要的关系,由于在DB级强制执行RI规则,删除失败(因为它应该),这没关系.
我在try ... catch中编写删除代码并处理异常,告诉用户他无法删除该员工.但我想给用户更有意义的信息 - 记录无法删除的原因.也许这只是一个测试员工记录,也被添加到测试团队.但是用户忘记了添加的内容,如果我能说"无法删除员工,因为它是团队T1的一部分",用户将知道先去T1团队,删除用户然后再尝试删除它.这是一个简单的例子,因为我说员工可以参与很多关系 - 在我的应用程序中我至少有20个.
解决方案是显示SqlException报告的消息,但这根本不优雅.首先,msg非常技术性 - 它谈论FK,PK,触发器,这对用户来说毫无意义并且会吓到它们.其次,我的应用程序使用多语言UI,所有菜单和消息都以用户选择的语言显示(在登录时或用户配置文件中选择).并且来自SqlException的消息是英语(如果我使用英语版本)或最差的,不太常见的语言,如德语或荷兰语,如果它发生sql server就是那种语言.
是否有任何通用或推荐的方法从sql异常中提取有意义的信息,以便能够向用户呈现有意义的消息(例如,什么关系或子表导致失败,或什么触发等).但我可以在程序中以独立于lang的方式测试,然后以用户友好的方式格式化我自己的错误消息?
你是如何处理这种情况的?
谢谢你的所有答案
(PS:很抱歉很长的帖子)
我是原生c ++的新手.现在,我按下了鼠标左键,它有一个执行InvalidateRect的for循环并绘制一个矩形,并在每次迭代时按照框大小递增X. 但是,C++在绘制方面比C#更快更有效率,它可以立即绘制所有这些内容.我想要的是它使矩形无效,显示矩形,等待50ms,然后继续循环.我试过睡眠(50),但它仍然等到绘画完成后再显示结果.我也尝试过PeekMessage,但它没有改变任何东西.任何帮助,将不胜感激.谢谢
.net ×1
c# ×1
c++ ×1
collections ×1
django ×1
encoding ×1
filesystems ×1
filter ×1
garmin ×1
geospatial ×1
iphone ×1
java ×1
javascript ×1
kernel ×1
linker ×1
list ×1
macos ×1
map ×1
nsdata ×1
nsstring ×1
printing ×1
python ×1
readability ×1
refactoring ×1
search ×1
sql ×1
sql-server ×1
sqlexception ×1
text ×1
utf-8 ×1
winapi ×1
windows ×1