问题标签 [conventions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 我应该在实现中使用 self 关键字(属性)吗?
我相信我在很大程度上了解属性。我的问题是,如果我有一个实例变量的属性,并且我正在我的实现文件的方法中设置或检索它,我应该使用self.myProperty
还是只使用myProperty
?我知道任何一个都有效,但我看到了混合约定,有时代码直接访问变量,有时通过属性访问。
这样做有技术原因吗?这只是惯例/个人喜好吗?而且我不是指方法的参数名称与实例变量名称冲突的实例,这可能是使用该属性的一个原因(至少,在其他语言中,我不知道这个)。我假设当一个人在实现中使用该属性时,他们希望利用他们声明该属性的方式(即非原子,保留),因此例如在一种方法中,可以这样做:
代替:
这是原因吗?那么只有在某些情况下使用该物业会更好吗?
我是 Objective-C 的新手,这是少数让我感到困惑的事情之一。到目前为止,我只是在最可能的错误假设下直接访问了实例变量,即通过属性实际上调用/发送了方法/消息并增加了不必要的开销。我很确定我错了,但是即使开销的差异可以忽略不计(如果有的话),当人们可以简单地直接访问变量时,为什么还要选择添加它呢?
我很确定我的想法是错误的,这就是我在这里问的原因。
actionscript - Recommended initialization values for numbers
Assume you have a variety of number or int based variables that you want to be initialized to some default value. But using 0 could be problematic because 0 is meaningful and could have side affects.
Are there any conventions around this?
I have been working in Actionscript lately and have a variety of value objects with optional parameters so for most variables I set null but for numbers or ints I can't use null. An example:
The difficulty is that using 0 in the above code might be problematic if the value is not ever changed from its initial value. It is easy to detect if a variable has a null value. But detecting 0 may not be so easy because 0 might be a legitimate value. I want to set a default value to make the parameter optional but I also want to later detect in my code if the value was changed from its default without hard to debug side affects.
I suppose I could use something like -1 for a value. I was wondering if there are any well known coding conventions for this kind of thing? I suppose it depends on the nature of the variable and the data.
This is first my stack overflow question. Hopefully the gist of my question makes sense.
mysql - MySQL ENUMS 是打算与 CakePHP 一起使用还是应该避免使用它们?
问题是,我没有看到这些 ENUM 在 CakePHP 脚手架中产生下拉菜单,所以我认为 CakePHP 可能会反对它,但我找不到任何关于此事的文档。
有人知道是否使用 ENUMs 吗?
c# - 在 C# 中为成员变量分配默认值的常规方法是什么?
C# 中哪个更传统?
或者
python - python约定的新手,我的代码在正确的轨道上吗?
我已经阅读了一周的 Python 知识,只是想通过创建一个税级计算器来尝试一下。我还没有完成,但我想知道我是否走在正确的轨道上,或者就 python 编程而言。我之前只做过一点 C++ 编程,感觉就像它显示(好/坏?)
c# - 将大量代码放在包装 PInvoke 内容的属性的 get 函数中是不好的做法吗?
我知道的一个令人困惑的标题。让我解释。
我必须编组一个结构数组,然后将其转换为一个类数组(遗留兼容性)。例如
module - 你如何使用 Fortran 90 模块数据
假设您有一个包含大量变量、函数和子例程的 Fortran 90 模块。在您的USE
陈述中,您遵循哪种约定:
- 使用语法显式声明您正在使用哪些变量/函数/子例程
, only :
,例如USE [module_name], only : variable1, variable2, ...
? - 插入毯子
USE [module_name]
?
一方面,该only
子句使代码更加冗长。但是,它会迫使您在代码中重复自己,并且如果您的模块包含大量变量/函数/子例程,事情就会开始变得不规则。
这是一个例子:
更新 希望有人说“Fortran?只需用 C# 重新编码!” 所以我可以否决你。
更新
我喜欢Tim Whitcomb 的回答,它将 FortranUSE modulename
与 Python 的from modulename import *
. 之前在 Stack Overflow 上的一个话题:
-
- Mark Roddy
在回答中提到:
不要使用“从模块导入 *”。对于任何合理的大型代码集,如果您“导入 *”,您可能会将其固定到模块中,无法删除。这是因为很难确定代码中使用的哪些项目来自“模块”,这使得它向东到达您认为不再使用导入但很难确定的地步。
- Mark Roddy
在回答中提到:
-
- dbr 的答案包含
不要这样做 from x import * - 它使您的代码很难理解,因为您无法轻易看到方法的来源(from x import *; from y import *; my_func() - my_func 定义在哪里?)
- dbr 的答案包含
因此,我倾向于达成共识,即通过以下方式明确说明我在模块中使用的所有项目
正如Stefano Borini所说,
[如果]你有一个太大的模块,以至于你不得不只添加,这意味着你的模块太大了。拆分它。
fluent-nhibernate - 流畅的 NHibernate。自动映射和约定
我是 NHibernate 的新手,它的配置方面对我来说似乎总是过于繁重。昨天,我遇到了 Fluent NHibernate 的 Auto Mapping 功能,给我留下了深刻的印象。
为了教育自己,我为自己设定了使用 AutoMappings 和约定尝试“入门第一个项目”(http://wiki.fluentnhibernate.org/show/GettingStartedFirstProject )的挑战。我不得不承认运气不太好。
总结我的步骤:
我在示例中对数据库模式进行了一些小的更改,主要是为了从外键中删除下划线(即 Product_id 到 ProductId),因为这会使它更符合我们的数据库命名标准。
Q1)我尝试使用 ForeignKeyConvention 作为示例编写 IHasManyConvention 实现,但 WithKeyColumn 方法似乎不存在(我认为这是因为我下载了昨天的构建,因此自撰写文章以来设计发生了变化)。我该如何纠正这个问题?
我还对示例中的实体层进行了一些小的更改,因为我认为这会更容易,他们将把 StoresStockedIn 重命名为 Stores (Product.cs) 并将员工重命名为Employees (Store.cs)。
我的代码如下所示:
然后,我尝试按照入门示例将商店、产品和员工添加到数据库中。我在 Commit 上遇到的异常是:
对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例。类型:FluentNHibernateTesting.Entities.Employee,实体:FluentNHibernateTesting.Entities.Employee
Q2) 我该如何解决这个问题?我理解(从我有限的阅读中)它与正确设置对象关系的级联元素有关,但我对如何使用自动映射有效地进行此操作有点困惑。
Q3) Fluent 项目是否有目标发布日期?我(就像我假设的许多其他人一样)觉得这是一个很好的举措,但我会注意使用它,除非它处于稳定状态。
Q4)在许多博客中提到,他们正在稳步努力实现 Fluent 与 hbn.xml 的功能相同。是否在某处列出了这些缺失的功能,以帮助评估和使用该工具?
提前感谢帮助。
ruby - Ruby:布尔属性命名约定和使用
学习红宝石。我的印象是布尔属性应该命名如下:
但是,尝试执行以下操作时出现语法错误:
显然红宝石讨厌“?”。这是约定吗?我究竟做错了什么?