标签: architecture

困境:何时使用碎片与活动:

我知道它Activities的目的是代表我的应用程序的单个屏幕,同时Fragments设计为可重用的UI布局,其中嵌入了逻辑.

直到不久前,我开发了一个应用程序,因为它说应该开发它们.我创建了一个Activity代表我的应用程序的屏幕并使用Fragments for ViewPagerGoogle Maps.我很少创建ListFragment可以多次重用的UI或其他UI.

最近我偶然发现一个项目只包含2 Activities个是一个SettingsActivity而另一个是MainActivity.它的布局中MainActivity填充了许多隐藏的全屏UI片段,只显示了一个.在Activity逻辑FragmentTransitions中,应用程序的不同屏幕之间存在许多.

我喜欢这种方法的原因是因为应用程序使用了一个ActionBar,它保持原样并且不会随着屏幕切换动画一起移动,这就是Activity切换时发生的情况.这为这些屏幕转换提供了更流畅的感觉.

所以我想我要问的是分享你关于这个主题的当前开发方式,我知道它看起来可能看起来像一个基于意见的问题,但我把它视为一个Android设计和架构问题...不是真的基于意见的一个.

更新(01.05.2014):继来自SquareEric Burke的演示之后(我不得不说这是一个很棒的演示文稿,为Android开发人员提供了许多有用的工具.而且我与Square没有任何关系)

http://www.infoq.com/presentations/Android-Design/

根据我过去几个月的个人经验,我发现构建应用程序的最佳方法是创建一组片段,这些片段代表应用程序中的并将所有这些片段集中在一个片段中Activity.所以基本上你Activities的应用程序的数量与流量的数量相同.这样,操作栏在所有流程的屏幕上保持完整,但正在重新创建流程,这很有意义.正如埃里克伯克所说,并且我也已经意识到,尽可能少Activities地使用的哲学并不适用于所有情况,因为它在他所谓的"上帝"活动中造成混乱.

architecture android android-fragments android-activity

761
推荐指数
11
解决办法
19万
查看次数

如何实现每个周期4个FLOP的理论最大值?

如何在现代x86-64 Intel CPU上实现每个周期4个浮点运算(双精度)的理论峰值性能?

据我所知,SSE 需要三个周期,addmul大多数现代Intel CPU需要五个周期才能完成(参见例如Agner Fog的"指令表").由于流水线操作,add如果算法具有至少三个独立的求和,则每个周期可以获得一个吞吐量.因为打包addpd和标量addsd版本都是如此,并且SSE寄存器可以包含两个,double每个周期的吞吐量可以高达两个触发器.

此外,似乎(虽然我没有看到任何适当的文档)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 compiler might optimise away
   double sum1=0.1, sum2=-0.1, sum3=0.2, sum4=-0.2, sum5=0.0;
   double mul1=1.0, mul2= 1.1, mul3=1.2, mul4= 1.3, …
Run Code Online (Sandbox Code Playgroud)

c c++ architecture optimization assembly

618
推荐指数
4
解决办法
7万
查看次数

JavaScript中代码组织的常见最佳实践

随着像jQuery这样的JavaScript框架使客户端Web应用程序更丰富,更实用,我开始注意到一个问题......

你是如何保持这种组织的?

  • 将所有处理程序放在一个位置并为所有事件编写函数?
  • 创建函数/类来包装所有功能?
  • 写得像疯了似的,只希望它能做到最好?
  • 放弃并获得新的职业?

我提到了jQuery,但它实际上是任何JavaScript代码.我发现随着线条开始堆积起来,管理脚本文件或找到你要找的东西变得更加困难.我发现最大的问题可能是有很多方法可以做同样的事情,很难知道哪一个是目前普遍接受的最佳实践.

是否有关于保持.js文件与应用程序其余部分一样美观和整洁的最佳方法的一般建议?或者这仅仅是IDE的问题?那里有更好的选择吗?


编辑

这个问题旨在更多地关注代码组织而不是文件组织.有一些非常好的合并文件或分割内容的例子.

我的问题是:目前普遍接受的组织实际代码的最佳实践方法是什么?您的方式是什么,甚至是推荐的方式与页面元素交互并创建可互相冲突的可重用代码?

