标签: coding-style

Winform风格问题:Windows经典风格?

在一个应用程序中,我突然得到一个看起来像windows经典的风格.

它在Visual Studio设计器中看起来很好(在图像上留下),但是当我运行应用程序时,它看起来像windows经典样式(在图像上),我找不到它.

我试图创建一个新的干净窗口,并添加一个按钮,它也看起来像Windows经典.

有关如何解决它或我可以搜索什么以找到导致它的任何想法?

alt text http://i34.tinypic.com/wtxfgm.jpg

.net user-interface coding-style winforms

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

如何使这个ruby方法不那么难看(嵌套)

我有一个帮助方法,为一些控制器创建导航链接.

  def gen_associations(controllers)
    content_for :leftnav do
      sorted_controllers = controllers.sort
      returning String.new do |content|
        content << content_tag(:h3, "Associations") <<
        content_tag(:ul, :class => "nav") do
          sorted_controllers.collect do |c|
            content_tag("li", :class => ("last" if c == sorted_controllers.last)) do
              link_to(c.humanize, eval("admin_#{c}_url"))
            end
          end
        end
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

我不喜欢这种深层嵌套的结构,以及<<其中一条线的额外和结束.

我怎样才能重写它所以它不是那样嵌套(在更少的行中)和没有长行(<80个字符)?

ruby coding-style nested ruby-on-rails

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

从for循环转换为while循环的正确方法是什么?

我有一个for循环的形式:

for (int i = from; i < to; i++) {
  // do some code (I don't know exactly what, it is subject to change)
}
Run Code Online (Sandbox Code Playgroud)

我想将它转换为while循环(主要是因为我想要使用i循环内部的值来进行前后循环,而我的同事认为在for循环中执行此操作很容易出现问题.我倾向于同意他).所以我写了这样的东西:

int i = from;
while (i < to) {
  try {
    // do some code (I don't know exactly what, it is subject to change)
  } finally {
    i++;
  }
}
Run Code Online (Sandbox Code Playgroud)

这引起了一些响亮的评论.我的理由是你不知道循环中的代码是什么 - 它可能(并且确实)有多个continue命令.

作为回应他写道:

int i = from - 1;
while (++i < to) {
  // do some …
Run Code Online (Sandbox Code Playgroud)

coding-style pseudocode

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

Javascript函数流程的最佳实践?

我有一个相对容易的Ajax /动画,我正在添加到客户端站点以在项目之间进行选择以显示为图像.流程如下:

  1. 用户点击项目概述(pHome)中的缩略图.
  2. 使用jQuery,ajax在XML文件中加载图像,标题和项目描述数据(project1).
  3. 从XML文件构造HTML并将其注入DOM(div id ="project1").
  4. 动画和(4.5)消除pHome.
  5. 淡出project1.
  6. 为将用户带到项目的缩略图添加"抽吸"效果.

所有这些事情都需要同步发生,但我找不到合适的功能流程.将所有这些步骤附加到用户单击会在动画完成之前淡出pHome,并且在project1 div甚至可见之前触发'puff'效果.

事实上,我有所有这些步骤的功能,它看起来像一个真正的混乱.我要求的是构建这些函数的最佳实践方法,以便它们同步发生(可能除了2和3).就像一个援助,这是我的问题的伪代码:

$('#thumbnail').live('click', function(){
    loadXML(thumbnail_id);
    makeHMTL(data);
    $('pHome').animate({blah}).fadeOut();
    $('project1').fadeIn();
    $('thumbnail_id').puff();
});
Run Code Online (Sandbox Code Playgroud)

我知道这显然是一种不好的方法 - 但我无法弄清楚如何嵌套/构造函数以使它们全部同步.而且我真的想要一个答案,让我有一些方法可以在将来构建我的功能以避免老鼠窝.教育我!:)

javascript jquery coding-style

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

这叫什么样的编程风格?

我没有这种编程风格的好名字,其中语法 简洁,因为不必将上下文传递给函数或从上下文对象调用函数.

例如,一些随机的OpenGL C代码:

 glBegin(GL_QUADS);
 glNormal3fv(&n[i][0]);
 glVertex3fv(&v[faces[i][0]][0]);
 glVertex3fv(&v[faces[i][1]][0]);
 glVertex3fv(&v[faces[i][2]][0]);
 glVertex3fv(&v[faces[i][3]][0]);
 glEnd();
Run Code Online (Sandbox Code Playgroud)

但您可以在"开始"调用中设置上下文并在"结束"调用中释放它.我在C#,Java和Ruby中看到过这样的样式.它有名字吗?

coding-style terminology

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

C++中的编码实践,您的选择是什么?为什么?

我有一个大对象说MyApplicationContext,它保存有关MyApplication的信息,如名称,路径,loginInformation,描述,详细信息等.

// MyApplicationCtx

class MyApplicationCtx{
       // ....
    private:
        std::string name;
        std::string path;
        std::string desciption;
        struct loginInformation loginInfo;
        int appVersion;
        std::string appPresident;
        //others
}
Run Code Online (Sandbox Code Playgroud)

这是我的方法cloneApplication(),它实际上设置了一个新的应用程序.有两种方法可以实现,如代码1和代码2所示.我应该选择哪一种?为什么?

//代码1

