Questions tagged «architecture»

体系结构包含解决方案的流程,工件和高级结构。

14
困境:何时使用片段与活动:
我知道这Activities是为了代表我的应用程序的一个屏幕,而Fragments设计的它们是设计为可重用的UI布局,其中嵌入了逻辑。 直到不久前,我还开发了一个应用程序,因为它说应该进行开发。我创建了一个Activity来代表我的应用程序的屏幕,并将Fragments用于ViewPager或Google Maps。我很少创建ListFragment可以重复使用多次的UI或其他UI。 最近,我偶然发现了一个仅包含2 Activities个的项目,一个是SettingsActivity,另一个是MainActivity。的布局中MainActivity填充了许多隐藏的全屏UI片段,仅显示了一个。在Activity逻辑上有很多FragmentTransitions上,应用程序的不同屏幕之间。 我喜欢这种方法的原因在于,因为应用程序使用ActionBar,所以它保持不变并且不会随着屏幕切换动画而移动,Activity切换一样。这使这些屏幕过渡更加流畅。 因此,我想我想问的是与您分享有关此主题的当前开发方式,我知道乍一看它看起来像是一个基于意见的问题,但我将其视为一个Android设计和体系结构问题。基于意见的。 UPDATE(2014年5月1日):在此之后呈现由埃里克·伯克从广场,(这是我不得不说是一个有很多的Android开发人员有用的工具,一个伟大的演示和我没有以任何方式广场相关) http://www.infoq.com/presentations/Android-Design/ 根据过去几个月的经验,我发现构建应用程序的最佳方法是创建片段组,以代表应用程序中的流程并将所有这些片段组合在一起Activity。因此,基本上Activities,您的应用程序中的流数将与流数相同。这样,动作栏在所有流程的屏幕上都保持不变,但是在更改流程时会重新创建,这很有意义。正如埃里克·伯克(Eric Burke)所言,以及我已经逐渐意识到的那样,尽可能少使用哲学Activities并不适用于所有情况,因为这在他所谓的“上帝”活动中造成了混乱。

4
如何达到每个周期4个FLOP的理论最大值?
在现代的x86-64 Intel CPU上,如何实现每个周期4个浮点运算(双精度)的理论峰值性能? 据我了解,在大多数现代英特尔CPU上,一个SSE 需要三个周期,一个SSE需要add五个周期mul(例如,请参见Agner Fog的“指令表”)。由于流水线,add如果算法具有至少三个独立的求和,则每个循环的吞吐量可以达到一个。由于对于打包addpd以及标量addsd版本和SSE寄存器都可以包含2 double的情况都是如此,每个周期的吞吐量可以高达2触发器。 此外,似乎(虽然我还没有看到任何这适当的文件)add的和mul的可并行给予的四个理论最大吞吐量每个周期触发器执行。 但是,我无法使用简单的C / C ++程序来复制该性能。我的最佳尝试导致每个循环约2.7翻牌。如果有人可以提供一个简单的C / C ++或汇编程序,该程序可以证明其最高性能,将不胜感激。 我的尝试: #include <stdio.h> #include <stdlib.h> #include <math.h> #include <sys/time.h> double stoptime(void) { struct timeval t; gettimeofday(&t,NULL); return (double) t.tv_sec + t.tv_usec/1000000.0; } double addmul(double add, double mul, int ops){ // Need to initialise differently otherwise …

