程序设计

专业和发烧友程序员的问答

4
在C ++ 11中,按值传递是否是合理的默认值?
在传统的C ++中,将值传递给函数和方法对于大型对象而言比较慢,并且通常对此不屑一顾。取而代之的是,C ++程序员倾向于传递引用,这虽然更快,但是却引入了与所有权有关的各种复杂问题,尤其是与内存管理有关的问题(在对象是堆分配的情况下) 现在,在C ++ 11中,我们有了Rvalue引用和move构造函数,这意味着可以实现大对象(例如std::vector),而该对象很容易通过值传入和传出函数。 因此,这是否意味着默认值应为诸如std::vector和类型的实例按值传递std::string?定制对象呢?最新的最佳做法是什么?
142 c++  coding-style  c++11 


12
MVC与n层架构
我想知道MVC(一种架构模式)和一个应用程序的n层架构之间到底有什么区别。我进行了搜索,但找不到简单的解释。也许我对MVC概念有些天真,所以如果有人可以解释其中的区别,那就太好了。 干杯

1
github中的交叉引用提交
我想在我的主仓库的github问题中引用其他仓库中的提交(在本例中为子模块)。是否可以这样做而不以类似于github如何从提交编号创建缩短的超链接的方式键入完整的超链接?
142 git  github 

9
对Bash的嵌入式评论?
我希望能够在单行命令中注释掉单个标志。Bash似乎只有from # till end-of-line意见。我正在看一些技巧: ls -l $([ ] && -F is turned off) -a /etc 这很丑,但总比没有好。有没有更好的办法? 以下内容似乎可行,但我不确定它是否可移植: ls -l `# -F is turned off` -a /etc
142 bash  comments 

