假设我定义了一些类:
class Pixel {
public:
Pixel(){ x=0; y=0;};
int x;
int y;
}
Run Code Online (Sandbox Code Playgroud)
然后使用它编写一些代码.我为什么要这样做?
Pixel p;
p.x = 2;
p.y = 5;
Run Code Online (Sandbox Code Playgroud)
来自Java世界我总是写:
Pixel* p = new Pixel();
p->x = 2;
p->y = 5;
Run Code Online (Sandbox Code Playgroud)
他们基本上做同样的事情,对吗?一个在堆栈上而另一个在堆上,所以我将在以后删除它.两者之间有什么根本区别吗?为什么我更喜欢一个呢?
我在Python中使用子进程包来运行子进程,我后来需要杀死它.但是,子进程包的文档声明terminate()函数仅在2.6中可用
我们使用2.5运行Linux,出于向后兼容的原因,我无法升级到2.6,有什么替代方案?我猜这些函数是方便的东西.
我想尝试一行文字
13) Check for orphaned Path entries
Run Code Online (Sandbox Code Playgroud)
并将其更改为(我希望bash颜色代码为输出着色,而不是在屏幕上显示)
\033[32m*\033[0m Check for orphaned Path entries
Run Code Online (Sandbox Code Playgroud)
使用bash颜色代码对星号进行着色,使其更加突出.我有一个sed命令执行大部分操作,除了它没有正确处理颜色代码,因为它将它们视为对替换文本的引用.
到目前为止我所拥有的:
sed "s/ *13) \(.*\)/ \033[32m*\033[0m \1/"
Run Code Online (Sandbox Code Playgroud)
当我在开头给出的字符串上运行时产生以下输出:
13) Check for orphaned Path entries33[32m* 13) Check for orphaned Path entries33[0m Check for orphaned Path entries
Run Code Online (Sandbox Code Playgroud)
它取\ 0的\ 0并用原始字符串替换它.将替换字符串中的反斜杠加倍并没有什么区别; 我仍然得到相同的输出文本.
如何将bash颜色转义插入到sed替换表达式中?
Killswitchcollective.com的旧文章,2009年6月30日,有以下输入和输出
git co master
git merge [your_branch]
git push
upstream A-B-C-D-E A-B-C-D-E-F-G
\ ----> \
your branch C-D-E G
Run Code Online (Sandbox Code Playgroud)
我感兴趣的是如何在终端中获得提交树的视图,而不使用OS/X中的Gitk或Gitx.
你怎么能在终端获得树状的提交视图?
如果需要这样,我已经为前缀为0的整数构建了一个字符串:
// myInt as input, for example: 101;
List<string> sList = new List<string>();
string format = "00#"; // how to build format dynamicall?
for(int i= 1; i <= myInt; i++)
{
sList.Add(i.ToString(format));
}
Run Code Online (Sandbox Code Playgroud)
预期结果应该是:
001
002
...
010
...
101
Run Code Online (Sandbox Code Playgroud)
如果我的整数是10或1000,我该如何动态构建格式?
让我们举个例子说:
$(".button").click(function() {
$.post("commandrunner.php",
{
param1: 'value',
param2: 'value2',
param3: 'value3'
},
function(data, textStatus) {
$(this).parent().after('<p>button clicked</p>');
},
"json"
);
});
Run Code Online (Sandbox Code Playgroud)
我跑了这个并没有用.在我理论化之前我尝试了一些事情,在这个特定的".button"的上下文中没有调用回调,所以$(this)没用.这相反:
$(".button").click(function() {
var thisButton = $(this);
$.post("commandrunner.php",
{
param1: 'value',
param2: 'value2',
param3: 'value3'
},
function(data, textStatus) {
thisButton.parent().after('<p>button clicked</p>')
},
"json"
);
});
Run Code Online (Sandbox Code Playgroud)
这感觉有点像黑客.这是获取对点击按钮的引用的正确方法吗?什么上下文(或任何其他回调)被调用?
谢谢!
阿里
我一直在我的代码中使用LINQ.我已经达到了这样的程度:Group,Order,使用LINQ语法组织一堆对象,我很难想象如果没有它我会做同样的事情.
在此之前,我从未深入研究过SQL-esque世界,但我想很多人甚至学会了正常的SQL语法,他们突然感觉到大多数普通的编程语言能够纠缠复杂的对象层次结构?
我是否将自己画成一个角落,变得依赖LINQ来完成更复杂的任务?它比我编写简单的C#代码感觉更具表现力.
在我的日常编程中依赖于LINQ语法,从长远来看会伤害我,如果我最终切换语言或框架,这样的东西不可用?
我想回到Joel Spolsky关于永远不会从头开始重写代码的文章.总结一下他的论点:代码不会生锈,虽然在许多维护版本发布之后可能看起来不太好,但如果它有效,它就可以了.最终用户并不关心代码的漂亮程度.
你可以在这里阅读文章:你不应该做的事情
我最近接管了一个项目,在查看了他们的代码之后,它非常糟糕.我立刻想到了我之前构建的原型,并明确声明它不应该用于任何生产环境.但当然,人们不听.
代码是作为一个网站构建的,没有任何关注点,没有单元测试和代码重复.没有数据层,没有真正的业务逻辑,除非你在App_Code中计算一堆类.
我已向利益相关方提出建议,虽然我们应该保留现有代码,并进行错误修复发布和一些小功能发布,但我们应该立即开始重新编写测试驱动开发并明确分离关注点.我正在考虑使用ASP.NET MVC路由.
我唯一关心的是从头开始重写可能需要的时间.这并不是完全复杂的,有会员资格的磨坊网络应用程序.
你们有没有遇到类似的问题?你采取了什么特别的步骤?
更新:
那么......我最终决定做什么?我采用了马特的方法并决定重构许多领域.
我创建了一个非常简单的数据访问层,它包含所有ADO调用,并创建了一个SqlHelper对象来执行这些调用.
我实现了一个
更简洁的清洁日志解决方案.
虽然我不再参与这个项目[资金,政治,等等],但我认为它让我对一些项目的编写能力有了很大的了解,并且开发人员可以采取措施使事情变得更加清晰,可读和公正随着时间的推移逐渐变小,逐渐变平.
我想在像素数量上设置一些限制/边界,我们可以拉伸网格内的网格划分器控件.这怎么可能?基本上不应该允许将网格划分器拉到很大的限制(它应该限制在较小的网格边界)
当尝试基于Silverlight设置对象时间/帧的动画时(与使用DoubleAnimation或Storyboard不同的东西,例如不适合快节奏的游戏),例如每帧在特定方向上移动宇宙飞船,运动是跳跃的,不太顺利.屏幕甚至似乎都在撕裂.
CompositionTarget和DistpatcherTimer之间似乎没有区别.我使用以下方法(在伪代码中):
Register Handler to Tick-Event of a DispatcherTimer
In each Tick:
Compute the elapsed time from the last frame in milliseconds
Object.X += movementSpeed * ellapsedMilliseconds
Run Code Online (Sandbox Code Playgroud)
这应该会导致运动平稳,对吧?但事实并非如此.这是一个例子(控件:WASD和鼠标):Silverlight游戏.虽然我所描述的效果在这个示例中并不太普遍,但我可以向您保证,即使在画布上移动单个矩形也会产生跳跃动画.
有人知道如何最小化这个.有没有其他方法可以使用Storyboards/DoubleAnimations来解决基于帧的动画问题?
编辑:这是一个快速而肮脏的方法,用最少的代码(控件:A和D)动画样本制作动画
XAML:
<Grid x:Name="LayoutRoot" Background="Black">
<Canvas Width="1000" Height="400" Background="Blue">
<Rectangle x:Name="rect" Width="48" Height="48"
Fill="White"
Canvas.Top="200"
Canvas.Left="0"/>
</Canvas>
</Grid>
Run Code Online (Sandbox Code Playgroud)
C#:
private bool isLeft = false;
private bool isRight = false;
private DispatcherTimer timer = new DispatcherTimer();
private double lastUpdate;
public Page()
{
InitializeComponent();
timer.Interval = TimeSpan.FromMilliseconds(1);
timer.Tick += OnTick; …Run Code Online (Sandbox Code Playgroud) c# ×2
animation ×1
architecture ×1
bash ×1
c++ ×1
console ×1
escaping ×1
git ×1
gridsplitter ×1
heap ×1
javascript ×1
jquery ×1
linq ×1
pointers ×1
python ×1
sed ×1
silverlight ×1
stack ×1
string ×1
subprocess ×1
tdd ×1
terminal ×1
testing ×1
tree ×1
wpf ×1