Tag: 编码风格

将代码封装到“IF”语句中更好吗,还是将函数“短路”并返回?

我正在用JavaScript做一些编码,而且我有很多实例,在继续之前我必须检查一些东西。 我已经习惯了在function早期返回,但是我不知道我是否正确地做了这件事。 我不确定是否会影响我的代码的复杂性,因为它的增长。 我想从更有经验的JavaScript编程人员那里知道,下面两个例子中的一个更好的通用实践是什么。 或者它是不相关的,他们都写这个特殊的IF块的好方法? 1)我称之为“早期”或“短路”(守卫条款)。 ServeAlcohol = function(age) { if(age < 19) return; //…Code here for serving alcohol….. } ..要么… 2)将代码包装到IF语句中。 ServeAlcohol = function(age) { if(age >= 19) { //…Code here for serving alcohol….. } }

是串连一个空string来做一个string转换真的很糟糕?

比方说,我有两个charvariables,后来我想将它们连接成一个string。 这是我将如何做到这一点: char c1, c2; // … String s = "" + c1 + c2; 我见过有人说"" + “技巧”是“难看的”等等,而应该使用String.valueOf或Character.toString 。 我更喜欢这个构造,因为: 如果可能,我更喜欢使用语言function而不是API调用 一般来说,不是比API更稳定的语言? 如果语言function只隐藏API调用,那么就更有理由更喜欢它了! 更抽象! 隐藏是好的! 我喜欢c1和c2在视觉上处于同一水平 String.valueOf(c1) + c2暗示了c1特殊之处 它更短。 为什么String.valueOf或Character.toString更适合于"" + ? 琐事:在java.lang.AssertionError ,下面一行出现7次,每次都有不同的types: this("" + detailMessage);

多次或单次尝试抓住

我正在清理一些我的代码,我来到了一个点,我不知道哪条路线会更好。 目前,我的方法大部分都有一个try catch块,最后处理了一些单独的exception,但是我认为有更多的try catch块会更好。 然而,在分解代码的同时,我又到了一个为同一类exception写入多个块的地步。 我可以看到为每个部分编写一个块,因为我可以给出更具体的说明为什么失败。 我的问题是…这样做有缺点吗? 有没有性能问题或其他一些我没有看到的隐藏的怪物? 另外,在一个方法中处理多个exception的首选方法是什么,是否有行业标准? 为了更好地说明我的观点,这里有一些伪代码 //multiple try catch for same exception try { //some code here } catch (MyException e) { //specific error message here } try { //some different code here } catch (MyException e) { //more specific error message indicating a different issue }

Java约定:在类中使用getters / setter?

我的教授确实强调通过使用访问器和增变器来访问私有实例variables来防止隐私泄露; 然而,我必须在课堂上使用class级的getters / setters吗? 举例来说,如果我有以下的课程: public class Person { private String name; private int age; } 我想为它写一个toString()方法。 我可以写: public String toString() { return name + " " + age; } 或者我需要做这样的事情: public String toString() { return this.getName() + " " + this.getAge(); }

你应该在C#中使用指针(不安全的代码)?

你应该在你的C#代码中使用指针吗? 有什么好处? 是否由The Man(微软)推荐?

Javascript:内联函数vs预定义函数

任何机构可以抛出一些使用内联函数来传递预定义的函数名称给一些处理程序的参数。 即哪个更好: (function(){ setTimeout(function(){ /*some code here*/ }, 5); })(); 与 (function(){ function invokeMe() { /*code*/ } setTimeout(invokeMe, 5); })(); 奇怪的问题,但我们几乎在这个团队中的战斗

没有“开关”语句的策略模式?

我一直在阅读战略模式,并有一个问题。 我已经在下面实现了一个非常基本的控制台应用程序来解释我在问什么。 我已经读到,在实施战略模式时,“切换”语句是一个红旗。 然而,在这个例子中,我似乎无法摆脱开关语句的束缚。 我错过了什么吗? 我能够从铅笔删除逻辑,但我的主现在有一个switch语句。 我明白,我可以轻松地创build一个新的TriangleDrawer类,而不必打开铅笔类,这是很好的。 但是,我需要打开Main,以便知道将哪种types的IDrawer传递给铅笔 。 这只是如果我依靠用户input需要做什么? 如果没有switch语句的话,我很乐意看到它! class Program { public class Pencil { private IDraw drawer; public Pencil(IDraw iDrawer) { drawer = iDrawer; } public void Draw() { drawer.Draw(); } } public interface IDraw { void Draw(); } public class CircleDrawer : IDraw { public void Draw() { Console.Write("()\n"); } […]

你遵循什么SQL编码标准?

那里有没有广泛使用的SQL编码标准? SQL与C / C ++types的编程语言有些不同。 真的不知道如何最好地格式化它的可读性。

何时使用属性而不是函数

这可能是个人喜好的问题,但是何时在代码中使用属性而不是函数 例如,要得到一个错误日志,我可以说 string GetErrorLog() { return m_ErrorLog; } 或者我可以 string ErrorLog { get { return m_ErrorLog; } } 你如何决定使用哪一个? 我的用法似乎不一致,我正在寻找一个好的总体经验法则。 谢谢。

静态工厂方法vs实例(普通)构造函数?

在两种语言都可用的情况下,您是否希望看到实例构造函数或返回实例的静态方法? 例如,如果你从char[]创build一个String : String.FromCharacters(chars); new String(chars);