11
如何找到Java内存泄漏
您如何找到Java中的内存泄漏(例如,使用JHat)?我试图将堆转储加载到JHat中,以进行基本了解。但是,我不明白我应该如何找到根引用(ref)或任何被称为根引用的东西。基本上,我可以说哈希表条目有几百兆字节([java.util.HashMap $ Entry或类似的东西),但是地图到处都是……使用某种方法可以搜索大型地图,还是找到大对象树的一般根? [编辑]好的,到目前为止,我已经阅读了答案,但是我们只能说我是个贱人(这意味着我对学习如何使用JHat而不是为JProfiler付费更感兴趣)。另外,由于JHat是JDK的一部分,因此始终可用。除非当然不能使用JHat,否则只能使用蛮力,但是我不敢相信这种情况。 另外,我认为我将无法进行实际修改(添加所有地图尺寸的记录)并运行足够长的时间,以至于我无法注意到泄漏。


8
如何在没有html元素的情况下使用ng-repeat
我需要使用ng-repeat(在AngularJS中)列出数组中的所有元素。 复杂的是,数组的每个元素都将转换为表的一,两或三行。 我不能创建有效的html(如果ng-repeat在元素上使用),因为在<tbody>和之间不允许使用任何类型的重复元素<tr>。 例如,如果在上使用ng-repeat <span>,我将得到: <table> <tbody> <span> <tr>...</tr> </span> <span> <tr>...</tr> <tr>...</tr> <tr>...</tr> </span> <span> <tr>...</tr> <tr>...</tr> </span> </tbody> </table> 无效的html。 但是我需要生成的是: <table> <tbody> <tr>...</tr> <tr>...</tr> <tr>...</tr> <tr>...</tr> <tr>...</tr> <tr>...</tr> </tbody> </table> 其中第一行是由第一个数组元素生成的,接下来的三行是由第二数组生成的,第五行是由最后一个数组生成的。 如何使用ng-repeat,使其绑定的html元素在渲染过程中“消失”? 还是对此有另一种解决方案? 澄清:生成的结构应如下所示。每个数组元素可以生成表的1-3行之间。理想情况下,答案应支持每个数组元素0-n行。 <table> <tbody> <!-- array element 0 --> <tr> <td>One row item</td> </tr> <!-- …
142 angularjs 

8
在contentEditable <div>上设置光标位置
我正在寻找一种确定的跨浏览器解决方案,当contentEditable ='on'&lt;div&gt;重新获得焦点时,将光标/插入位置设置为最后一个已知位置。内容可编辑div的默认功能似乎是每次单击时将插入号/光标移动到div中文本的开头。 我相信当他们离开div的焦点时,我必须将当前光标位置存储在一个变量中,然后当他们再次将焦点放在内部时,将其重置,但是我无法将它们放在一起或找到一个工作的对象代码示例。 如果有人有任何想法,工作代码段或示例,我将很高兴看到它们。 我实际上还没有任何代码,但这是我所拥有的: &lt;script type="text/javascript"&gt; // jQuery $(document).ready(function() { $('#area').focus(function() { .. } // focus I would imagine I need. } &lt;/script&gt; &lt;div id="area" contentEditable="true"&gt;&lt;/div&gt; PS。我已经尝试了此资源,但它似乎不适用于&lt;div&gt;。也许仅适用于textarea(如何将光标移动到contenteditable实体的末尾)

5
掌握Node JS替代多线程
如果我正确理解Node JS不会阻塞...,那么它就不必等待数据库或其他进程的响应,而是继续进行其他操作并稍后再检查。 它也是单线程的。 因此,这是否意味着给定的Node JS进程可以完全有效地利用单个CPU内核,但不会使用计算机上的任何其他内核,因为它永远不会一次使用多个内核。 当然,这意味着其他进程仍可以将其他CPU用于其他事物,例如SQL数据库或其他有意分离的CPU重子例程,只要它们是独立的进程即可。 同样,如果Node JS进程具有无限循环或长时间运行的功能,则在停止无限循环或长时间运行的功能(或终止整个进程)之前,该进程将不再有用。 这一切对吗?我的理解正确吗?

6
在不使用导航控制器堆栈,子视图或模式控制器的情况下对视图控制器进行动画更改?
NavigationController具有ViewController堆栈来管理和有限的动画过渡。 将视图控制器作为子视图添加到现有视图控制器时,需要将事件传递给子视图控制器,这很麻烦,几乎没有烦恼,并且在实现时通常感觉很糟糕(Apple也建议不要这样做)。这样做)。 再次提供一个模态视图控制器,将一个视图控制器放在另一个之上,尽管它没有上述事件传递问题,但实际上并没有“交换”视图控制器,而是将其堆叠。 情节提要仅限于iOS 5,并且几乎是理想选择,但不能在所有项目中使用。 有人可以在没有上述限制的情况下以一种固体代码示例的方式更改视图控制器,并允许它们之间进行动画转换吗? 一个接近的示例,但没有动画: 如何在没有导航控制器的情况下使用多个iOS自定义视图控制器 编辑:导航控制器的使用很好,但是需要有动画过渡样式(不仅仅是滑动效果),显示的视图控制器需要完全交换(而不是堆叠)。如果第二个视图控制器必须从堆栈中删除另一个视图控制器,则它的封装程度不够。 编辑2:iOS 4应该是此问题的基本操作系统,我应该在提到情节提要(上)时澄清一下。

4
如何调整超级视图的大小以适合具有自动布局的所有子视图?
我对自动布局的理解是,它采用了超级视图的大小,并基于约束和内在大小来计算子视图的位置。 有没有办法扭转这个过程?我想根据约束和内在大小调整Superview的大小。最简单的方法是什么? 我在Xcode中设计了视图,并将其用作的标题UITableView。该视图包括标签和按钮。标签的大小取决于数据。根据约束,标签可以成功按下按钮,或者如果按钮和超级视图底部之间存在约束,则标签将被压缩。 我发现了一些类似的问题,但没有好的和简单的答案。


