小编use*_*291的帖子

代码中的顺序耦合

顺序耦合真的代码是一件坏事?

虽然它是一个反模式,但我看到的唯一风险是以错误的顺序调用方法,但是具有这种反模式的API /类库的文档应该照顾它.代码还有哪些其他问题是连续的?此外,这种模式很容易通过使用外观来修复.

谢谢

oop anti-patterns

6
推荐指数
2
解决办法
1333
查看次数

Apache/PHP进程在与MySQL交互时挂起

我们看到一些奇怪的行为,我们不确定它是否是apache,php,mysql或操作系统的问题,所以对于stackoverflow的大脑!

我们有Apache和mod_php与mysql5服务器通信.有时,进程会选择挂起,尝试从文件描述符中读取.

在它们上面填一个strace(所有悬挂过程显示相同的结果)给出了:

[root@prweb133v ~]# strace -p 8450
Process 8450 attached - interrupt to quit
read(57,  <unfinished ...>
Run Code Online (Sandbox Code Playgroud)

那它试图读什么呢?

[root@prweb133v ~]# lsof -p 8450
...
...
httpd   8450 apache   57u  IPv4    5546599             TCP
prweb133v.local:36615->hadat.local:mysql (ESTABLISHED)
Run Code Online (Sandbox Code Playgroud)

那是我们的mysql服务器!好的,所以也许它试图读取查询的结果,我想.检查mysql服务器上的进程列表,建立了连接但处于SLEEP状态.

Hmmmm.

那么我检查了netstat以查看谁正在尝试发送/接收内容.

在网络服务器上:

[root@prweb133v ~]# netstat -t -n -a | grep 36615
tcp        0      5 172.23.179.6:36615          172.23.179.67:3306         
ESTABLISHED 
Run Code Online (Sandbox Code Playgroud)

并且在mysql服务器上有一个已建立的连接,但在发送或接收队列中为0.

知道这些神秘的5个字节是什么,或者为什么他们随机不得到mysql服务器?

干杯!

麦克风

php mysql apache networking tcp

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

是否可以拥有"仅限实施"的班级成员?

这是一个初学者的问题所以请耐心等待.

我有一个使用第三方库的课程(oniguruma,如果重要的话).我希望库方法完全由我自己修饰,这样我就可以随时切换我的类的底层实现.就像是:

// MyClass.h

@interface MyClass : NSObject ...

- (int) doSomething;


// MyClass.m

#import "some_library.h"

@implementation MyClass

- (int) doSomething 
{
   //call library's specific stuff
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,这么好,但现在我需要在MyClass中使用一个具有一些库定义类型的实例变量(在"some_library.h"中声明的结构).当然我可以直接在界面部分导入库:

//MyClass.h

#import "some_library.h"

@interface MyClass : NSObject {
    some_library_t blah;
}
- (int) doSomething;
@end
Run Code Online (Sandbox Code Playgroud)

但这正是我想要避免的 - 让MyClass的用户知道它的实现细节.

我可以以某种方式"隐藏"我的类界面中特定于库的类型吗?什么是标准做法?

xcode cocoa objective-c

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

PHP的独立语法和解析器

我正在寻找适用于php(至少5.2)的现成语法和解析器,理想情况下是一种可以将php代码解析为可读AST(例如xml)的实用程序/库。解析器本身不必用php编写,源语言无关紧要。

php c c++ compiler-construction parsing

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

在php中避免访问修饰符的原因

什么是有效的理由不使用关键字公共,私人,受保护的PHP?

故事:我已经开始了一个项目,其团队在他们的代码中积极使用访问修饰符(甚至明确地"公开"),并想说服我这样做.我总是觉得这种东西在像php这样的动态语言中完全没用,但我意识到我的直觉在技术讨论中几乎不是一个论点.因此,我正在寻找一个可靠,清晰的解释为什么访问修饰符在php中无用(甚至有害).

我知道已经存在一些类似的主题

但是我发布这个有几个原因

  • 我不是在问我是否应该使用"公开".我已经没有使用它了.
  • 我明确没有兴趣听到为什么访问修饰符是好的(我知道它们很糟糕,我只需要专家来确认).
  • 如果您要告诉我"最佳实践"和"OOP原则",请不要打扰.

TIA

php oop private protected public

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

array:每个键存储多个值

我曾经尝试使用相同的密钥添加两个值,但它不起作用.它超越了旧的价值.是不是可以使用相同的键添加多个值,并且当通过键检索时,我得到一个链接列表,我可以迭代以获得所有不同的值?

php arrays

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

debug_backtrace()对于生产环境中的严重使用是否安全?

它的功能非常强大,我担心它的稳定性和性能.

你怎么看?

UPDATE

我正在做的是这样的:

    $old_dir = getcwd();
    chdir( dirname($included_file) );
    include ( $included_file );
    chdir( $old_dir );
Run Code Online (Sandbox Code Playgroud)

基本上它只是这样include ( $included_file );,但在内部$included_file它找不到3.php与它本身位于同一目录中,所以我手动设置cwd并且它工作.但是如果我找到它无法找到的原因会很好至于为什么debug_backtrace需要,因为3.php它被另一个包含func,因为相对路径不起作用,它必须debug_backtrace用来获取包含文件路径,最后使用如下所述的绝对路径.

重现并不容易,因为上面的代码是在一个方法的上下文中,而且还有更多......如果没有其他人遇到过这种问题我想停在这里,无论如何,成本只是额外的3线,没什么大不了的.

php debug-backtrace

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

创建具有值参数而不是引用的函数引用

我不确定如何描述我想要的东西.我想定义一个函数,其参数是本地VALUE而不是引用.

说我有我想要创建的对象列表

for(i = 0; i < 10; i++){
  var div = document.createElement("div");
  div.onclick = function(){alert(i);};
  document.appendChild(div);
}
Run Code Online (Sandbox Code Playgroud)

现在我相信这个例子,无论我点击什么div,它都会提醒"10"; 因为那是变量i的最后一个值;

有没有办法/如何创建一个函数,参数是我在指定函数时的值...如果这有意义的话.

javascript closures function parameter-passing

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

MySQL INSERT查询

我需要一个查询来执行以下操作:从表Country中找到countryID where country ='UK'

然后使用找到的值

INSERT into towns (id, country_fk, name)
values (1, <value_found>, 'London').
Run Code Online (Sandbox Code Playgroud)

这可能吗?

更新我需要存储一次值,以便我可以在多个INSERTS(约100)中使用它

mysql insert

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

使用javascript将日期和分钟添加到日期

我正在根据世界各地的时区建立会议日历.我的问题是如何在Javascript中从用户选择的日期添加或减去时区.

例如,在选择表单上,用户将从表单中选择日期:然后我会得到结果并转换为如下日期...

var ldSelectDate = new Date(document.form1.year.value,
           document.form1.month.value,
           document.form1.day.value);
Run Code Online (Sandbox Code Playgroud)

我想在这个对象中添加12午夜.

然后我读入一个XML,它在两个城市之间的字符串中获得时区差异:例如喀布尔的"+0430"或纽约的"-0400"(夏令时).这是基于GMT的.

然后我计算两个城市之间的时区差异:它将返回字符串"830".(我假设我必须将它作为日期对象返回?).我完成了这部分返回一个字符串.我正在使用字符串.

然后我想循环一整天的24小时,在午夜12点设置喀布尔然后循环.我很可能会想到这一点 - 也就是说,在循环时将日期设置为整个小时.

我的问题是从喀布尔无痛地减去"830",看看会议时间在纽约会是什么时候.

如果我可以从喀布尔时间减去小时和分钟,那将是理想的选择.我注意到有人在javascript中减去了小时数,但没有减去分钟数.顺便说一句,那篇文章对我不起作用.

我用没有分钟的字符串做了这个,但是我搞砸了会议记录.必须有一个更简单的方法.

我会采用本机Javascript或jQuery的解决方案.

同样,我需要在特定日期减去/添加小时和分钟的时区差异.

谢谢

javascript jquery datetimeoffset

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