28
关于JavaScript中代码组织的公认最佳实践[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 随着jQuery之类的JavaScript框架使客户端Web应用程序变得更丰富,更实用,我开始注意到一个问题... 您如何将其组织起来? 将所有处理程序放在一个位置并为所有事件编写函数? 创建函数/类来包装所有功能? 写得像疯了似的,只是希望它能达到最佳效果? 放弃并获得新的职业? 我提到了jQuery,但实际上实际上是任何JavaScript代码。我发现随着线的堆积开始,管理脚本文件或查找所需内容变得越来越困难。我发现的最大问题可能是做同一件事的方法太多,很难知道哪种方法是当前公认的最佳实践。 关于保持.js文件与应用程序其余部分一样整洁的最佳方法,是否有任何一般性建议?还是这只是IDE的问题?有更好的选择吗? 编辑 该问题旨在更多地涉及代码组织而不是文件组织。有一些非常好的合并文件或拆分内容的示例。 我的问题是:组织实际代码的当前公认的最佳实践方法是什么?与页面元素进行交互并创建互不冲突的可重用代码的方式,甚至是推荐的方式? 有些人列出了名称空间,这是一个好主意。还有哪些其他方式,更具体地说是处理页面上的元素并使代码井井有条和整洁?

5
在MVC中应如何构建模型?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 我只是对MVC框架有所了解,而且我经常想知道模型中应该包含多少代码。我倾向于拥有一个具有以下方法的数据访问类: public function CheckUsername($connection, $username) { try { $data = array(); $data['Username'] = $username; //// SQL $sql = "SELECT Username FROM" . $this->usersTableName . " WHERE Username = :Username"; //// Execute statement return $this->ExecuteObject($connection, $sql, $data); } catch(Exception $e) { throw $e; } } 我的模型通常是映射到数据库表的实体类。 该模型对象应该具有所有数据库映射的属性以及上面的代码,还是可以将代码分开以使数据库真正起作用? 我最终会有四层吗?

15
REST和RESTful有什么区别
REST系统和RESTful系统之间有什么区别? 从我读得最多的几件事中,所谓的REST服务实际上就是RESTful服务。那么两者之间有什么区别。
540 architecture  rest 



10
什么时候去Redis?什么时候去MongoDB?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 3年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我想要的不是Redis和MongoDB之间的比较。我知道他们是不同的。性能和API完全不同。 Redis的速度非常快,但API的“原子性”非常好。MongoDB将占用更多资源,但是该API非常易于使用,对此我感到非常满意。 它们都很棒,我想尽我所能在部署中使用Redis,但是很难编写代码。我想在开发中尽可能多地使用MongoDB,但是它需要一台昂贵的机器。 那么您如何看待两者的使用呢?何时选择Redis?何时选择MongoDB?

10
注销:GET还是POST?
这个问题与一般何时使用GET或POST无关。推荐使用哪种方法来处理从Web应用程序注销。在一般意义上,我已经找到了很多有关GET和POST之间差异的信息,但是对于这种特殊情况,我没有找到确切的答案。 作为实用主义者,我倾向于使用GET,因为实现它比POST更简单。只需删除一个简单的链接就可以了。我可以想到的绝大多数网站都是这种情况,至少从我的脑海中可见。甚至Stack Overflow也可以使用GET进行注销。 让我犹豫的是(尽管是旧的)论点,即某些Web加速器/代理通过转到并检索他们在页面中找到的每个链接来预缓存页面,因此用户单击它们时可获得更快的响应。我不确定是否仍然适用,但是如果是这种情况,那么理论上具有这些加速器之一的用户将在登录后立即被踢出应用程序,因为她的加速器将查找并检索注销链接,即使她从未点击过它。 到目前为止,我所读的所有内容都建议将POST用于“破坏性操作”,而不会改变应用程序内部状态的操作(如查询等)应使用GET处理。基于此,这里的真正问题是: 从应用程序注销是否被认为具有破坏性,是否会改变应用程序的内部状态?
434 architecture  rest  post  get 

14
ViewModel中的INotifyPropertyChanged与DependencyProperty
在Model-View-ViewModel体系结构WPF应用程序中实现ViewModel时,似乎有两个主要选择来使它可数据绑定。我已经看到DependencyProperty了将View绑定到的属性的实现,并且看到了ViewModel的实现INotifyPropertyChanged。 我的问题是,什么时候我应该优先选择另一个?有性能差异吗?将ViewModel依赖项提供给WPF真的是一个好主意吗?做出设计决策时,我还需要考虑什么?

30
软件设计与软件体系结构[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 有人可以解释一下软件设计和软件体系结构之间的区别吗? 进一步来说; 如果您告诉某人向您介绍“设计”,您希望他们介绍什么?“架构”也是如此。 我目前的理解是: 设计:UML图/流程图/用于系统的特定模块/部分的简单线框(用于UI) 体系结构:组件图(显示系统的不同模块如何与彼此以及其他系统进行通信),使用哪种语言,模式...? 如我错了请纠正我。我已经提到Wikipedia在http://en.wikipedia.org/wiki/Software_design和http://en.wikipedia.org/wiki/Software_architecture上有文章,但是我不确定我是否正确理解它们。

15
为什么IoC / DI在Python中不常见?
在Java中,IoC / DI是一种非常普遍的做法,广泛用于Web应用程序,几乎所有可用的框架和Java EE中。另一方面,也有很多大型的Python Web应用程序,但是除了Zope(我听说过应该非常可怕的编码)之外,IoC在Python世界中似乎并不普遍。(如果您认为我错了,请举一些例子)。 当然,有一些流行的Java IoC框架的克隆可用于Python,例如springpython。但是它们似乎都没有被实际使用。至少,我从来没有在一个stumpled Django的或SQLAlchemy的 + <insert your favorite wsgi toolkit here>,它使用类似的东西,基于Web应用程序。 我认为IoC具有合理的优势,例如可以轻松替换django-default-user-model,但是在Python中广泛使用接口类和IoC看起来有些奇怪,而不是“ pythonic”。但是也许有人有一个更好的解释,为什么IoC在Python中没有得到广泛使用。

26
如何防止刮擦现场?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 改善这个问题 我有一个大型音乐网站,拥有大型艺术家数据库。我一直注意到其他音乐网站正在抓取我们网站的数据(我在这里和那里输入虚拟的艺术家名称,然后用google搜索它们)。 如何防止屏幕刮擦?可能吗

6
当Node.js内部仍依赖于Threads时,其固有速度如何?
我刚刚观看了以下视频:Node.js简介,但仍然不了解如何获得速度优势。 主要是,有一点Ryan Dahl(Node.js的创建者)说Node.js是基于事件循环的,而不是基于线程的。线程很昂贵,只应留给并行编程专家使用。 后来,他然后展示了Node.js的体系结构栈,该体系结构栈具有基础的C实现,该实现在内部具有自己的线程池。因此,显然,Node.js开发人员永远不会启动自己的线程或直接使用线程池...他们使用异步回调。我很明白。 我不明白的是,Node.js仍在使用线程...只是在隐藏实现,因此,如果50个人很好地请求50个文件(当前不在内存中),那么不需要50个线程,这样做会更快吗? ? 唯一的区别是,由于它是在内部进行管理的,因此Node.js开发人员不必对线程详细信息进行编码,而是在其下方仍在使用线程来处理IO(阻止)文件请求。 因此,您难道不是真的只遇到一个问题(线程)并在该问题仍然存在时将其隐藏:主要是多个线程,上下文切换,死锁等吗? 必须有一些我仍然不明白的细节。


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.