4
我应该担心多余的,未运行的Docker容器吗?
每个docker run命令或RUNDockerfile中的每个命令都会创建一个容器。如果容器不再运行,则仍可以通过看到它docker ps -a。 我应该担心拥有大量未运行的容器吗?我应该docker rm在非运行容器上发行吗? 我不确定这些非运行中的容器会导致哪些性能或内存/存储损失。
142 docker 

4
使用drawRect还是不使用drawRect(何时应该使用drawRect / Core Graphics与子视图/图像进行比较,为什么?)
为了阐明这个问题的目的:我知道如何使用两个子视图并使用drawRect创建复杂的视图。我正在尝试完全理解何时以及为什么要使用另一个。 我还了解到,提前进行大量优化并在执行任何性能分析之前以更困难的方式进行操作是没有意义的。考虑到我对这两种方法都比较满意,现在真的想加深了解。 我的很多困惑来自于学习如何使表格视图滚动性能真正变得平滑而又快速。当然,此方法的原始来源来自iPhone的twitter(以前为tweetie)背后的作者。基本上,它说的是使表格平滑地滚动,其秘密是不要使用子视图,而是在一个自定义uiview中进行所有绘制。从本质上讲,似乎使用大量子视图会减慢渲染速度,因为它们具有大量开销,并且会不断在其父视图上进行重新组合。 公平地讲,这是在3GS刚起步时才写的,而iDevices从那时起变得越来越快。仍然在互连网上和其他地方经常建议使用此方法来获得高性能表。实际上,这是Apple的Table Sample Code中建议的方法,一些WWDC视频(面向iOS开发人员的实用绘图)和许多iOS 编程书籍中都建议使用该方法。 甚至还有看起来很棒的工具来设计图形并为其生成Core Graphics代码。 因此,起初我会相信“存在Core Graphics的原因。它非常快!” 但是,一旦我想到“尽可能使用Favor Core Graphics”这个主意,我就开始发现drawRect通常是导致应用程序响应速度不佳的原因,这在内存方面非常昂贵,并且确实给CPU造成了负担。基本上,我应该“ 避免重写drawRect ”(WWDC 2012 iOS App性能:图形和动画) 所以我想,像所有事物一样,它很复杂。也许您可以帮助自己和其他人了解使用drawRect的时间和原因? 我看到使用Core Graphics的几种明显情况: 您拥有动态数据(Apple的股票图表示例) 您有一个灵活的UI元素,无法使用简单的可调整大小的图像来执行 您正在创建一个动态图形,该图形一旦渲染就会在多个地方使用 我看到了避免使用Core Graphics的情况: 视图的属性需要单独设置动画 您的视图层次结构相对较小,因此使用CG所付出的任何额外努力都不值得 您想要更新视图片段而不重绘整个内容 当父视图大小更改时,子视图的布局需要更新 因此,请赋予您的知识。在什么情况下可以获取drawRect / Core Graphics(也可以通过子视图完成)?哪些因素导致您做出该决定?建议如何/为什么在一个自定义视图中进行绘制以实现黄油状的平滑表格单元滚动,但是苹果出于性能考虑而建议不建议使用drawRect?那么简单的背景图像呢(何时使用CG与可调整大小的png图像创建它们)? 制作有价值的应用程序可能不需要对此主题有深入的了解,但是我不喜欢在无法解释原因的情况下在各种技术之间进行选择。我的脑子生我的气。 问题更新 感谢大家提供的信息。一些澄清的问题在这里: 如果您正在绘制带有核心图形的东西,但是可以使用UIImageViews和预渲染的png完成相同的事情,那么您是否应该始终遵循这种做法? 一个类似的问题:尤其是使用诸如此类的badass工具时,应何时考虑在核心图形中绘制界面元素?(可能在元素的显示是可变的时。例如,具有20种不同颜色变化的按钮。还有其他情况吗?) 根据我在下面的答案中的理解,是否可以通过在复杂的UIView渲染本身之后有效地捕获单元格的快照位图,并在滚动和隐藏复杂的视图时显示该位图,来获得相同的性能?显然,必须解决一些问题。我有一个有趣的想法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.