关于全球变量及其误用的讨论似乎对其持有一定的教条色调.我不是在争论"全局性是坏的"概念,因为它对我来说是有道理的.但是我想知道人们是否有一些有趣的代码片段,它们可以准确地演示如何有效地从代码中重构更高范围的变量和对象.在这个问题中,我正在寻找"我需要在这里使用全局变量因为它很容易"问题的通用但有用的解决方案的示例或模式.
这是一个假设的,也许是人为的例子.我正在使用全局变量来跟踪发送到函数的参数.然后,如果在链的下游发生故障,我可以返回并使用全局变量中的参数再次调用该函数.
public var myGlobalState:Object = new Object();
public function addPerson (name:String, person:Object, personCount:int, retryCount:int):void
{
myGlobalState = null; // Clear out old values
myGlobalState = new Object();
myGlobalState.name = name;
myGlobalState.person = person;
myGlobalState.personCount = personCount;
myGlobalState.retryCount = retryCount;
person.userId = personCount + 1;
person.name = name;
savePerson(person);
}
public function savePerson (person:Object):void
{
// Some code that attempts to save the person object properties to a database...
// The process returns a status code for SUCCESS of FAILURE. …Run Code Online (Sandbox Code Playgroud) 有没有一种方便的方法来检查从外部API传递到Ember js和Ember Data模型的原始模型数据?
类似Ruby .inspect方法的东西.对于Ember Data,有没有这样的调试工具?
我希望确保在数据到达我的Ember模型时正确映射到JSON.但是,在必须在Ember方面明确定义模型类中的属性之前,查看数据结构会很方便.
我想知道是否有类似于这种模式的东西:
App.Somedata = DS.Model.extend({
raw: this.inspect
});
Run Code Online (Sandbox Code Playgroud)
然后在我的模板中,我可以将它作为传达整个结构的属性转储到视图中.
{{#each item in controller}}
{{item.raw}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)
这不是用于生产,而是仅用于尝试探索API的实现以及如何通过适配器提供API时的发现目的.
是否有一套很好的正则表达式教程?特别是在TextMate上下文中?我熟悉正则表达式语法和基本概念.我甚至拥有杰弗里弗里德的书"掌握正则表达式"的副本,并阅读了Perl部分.
我正在寻找的是正则表达式使用的一些高质量演示,清楚地解释了匹配的模式以及如何分解正则表达式语法.我想把我的正则表达式提升到一个新的水平.我希望能够用正则表达式思考,但我需要一些有形的东西来练习巩固我脑子里的知识.
有用的是一些文本和代码示例,用于处理特定任务和相关的正则表达式解决方案,最好在TextMate上下文中起作用.我发现我最想使用它的地方是在文本编辑器中.因此,需要能够进行强大的搜索和替换功能.有时只是搜索.因此,快速编写部分正则表达式以缩小结果然后迭代地解析复杂文档的能力将非常方便.
也许是一个交互式演示,在您键入正则表达式时会显示模式.以及一些有用的模式和示例来测试和使用.也许是一些正则表达式闪存卡或基于简单正则表达式的游戏.
对于正则表达大师那里你做了什么来真正巩固你对正则表达式的理解?
我记得在Douglas Crockford的"Javascript the Good Parts"一书中读到,由于自动分号插入,无块语句可能会出错.
if (condition)
foo = true;
Run Code Online (Sandbox Code Playgroud)
VS
if (condition)
{
foo = true;
}
Run Code Online (Sandbox Code Playgroud)
在第二个示例中,它将一致地工作,在第一个示例中,解释器将自动插入分号,并且可能导致代码中的歧义.道格拉斯指出,这可能很糟糕,很难调试,我同意这一点.但它让我想到有哪些例子编码"风格"实际上有语法含义?换句话说,未遵循某种缩进或明显样式的示例实际上会导致错误或错误.我认为Python有其重要的空白是一个例子,YML要求没有标签是另一个.
随意回答各种语言和习语.我很想知道范式案例.在你的回答中,我想知道编码风格或语法行为的内容和原因.我不想开始任何编码风格的火焰战争,只是事实情况下,不知情的人会被绊倒.
为什么大多数语言似乎只从逻辑的角度来展示相当基本的控制结构?像If ... then,Else ...,循环,每个,switch语句等等.从逻辑的角度看,标准列表看起来相当基本.
为什么逻辑句法糖的方式不多?也许类似于命题引擎,您可以在其中提供一系列前提或函数,这些前提或函数返回复杂的自引用相互依赖的函数和结果.你可以将一系列复杂条件链接在一起的东西,但代码的方式很简单易读.
前提1
前提2当前和仅当前提1
前提3
如果前提2和前提3是前提4
前提5当前和仅当前提4
等等...
结论
我意识到这种逻辑可以在函数和/或嵌套条件语句中构造.但是,为什么通常没有更多的语法选项来构造这些逻辑命题而不会导致看起来很难看的条件语句很难读取和调试?
我们通常在主流编程语言中看到的各种控制结构是否有解释?是否有您希望直接支持语言语法的特定控件结构?这会给语言增加不必要的复杂性吗?
我有一些服务器端PHP代码尝试将数据对象(实质上是一个多维数组)持久存储到后端数据库.此数据对象最初是作为从Flex应用程序发送的AMF actionscript对象引入的.我想要将整个对象持久化以供以后使用,所以我使用了php serialize函数并将对象编码为一个可以进入数据库字段的简单字符串.代码如下所示:
$serializedDataObject = base64_encode(serialize($objectInstance->myDataObject));
Run Code Online (Sandbox Code Playgroud)
当我想要恢复这个对象并将其恢复时,我只需反过来运行
$unserializedDatanObject = unserialize(base64_decode($serializedDataObject));
Run Code Online (Sandbox Code Playgroud)
到目前为止,这似乎运作良好.但有时我的PHP脚本失败.我认为它在序列化步骤中失败了.从理论上讲,我的问题是什么可能导致php序列化和编码过程失败?数据对象数组中是否存在某些可能导致序列化为bork的字符或数据类型?
在尝试序列化之前,是否需要对数据对象进行一些按摩?
编辑:
澄清这个过程是这样的
我有一个Flex/Actionscript客户端应用程序,它将基于AMF的actionscript对象发送到服务器.在PHP方面,我使用Zend AMF库来读取AMF数据.该对象可以在PHP中检查,基本上看起来像一个关联的多维数组.正是在这一点上,我尝试序列化和基础64编码对象,以便我可以将对象作为编码字符串持久保存到数据库.
希望这是有道理的.这个问题是间歇性的,不容易一致地重现.如果我能得到一些具体的错误消息,我会在这里发布以便进一步说明.但是现在我只是想知道序列化的限制是什么来帮助我进一步调试.
在Objective C中,有没有办法在运行时确定是否保留了一个对象,哪个其他对象可能会保留该对象?
或者用一点点来区分它:
如果狗上有牵引带,有可能知道谁牵着皮带吗?
假设您有这个假设情景:
MyObjectOne
和
MyObjectTwo
在MyObjectTwo的实现里面是这样的
- (void)setFirstObject:(MyObjectOne *)firstObj {
[firstObj retain];
// do stuff with object and under certain conditions don't release it
}
Run Code Online (Sandbox Code Playgroud)
现在代码中的其他地方可能存在创建和保留对象的其他位置
// Create the two objects
myFirstObject = [[MyObjectOne alloc] init];
mySecondObject = [[MyObjectTwo alloc] init];
// ...
// Some process requires retaining the first object
[myFirstObject retain]
// ...
// some other place requires passing the first object to the second object
// at which point the first object is retained …Run Code Online (Sandbox Code Playgroud) 仍在学习 shell 脚本和 ZSH。但想知道是否有人知道如何创建一个简单对象数组,即 json 类型对象/哈希,然后以不同颜色的列格式打印每个对象的属性。
我想在我的 zsh 插件中创建一个特定的函数,以非常精确的方式打印到我的终端。
开放式问题:
1.) 如何用不同的颜色打印特定的字符串
2.) 如何定义具有多个键/值对的基本对象数组
下面的伪代码有望阐明我想要做什么。
function display-collection() {
collection=(
{param1: foo1, param2: bar1, param3: baz1 }
{param1: foo2, param2: bar2, param3: baz2 }
{param1: foo3, param2: bar3, param3: baz3 }
{param1: foo4, param2: bar4, param3: baz4 }
{param1: foo5, param2: bar5, param3: baz5 }
{param1: foo6, param2: bar6, param3: baz6 }
)
print -l $collection
}
Run Code Online (Sandbox Code Playgroud)
使上述函数将内容以彩色方式吐出到终端
foo1 (RED TEXT) bar1 (DEFAULT COLOR) baz1 (YELLOW COLOR)
foo2 (RED TEXT) bar2 …Run Code Online (Sandbox Code Playgroud) 我来自Web编程背景(PHP,Perl,HTML,CSS,Javascript和Actionscript).
但我对编程很感兴趣.我想知道人们如何在概念上打破那里的技术汤?
那里有哪些语言,但更重要的是为什么他们在那里?他们试图解决哪些域名问题?我很想听听人们对这个问题的看法.
例如,如果你正在和那些从未听说过Haskell的编程感兴趣的人交谈,你会用几句话说一下它为什么重要?Python,Ruby,C,ObjC,C++,C#,HaXe,Lisp,Scheme,Java等也是如此.
您使用哪种语言以及他们为您解决的具体问题是什么?请酌情在讨论中包含重要的框架或库.但我想主要关注语言本身及其相对优势和劣势.虽然我当然认识到很难谈论像Javascript之类的东西,而不是谈论AJAX,jQuery,Rico以及所有使它变得有趣和有用的各种框架.
默默无闻和有趣用例的奖励积分.
amf ×1
arrays ×1
coding-style ×1
colors ×1
ember-data ×1
ember.js ×1
global ×1
java ×1
logic ×1
objective-c ×1
persistence ×1
php ×1
refactoring ×1
regex ×1
shell ×1
syntax ×1
zsh ×1