微信号:infoqchina

介绍:有内容的技术社区媒体

Q新闻|美国政府Web设计新标准;Android 6.0“棉花糖”发布;关于SQL的一些谬论

2015-10-17 07:58 Q新闻


1
不建议使用Bootstrap
来自美国政府的Web设计标准


近日,美国政府内部核心数据机构之一18F在官方网站上发布了一份Web设计标准。该标准由18F和美国数字化服务(USDS)共同制定和维护,包含一个开源UI组件库和一份面向美国联邦政府网站的视觉风格指南,目标是为创建简单、易用、美观的政府网站提供指导。以下是其所遵循的四项基本原则:


最好、最简单——为设计和开发人员提供简单易用的工具,使他们可以高效地为美国人民提供高质量的政府网站。


易访问性——创建可以满足Section 508易访问性标准的工具。


灵活性——模式和设计要有很好的适应性。虽然这些指导原则鼓励体验一致,但也允许每个机构定制自己的风格。


可重用性——重用那些经过政府和私有部门检验的、可靠的最佳实践。


Matthew Mombrea是一名软件工程师,同时也是Cypress North的创建者。据他报道:


从字体、CSS预处理器的使用,到命名规则,再到如何组织文件夹,甚至是设计可以帮助开发人员开始新项目的模板,该标准均定义了一种恰当的方法。


而让Matthew感兴趣的,不只是该标准选择的那些框架,还有没有选择的那些框架。比如,虽然Twitter Bootstrap可以让开发者快速完成新的构建,而无需考虑组件风格的每个细节。但来自美国政府的这份标准却不建议使用这个使用频率非常高的框架:


18F特别不建议在生产环境中使用Twitter Bootstrap,这一是因为它教条式的风格很难在定制设计工作中应用,二是因为其CSS样式将语义布局指令直接放在了HTML class中。


对于CSS,该标准建议使用Sass作为CSS预处理器,并使用Bourbon框架进行布局开发。如果不能/不想使用Sass,那么该标准还推荐了来自雅虎的、更加轻量级的Pure.css。


作为一名对Web开发趋势和工具非常熟悉的软件工程师,Matthew表示:


我不得不承认,对我而言,这在某种程度上是一种警醒……在此之前,我从来都没听说过Bourbon。当我阅读了这份规范,我开始认识到它们的合理性,并且同意他们对bootstrap的评价。


截至目前,作为一个开源项目,该标准的制定尚处于起步阶段。



2
Android6.0“棉花糖”发布
新版“棉花糖”系统SDK特性描述


Google宣布在其Nexus设备上发布代号为"棉花糖"的Android 6.0系统,预计该版本操作系统将在更多设备上应用。


新版"棉花糖"系统的SDK为开发者引进了一些新特性,例如:


扩展的运行时权限——该功能允许用户在运行时管理app的权限。在此前的Android版本中,用户是在首次安装app时给app设置权限。在Android 6.0版本中,开发人员可以使用新的requestPermissions()方法在运行时请求权限。同时,也可以使用新的checkSelfPermission()方法检查一个app应用是否已经被赋予某项权限。


短暂休眠(Doze)和App空闲待机模式——该模式用来提高电池使用性能。Doze是一个新模式,手机没有接电源并被静止安放时会进入该模式。在Doze模式中,手机设备会被定期唤醒并执行一些挂起的操作。此外,有段时间没有被使用的app会进入待机(standby)模式,此时系统会禁用该app的网络访问并执行一些其他操作。开发人员需要了解这两种模式,确保开发出来的app能够在6.0系统下正常工作。


BoringSSL代替了OpenSSL。


其他对开发者有影响的更新包括: 废除了Apache HTTP Client,转而使用HttpURLConnection;废除了使用可编程的方式访问设备的本地硬件ID; 更多的改动请参见上面的文档。


