对大规模重构进行版本控制的最佳方法是什么?
我的典型编程风格(实际上也是编写文档)是尽可能快地获取内容然后重构它.通常,重构与添加其他功能同时发生.除了类和函数的标准重构之外,函数可以从一个文件移动到另一个文件,文件被拆分和合并或只是重新排序.
目前,我使用版本控制作为单独的用户,因此在此阶段没有与其他开发人员交互的问题.不过,版本控制还是给了我两个方面:
我在使用TortoiseHg的Windows上使用mercurial,它可以选择帅哥提交.我提到这个的原因是我想在重构的提交粒度上提出建议.我是否应该从提交中添加的功能中拆分重构?
我看过重构和源代码控制的答案:如何?但它没有回答我的问题.这个问题侧重于与团队的合作.这个集中于具有将来可以理解的历史(假设我不像某些VCS似乎允许的那样重写历史).
函数ResizeArray.sortBy是否执行稳定排序,因为它不会更改具有相同键值函数的元素的顺序?
如果没有,如何在F#中编写稳定的排序?
我理解表达式缓存无意义的含义.但我想知道是否有任何简单的解释,如何设计数据结构,可以最佳地使用缓存,而不知道缓存的大小.
您能否提供这样的解释,最好是(简单)示例?
我正在使用Python4Delphi将Python嵌入到Delphi程序中.版本:Python 2.6.4,Delphi 2009,Windows XP.
导入时Delphi程序与EInvalidOp崩溃json.我跟踪了它
NaN, PosInf, NegInf = float('nan'), float('inf'), float('-inf')
Run Code Online (Sandbox Code Playgroud)
在json.decoder.
果然,该命令float('nan')引发了EInvalidOp在Delphi程序中嵌入的Python内部运行.在命令行Python(相同安装)中执行时,它只返回nan.
知道Python标准启动和嵌入式启动之间有什么区别可能导致这样的错误?
我有简单的功能
let OutputDebugToConsole () =
new System.Diagnostics.TextWriterTraceListener(System.Console.Out)
|> System.Diagnostics.Debug.Listeners.Add |> ignore
Run Code Online (Sandbox Code Playgroud)
将调试输出重定向Debug.WriteLine到控制台.
我希望通过设置Console.ForegroundColor为灰色来调试输出为不同的颜色,例如.显然,每次写入后都需要重置颜色,以便以标准颜色书写普通文本.我的想法是通过一个不同的TextWriter装饰Write方法.
首先,这是一种思考问题的合理方式吗?第二,要做到这一点,我需要重写我的所有方法TextWriter还是有不同的方法?
我想要一个 Django 表单字段呈现为:
<input type="text" name="username" required>
Run Code Online (Sandbox Code Playgroud)
但当我尝试时username.widget.attrs['required'] = ''我得到类似的东西:
<input type="text" name="username" required="">
Run Code Online (Sandbox Code Playgroud)
required有没有一种方法可以在生成的 HTML 表单中显示独立的 HTML5 属性?
我在 Python 2.6 上使用 Django 1.6,因为它的价值。
能够使用答案在F#中将数据添加到Excel电子表格中
.NET 4.0的F#和Excel集成(Visual Studio 2010 Beta 1)
我发现自己无法弄清楚如何使用插入的数据来创建图表(使用F#以Excel编程方式).如何才能做到这一点?
我正在使用Excel 2007(Office 12组件)和F#2.0,如果这是相关的.
有没有办法从F#中的序列创建一个observable?
所需的行为是订阅结果observable的观察者一次接收一个序列的所有值.
编辑:这个问题可以被诬陷为:是否有一个相当于Rx.Observable.FromArray([1,2,3])如图所示这里在F#?
编辑2:谢谢大家.我花了一些时间才找到答案,却发现desco已经回答了.为了完整起见,以下是它的工作原理:
//Using the Reactive Framework.
//References to System.CoreEx.dll and System.Reactive.dll are needed.
open System.Linq
let observable = Observable.ToObservable [1..10]
let odds = observable |> Observable.filter (fun i -> i%2=1)
let disp = odds.Subscribe (fun i -> printfn "%d" i)
disp.Dispose ()
Run Code Online (Sandbox Code Playgroud) 这应该是一个相当直接的python问题,但我正在坚持正确的语法.
假设我有一个字符串:
"1:a,b,c::2:e,f,g::3:h,i,j"
Run Code Online (Sandbox Code Playgroud)
我想把它转换成这样的地图:
{'1': ['a', 'b', 'c'], '2': ['e', 'f', 'g'], '3': ['h', 'i', 'j']}
Run Code Online (Sandbox Code Playgroud)
怎么做?
我可以弄清楚如何使用嵌套for循环来做到这一点,但只是在一行中做到这一点很酷.
谢谢!
下一个例子中的代码,
open System.Drawing
let testColor c =
match c with
| Color.Black -> 1
| Color.White -> 0
| _ -> failwith "unexpected color"
Run Code Online (Sandbox Code Playgroud)
不编译.错误是Error 1 The field, constructor or member 'Black' is not defined.
如何模拟以大写字母开头的.Net常量或枚举的匹配?
对于它的价值,编译器是"Microsoft(R)F#2.0 Interactive build 4.0.30319.1".
我有一个简单的python脚本,它只接受一个文件名,并吐出该文件的修改版本.我想重定向stdout(从命令行使用'>',以便我可以使用我的脚本覆盖我的修改文件,例如python myScript.py test.txt > test.txt
当我这样做时,生成的test.txt不包含原始test.txt中的任何文本 - 只是myScript.py所做的添加.但是,如果我不重定向stdout,则修改正确.
更具体地说,这是一个例子:
myScript.py:
#!/usr/bin/python
import sys
fileName = sys.argv[1]
sys.stderr.write('opening ' + fileName + '\n')
fileHandle = file(fileName)
currFile = fileHandle.read()
fileHandle.close()
sys.stdout.write('MODIFYING\n\n' + currFile + '\n\nMODIFIED!\n')
Run Code Online (Sandbox Code Playgroud)
的test.txt
Hello World
Run Code Online (Sandbox Code Playgroud)
结果python myScript.py test.txt > test.txt:
MODIFYING
MODIFIED!
Run Code Online (Sandbox Code Playgroud) 我目前在使用F#的函数式编程方面做得相当不错.然而,我倾向于使用递归进行大量编程,因为在F#/函数式编程社区中似乎有更好的习语.所以本着学习的精神,有没有更好/更惯用的方式来编写下面的函数而不递归?
let rec convert line =
if line.[0..1] = " " then
match convert line.[2..] with
| (i, subline) -> (i+1, subline)
else
(0, line)
Run Code Online (Sandbox Code Playgroud)
结果如下:
> convert "asdf";;
val it : int * string = (0, "asdf")
> convert " asdf";;
val it : int * string = (1, "asdf")
> convert " asdf";;
val it : int * string = (3, "asdf")
Run Code Online (Sandbox Code Playgroud) 我最近有一个家庭作业问题,我们应该在棋盘上工作,并在棋盘上放置一些女王.
这个问题在困难方面是微不足道的,但我想问的是:
我应该只创建一个布尔二维数组并将包含一个皇后的每个位置更改为1,还是应该创建一个私有类来表示一个皇后,它有x和y坐标作为实例变量?
这可能看起来不是很重要或者很紧迫,但我正在使用Java,它有点接近OO编程概念的核心.如果我们从不使用Java的模块化功能,那么为什么要使用Java呢?我们不妨在C或Python中编写相同的东西.
你认为哪种更合适?如果你可以将你的答案限制在理性支持的答案而不是意见或个人偏好,我将不胜感激.
f# ×6
python ×4
.net ×1
automation ×1
coding-style ×1
delphi ×1
django ×1
embedding ×1
excel ×1
html ×1
java ×1
linux ×1
observable ×1
recursion ×1
redirect ×1
refactoring ×1
sequence ×1
shell ×1
sorting ×1