有些人列出了名称空间,这是一个好主意.还有什么其他方法,更具体地说是处理页面上的元素并保持代码整洁有序?

javascript architecture formatting jquery design-patterns

561
推荐指数
17
解决办法
5万
查看次数

如何在MVC中构建模型?

我只是掌握了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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的模型往往是映射到数据库表的实体类.

模型对象是否应具有所有数据库映射属性以及上面的代码,或者可以将实际上数据库工作的代码分开吗?

我最终会有四层吗?

php architecture oop model-view-controller model

541
推荐指数
4
解决办法
17万
查看次数

REST和RESTful有什么区别

REST系统和RESTful系统之间有什么区别?

从我读过的一些事情来看,所谓的REST服务实际上就是REST服务.那两者之间有什么区别呢.

architecture rest

504
推荐指数
11
解决办法
26万
查看次数

什么时候适合使用C#部分类?

我想知道是否有人能够概述我为什么要使用它们以及我在这个过程中会获得什么好处.

c# architecture class

491
推荐指数
14
解决办法
19万
查看次数

什么时候去Redis?什么时候到MongoDB?

我想要的不是Redis和MongoDB之间的比较.我知道他们是不同的; 性能和API完全不同.

Redis非常快,但API非常'原子'.MongoDB将占用更多资源,但API非常易于使用,我对此非常满意.

它们都很棒,我想尽可能多地使用Redis进行部署,但是很难编码.我想尽可能多地在开发中使用MongoDB,但它需要一台昂贵的机器.

那么你怎么看待它们的使用呢?什么时候选Redis?什么时候选择MongoDB?

architecture mongodb nosql redis

466
推荐指数
7
解决办法
28万
查看次数

注销:GET或POST?

这个问题不是关于何时一般使用GET或POST; 它是关于处理Web应用程序注销的推荐方法.我已经在一般意义上找到了关于GET和POST之间差异的大量信息,但我没有找到这个特定场景的明确答案.

作为一个实用主义者,我倾向于使用GET,因为实现它比POST更简单; 只需删除一个简单的链接就可以了.这似乎是我能想到的绝大多数网站的情况,至少从头脑中可以看出来.甚至Stack Overflow也可以使用GET进行注销.

让我犹豫不决的是(尽管很老)一些论点,即一些网络加速器/代理通过访问和检索他们在页面中找到的每个链接来预先缓存页面,因此用户在点击它们时会得到更快的响应.我不确定这是否仍然适用,但如果是这种情况,那么从理论上讲,一旦有用这种加速器的用户在登录后就会被赶出应用程序,因为她的加速器会找到并检索注销链接,即使她从未点击过它.

到目前为止我所阅读的所有内容都建议POST应该用于"破坏性操作",而不改变应用程序内部状态的操作(如查询等)应该用GET处理.基于此,这里真正的问题是:

从应用程序注销被视为破坏性操作/是否会改变应用程序的内部状态?

architecture rest post get

393
推荐指数
6
解决办法
7万
查看次数

ViewModel中的INotifyPropertyChanged与DependencyProperty

在Model-View-ViewModel体系结构WPF应用程序中实现ViewModel时,似乎有两个主要选择如何使其成为databindable.我已经看到了DependencyProperty用于View将要绑定的属性的实现,我已经看到了实现的ViewModel INotifyPropertyChanged.

我的问题是我应该何时优先选择其中一个?有任何性能差异吗?将ViewModel依赖项提供给WPF真的是个好主意吗?做出设计决定时还需要考虑什么?

architecture data-binding wpf dependency-properties mvvm

349
推荐指数
9
解决办法
7万
查看次数

软件设计与软件架构

有人可以解释软件设计和软件架构之间的区别吗?

进一步来说; 如果你告诉别人告诉你"设计" - 你期望他们出现什么?"架构"也是如此.

我目前的理解是:

  • 设计:特定模块/系统部分的UML图/流程图/简单线框(用于UI)
  • 架构:组件图(显示系统的不同模块如何与其他系统和其他系统通信),要使用的语言,模式......?

如我错了请纠正我.我已经提到维基百科有关于http://en.wikipedia.org/wiki/Software_designhttp://en.wikipedia.org/wiki/Software_architecture的文章,但我不确定我是否正确理解它们.

architecture definition

342
推荐指数
11
解决办法
22万
查看次数