The Clean Architecture 原文链接 : The Clean Architecture 译文出自 : 开发技术前线 www.devtf.cn Robert Martin 译者:zimoguo 校对者:Mr.Simple 在过去的几年中,我们已经看到了关于系统框架的一些想法 : Hexagonal Architecture(六角架构)(a.k.a. Ports and Adapte
函数响应式编程是一个来自90年代后期受微软的一名计算机科学家Erik Meijer启发的思想,用来设计和开发微软的Rx库。 Rx 是微软.NET的一个响应式扩展。Rx借助可观测的序列提供一种简单的方式来创建异步的,基于事件驱动的程序。开发者可以使用Observables模拟异步数据流,使用LINQ语法查询Observables,并且很容易管理调度器的并发。 Rx让众所周知的概念变得易于实现和消费,
在并发编程的传统线程模型中,线程之间的数据共享需要通过锁来保持一致性(consistentBalance),当数据产生变化时,还需要使用条件变量(condition variable)对各个线程进行通知。 某种程度上,Haskell 的 MVar 机制对上面提到的工具进行了改进,但是,它仍然带有和这些工具一样的缺陷: 因为忘记使用锁而导致条件竞争(race condition) 因为不正确的加锁顺
恭喜通过了Camper Chat指南的学习。在开发过程中,我们学到了很多,主要是以下几点: 导航 使用侧滑菜单 使用PouchDB存储本地数据 使用Cloudant存放远程数据 使用Facebook API的验证和其他功能 实时更新和展示数据 改进的空间永远都存在,特别是当你学习事物的时候。遵循指导手册固然很好,但是自己去学习弄清楚一些事情就更完美了。希望你有足够的背景知识来自己完成一些功能扩展,
这节课中我们将稍稍改动一下模板添加一些类,我们还是创建一些自定义的样式,同时也将覆盖一些应用级的SASS变量。如果之前完成过其他原因,那么你基本知道本节课的实际内容不多,没有那么难,唯一不同的是我们将添加一些自定义动画。 动画,使用得当的话,可以让你的应用看起来,感觉起来质量更高。当使用不当的时候,适得其反,甚至引发效率问题。 基本样式 我们先添加全局基本样式让他稍微漂亮些。首先,我们将要修改va
虽然我们完成了应用的大部分功能,但是本节课将是最大最难的那个。我们将使用PouchDB来存储信息而不是直接将他扔到信息数组里面去。 PouchDB是一个浏览器内的NoSQL数据库,灵感来自CouchDB项目。他最大的功能是允许存储离线数据,当应用再次上线之后会自动从远程数据库同步数据。和使用Ionic提供的SqlStorage一样,使用PouchDB保证你存储的本地数据不会被随机擦除。 普及NoS
明显这是我们应用中最重要的功能之一,但是实现起来蛮简单的。最难的部分是整合PouchDB和Cloudant,我们稍后实现,目前我们只要给登录的用户提供想屏幕上添加信息的能力就可以了。 我们也会利用导航来绑定一些东西 — 我们有一个带有选项的菜单但是啥事都没做,和一个什么都没有的about页。 添加信息 在咱们的home也类定义中,我们已经设置了输入框和this.chatMessage变量的绑定,以
本节课中我们将整合Ionic Native中的Facebook插件,这样用户就可以在应用中获得认证,同时我们也可以做其他的事情例如获得用户信息。使用Facebook可以做大把的事情,我不会一一赘述,你还是看文档来的爽快些。 使用类似Facebook API类似的社交认证给我们带来了大量的好处。他帮助我们节省了时间去创建自己的认证后端服务(这里面包括了创建数据库,存储用户安全证书,操作密码重设逻辑等
这个应用中我们将要实现一个实际的普通页面工作流,具体讲就是,一个登录页引导至主应用。在大部分需要用户登录验证的应用中,都会首先显示验证屏幕,只有在用户登录成功之后才会来到主应用。 在我们这个应用中,我们会展示一个登录页,其中有一个使用Facebook登录的按钮,这个按钮会导向一个带有侧滑菜单布局的页面。咱们的登录页非常简单(至少目前是这样的)所以我们开始吧。 > 修改 src/pages/logi
为了能够在项目里面可以使用这些页面和服务,我们需要将它们添加到app.module.ts文件里。所有我们自己创建的页面都需要添加到declarations数组和entryComponents数组里,所有我们创建的数据提供者都需要添加到providers数组,其他自定义组件或者管道(pipe)只需要添加到declarations数组即可。我们的数据模型只是一个简单的类,我们需要在任何地方使用,所以不
本课是在旅程继续进行之前的一些准备工作。我们要生成应用,设置所有组件和需要用到的Cordova插件。完成本课之后我们应该有一个万事俱备的项目骨架,可以接着进行编码工作。 开始新项目的第一准则是确保使用的是最新版的Ionic和Cordova,如果最近没有更新过的话可以运行如下命令: npm install -g ionic cordova 或者 sudo npm install -g ionic c
这个应用是很大个的,是“一个挑战”,是“万中选一”,是我们本书制作的最后一个应用,我觉得这个应用很适合用来作为结尾。相对与之前应用来讲,这个应用不需要完成之前的应用作为前提,因为这个应用所有东西都会详细解释,即使是之前应用中已经解释过了,但是这个应用的难度也上了一个台阶,我不会讲太多的基础知识。所以,如果你现在还是对Ionic 2不大舒服的话,你还是先熟悉一下其他的应用吧,因为他们简单些。 本部分
apt-get Ubuntu 系统软件包管理器 apt-get 命令是 Debian Linux 发行版中的 APT 软件包管理工具。所有基于 Debian 的发行都使用这个包管理系统。 apt-get install xxx #安装软件 apt-get remove xxx ##删除软件 apt-get purge xxx #删除软件并删除配置文件 apt-get autoremove x
Qt软件工具包包含了编译桌面或者嵌入式应用程序的工具。最新的版本可以从Qt-Project下载。我们将使用这种方法开始。 软件工具包自身包含了一个维护工具允许你更新到最新版本的软件工具包。 Qt软件工具包非常容易安装,并且附带了一个它自身的快速集成开发环境叫做Qt Creator。这个集成开发环境可以让你高效的使用Qt进行开发,我们推荐给所有的读者使用。在任何情况下Qt都可以通过命令的方式来编译,
ecosystem 在Kafka的官方分发包之外,还有很多各式各样的和Kafka整合的工具。生态页面(ecosystem page)列出了很多这样工具,包括流处理系统、Hadoop整合、监控和部署工具等等。