我有一个C项目,其中所有代码都组织在*.c/ *.h文件对中,我需要在一个文件中定义一个常量值,但也可以在其他文件中使用.我该如何声明和定义这个值?
它应该static const ...在*.h文件中吗?如extern const ...在*.h文件中并在*.c文件中定义?以何种方式,没关系吧的价值是不是原始数据类型(int,double,等),但char *还是struct?(虽然在我的情况下是一个double.)
在*.h文件中定义内容通常不是一个好主意; 一个人应该在*.h文件中声明事物,但在*.c文件中定义它们.但是,这种extern const ...方法似乎效率低下,因为编译器无法内联该值,而是必须始终通过其地址进行访问.
我想这个问题的实质是:是否应该在C static const ...中的*.h文件中定义值,以便在更多的位置使用它们?
有人知道在Visual Studio中使用VIM样式折叠的方法吗?我在c#类文件中使用了#region块,它们很棒,但遗憾的是javascript和css没有相同的功能.我目前正在研究的网站/应用程序有很多css选择器和javascript,导航整体文件变得越来越困难.
我们考虑过的一个选择是将css和javascript分解为类似于jquery模块的单独文件,但是这会在增加http请求的总数方面引入性能问题.
如果有人有任何管理疯狂的建议,我将非常感激!
更新:Richard Kimber建议使用 visual studio 的书签功能,使标题导航更易于管理.这是朝着正确方向迈出的一步,但没有代码折叠/阻塞那么有用.
具体来说,我在谈论避免这种类型的代码:
<input type='text' id='title_33' class='title'
onfocus='updateCharsLeft(33);'
onkeypress='updateCharsLeft(33);' />
Run Code Online (Sandbox Code Playgroud)
在这里,我想分别放置onfocus和onkeypress事件句柄,即在.js文件中.像这样:
$(document).ready(function()
{
$(".title").focus(updateCharsLeft);
$(".title").keypress(updateCharsLeft);
);
Run Code Online (Sandbox Code Playgroud)
但是问题是文本框的ID需要传递给函数updateCharsLeft().如果必须从该函数中的文本框的ID中提取出id,那么在HTML代码中放入事件处理程序实际上会更加清晰.
思考?
我目前正在尝试以更好的方式组织我的代码.
为此,我使用了名称空间,按组件对类进行分组,每个组都有一个已定义的角色和一些接口(实际上是抽象类).
我发现它非常好,特别是当我不得不重写整个组件时,我对其他组件几乎没有影响.(我相信使用一堆混合类和方法会更加困难)
然而,我并不是百分之百满意.特别是我想在接口,组件的公共面以及后面的实现之间做更好的分离.我认为组件本身的"接口"应该更清晰,我的意思是新来者应该很容易理解他必须实现什么接口,他可以使用什么接口以及实现的哪些部分.
很快,我将开始一个涉及多达5个开发人员的更大项目,我想在这一点上明白我的想法.
那你呢?你怎么做呢?你如何组织你的代码?
我刚刚完成了我的第一个ASP.NET MVC(2)CMS.下一步是构建将显示CMS数据库中数据的网站.这是网站设计:
http://img56.imageshack.us/img56/4676/portal.gif http://img56.imageshack.us/img56/4676/portal.gif
#1(红框) - 显示文章类别.视图模型:
public class CategoriesDisplay
{
public CategoriesDisplay() { }
public int CategoryID { set; get; }
public string CategoryTitle { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
#2(布朗框) - 显示最后x篇文章; 从绿箱#3中跳过那些.视图模型:
public class ArticleDisplay
{
public ArticleDisplay() { }
public int CategoryID { set; get; }
public string CategoryTitle { set; get; }
public int ArticleID { set; get; }
public string ArticleTitle { set; get; }
public string URLArticleTitle { set; get; }
public DateTime ArticleDate; …Run Code Online (Sandbox Code Playgroud) 我正在一个拥有大量自定义(特定于页面的js)的大型网站上工作.有一个main.js和page-specific.js文件.有没有更好的方法可以使用以下模式?
如何重新考虑使用ajax的多个方法?
我目前在线分配所有onclick事件,例如onclick ="MYSITE.message.send ... - 它有更好的方法吗?创建多个$("#button").click(function(){});似乎更多的工作...
var MYSITE = MYSITE ? MYSITE: {};
var MYSITE {
bookmark: {
add: function(contentId, userId) {
var data = {
contentId: contentId,
userId: userId
};
$.ajax({
url: "/rest/bookmarks/",
type: "post",
data: data,
complete: function(response) {
if (response.error) {
alert(response.error);
} else {
alert("success");
}
}
});
}
},
message: {
/* <a onclick="MYSITE.message.send('1234', '1234');" href="javascript:void(0);">BOOKMARK</a> */
send: function(contentId, userId) {
var data = {
contentId: contentId,
userId: userId
};
$.ajax({ …Run Code Online (Sandbox Code Playgroud)我正在寻找类似于组织GUI代码的东西 ,但是对于Python和PyQt4.特别是,我正在查看如何处理和存储配置数据,一般状态等的提示和示例.
编辑:我已经找到了一些关于旧版本的提示:http://www.commandprompt.com/community/pyqt/
我正在努力与文件夹组织一起组织我工作的许多项目.我在OS X上工作 - 现在我使用〜/ Development /作为根文件夹,我有很多类型的项目.例如,我在〜/ Development/Xcode下有我的iPhone应用程序
我使用多种语言开发,从PHP到Ruby,再到Python,再到Objective-C.所以,例如,我可能有几个基于PHP的开源应用程序,我在使用Zend框架.其中一些项目是针对客户的,另一些是学习新语言或一般实验时的测试/实验.
我真的很感兴趣的是其他开发人员如何组织代码/项目,并且可以传递一些建议,以便很容易地浏览与许多语言和项目类型相关的代码/项目.
关于Symfony 2.1的这个问题
如何编码用户密码:
$factory = $this->get('security.encoder_factory');
$user = new Acme\UserBundle\Entity\User();
$encoder = $factory->getEncoder($user);
$password = $encoder->encodePassword('ryanpass', $user->getSalt());
$user->setPassword($password);
Run Code Online (Sandbox Code Playgroud)
和基础配置:
# app/config/security.yml
security:
# ...
encoders:
Acme\UserBundle\Entity\User: sha512
Run Code Online (Sandbox Code Playgroud)
在setter模型中:
class User implements UserInterface, \Serializable
{
public function setPassword($password)
{
$this->password = $password;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为加密密码的过程必须按模型处理.如何在模型中使用标准编码器工厂?
我想知道我想在多个地方使用的自定义验证器的正确位置在哪里?
例如,我有min_image_size验证器:
Validator::extend('min_image_size', function($attribute, $value, $parameters) {
$imageSize = getimagesize($value->getPathname());
return ($imageSize[0] >= $parameters[0] && $imageSize[1] >= $parameters[1]);
});
Run Code Online (Sandbox Code Playgroud)
我应该在哪里按照Laravel-way的方式放置它?
javascript ×3
jquery ×2
asp.net-mvc ×1
c ×1
c++ ×1
const ×1
constants ×1
css ×1
header-files ×1
laravel ×1
laravel-5 ×1
models ×1
namespaces ×1
php ×1
pyqt4 ×1
python ×1
symfony ×1