我注意到Python Web框架处理请求处理的三种主要方式:装饰器,带有单个请求方法的控制器类,以及带有GET/POST方法的请求类.
我很好奇这三种方法的优点.这些方法中有哪些主要优点或缺点?为了解决问题,这里有三个例子.
瓶子使用装饰器:
@route('/')
def index():
return 'Hello World!'
Run Code Online (Sandbox Code Playgroud)
Pylons使用控制器类:
class HelloController(BaseController):
def index(self):
return 'Hello World'
Run Code Online (Sandbox Code Playgroud)
Tornado使用请求处理程序类和类型的方法:
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
Run Code Online (Sandbox Code Playgroud)
哪种风格是最佳做法?
是否有一种简单的方法来转换R中的所有GUI元素并仅从OSX上的命令行运行它?
我试图在我的OSX机器上复制远程linux终端的行为.因此plot()应该只保存一个文件,CRAN镜像选择之类的东西应该是文本,而不是Tk接口.我无法找到设置此行为的位置.
在上一个问题(使用静态类型语言中的异构数据)中,我询问了F#如何处理数据分析中的标准任务,例如操作无类型的CSV文件.动态语言擅长于基本任务
data = load('income.csv')
data.log_income = log(income)
Run Code Online (Sandbox Code Playgroud)
在F#中,最优雅的方法似乎是问号(?)运算符.不幸的是,在这个过程中我们失去了静态类型,仍然需要在这里和那里进行类型注释.
F#最令人兴奋的未来特征之一是类型提供商.在类型安全性损失最小的情况下,CSV类型提供程序可以通过动态检查文件来提供类型.
但数据分析通常并不止于此.我们经常通过一系列操作来转换数据并创建新的数据集.我的问题是,如果我们主要操纵数据,类型提供商可以提供帮助吗?例如:
open CSV // Type provider
let data = CSV(file='income.csv') // Type provider magic (syntax?)
let log_income = log(data.income) // works!
Run Code Online (Sandbox Code Playgroud)
这可以工作,但会污染全局命名空间.考虑添加列而不是创建新变量通常更为自然.有办法吗?
let data.logIncome = log(data.income) // won't work, sadly.
Run Code Online (Sandbox Code Playgroud)
当目标是创建新的派生数据集或清理数据集时,类型提供程序是否可以避免使用(?)运算符?
也许是这样的:
let newdata = colBind data {logIncome = log(data.income)} // ugly, does it work?
Run Code Online (Sandbox Code Playgroud)
其他想法?
我试图开始使用Google Perf Tools来分析一些CPU密集型应用程序.这是一个统计计算,使用`ofstream'将每个步骤转储到文件中.我不是C++专家,所以我遇到麻烦找到瓶颈.我的第一次传球给出结果:
Total: 857 samples
357 41.7% 41.7% 357 41.7% _write$UNIX2003
134 15.6% 57.3% 134 15.6% _exp$fenv_access_off
109 12.7% 70.0% 276 32.2% scythe::dnorm
103 12.0% 82.0% 103 12.0% _log$fenv_access_off
58 6.8% 88.8% 58 6.8% scythe::const_matrix_forward_iterator::operator*
37 4.3% 93.1% 37 4.3% scythe::matrix_forward_iterator::operator*
15 1.8% 94.9% 47 5.5% std::transform
13 1.5% 96.4% 486 56.7% SliceStep::DoStep
10 1.2% 97.5% 10 1.2% 0x0002726c
5 0.6% 98.1% 5 0.6% 0x000271c7
5 0.6% 98.7% 5 0.6% _write$NOCANCEL$UNIX2003
这是令人惊讶的,因为所有真正的计算都发生在SliceStep :: DoStep中."_write $ UNIX2003"(我在哪里可以找到它是什么?)似乎来自编写输出文件.现在,让我感到困惑的是,如果我注释掉所有outfile << "text" …
我有兴趣教自己不同的数据结构,我目前对此知之甚少.我的计划是实现一些关键结构,以便了解它们的工作原理.我正在寻找有关重要数据结构的建议.
我主要关注与搜索应用程序相关的数据结构(例如Google/Lucene)以及延迟计算和预计算之间的一般权衡.我也对分布式数据结构感兴趣 - 数据结构可以扩展到数百/数千台服务器 - 以及概率数据结构 - 数据结构有助于找到一个近似的答案但不需要总是正确的.
维基百科有一个数据结构列表.我目前正在考虑:
有更好的选择吗?
最后,在像F#这样的语言中实现这些结构是否存在任何(主要)问题?
有没有一种简单的方法可以将F#interactive(fsi.exe)终端嵌入到应用程序中?更一般地说,是否有fsi.exe可用于调整的代码等?
对于我们中的一些人来说,使用Javascript的一个问题是缺少运算符重载.这使得编写数字库变得尴尬.例如,我们可能想写一些类似的东西:
var a = new BigInteger(5);
var b = new BigInteger(10);
var c = a + b;
Run Code Online (Sandbox Code Playgroud)
一种可能的解决方案是使用运算符重载到Javascript来转换语言.虽然可行 - 通过函数调用和类型检查替换运算符 - 但似乎共识似乎是在不破坏性能的情况下这是不可能的.由于这个原因,CoffeeScript拒绝了这个想法:
https://github.com/jashkenas/coffee-script/issues/846
但真的没有聪明的解决方案吗?
例如,可能有可能从紧密循环中提升类型检查或使用一些其他管道,现代JS编译器可以在类型为数字时优化掉添加的内容.
想法?
作为TypeScript的新手,在实例化子类类型的基类中实现静态工厂的最佳方法是什么.例如,考虑findAll基础模型类中的方法:
class BaseModel {
static data: {}[];
static findAll() {
return this.data.map((x) => new this(x));
}
constructor(readonly attributes) {
}
}
class Model extends BaseModel {
static data = [{id: 1}, {id: 2}];
constructor(attributes) {
super(attributes);
}
}
const a = Model.findAll(); // This is BaseModel[] not Model[]
Run Code Online (Sandbox Code Playgroud)
这返回BaseModel[]而不是Model[].
有没有一种简单的方法来检查使用WebKit的Web Inspector通过jquery ajax调用发出的HTTP GET/POST/OPTIONS/HEAD等请求?我正在制作响应,我正在寻找一种简单的方法来监控来回的流量.
究竟需要在javascript字符串中进行转义.或者,更具体地说,为什么
var snaphtml = '<script src="http://seadragon.com/embed/lxe.js?width=auto&height=400px"></script>';
Run Code Online (Sandbox Code Playgroud)
给出语法错误?逃避决赛<\/script>似乎修复了语法错误,但这对我作为javascript初学者没有意义.
f# ×3
javascript ×2
.net ×1
ajax ×1
bottle ×1
c++ ×1
coffeescript ×1
django ×1
gperftools ×1
http ×1
jquery ×1
profiling ×1
pylons ×1
python ×1
r ×1
search ×1
tornado ×1
typescript ×1