在一个应用程序中,我突然得到一个看起来像windows经典的风格.
它在Visual Studio设计器中看起来很好(在图像上留下),但是当我运行应用程序时,它看起来像windows经典样式(在图像上),我找不到它.
我试图创建一个新的干净窗口,并添加一个按钮,它也看起来像Windows经典.
有关如何解决它或我可以搜索什么以找到导致它的任何想法?
我有一个帮助方法,为一些控制器创建导航链接.
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个字符)?
我有一个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) 我有一个相对容易的Ajax /动画,我正在添加到客户端站点以在项目之间进行选择以显示为图像.流程如下:
所有这些事情都需要同步发生,但我找不到合适的功能流程.将所有这些步骤附加到用户单击会在动画完成之前淡出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)
我知道这显然是一种不好的方法 - 但我无法弄清楚如何嵌套/构造函数以使它们全部同步.而且我真的想要一个答案,让我有一些方法可以在将来构建我的功能以避免老鼠窝.教育我!:)
我没有这种编程风格的好名字,其中语法 更简洁,因为不必将上下文传递给函数或从上下文对象调用函数.
例如,一些随机的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中看到过这样的样式.它有名字吗?
我有一个大对象说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) 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)
我试图找出是否有符合要求的标准.谢谢
我正在提取各种信息来源以建立一个人的个人资料.一旦我这样做,我希望能够灵活地以不同的方式看待一个人.我在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) 这是关于编码风格的跨语言问题.
我必须使用很多代码,这些代码在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原则.
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)
哪个风格更好?两者都有缺点吗?
coding-style ×10
python ×2
.net ×1
c++ ×1
django ×1
formatting ×1
function ×1
javascript ×1
jquery ×1
nested ×1
php ×1
pseudocode ×1
refactoring ×1
ruby ×1
syntax ×1
terminology ×1
winforms ×1