Android 6.0"棉花糖"系统将很快搭载到Google各个旗舰设备上,包括 Nexus 5, Nexus 6, Nexus 7 (2013), Nexus 9, Nexus Player, 以及 Android One。根据Ars Technica的分析, 目前还不确定其他设备是否会采用"棉花糖"系统,具体的时间表取决于手机生产商。开发人员可以使用Google官方的镜像安装“棉花糖”,不过有报道称,这么做最终可能会清除所有数据,原因可能是由于新的权限系统会导致应用程序崩溃。



3
关于SQL的一些谬论
也许你对SQL的认识是错的


Lukas Eder是jOOQ母公司Data Geekery GmbH的创建者兼首席执行官。关于SQL,他经常听到一些错误的观点,比如:


SQL已经老化。我们为什么不使用更现代的技术?

像汇编一样,SQL是低级语言。你是喜欢使用汇编还是Java呢?类似地,你是喜欢使用SQL还是Hibernate呢?


近日,他发表了一篇博文,逐一反驳了类似的偏见和谬论。


谬论1:SQL已经老化


Lukas认为,许多人之所以认为SQL已经老化,是因为它是一项已经超过了30年的ISO/IEC标准,而且是以更为古老的关系代数学为基础。但他指出,知名网站Use The Index, Luke的作者Markus Winand已经很好地展示了SQL这些年的发展。现代SQL已经可以做许多超出通用编程语言开发人员意料的事。


谬论2:SQL是低级语言


Lukas并不认为SQL是同汇编一样的低级语言。相反,他认为SQL是主流语言中最高级的,因为SQL是唯一真正流行的第四代编程语言。而且,SQL还是唯一真正流行的声明式编程语言。使用SQL,只需要告诉机器需要什么数据,如何获取这些数据则由查询分析器完成。


谬论3:NoSQL更现代


“NoSQL比SQL更现代”,Lukas认为,这是NoSQL数据库供应商的宣传之词。他指出,如果(层次化)的JSON数据存储就是现代的话,那么SQL并不落后。许多关系型数据库提供商都已经集成了JSON。而且,即使是对半结构化数据而言,SQL仍然是最好的查询和数据批处理语言。实际上,SQL就是针对SQL出现之前的混乱而设计的。关于这一点,感兴趣的读者可以阅读《Codd的关系型观点——NoSQL兜了个圈又回到了原点?》。现如今,许多大数据数据库提供商都押宝SQL作为查询语言,Mark Madsen已经在Strata Conf大会上做了很好地展示。


谬论4:数据库不适合编写业务逻辑


在Lukas看来,这是最大的谬论,因为事实正好相反,数据库是进行统计运算的最佳之处。它有许多信息可以帮助运算,而且是在内存中进行。它还有约束、索引和其它各种元数据来帮助优化查询。这种优化使用纯Java代码可能是无法实现的。另外,这种方法还有一个巨大的优势,就是业务逻辑在一个地方实现,却可以供多个应用程序使用。


此外,Lukas还以窗口函数为例说明了SQL的简洁性,并指出,窗口函数及其它许多很棒的SQL特性自SQL:2003起已经实现标准化,使用这些特性,无需担心被数据库供应商锁定。


最后,Lukas总结道:


  • SQL能做的事比你知道的要多许多;

  • SQL比许多其它技术都要先进得多;

  • SQL是实现业务逻辑的理想之地。


版权归属InfoQ,禁止私自抄袭转载。

回复关键词React | 架构师 | 运维 | 云 | 开源 | 物联网 | Kubernetes | 架构 | 人工智能 | Kafka | Docker | Netty | CoreOS | QCon | Github | Swift | 敏捷 | 语言 | 程序员

投稿可勾搭:

邮箱:editors@cn.infoq.com

合作QQ:1073600161

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 蒙特卡罗模拟 程辉:目前云计算领域最有挑战的地方是IaaS 大数据教程—手把手教你Sqoop数据导入 实时上报 iOS Log 的实现 国外的视觉设计好在哪里