我听过很多关于使用版本控制系统的优点,并想尝试一下.在过去的两年里,我在PHP中进行自由网页开发,两个月前我又聘请了两名程序员来帮助我.我很快就会招聘一个人.我们维护着4个网站,这些网站都是我自己的,我们其中一个人不断编辑.我自己学习PHP,从未在任何其他公司工作过.因此,我不熟悉版本控制,单元测试等等.
目前,我们的工作站上有开发服务器.当我们编辑网站的特定部分时,我们会将该特定部分的代码(例如/ news /或/ movies /或/ wallpapers /)从生产服务器下载到开发服务器,在本地进行更改并上传到生产环境服务器(无代码审查/测试).因此,我们的开发服务器始终与我们的prod服务器过时.偶尔,当我们中的一个忘记从prod下载最新副本并覆盖最后一个更改时,这也会产生问题.我知道这非常非常愚蠢,但目前我们的prod服务器是唯一具有所有更新和最新更改的副本.
任何人都可以建议哪个是我最好的版本控制系统?我对分布式版本控制更感兴趣,因为我们的所有代码都没有中央备份.我读到了Mercurial和Git,发现Mercurial被Mozilla,Sun,Symbian等用于几个大型开源项目中.那么您觉得哪一个对我更好?不仅版本控制,如果有任何其他包可用于使我当前的设置更好,请提及它:)
我有一个叫做Ruby的类LibraryItem.我想将此类的每个实例与一组属性相关联.这个数组很长,看起来像
['title', 'authors', 'location', ...]
Run Code Online (Sandbox Code Playgroud)
请注意,这些属性实际上不应该是方法,只是一个属性列表LibraryItem.
接下来,我想创建一个LibraryItem被调用的子类,LibraryBook它具有包含所有属性的属性数组,LibraryItem但也包含更多属性.
最终,我会想的几个子类LibraryItem每一个都有自己的版本阵@attributes上,但每个加入LibraryItem的@attributes(如LibraryBook,LibraryDVD,LibraryMap,等).
所以,这是我的尝试:
class LibraryItem < Object
class << self; attr_accessor :attributes; end
@attributes = ['title', 'authors', 'location',]
end
class LibraryBook < LibraryItem
@attributes.push('ISBN', 'pages')
end
Run Code Online (Sandbox Code Playgroud)
这不起作用.我收到了错误
undefined method `push' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
如果要工作,我会想要这样的东西
puts LibraryItem.attributes
puts LibraryBook.attributes
Run Code Online (Sandbox Code Playgroud)
输出
['title', 'authors', 'location']
['title', 'authors', 'location', 'ISBN', 'pages']
Run Code Online (Sandbox Code Playgroud)
(2010年5月2日添加)对此的一个解决方案是创建@attributes一个简单的实例变量,然后LibraryBoot …
据我所知,C内联函数体应该在.h文件中定义,因为它会导致错误'函数名使用但从未定义'如果在.c文件中定义了body.
这是常规方式吗?或者如何在.c文件中定义内联函数体?
我正在尝试将一个文本块捕获到变量中,并保持换行符,然后回显它.
但是,当我捕获文本或显示文本时,似乎不会保留换行符.
有关如何实现这一目标的任何想法?
例:
#!/bin/bash
read -d '' my_var <<"BLOCK"
this
is
a
test
BLOCK
echo $my_var
Run Code Online (Sandbox Code Playgroud)
输出:
这是一个测试
期望的输出:
这个
是
一个
测试
我已经选择了.NET平台上的开发组件:用于IoC的Spring.NET和用于数据访问的NHibernate.但它有多安全?
我在这里听说过(不记得究竟是哪个帖子)Spring.NET正在向下发展,例如Java原始版本是由很多人开发的; 但是(他们说).NET版本背后的唯一人是Mark Pollack先生.是这样吗?
如果是这样的话,依靠Spring.NET来生产我的生产应用程序仍然有意义吗?
我想知道[[alloc] init]这只是一个约定,还是分开两个调用有更广泛的用途.例如,我想知道人们是否曾[init]在现有对象上调用(或朋友)来"重新初始化"它.
我有一个QThread派生类,通过向它发送QEvents与主线程进行通信.
主线程与第二个线程通信的最佳方法是什么?
主线程有一个指向第二个的指针.
我正试图在一系列精灵上阅读一个属性.此属性可能存在也可能不存在于这些对象上,甚至可能不会被声明,甚至比null更糟.
我的代码是:
if (child["readable"] == true){
// this Sprite is activated for reading
}
Run Code Online (Sandbox Code Playgroud)
所以Flash告诉我:
错误#1069:在flash.display.Sprite中找不到属性可选,并且没有默认值.
有没有办法在读取它的值之前测试属性是否存在?
就像是:
if (child.isProperty("readable") && child["readable"] == true){
// this Sprite is activated for reading
}
Run Code Online (Sandbox Code Playgroud) 我们知道,在C#中,结构是按值传递的,而不是通过引用传递的.所以,如果我有一个包含以下数据成员的结构:
private struct MessageBox
{
// data members
private DateTime dm_DateTimeStamp; // a struct type
private TimeSpan dm_TimeSpanInterval; // also a struct
private ulong dm_MessageID; // System.Int64 type, struct
private String dm_strMessage; // an object (hence a reference is stored here)
// more methods, properties, etc ...
}
Run Code Online (Sandbox Code Playgroud)
因此,当MessageBox作为参数传递时,堆栈上会产生COPY,对吗?这对数据成员的复制方式意味着什么?前两个是结构类型,因此副本应该由DateTime和TimeSpan组成.第三种类型是基元,因此它也被复制.但是dm_strMessage呢,它是对象的引用?当它被复制时,会创建对同一个String的另一个引用,对吧?对象本身驻留在堆中,并且不被复制(堆上只有一个实例.)所以现在我们必须引用String类型的同一对象.如果从不同的线程访问这两个引用,则可以想象String对象可能会被同时从两个不同的方向修改而被破坏.MSDN文档说System.String是线程安全的.这是否意味着String类有一个内置机制来防止对象在这里描述的情况类型中被破坏?我试图弄清楚我的MessageBox结构是否有任何潜在的缺陷/缺陷是结构与类.感谢您的任何意见.
Source.Energy.
bash ×1
c ×1
c# ×1
class ×1
communicate ×1
header ×1
linux ×1
nhibernate ×1
objective-c ×1
oop ×1
php ×1
properties ×1
qt ×1
ruby ×1
scripting ×1
spring.net ×1
sprite ×1
struct ×1
wpf ×1
wpf-controls ×1