这是我的新项目:一个开放的画布,就在我面前.几天后,我将开始编写一个大型Web应用程序.它将从很少的模块开始,只有我自己作为开发人员和工程师,但希望它会成长和成长.
尽管我是一名活跃的Java开发人员,但自从我上次从头开始创建Web应用程序以来,已经有一段时间了.当时,Struts和J2EE是要走的路,但我看到很多新的框架,每天都有新的库增加.
我在这里要求的是您的建议:您目前在Web开发中使用了什么,为什么您认为它是相关的,如果您在开始新项目时选择相同的工具.一切都很重要:从UI上的提示到后端.常见的问题,模式,你能想到的一切都可能是相关的.
我是一名Java开发人员,我自然倾向于使用与Java相关的技术(J2SE,J2EE,Groovy,Grails,JRuby,Jython,JWhatever等等)来做所有事情,但是欢迎发帖.使用,与Java有关.
我的目标是建立一个人们正在做的事情,以及为什么他们要做的事情来帮助我评估我应该走哪条路,哪些不应该 - 以及为什么.毕竟,你每天都有这样的自由决定权.
提前致谢!
有谁知道有效的Ruby变量名称的规则?可以使用RegEx进行匹配吗?
更新:这是我到目前为止所能提出的:
^[_a-z][a-zA-Z0-9_]+$
Run Code Online (Sandbox Code Playgroud)
这看起来是对的吗?
我的应用程序中有一条路径是这样的:
/deployments/:id/logs.json
Run Code Online (Sandbox Code Playgroud)
它用于检索特定部署的日志.在我的客户端代码,基于ActiveResource我有这个:
logs = Deployment.find(deployment.id).get(:logs, opts)
Run Code Online (Sandbox Code Playgroud)
其中opts是我通过查询字符串发送的一些参数.
这段代码的问题在于它将请求分成两部分.该Deployment#find方法请求:
GET /deployments/:id.json
Run Code Online (Sandbox Code Playgroud)
然后,如果找到,则发送第二个请求:
GET /deployments/:id/logs.json
Run Code Online (Sandbox Code Playgroud)
是否可以使用服务器上的Rails 3和ActiveResource完全跳过第一个查询(activeresource的当前要求是> = 2.3.5但如果需要可以碰到它)?
更新:我认为如果我改变它是有效的:
logs = Deployment.find(deployment.id).get(:logs, opts)
Run Code Online (Sandbox Code Playgroud)
至
logs = Deployment.new(:id => deployment.id).get(:logs, opts)
Run Code Online (Sandbox Code Playgroud)
任何意见?
在我的Rails 3应用程序,我有一个RSpec的规范,检查某一领域(的行为角色的用户模型),以保证该值有效值的列表中.
现在,我将为另一个字段提供完全相同的规范,在另一个具有另一组有效值的模型中.我想提取公共代码,而不是仅仅复制和粘贴它,更改变量.
我想知道是否会使用共享示例或其他RSpec重用技术.
这是相关的RSpec代码:
describe "validation" do
describe "#role" do
context "with a valid role value" do
it "is valid" do
User::ROLES.each do |role|
build(:user, :role => role).should be_valid
end
end
end
context "with an empty role" do
subject { build(:user, :role => nil) }
it "is invalid" do
subject.should_not be_valid
end
it "adds an error message for the role" do
subject.save.should be_false
subject.errors.messages[:role].first.should == "can't be blank"
end
end
context "with an …Run Code Online (Sandbox Code Playgroud) 我有以下代码段:
FEED_TYPES = [
('fan_mail', 'Fan Mail'),
('review', 'Review'),
('tip', 'Tip'),
('fan_user', 'Fan User'),
('fan_song', 'Fan Song'),
('fan_album', 'Fan Album'),
('played_song', 'Played Song'),
('played_album', 'Played Album'),
('played_radio', 'Played Radio'),
('new_event', 'New Event'),
]
class Feed:
@classmethod
def do_create(cls, **kwargs):
print kwargs
@classmethod
def create(cls, type, **kwargs):
kwargs['feed_type'] = type
cls.do_create(**kwargs)
for type_tuple in FEED_TYPES:
type, name = type_tuple
def notify(self, **kwargs):
print "notifying %s" % type
self.create(type, **kwargs)
notify.__name__ = "notify_%s" % type
setattr(Feed, notify.__name__, classmethod(notify))
Feed.create("FanMail", to_profile="Gerson", from_profile="Felipe")
Feed.notify_fan_mail(to_profile="Gerson2", …Run Code Online (Sandbox Code Playgroud) 我在AngularJS中有这个确认需要两个回调:一个是用户点击是,另一个是用户点击对话框上的否.
我需要先询问用户是否完成了操作,如果他回答是,我还需要询问是否要将用户添加为管理员.无论对这两个问题的回答如何,我都需要保留数据.
所以我有这个可怕的,回调地狱出没的代码来处理我上面提到的分支:
$scope.promptAndSave = function() {
// first question
$scope.confirmation.display("Confirmation", "Did you finish working on this Reference Check?", function() {
// handles Yes for first question
$scope.referenceCheck.finished = true;
var manager_name = $scope.referenceCheck.first_name + " " + $scope.referenceCheck.last_name;
$scope.confirmation.display("Add new Manager", "Do you want to add <b>" + manager_name + "</b> as a new manager to your database?", function() {
// handles Yes for second question
$scope.referenceCheck.add_manager = true;
$scope.saveReferenceCheck();
}, function() {
// handles No for second question …Run Code Online (Sandbox Code Playgroud) 可以在Go中获得端子宽度吗?
我尝试将http://github.com/nsf/termbox-go与代码一起使用:
package main
import (
"fmt"
"github.com/nsf/termbox-go"
)
func main() {
fmt.Println(termbox.Size())
}
Run Code Online (Sandbox Code Playgroud)
但它打印0 0。
我也尝试过http://github.com/buger/goterm,但是当我尝试这样go get做时,出现错误:
$ go get github.com/buger/goterm
# github.com/buger/goterm
..\..\buger\goterm\terminal.go:78: undefined: syscall.SYS_IOCTL
..\..\buger\goterm\terminal.go:82: not enough arguments in call to syscall.Syscall
Run Code Online (Sandbox Code Playgroud)
关于如何获得端子宽度的其他想法?
我目前有一个 Rails 应用程序,它有多个进程:Web 服务进程和后台工作进程,由 Redis 触发。
问题是有时很难检查日志文件并确定给定行为发生的位置 - 是在 Web 部分还是在 Resque 工作人员上?
有没有办法包含进程名称甚至进程 ID 或允许我按进程区分每个日志条目的内容?
我有这个问题,我试图点击一个div隐藏所有其他相同"种类"的div.基本上我必须从子范围设置所有其他"兄弟"范围的变量.
为了说明这一点,我创建了以下内容:
HTML
<div ng-app="myApp">
<div ng-controller="MyCtrl">
<div ng-repeat="model in models" ng-controller="MyChildCtrl">
<a ng-click="toggleVisibility()">toggle {{ model.name }} {{ visibility }}</a>
<div ng-show="visibility">
{{ model.name }}
</div>
</div>
</div>
</div>?
Run Code Online (Sandbox Code Playgroud)
JavaScript的
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
console.debug('scope');
$scope.models = [
{ name: 'Felipe', age: 30 },
{ name: 'Fernanda', age: 28 },
{ name: 'Anderson', age: 18 }
];
}
function MyChildCtrl($scope) {
$scope.visibility = false;
$scope.toggleVisibility = function() {
$scope.visibility = !$scope.visibility;
}
}
Run Code Online (Sandbox Code Playgroud)
JSFiddle:http://jsfiddle.net/fcoury/sxAxh/4/ …
我尝试用Python重写下面的小C程序,但我得到了不同的输出.
C版:
#include <stdio.h>
int main()
{
unsigned char data = 0x00;
unsigned char i;
unsigned char bit = 0x01;
unsigned char parity = 1;
unsigned char value = 0x1c;
for (i = 0; i < 8; i++)
{
data = data | bit;
bit = bit << 1;
parity = parity ^ (data & 0x01);
}
printf("data: %d bit: %d parity: %d\n", data, bit, parity);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Python版本:
data = 0
bit = 1
parity = 1
value …Run Code Online (Sandbox Code Playgroud) angularjs ×2
python ×2
ruby ×2
architecture ×1
callback ×1
class-method ×1
code-reuse ×1
frameworks ×1
go ×1
javascript ×1
logging ×1
regex ×1
rest ×1
rspec ×1
terminal ×1
variables ×1
windows ×1