我对Django和Angular都很新.我认识到这是主观的,并且可能有很多方法可以实现,但我想知道人们可以推荐哪些最佳实践来布置这样的应用程序.我特别想到丰富的SPA,后端主要或完全是一个RESTful API服务器,但是我想为任何提供Django重要视图的应用程序提供一个通用的方法.(我没有做足以决定后者是否使用Angular或者可能比其价值更麻烦).
特别:
将前端代码保存在与后端相对的单独目录/存储库中的优缺点是什么,比如说,在Django应用程序的"静态"子目录中?在我的情况下,我现在是唯一的开发人员,这对这个决定有一些影响,但我仍然可以认为自己是后端,前端,设计师等的独立"团队",因为我的工作流程将是让我一次成为这些角色之一.
我的设置基本上是一个开发机器,GitHub中的SCM,并在WebFaction(共享Web托管)上公开托管.我想在不同的开发机器上轻松抓住项目,但主要工作流程只是一个开发人员,一个prod安装.也就是说,我对实际项目中的最佳实践感兴趣,因为我希望未来的工作可能与Django合作.
补充:我非常不确定的另一点是Angular应用程序是否应该/必须由Django引导.也就是说,首页应该由Django提供并注入任何数据?
优点:
缺点:
我正在尝试用Mocha编写的测试来运行Karma,它们有点工作,但我不能使用done()方法来实现异步测试,这实际上使得这些工具对我来说毫无用处.我错过了什么?
karma.conf.js
module.exports = function(config) {
config.set({
basePath: '../..',
frameworks: ['mocha', 'requirejs', 'qunit'],
client: {
mocha: {
ui: 'bdd'
}
},
files: [
{pattern: 'libs/**/*.js', included: false},
{pattern: 'src/**/*.js', included: false},
{pattern: 'tests/mocha/mocha.js', included: false},
{pattern: 'tests/should/should.js', included: false},
{pattern: 'tests/**/*Spec.js', included: false},
'tests/karma/test-main.js'
],
exclude: [
'src/main.js'
],
// test results reporter to use
// possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
reporters: ['progress', 'dots'],
port: 9876,
colors: true,
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO …Run Code Online (Sandbox Code Playgroud) 我最近从 should.js 切换到 chai.js,因为我发现前者在基于浏览器的测试中造成了障碍。更改不需要对我的测试套件进行任何更改,因为支持语法,但我看到失败测试的输出不再以有用的方式向我显示实际值和预期值:
AssertionError: expected [ Array(9) ] to deeply equal [ Array(9) ]
Run Code Online (Sandbox Code Playgroud)
通过添加以下行,我可以让它吐出这些值的表示:
chai.config.truncateThreshold = 0;
Run Code Online (Sandbox Code Playgroud)
然而,这导致每个值都被详尽地输出,包括函数和原型属性。也很没用。
那么是否有某种方式让 chai 表现得像 should.js 一样,其中使用它们的 toString() 方法显示实际/预期值?
我刚刚重新实现了一个音乐应用程序的一个组件,我正在使用KineticJS而不是我的原型GUI完成所有DOM元素和一些JQuery动画.起初我很高兴看到Chrome中的帧率提高了10-15%,但随后在iPad 2上进行了测试,我得到的估计大约是6fps,而DOM版本大约是30fps.
我一定做错了什么.我希望.
该组件为1000x300,有2层.一个是静态背景,另一个是〜150个形状,大多数大约20-30px大小,一些运行画布的长度.动画使用Kinetic.Tween同时为不透明度和宽度设置动画.大多数形状只是圆形,体积小.什么都没有缓存,但这似乎是如此之少,如此简单的形状,我不会期望这样的迟缓(我估计大约6 fps是我所看到的).我正在为单个笔记创建新的Tween实例,并且可以改为使用池,因为总对象的数量是不变的,但是如果单独导致这样的减速,我会感到惊讶.直觉上我怀疑它推动像素是某种程度上的问题?
该应用程序正在使用WebAudio和JQuery UI来处理简单的小部件,例如按钮,但是至少有30个fps,DOM实现具有相同的音频,其他所有内容都相同.
使用Tweens,渲染循环的默认行为是什么?我认为文档中没有办法指定所需的帧速率.Kinect.Animation看起来它提供了更精细的颗粒控制,但在我的情况下,这将需要太多的状态,因为动画都只是在0.5-1.2秒内逐渐消失的脉冲事件.由于某些原因,不透明度的动画是否非常昂贵?我的静态背景图层是否因未被缓存为图像而导致任何问题?
对不起没有代码可以显示.我可以创建一个jsfiddle,但我希望在上面的描述中有一些明显的东西,我应该做的不同.
哦,我不是在查看动画对象; 它们都是从初始时间开始保存在数组中的.再一次,不会认为这将是问题.
angularjs ×1
animation ×1
chai ×1
django ×1
ios ×1
javascript ×1
karma-mocha ×1
karma-runner ×1
kineticjs ×1
mobile ×1
mocha.js ×1
performance ×1
unit-testing ×1