public void cloneApplication(MyApplicationCtx appObj){
    setAppName(appObj);
    setAppPath(appObj);
    setAppAddress(&appObj); // Note this address is passed
    setAppDescription(appObj);
    setAppLoginInformation(appObj);
    setAppVersion(appObj);
    setAppPresident(appObj);
}

public void setAppLoginInformation(MyApplicationCtx appObj){
    this->loginInfo = appObj.loginInfo; //assume it is correct
}

public void setAppAddress(MyApplicationCtx *appObj){
    this->address = appObj->address;
}

 .... // same way other setAppXXX(appObj) methods are called.
Run Code Online (Sandbox Code Playgroud)

Q1.每次传递大对象appObj都会对性能产生影响吗?

Q2.如果我使用引用传递它,那么对性能的影响应该是什么?

public void setAppLoginInformation(MyApplicationCtx &appObj){ …
Run Code Online (Sandbox Code Playgroud)

c++ coding-style

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

PHP特定 - 清洁代码,命名约定和文档

PHP的干净代码,命名约定和文档的一些最佳实践是什么?

我看到用户/人说这是一种不好的做法,例如:

// Create an array to hold x values
$arr_x = array();
Run Code Online (Sandbox Code Playgroud)

这是一个不必要的注释,因为语法单独解释了功能.这应该更多的是描述脚本/函数功能的标题注释,而不是程序的变量/流程.例

/**
 * Create an array
 */
function create_array() {
   return array();
}

$arr_x = create_array();

// This is just to show the comments and the code is not tested or used except for this example
Run Code Online (Sandbox Code Playgroud)

这使我走上了正确的语法,编码和文档的路径(标题命名的原因).

变量,函数和脚本命名约定可接受的是什么,还是个人偏好?

$varX
function varX()
varX.php
Run Code Online (Sandbox Code Playgroud)

要么

$var_x
function var_x()
var_x.php
Run Code Online (Sandbox Code Playgroud)

我试图找出是否有符合要求的标准.谢谢

php syntax coding-style

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

回顾我的Django模型 - 需要很多建议

我正在提取各种信息来源以建立一个人的个人资料.一旦我这样做,我希望能够灵活地以不同的方式看待一个人.我在django中没有太多的空洞,所以我想对我的模型进行批评(温柔).不可否认,即使我编码这个,我也在考虑裁员(反对DRY),但我想知道其他人的想法.FWIW - 这个数据没有被创建 - 所以也许我不应该保留所有数据,但丢弃数据似乎很糟糕..

具体来说,我想知道ManyToMany的使用是否合适,或者您只是KISS并将每个条目保留为自己没有任何ManyToMany业务.从长远来看,我认为KISS会使更新变得简单(基本的循环),但是能否查询一个人(比如基于location_description或job_function)会有一个权衡.无论如何,我会很感激一些输入.

class Person(models.Model):

    """This simply builds a notes user"""

    aliases = models.ManyToManyField(Aliases)  #Hmm this is list..
    assistant = models.CharField(max_length = 255, blank = True)
    cell_phone = models.CharField(max_lenth = 16, blank = True)
    city = models.ManyToManyField(City)
    country = models.ManyToManyField(County)
    department = models.ManyToManyField(Department)
    departmeht_number = models.ManyToManyField(Department_Number)
    division_code = models.ManyToManyField(Division_Code)
    email = models.EmailField(max_length = 50)
    functional_area = models.ManyToManyField(Functional_Area)
    # jpeg = models.
    job_classification = models.ManyToManyField(Job_Classification)
    job_classification_code = models.ManyToManyField(Job_Classification_Code)
    last_name = models.CharField(max_length = 255)
    location_description = models.ManyToManyField(Location_Description)
    location_path = …
Run Code Online (Sandbox Code Playgroud)

python django coding-style django-models

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

if语句或for循环中的长代码块

这是关于编码风格的跨语言问题.

我必须使用很多代码,这些代码在if语句或for循环中有很长的代码块,有时有数百行.代码是程序性的.

代码如下

if(condition){
    //hundreds of lines of code
}else if{
    //hundreds of lines of code
} else {
    //hundreds of lines of code
}
Run Code Online (Sandbox Code Playgroud)

如果我有一段时间没有看到它,我在浏览这段代码时遇到了麻烦,因为我不得不来回滚动来检查我所处的语句的哪个分支,或者我是否在循环中,或循环迭代器是什么叫做.

我的预感是将一长串代码放在函数中,并在语句的分支内或循环内调用它们,因此循环和树如果更短,因此更具可读性.我创建的函数是合理的代码 - 孤岛,而不仅仅是随意删除当前的代码.

但是,这是我的问题:这是一个好主意吗?或者在if语句或for循环中包含数百行代码并不是一种糟糕的编码风格?我不是一个真正有经验的程序员,但我很欣赏干净的代码:)

谢谢!

补充:数百行代码在大多数情况下都不重复.我理解并尝试坚持DRY原则.

formatting refactoring coding-style

1
推荐指数
2
解决办法
1620
查看次数

引用函数还是创建一个只调用另一个函数的新函数?

def a(something):
    return something*something

#Case I - referencing
b = a
#Case II - creating a new function to call the first
def b(something):
    return a(something)
Run Code Online (Sandbox Code Playgroud)

哪个风格更好?两者都有缺点吗?

python coding-style function

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