所以,我正在用node/express + jade combo编写一个应用程序.
我有client.js,在客户端加载.在该文件中,我有从其他JavaScript文件调用函数的代码.我的尝试是使用
var m = require('./messages');
Run Code Online (Sandbox Code Playgroud)
为了加载messages.js(就像我在服务器端一样)的内容,然后加载该文件的调用函数.但是,require没有在客户端定义,它会抛出窗体的错误Uncaught ReferenceError: require is not defined.
这些其他JS文件也在客户端的运行时加载,因为我将链接放在网页的标题上.因此,客户端知道从这些其他文件导出的所有函数.
如何从打开服务器套接字messages.js的主client.js文件中的其他JS文件(例如)中调用这些函数?
我已经写了一点C,我可以很好地阅读它以大致了解它在做什么,但每次我遇到一个宏它都完全抛弃了我.我最终必须记住宏是什么,并在我阅读时将其替换为我的脑袋.我遇到的那些直观且易于理解的东西总是像迷你小功能一样,所以我总是想知道为什么它们不仅仅是功能.
我可以理解在预处理器中为调试或跨平台构建定义不同构建类型的需要,但是定义任意替换的能力似乎只对使得已经很难理解的语言更加难以理解.
为什么为C引入了如此复杂的预处理器?并且有没有人有一个使用它的例子,这将使我理解为什么它似乎仍然用于除了简单的#debug风格条件编译之外的目的?
编辑:
读了很多答案之后我还是不明白.最常见的答案是内联代码.如果内联关键字没有这样做,那么它有充分的理由不这样做,或者实现需要修复.我不明白为什么需要一个完全不同的机制,这意味着"真正内联这个代码"(除了形成内联之前编写的代码).我也不明白提到"如果它太愚蠢而不能被赋予功能"的想法.当然,任何需要输入并产生输出的代码都最好放在一个函数中.我想我可能没有得到它,因为我不习惯编写C的微观优化,但预处理器只是对一些简单问题的复杂解决方案.
我的部分应用程序将存储在多个位置的资源映射到Web URL,如下所示:
http://servername/files/path/to/my/resource/
Run Code Online (Sandbox Code Playgroud)
资源位置是在文件路径之后建模的,因此可以有无限级别的嵌套.是否有可能构造一个与此匹配的MVC路由,以便将整个路径传递到我的控制器中?可以是单个字符串,也可以是params样式的字符串数组.
我想这需要在files关键字上匹配,然后是某种通配符.虽然我不知道MVC是否支持这一点.
我对从python调用控制交互式CLI应用程序感兴趣.
我想在最基本的层面上我需要一个python脚本来启动主机操作系统上的CLI应用程序.管道从stdin到cli应用程序的任何内容,然后将cli应用程序的任何输出传递给stdout.
从这个基础对输入和输出进行一些处理应该非常简单
说实话,我可能只需要一个关于tecnique被调用的指针.我不知道我需要搜索什么.
我正在建立teamcity和msbuild以使我们的构建过程自动化比现在更多.我们正在处理的每个项目都被设置为teamcity中的一个单独项目,并且每个项目都设置有3个构建配置:开发,登台和实时.开发是我们在每次签入后运行的标准CI构建.暂存和实时执行构建和部署到适当的环境.
我们的实时版本将使用teamcity计数器编号.但我想设置staging构建来将其构建编号为下一个Live构建的beta.因此,如果实时构建版本为6,那么我想将我的暂存版本编号为v7b1,v7b2等.有没有办法在teamcity中或作为msbuild脚本的一部分执行此操作?
我使用的数据库严重依赖于标识列.但是,由于我们现在已将所有应用程序移至NHibernate,因此我希望使用HiLo,因为似乎建议使用NHibernate.是否有任何策略可以做到这一点,或者需要注意哪些常见问题?
在我的应用程序中,我(如在许多其他应用程序中)一个被称为Contact任何人的实体.在最基本的层面上,这用于表示业务联系人.但是,它也可以用来代表公司的员工.并且还有一些特殊类型的员工(比方说有一个叫Manager)
我试图将其建模为一种有意义的继承关系.员工的姓名和地址就像联系人一样,以及一些与就业相关的属性.经理还拥有许多经理特定的属性.
当员工晋升为经理时,困难就出现了.可以将基类Employee转换为继承类Manager吗?感觉不对.我想我会用一个专门的构造函数来做Manager.
顺便说一句,NHibernate是否支持这种行为?是获得员工,从员工创建经理,然后保存经理这么简单吗?
特别是在具有ORM的应用程序中,在类之间进行双向映射是很常见的.像这样:
public class Product
{
private List<Price> HistoricPrices { get; private set;}
}
public class Price
{
private Product Product { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在代码中是否有一种可接受的方式来维护这种关系?那么当我向产品添加价格时,Product属性会自动设置吗?
理想情况下,我正在寻找一个易于重复使用的解决方案.向集合中添加内容然后手动设置相反的关系似乎是错误的.
请注意,这不是关于如何建模产品和价格的问题,这是如何建立双向关系的问题.在很多情况下,这是非常合理的.
我目前只使用.NET,并希望在python上运行.为此,我需要建立一个python开发环境.我指导这个会很方便.我想我会做Web开发所以需要一个Web服务器,可能还需要一个数据库.我还需要指向流行的ORM,MVC框架和测试库的指针.
我所有这一切的主要标准之一就是我想了解它是如何工作的,我希望它尽可能地孤立.这很重要,因为我担心使用第三方Web和数据库服务器污染什么是有效的.NET环境.如果可能的话,我很高兴使用SQLite开始.
如果我对此很好,我也可能想要设置自动构建和ci服务器(在虚拟机上,可能是ubuntu).对这些的任何建议都会有用.
如果我喜欢python,我的最终目标是拥有类似的.NET工具,并真正了解它的构建和部署.首先,我将寻求一个尽可能隔离的简单开发环境,如果我不喜欢它将很容易删除.我不想使用IronPython,因为我想要使用通常使用的工具和框架开发python解决方案的完整体验.
我经常发现自己处于一种情况,我创建了一个通用接口或类,然后想要以非通用的方式使用这个类或接口的不同版本.例如,我可能有这样的界面:
interface ICanCreate<T>
{
T NewObject();
}
Run Code Online (Sandbox Code Playgroud)
这允许类成为该类型的工厂.然后我想用一般的工厂类注册这些,所以我尝试写这样的东西:
public class Factory
{
private Dictionary<Type, ICanCreate> mappings; // what do I put here????
public void RegisterCreator<T>(ICanCreate<T> creator)
{
}
public T Create<T>()
{
}
}
Run Code Online (Sandbox Code Playgroud)
在字典中我使用哪种类型的价值?我不知道我是否缺少某种设计原则,我知道这与co(ntra?)方差有很大关系.任何帮助或想法将不胜感激.
c# ×2
nhibernate ×2
python ×2
asp.net ×1
asp.net-mvc ×1
c ×1
command-line ×1
covariance ×1
deployment ×1
express ×1
generics ×1
hilo ×1
identity ×1
inheritance ×1
javascript ×1
macros ×1
msbuild ×1
node.js ×1
pug ×1
routing ×1
sequence ×1
sockets ×1
teamcity ×1
windows ×1