作为分类目录的一个补充,在这里按照功能类别对系统设计开发中的一点心得和笔记作一个索引。其中部分是根据自己在查找网络资料时找到的内容的整理与演绎,在此感谢所有那些无私分享经验的人们。
作者: 微風
最终一致性(eventual consistency)引
一致性设计在分布式系统中是一个重要问题。如果一个系统同时使用多个子数据系统来存储与读取数据,就必须设计满足功能需求的一致性定义。如果系统对不同数据子系统进行操作的结果不一致,不但可能会使用户困惑,更可能引发更严重的数据问题或系统错误。一致性有多种级别,适用于不同的业务场景。对于金融等对数据一致性要求较高的行业,传统的事务可以提供较高的一致性保证。对于分布式系统等对性能(performance)和可用性(availability)要求较高的场景,牺牲一定的强一致性来换取更好的用户体验也可接受。最终一致性的具体行为根据实际需求不同,并无严格而精确的定义。本文仅作为一个引子,介绍最终一致性及与其相关的一些基本概念,方便读者对最终一致性有初步的认识,以便进一步阅读其他文章与资料,设计适合自身业务需求的系统数据一致性。
衍生数据系统
衍生数据(derived data)指的是可以由另一些数据通过某种可以复现的处理来再次生成的数据。通常,衍生数据用于加速读取数据库中的某些数据。索引(index)和缓存(cache)都是典型的衍生数据。如果衍生数据丢失,仍可以通过原始数据再次生成。
单个数据库系统中的索引属于其所存储数据的衍生数据。有时,数据库的索引可能会由于性能或成本考量而被维护在另一个系统之中,此时,该索引系统即为一种衍生数据系统。该索引系统中的数据可以通过数据库中存储的数据重新生成(即使往往开销过大而不实际),反之则不行。这种情况下,如何维护源数据库数据与索引数据库系统之间数据的一致性,值得系统设计者考虑。
事务与 ACID
事务(transaction)是一种传统的确保数据一致性的方式。在一个系统中,各种类型的错误都可能会破坏数据的一致性。网络问题、硬件故障、远程服务不可用等原因都会导致数据操作部分或彻底失败。
事务可以将一组数据读写操作合并为一组,构成一个逻辑单元,作为一个单独的数据操作执行。一次事务操作要么完全成功(提交),要么彻底失败(中止并回滚)。如果事务失败,它能被安全地再次执行。
ACID 是原子性(atomicity)、一致性(consistency)、隔离性(isolation)与持久性(durability)的首字母缩写,它通常用来描述事务的性质。
原子性减轻了多步操作中途出错时造成的问题。如果一此事务失败,原子性将确保没有数据发生变化,事务可以被安全地重新提交。
一致性事实上不是数据库的一种属性,而由具体的应用需求定义。一个应用程序可以借助原子性与隔离性来实现一致性,而这可能不仅仅是单个数据库系统的问题。一致性有多种等级,在此不具体展开介绍。
隔离性与竞争(race condition)及并发(concurrency)有关,用于解决多个事务同时执行时的相互干涉。
持久性在数据库系统中指数据应当在事务提交成功后能安全而长久地被保存,且不会因系统故障而丢失。
事务可以在很大程度上确保数据质量。然而,最近流行的 NoSQL 数据库大多不提供事务支持,以免它过高的性能开销损害它们试图提供的高可用性。 从事务的角度来看,数据存储与索引是不同的数据库对象。 许多数据库系统,包括微软 Azure Cosmos DB 等分布式数据库都提供了单对象事务支持,但并未提供完全的多对象事务支持。
异构分布式事务
异构分布式事务( heterogeneous distributed transaction)指的是事务的参与者可能由两种或多种不同的技术组成。例如,由不同供应商提供的数据库,各司其职的数据库与索引系统,甚至是消息分发系统等非数据库系统。异构分布式事务也需要满足提交(commit)的原子性,这比实现数据库内部的事务更为困难。
两阶段提交(2PC,Two-Phase Commit)是一种著名的强一致性保证。对于一次事务请求,所有子系统都将确保数据被写入或最新的数据被读取。对于由一个索引系统和一个数据库系统构成的异构分布式系统,在完成一次两阶段提交后,索引系统中存储的数据必然能反映数据库系统的最新情况,对数据库系统的更新操作也总会反应在索引系统中。
重试策略
重试(retry)即再次执行某一操作。在设计数据系统时,重试策略也是一个需要考虑的问题。不恰当的重试可能会导致以下问题:
- 如果重试请求的响应因网络问题而没能返回,再次重试可能会使开销倍增
- 如果问题在于系统超负载,重试可能会导致问题进一步恶化
- 重试只能解决暂时性问题(如死锁、隔离性被违反/isolation violation,或短暂的网络故障等),因此在重试前有必要判断重试是否可能解决问题
因此,在设计重试策略时,超时、最大重试次数、两次重试之间的间隔等都需要纳入考虑。
最终一致性与BASE
与事务提供的 ACID 属性不同,最终一致性提供的一致性保证也被称为 BASE(Basic Available, Soft state, Eventual consistency)。BASE 确保如果系统之后没有更多的数据操作,最终对系统的所有访问都将返回相同的结果。BASE 更多地是确保系统使用可用,但在系统数据收敛之前,它可能返回不同的结果。 最终一致性的实际行为由具体应用定义,无法统一阐述。
采用最终一致性的数据系统通常不要求数据操作失败时执行回滚(rollback)。用户或系统日志将得知操作失败,但在另一次成功的操作之前,数据的不一致问题并不会被自动修复。
之所以最终一致性会出现,很大程度上是因为如今的网路应用常常要处理规模巨大的数据与请求。此时,更强的一致性往往并不现实,高可用性反而是更系统更核心的设计目标。
_
以上是讨论最终一致性之前可能需要了解的一些前置概念的简述,以帮助读者快速了解系统数据一致性设计时的一些主题,并能有目标地查阅更多资料与文献。水平有限,如果纰漏,欢迎批评指正。
Weißer Ritter
第16弹,「Weißer Ritter」。
_
许久没有拿起画笔,终于借着周末得闲,踩着参加工作整六年的点,完成了新作品。 前一阵写了防御性驾驶心得,趁热打铁,这次的画便以车作为主题。和以往一样,图文无关。
某人说,猫多可爱,还不如画猫。于是决定配上黑猫。黑猫安静、深邃、外冷内热,最重要是黑不溜秋没有花纹比较方便,比之前美短简单不少。
我也喜欢猫。
_
人们喜欢纪念整数,即使那也不过是人生中平常的一天。 离开校园之后,自己的时间似乎就开始加速。日复一日,转瞬即逝。至今还清楚记得六年前的情景。虽然之前已有实习,但正式开始为期数十年的人生新阶段,总会引人遐想。如此不加筛选地记着各种各样的细节,也不知到底算是负担还是财富。所以,偶尔也羡慕那些很容易忘记烦恼的人。
回望过去的这些年,对自己的行动力颇为惊讶。一方面,自己做了若干不寻常的决定,直接改变了自己的人生轨迹。每一次都在之前无法想象,以至于现在的生活在几年前从未曾设想过。那些选择并不容易,过程也并非事事如意,但现在想来自己在每一次选择时都并没有经历过多的犹豫,直到现在也并没有后悔,往好的方面可说是未留遗憾。这便是好的。另一方面,一切又似乎都按部就班。每个月的计划、每一年的目标、五年一期的中期规划,尽管遭遇到了大大小小的失败,也总结反思出不少经验与教训,一路坚持,到最后竟也没有和最初的预期发生太大的偏差。甚至今天再读自己当年的初心,也并没有任何的违和感。前一阵被吐槽说想法始终过于 naive,但我并不讨厌这个评价。这个世界总是需要有些人在某些事上 naive ,不是么。相比过分老成,也许还是保持天真,看到的世界会更有意思。
_
漫无目的地写下些有的没的,尚不成篇,像是在回答自己,又算不上是答案。那些只是引子。手指敲击着键盘,心中已思绪万千。回忆已似潮水涌上心头,每一段都很有画面感。回想起过去每天经过的路,回想起生活了六年的地方,回想起曾经的自己。
有轨电车,我有些想念。
_
防御性驾驶心得
从考取驾照至今已有四年,在幸运地“抽取”到稀有而高价的牌照后开始日常驾车通勤生活,现在也是三年有余。 三年说长不长,说短不短。 一贯谨慎的做事风格,加上更重要的好运气,除了停在小区时被人追尾外,尚未发生道路交通事故。之前在申请公司车库停车许可时强制参加了防御性驾驶线上培训,回想起来,确实对降低事故风险有帮助。于是借此机会,结合自己的实际经验,聊聊防御性驾驶。
防御性驾驶(defensive driving)起源于汽车大国美国,大意是整理出一套驾驶行为的指导思想,让司机在驾车过程中尽可能多地做好准备,以应对突如其来的危险。防御性驾驶的相关内容在互联网上可以找到很多,这里不再赘述,更多地介绍自己在实践防御性驾驶三年来总结的心得。
了解车辆并做好维护保养
如今汽车越来越普及,驾驶汽车不再像过去那样是专业人员或具有较高技术素养的人的专利。遗憾的是,不善于操作机器、不愿意阅读说明的人越来越多地成为司机。对很多人来说,汽车是朝夕相处的交通工具,充分了解自己的汽车,不仅有助于最大程度上发挥汽车的性能,延长汽车的使用寿命,更可以确保自己的人身安全。
为了了解汽车,最有效的手段便是阅读由汽车厂商专人编写的使用手册,了解汽车的性能、功能、保养与应急措施。其中,最低限度是充分熟悉车辆各种指示灯的操作方式及使用场景,了解包括换挡、手刹、自动启停、定速巡航等运动功能的操作逻辑与效果。对于提供了应急报警功能的汽车,要了解其使用方式。以上这些不仅要知晓,还要实践,以加深记忆。
另外,应根据车辆保养手册建议的周期对车辆进行维护与保养,一方面确保能及早发现车辆硬件问题,一方面可以延长发动机等关键零部件的寿命。
熟悉交通规则并在严格遵守
能够考取驾照,理论上应该已经掌握了基本的道路交通规则。然而再一次遗憾的是,目前的现状是,在没有监控摄像的道路上,无视交通规则的司机占了绝大多数,是道路安全的极大隐患,也是防御性驾驶尤为重要的一个主要原因——如果其他人大多危险行车,能够保护自己安全的,就只有自己了。
在驾校学习并实践的交通规则通常无法涵盖实际情况,因此,在开始开车上路后,依然需要保持学习的心态,复习遗忘的知识,并主动学习新遇到的交通标识。
交通规则是一套需要所有道路参与者共同遵守的协议,它经过长期演化,出发点在于从理论上尽可能减少事故风险,提高道路利用效率。出于各种各样的实际原因,100% 遵守交通规则来讲并不现实,在有些情况下也可能不是最优选择。然而,就绝大多数日常驾驶场景来讲,遵守交通规则对减少事故有非常显著的正面效果,也是防御性驾驶的前提。不闯红灯;按照道路车速行驶,尽量与车流速度一致;如非必要,不(大幅度)超速;不违规变道;进入隧道后开启大灯等,既是交通法规的内容,也对安全驾驶有重要作用。
确保身体状态并始终充分掌握环境
大量的事故起于反应不及,而司机的身体状态对反应速度有关键影响。在任何情况下都不得酒后驾车,在服用嗜睡效果的药物,或缺乏睡眠的状态下,也应避免开车。有能力始终保持高度的注意力,也是防御性驾驶的根基。
每一个司机都应充分了解汽车提供的观察外部环境的途径,包括但不限于左右后视镜、内后视镜、提供声音警报的测距雷达,或是能够在屏幕上投影的盲区摄像头画面等。司机在驾驶过程中应尽可能多地利用所有这些设备,根据当时地车流密度与环境复杂度,以恰当的频率,持续观察车辆周围地环境,包括道路与障碍物,自身与相近车道上的其他机动车,以及道路周边的非机动车与行人等。此处的要点在于保持较高的观察频率,例如,根据情况,每隔数秒至数十秒确认两侧后视镜,以及在观察时尽量广地确保观察范围,而不仅仅集中于车辆四周。一位有经验司机,应当有能力通过观察,在脑中建立以自车为中心,后方数十上百米、前方数百米的概况,能在较早期就发现并意识到接近自车的物体,并随时留意路口、人行横道、学校医院厂区出入口等可能有其他车辆与行人闯入的高风险地带,尽早做出减速等相应的防御操作。在十字路口右转穿越人行横道但左侧停有大型车辆等有明显有障碍物遮挡视线的场景,应减速并通过改变观察角度,错开车辆A柱盲区,提前确认通行路线上没有行人或非机动车闯入。
这里有两个容易忽略的技巧。其一,利用车内后视镜观察车辆后方。以个人经验来讲,车内后视镜能够提供远优于左右后视镜的观察效率。首先,车内后视镜面积较大,距离人眼较近,司机甚至无需明显转动头部就能确认后视镜画面。其次,对于大部分车辆来说,车内后视镜可以透过车辆后挡风玻璃观察到包括当前车道在内的左右至少五车道的情况,且一定的变形效果可以方便司机确认后方车辆是否在加速或减速。充分利用内后视镜可以让司机较仅使用两侧后视镜提前掌握后方车辆的变道与超车意图并做好准备,显著降低因后方车辆急速超车而造成的危险。令人匪夷所思的是,如此实用的后视镜使用在驾校中几乎不会教授,大部分人对此一无所知,或是把内后视镜当作观察后排的工具,或是用杂物堆满后挡风玻璃,物理上限制内后视镜的功能。尽管内后视镜被严重忽略,它仍然是落实防御性驾驶的重要工具。其二,根据声音来判断两侧车辆。车厢静音水平虽说是越高越好,通常情况下,四周其他车辆的发动机噪音仍无法被完全隔绝。因此,可以将发动机噪音作为辅助渠道来判断左右两侧是否有车辆从后方靠近。在不方便观察后视镜,或者存在视觉盲区时,声音可以很好地辅助司机判断两侧是否有车辆正在加速,意图超车。
以上这些手段看似麻烦,增加了驾驶的复杂程度,却都能实实在在为司机争取到多半秒一秒的反应时间。很多时候,宝贵的零点几秒就能避免一次事故。
善用灯光提示其他车辆
在自己尽可能掌握其他车辆的行动后,下一步则是尽量让其他车辆也掌握自己的行动。按理说鸣笛也是一种有效手段,不过现状是道路上常常禁止鸣笛,住宅区内反而肆无忌惮,鸣笛的使用场景有限。灯光虽然也有其局限性,但通常距离也更远,合理使用,能够避免一些不必要的事故。
建议始终打开日间行车灯或示廓灯、在暴雨与大雾天气打开雾灯、在隧道中打开前光灯,这些都是告知周围自车位置的有效手段,能帮助对方提早做出判断。对于有自动大灯功能的汽车,建议始终使用自动大灯,以免忘记使用车灯。很多人过低地估计了日间行车灯与示廓灯的作用,实际上,对于视力一般,或是夜间视力一般的人,开启小功率的车灯可以非常有效地帮助他们识别,最终提升自己的行车安全。
在变道前,应提前两三秒打开转向灯。在转向开始后才使用转向灯和不使用转向灯无异,都是有严重事故隐患的危险行为。换个角度讲,给相邻车道司机增加两秒的准备时间,除非对方打算趁机加速通过,否则很难会让对方因反应不及而发生车祸。如果从后视镜发现对方开始加速,因立即推迟变道,因为这种行为极易引发事故。
在准备超车和正在加速即将越过侧面车辆时,可通过快速闪烁闪光灯提醒对方。事实上,如果大多数人可以做到变道前提前打开转向灯,这一步骤并非必须。然而,由于不打灯就变道的比例是如此之高,为了防御,就必须自己主动发出提醒,警告侧前方车辆不要突然变道,告知他们侧后方有车辆正在加速前进。除了使用灯光,还应观察前车是否有正在向车道边缘偏离等变道征兆,在超车时保持高度警惕。
预留提前量给自己和他人
对于上下高架匝道、变道、急刹车等行车状态变化,应尽可能早地做好准备。一方面,提前做好准备,有助于自己能更镇定地驾驶,不会因为慌乱而做出错误操作。一方面,结合灯光等方式,其他车辆也能更早地意识到情况变化,有反应的时间。
预留提前量不仅适用于驾驶途中的具体操作,也适用于整段旅程。对于上下班通勤,适当提前出门,预留充足的时间,可以避免因赶时间而仓促开车,增加事故风险。时间宽裕也会减弱超车动机。根据实际经验与观察,很多时候超车带来的收益远小于想象。简单的数学计算可知,对于长达数十公里的市内通勤,超车可以带来的时间节省往往不会超过十分钟;在拥堵的高架道路上反复左右变道超车的“高手”最后很可能也就比原先提前三五个车位而已。
在条件允许的情况下,适当提前或延后旅程,避开每天有规律的道路拥挤时段,可以有效降低事故风险。一方面,更少的车辆总数和更低的车流密度直接减少事故发生的可能性,车辆间距增大,反应时间增加;另一方面,危险性车的驾驶员通常也会随着路面上车辆的减少而成比例减少,单一危险驾驶行为本身的风险也会被进一步稀释。另一方面,更通畅的道路对提升驾驶心情,甚至降低油耗都有帮助。
保持心态平和并经常反思
经常驾车,难免遇到各类马路杀手或野蛮驾驶行为。保持心态平和,不与其他司机怄气,也是减少事故隐患的重要一点。人在冲动时往往会忽视周围环境,在驾驶时这是大忌。相互挑衅还可能造成冲突升级,诱发对方做出过激行为,得不偿失。
另外,人非圣贤,在驾驶过程中总会偶尔有做出危险动作的情况发生。即使没有被监控摄像拍到,甚至并没有违法,也应对问题进行反思,理解做出危险行为的原因和可能的风险,并提醒自己今后注意,这样才能避免驾驶风格随着驾龄增加而越来越粗犷,事故风险越来越高。
以上便是自己对于防御性驾驶的一点心得。一家之言,也尚未可以自称老手,仅供参考。愿事故越来越少,驾驶越来越轻松,而不再是负担。
——写于自动驾驶尚未普及之前
背水一战的新旗舰 —— 索尼(Sony)Xperia 1 使用感想
在 MWC 2019 发布后的三个月,索尼备受关注的最新旗舰智能手机 Xperia 1 终于在经过一番波折后于最近顺利上市。对于销量持续断崖式下跌,连年巨额亏损的索尼移动来说,这款集合了索尼集团各部门力量的最新旗舰,无疑是部门架构调整后新的电子产品与解决方案(EP&S)业务部门的一份重要答卷。于是,从各种意义上来讲都意义重大的 Xperia 1 毫无疑问进入了自己的预定清单,首发入手。
本文基于中国大陆地区所售 Xperia 1 写成,产品型号 J9110。本机支持主卡副卡 4G 网络双卡双待,完整支持中国移动联通双 4G 网络所有频段,国行固件支持移动联通电信的 VoLTE 网络,可在支持电信 VoTLE 的地区通话与收发短信,支持国内所有运营商的 2G GSM 网络,不支持中国移动 TD-SCDMA 3G 网络与中国电信 3/4G 网络。由于硬件一致,该型号可以与包括香港、台湾地区版本在内的系统固件通刷。不过截至发售日,固件通刷配置似乎尚未就绪。
国行 Xperia 1 首次内置 Google 核心服务框架,能够在网络条件允许的情况下使用各类 Google 应用以及依赖 Google 服务的海外应用。此外,据传此次 Xperia 1 的国行销量会对今后中国区政策产生巨大影响,并且 Xperia 1 大陆与港台地区的售价及发售日相当。综合考虑之后,首次决定购买国行版本作为日常主力设备。
本文内容基于 2019/06/06 发布的 55.0.A.2.278 系统版本,目前主要介绍上手两天的第一印象,之后将不定期更新。
世界唯一 4K HDR OLED 屏幕
Xperia 1 最为显著的特征便是这块被命名为 CinemaWide™ 的 21:9 长宽比 4K HDR OLED 屏幕。 该屏幕基于 SID 规格,分辨率为 3840*1644像素。
Xperia 1 是目前唯一一款搭载了支持 HDR 的 4K OLED 屏幕的智能手机,也是截至今日市面上第四款 4K 屏幕手机(前三款分别是索尼 Xperia Z5 Premium、Xperia XZ Premium 与 Xperia XZ2 Premium)。这四年里,索尼的智能手机 4K 屏幕也从满足分辨率、支持 HDR 到 LCD 升级 OLED,不断完善与进步。
总的来讲,Xperia 1 的这块 OLED 屏幕显示效果优秀,敏锐的人仅凭一眼就能体会到它的素质出众。主观上,Xperia 1 屏幕的感官体验明显高于同级别 OLED 产品,不存在类似价位产品的 OLED 屏幕上存在的字体边缘发虚或是有明显伪色等问题。尽管这块由三星提供的 OLED 屏幕面板也采用了 Pentile 排列,但更高的像素密度一定程度上缓解了画面锐度不及 RGB 排列的不足。
索尼配合 Xperia 1 新开发了 X1™ for mobile 图像处理引擎,取源自 Bravia 电视图像处理芯片的 X1 之名,来强调其高画质的特征。和以往的 X Reality for mobile 一样,出于省电等原因,该引擎依然是软件实现。不过根据 Xperia 1 开发团队访谈可知,X1 for mobile 引入了一些新的图像处理算法,专门针对 OLED 的特性以及手机应用的场景做了调整,并首次在过去逐帧处理的基础上进一步对每一帧图像分区处理,对图像色彩与分辨率等属性进行优化。在播放分辨率不足 4K 的视频内容时,X1 for mobile 还会自动把分辨率升格至 4K。对于 SDR 内容,它也会通过算法将其升格为 HDR 级别。这块屏幕同时还支持 DCI-P3 100%、D65 标准光源等专业标准。
Xperia 1 屏幕显示的另一个亮点是新增的创作家(Creator) 模式,在应用支持时,能够以 HDR 高动态亮度范围、BT.2020 色域、10bit 色深(软件模拟 8bit 硬件至近似 10bit 效果)的规格播放内容,还原电影导演在拍摄影片时的原始视觉效果,直接感受创作者想要传递的情感。对于优秀的作品,每一个场景都融入了创作者有意识的设计,强行用算法调整画面效果绝非最佳做法,甚至可能损害作品的完整性。Xperia 1 的创作家模式则为解决这一问题而生。目前,创作家模式会在 Netflex 与 CineaPro 两个应用中自动启用,用户也可手动选择切换。
在创作家模式的开发过程中,位于日本神奈川县厚木市的专业摄影器材团队也提供了大量支持。在不少好莱坞影片的演职员表中都有 Thanks to Sony ATSUGI 的致谢,而 Xperia 1 的开发团队在调教这块屏幕时每周都会与 ATSUGI 团队沟通交流,力求实现近似索尼自家的专业监视器 BVM-X300 的画面风格,使 Xperia 1 在一定程度上能够成为导演确认自己作品效果时便携的参考依据。
说完了 Xperia 1 这块屏幕的亮点,也不得不指出它存在的不足。
首先,从规格上来讲,Xperia 1 这块 4K OLED 屏幕的像素密度比前三款 4K 液晶屏幕的产品要低,结果就是在浏览照片,尤其是纹理细节丰富的人工物体场景(如建筑)时,画面的清晰度相比之下反而由肉眼可见的下降。即使是第一代的 Z5 Premium,也有比 Xperia 1 更锐利清晰的画面显示。一方面,Xperia 1 从规格上的像素密度就较低,长边152mm:3840像素,对之前的 121mm:3840像素,密度直接打了八折。另一方面,尽管之前的 4K 屏幕也非标准栅格排列,Xperia 1 的 Pentile 排列则直接损害了清晰度。两个因素叠加,画面清晰度降低也就无法避免。因此,尽管 Xperia 1 仍然是至今清晰度最高的 OLED 屏幕智能手机,4K 这一亮点的实际价值却不如它的前辈们。
其次,Xperia 1 的屏幕最高亮度平庸,远逊于前代 OLED 机型 Xperia XZ3。尽管在系统应用中有一个屏幕亮度增强插件,能让 Xperia 1 的户外强光下高亮度显示,但在正常的室内使用场景下,Xperia 1 的最高亮度明显不足。据 GSM Arena 测量,Xperia 1 屏幕亮度为标注模式 391 尼特,增强模式 665 尼特,较 Xperia XZ3 标准模式下的 442 尼特低不少,和三星 Galaxy S10+ 的 385/793 尼特在标准模式下相当,不及 iPhone Xs Max 的 653 尼特。总的来讲,Xperia 1 的屏幕亮度设置不是很理想,屏幕不够亮恐怕会是很常见的不满。就算索尼有自己的考虑,也应该给用户开放更多自由选择的权限。而且由于最高亮度不足,HDR 效果说实话不够明显,损害了 Xperia 1 的主打卖点。比较 Xperia 1 与 Xperia XZ3 及 Xperia XZ Premium,在显示夜景照片等内容时,如果不把屏幕亮度拉到最高,Xperia 1 的实际效果反而是最差的。OLED 黑色不发光的优势被最高亮度不足所拖累,对比度和主观画面明了度都甚至不及液晶。
撇开分辨率的物理限制不说,Xperia 1 在最核心的卖点上出现亮度不够的问题令人遗憾。好在看起来这个问题有可能通过软件更新改善,只能寄期望于今后的系统升级。
最后,Xperia 1 的 OLED 屏幕据称是全程 240Hz PWM 调光。不过可感知的频闪现象较其他一些同价位尤其是高性价比产品而言要弱不少,在高亮度下,很难观察出频闪,实际使用时也没有很快出现因频闪造成的不适。这一点来讲 Xperia 1 的屏幕没有失分。
比较有意思的一点是这次 Xperia 1 出厂默认白平衡是冷色调(偏蓝)。几年前曾经看到有文章说东亚人偏好冷色调,中间色温反而会觉得发黄,于是联想这次的默认设置是不是缘于此。如果真的有心安排,对于向来不拘小节的索尼移动来讲,算是一个小小的惊喜。
可以说,Xperia 1 的屏幕虽然没有超越过去的 Xperia 自己,但无论时纸面参数还是实际显示效果依然在同级中属上乘,观看手机画面是一种赏心悦目的体验。在使用 Xperia 1 一周后,特地又去看了其它一些厂商今年搭载了 OLED 屏幕的旗舰产品,很容易就能感受到显示效果上与 Xperia 1 的差距。在屏幕这一点上,Xperia 1 没有令人失望。
创新的用户交互
配合这块 21:9 比例的超长屏幕,索尼的开发团队为其定制了特殊比例的分屏系统。
21:9 的屏幕恰好可以上下分割为横向 16:9 与纵向 16:9 两部分,适合一片观看视频一边聊天或浏览网页,下屏的输入法也不会过多挤占画面。即使不分屏使用,这块 21:9 的屏幕也很适合浏览网页或阅读文章,相比相近宽度的传统比例屏幕,它能同屏显示更多内容,减少滚屏距离。
Xperia 1 继承了去年 XZ3 的侧边感应功能,以一定节奏双击屏幕边缘即可启动快捷菜单,根据时间地点,列出用户此时此刻最可能希望打开的应用。常用的通知栏快捷开关、单手模式,以及快速分屏功能也会在菜单中一起显示。
侧边感应菜单需要熟练后才能灵活呼出,好在索尼在系统设置中提供了专门的练习模式,并提供了充分的自定义选项,也可以为特定应用关闭这一功能。
Xperia 1 较长的屏幕带来的直接问题就是难以触及画面上方。尽管自己手指较长,过去单手操作 XZ Premium 也毫无压力,灵活自如,但使用 Xperia 1 时也不得不配合手掌挪动手机才能按到顶部菜单。必绝大多数人在不启用单手模式缩小屏幕显示面积时,根本无法单手操作。侧边感应菜单一定程度上缓解了这个问题,至少为用户提供了一种在只能单手操作手机时,能相对容易地启动单手模式地途径。
以上这些要素虽有创新,但实际价值如何要打一个问号。是否需要分屏操作手机因人而异,至少这个功能对自己而言略显鸡肋。侧边感应菜单是有新意也有实用价值的交互方式,同时也很容易想象,它较高的操作门槛和熟练之前较低的成功率,必定会排除大量不那么喜欢微操作的用户。
在手机界面越来越同质化的今天,想要实现交互的创新绝非易事。Xperia 1 配合屏幕比例设计的这些微创新看似切入新的应用场景,却总不免有些花拳绣腿,强行寻找痛点。真正的交互革新,恐怕只能等待诸如折叠屏或更新式的硬件出现了吧。
迟到的三摄系统
除了屏幕,全新开发的三摄像头系统也是 Xperia 的主打亮点。
在最近一年,三摄逐渐取代双摄成为流行。最初为了提高画质而采用的黑白/彩色双摄,最终被适用于不同场景的长短焦双摄打败,后来不少厂商又增加了广角镜头满足用户风景拍摄的需求。在此期间,索尼迟迟没有追随潮流。去年因种种原因惨淡收场的旗舰 Xperia XZ2 Premium 上搭载了为视频拍摄画质提升专门设计的独一无二的实时双摄系统 AUBE™。尽管微光视频性能优异,这套系统却并没有找对用户痛点,随着 XZ2 Premium 一同成为了历史的眼泪。直到 Xperia 1,屈服于流行的长焦广角三摄系统才首次应用于 Xperia。
好消息是,Xperia 1 的三摄系统在硬件上没有辜负一年的等待。
Xperia 1 的三颗镜头分别为 26mm F1.6、52mm F2.4、16mm F2.4,且皆为1220万像素。Xperia 终于彻底放下了 Z 系列开始的高像素包袱,某种意义上表明了它背水一战的决心。得益于较低的像素,Xperia 1 的标准镜头在 1/2.6 寸的传感器上实现了 1.4μm 的像素尺寸,又辅以支持光学防抖的 F1.6 大光圈镜头,为成像质量的提升提供了硬件基础。双重相片二极管对焦技术则为夜间高速准确对焦做了贡献。
新开发的 BIONZ X™ for mobile 图像处理引擎性能也再次强化,它引入来自 α™ 相机团队的新算法,首次在智能手机上实现眼控对焦,并支持高达 10fps 的 AF/AE 全像素连拍,在拍摄移动物体时也能始终保持自然的对焦与曝光。此外,Xperia 1 新增 RAW 格式降噪,能在照片直出之前对原始信息处理与降噪,大幅提高夜景等光线不足环境下的成像效果。
视频录制方面,Xperia 1 支持光学与数字混合防抖,得益于传感器性能的改进,即使在夜间,视频防抖性能也相当出色,继续保持了视频防抖领域的业界领先地位。
除了硬件和算法的进化,Xperia 1 的相机系统也整合了一些流行功能,如软件模拟大光圈虚化功能,或是全手动设置快门速度并支持最长30秒的曝光时间等。这些模式绝不会是普通用户日常会频繁使用的功能,却能让有经验的玩家拍出效果出众的照片,让手机摄影更具有可玩性。
此外,4K HDR 视频录制、全高清960帧超慢速录像、基于笑脸与运动状态的预测对焦/预先拍摄功能,以及高级自动模式等传统功能依然健在。已有多年历史的高级自动模式日趋成熟,它利用 AI 算法智能识别用户所处的状态和拍摄的场景,自动从13种场景模式和4种运动状态中选取最佳模式,帮助用户拍下理想照片。
Xperia 1 的前摄像头采用了800万像素传感器与F2.0广角镜头的组合。同样地,美颜模式成为了相机内置的功能。索尼的美颜模式相比其它一些厂商来讲始终比较克制,最终的效果会相对更贴近自然。也不知道该说索尼死板,还是仍有追求。
不难看出,索尼对 Xperia 1 的相机寄予厚望,大中华区延期上市据说也与相机应用的最终调教有关,甚至此前的媒体试用也不提供相机的深入体验,生怕尚未达到最佳状态的软件破坏了 Xperia 1 拍照水准的第一印象。从结果上来看,Xperia 1 的成像质量较去年的 Xperia XZ3 有明显提升,能够比较轻松地在包括夜景等环境下拍出当前一流水平的照片。
出于习惯,以下样片在上传至电脑后均经过 Lightroom 模板调节曲线并增加10%左右的降噪,但没有特别精修。部分照片有裁剪。在上传时分辨率有压缩。
然而或许是由于赶工,Xperia 1 相机当前版本的软件体验无法令人满意。依旧略显复杂的交互逻辑也许可以说是传承,缓慢的相机启动速度与频繁的处理等待时间,则极大地损害了手机摄影的即时性。Xperia 1 的相机会在保存照片时进一步对照片进行处理,根据不同情况,用户甚至需要等待若干秒才能查看刚刚拍下的照片。如果触发了 RAW 格式降噪,Xperia 1 的相机甚至会在屏幕中央显示一个大型的环状进度条,期间用户无法执行其他操作。知道内情的人明白这是为了得到更高画质照片所付出的成本,但对普通用户而言,这就是意义不明的等待,是糟糕的使用体验。另外,目前的相机软件还存在启动相机时偶尔会不得不等待半分钟才能进入摄影状态,特定条件下对焦无法正常完成等 bug。画质高分,相机体验低分,是 Xperia 1 的现状。
现状绝非最优解,必然存在一种更合适的办法兼顾易用性和画质,现在只能寄期望于索尼日后推送的软件更新,让 Xperia 1 能够拥有名副其实的优秀相机。
回归的设计语言
九九归一,Xperia 1 的设计也回到了系列的原点。
硬朗的线条、金属边框、双面玻璃面板、侧面指纹识别、Xperia 传统的紫色配色… Xperia 1 似乎在向世人宣布,这是 Xperia 的重生,7年前惊艳世人的 Xperia 又复活了。
经历了去年 Xperia XZ2/3 系列的惨痛失败,索尼似乎认识到了坚持自己的风格才是最合适的。圆润的设计当然有它的优点,但随之而来较厚的机身厚度无疑会被批评。毕竟,两三毫米的厚度也许不会让使用者觉得不适,却必然会成为网络上数字游戏里的黑点。同时,放弃自己的特色也会让一直喜欢 Xperia 设计风格的人们选择观望。既没有吸引到新用户,又把老粉丝拒之门外,销量惨淡也无可厚非。
除了机身厚度,Xperia 1 这次还特别强调了轻薄设计。6.5寸屏幕的 Xperia 1 重量被控制在了 178g,拿到手中第一印象便是超出预期的轻巧,打了一场漂亮的翻身仗。美中不足的是,轻薄的设计牺牲了 XZ2/3 系列引入的无线充电功能,不得不说是很大的遗憾。个人而言,并不在意增加一两毫米的厚度或是一二十克的重量,现在这样的取舍没有最合自己的偏好。
Xperia 1 虽然回归了侧面指纹,但为了避开专利问题,采用了指纹识别与电源键分离式的设计。这不是一个好的设计。Xperia XZ 那样按下电源键的同时识别指纹并解锁才是真正符合直觉的操作方式,现在的 Xperia 1 会在手指接触指纹识别器时擅自开始识别,如果是无意的接触必然会识别失败,连续多次后指纹识别就会被禁用,必须通过密码等其他方式解锁。侧面指纹固然远优于背面指纹,现在这样不伦不类的设计也只能说令人惋惜。此外,底部充电与数据接口的开口处理略显生硬,破坏了整体感,是一项扣分项。
最后,为了迎合如今的潮流,Xperia 的上下边框也越做越窄。误触在 Xperia 1 上是家常便饭,无休无尽的误触,返回上层、退出程序、意外点击… Xperia 1 尽管保留了易于使用的两段式相机实体快门键,相机界面却很容易因误触而推出。即使双手操作也很难彻底避免无出问题。相比过去 Xperia XZ 适中的上下边框允许单手稳定地握住机身并按快门键拍摄,Xperia 1 的超窄边框设计直接判了单手拍照方式的死刑。过窄的边框甚至无法保证双手持机时的高效操作。
好看而无用,而这是当今的潮流。
充实的娱乐体验
Dolby Atmos® 取代了 Clear Audio+ 成为了 Xperia 1 的音效配置,依然提供了自动识别功能与电影、音乐等内置场景。虽然 Xperia 1 并非首款支持 Bolby Atmos 的设备,却有着自己独特的优势。在 Xperia 1 开发过程中,索尼电影的同僚对如何还原影院音效提供了协助。Xperia 1 的立体声双扬声器音量尚可,去年引入的动态振动系统会分析声音旋律震动手机,确实在一定程度上加强了音效体验,让人产生一种音效更为立体的错觉。近几年索尼每年都在提高外放音量,已经逐渐摆脱了外放音量偏低的负面评价。可惜自己在绝大多数时候并不会使用外放,这方面的提升对自己没有意义。Xperia 1 为了减小底部高度,下扬声器置于机器正下方,与上扬声器不对成,始终是一种不完美。一个技巧是,在横屏持机时,握住手机底部的右手可以适当遮挡下扬声器声音的传播路径,声音便会向前反弹,得到较为平衡的左右立体声效果。有的时候,手法原始但却有效。
其他方面,Xperia 1 自然继续提供了对 HiRes 音源的良好支持,并可以通过 LDAC 高清音频格式以最高 990kbps 的码率传送音频,在使用兼容该格式的设备播放音乐时,将得到远优于传统蓝牙的音质。
几年前 Xperia 首创的 3D 物体扫描应用似乎并没有找对用户的痛点,但也延续到了 Xperia 1 上。不得不说,如今要在智能手机上找到新的应用越来越难,已经很多年没有再出现令人眼前一亮的创意,索尼年复一年强行创造出所谓的功能亮点,从 3D 扫描到 960帧超慢速摄影,从动态振动系统到 21:9分屏应用… 或许省下这部分研发成本花到更重要的地方去会得到更好的回报也说不定。
够格的性能配置
最高支持1.6Gbps下行通信速度的高通骁龙 855 处理器、6GB内存、128GB UFS2.1 存储容量,支持最大512GB外部存储扩展,Xperia 1 的运算性能无愧于2019年旗舰产品的定位。
Xperia 1 终于首次采用了128GB的存储空间,可以说很大程度上解决了以往一直存在的内部存储空间不够宽裕的不足。毕竟,Xperia 系列常年存在 SD 卡读写速度低下的缺点,SD 卡仅适合用于储存音乐视频等媒体文件,而不宜作为应用程序的扩展空间。128GB的容量基本解决了空间不够的问题。
虽然国内对于内存容量有着狂热的追求,但根据规律,可以预见6GB的内存容量在未来几年依然可以满足大部分的应用场景。毕竟 Android 系统的设计理念就是要充分利用内存进行缓存,过剩的内存对性能并没有实际的帮助。
Xperia 1 的标称电池容量为3200mAh,额定容量3330mAh。有了多年经验,Xperia 1 的电池续航没有因为 4K HDR OLED 屏幕的搭载而受损。相反,它的电池水平比以往更好。在这一周的实际使用中,Xperia 1 的续航能力明显优于手头另一台 Xperia XZ Premium。这其中自然有两年的电池损耗带来的影响,但无论如何 Xperia 1 的续航能力依然令人满意。根据自己的使用习惯,在中等亮度下,Xperia 1 可以持续点亮屏幕运行约6小时,在典型的工作日,上下班两小时以上的蓝牙音乐播放、白天一小时左右的网页浏览,再混合一些通信应用,Xperia 1 可以在运行12小时后依然维持60%以上电量。关于电池,Xperia 1 依然具备传统的电池保养功能,能根据用户的使用习惯优化充电周期,最长延长两倍电池充放电循环寿命。Xperia 系列特征之一的 IP65/68 的防水级别则避免了手机在日常生活中因短时间浸水导致故障。
未完的系统功能
很不幸,Xperia 1 的软件尚未完成。
Android 9 已经是成熟的系统版本,但索尼似乎没有足够的时间为 Xperia 1 做好准备。基本的手机功能当然没有问题,但撇开相机软件的性能问题,还能发现其他一些不那么明显的软件问题。例如,尽管各个地区的宣传文案都提到了 Xperia 1 支持 PS4 Remote Play,但今年3月最新更新的 PS4 Remote Play 在今天尚不支持 Xperia 1。又例如,尽管可以在支持文档中搜索到相关条目,媒体服务器功能却莫名失踪。Xperia Assist 的 Tips 板块变成了网页链接,受到好评的自动场景模式也不翼而飞…
不过也有好消息。此次国行系统使用 Google 框架的体验良好,注意步骤就能顺利使用所有功能,还不损失国行系统的节电优能功能。综合下来,国行系统或许能第一次成为优于港版系统的选择。甚至得益于国行系统定制的权限管理功能,Google Feed 页面也可以长期稳定存在。
唯一需要注意的是 Xperia 1 国行系统对 Google 框架的识别与切换逻辑不够清晰。建议在拿到手机后先不要插入 SIM 卡,待完成 Google 账号登陆、重启设备、安装 Google Play 商店、重启设备、激活 Google 助理、重启设备,直到主屏幕搜索框正常识别 Google 并支持语音助手、负一屏 Google Feed 正常显示后才插入 SIM 卡,并注意如无必要不要给 Google 应用访问电话的权限。
虽说 Xperia 1 的软件赶工痕迹明显,还有较大的改善空间,但毕竟没有影响基本手机功能使用的恶性 bug。可以期待一下日后的软件更新,但愿可以补齐目前的这块短板。
2019/07/11 更新
今天 Xperia 1 得到了 55.0.A.2.314 系统更新推送。最明显的感受是相机启动速度从令人遗憾提升到了0.5至1秒内可以拍摄。虽然距离优秀还有差距,但已经到了可用的程度。其他方面推测有各类错误修复,继续观察。
2019/08/18 更新
55.0.A.6.16 系统更新如期而至,改善了包括系统界面响应速度、指纹识别成功率等方面。这两点的确有可以感知的提升。然而,相机程序的启动速度和 bug 似乎没有被解决。如果在等待启动时再次按下实体快门键,相机启动后拍摄的照片将不会被保存。尽管可以绕过,但如此恶性的 bug 难以想象在手机上市两个月后依然没有得到修复,实在令人失望。最新一季财报,索尼移动的季度销量跌破百万,即使因大幅削减运营成本而实现盈利,索尼移动的前景依然不明。
2019/09/10 更新
55.0.A.6.56 系统更新据称改善了相机应用的性能并修复了问题,同时增强了蓝牙稳定性。上个月自己遇到若干次按下快门却没有成功保存照片的情况,说实话很令人沮丧。如此低级的问题三个月仍未解决,索尼移动的软件水平什么时候下降到这个地步?系统更新至今的几天暂时还没有复发,保存照片所需的时间也确实有所缩短。是否足够稳定还有待继续观望。相机取景器的分辨率有提升,但对自己来讲不是很在意。
2020/03/28 更新
尽管国际版在去年底就得到了 Android 10 更新,国行系统却因为国内的额外审批制度、春节假期、疫情等多因素影响,直到三月才得到推送。据称是 Android 10 的第三个版本,版本号 55.1.A.3.107,已经包含了一些问题修复,安全更新为2020年3月1日。除了 Android 10 本身的特性,这次大版本升级是否改善了相机应用的性能问题是最令人关心的。好在使用几周,尚未遇到问题。启动速度没有特别明显的提升,但如果可以保证不出问题,使用体验尚能接受。Android 10 新增的手势操作在使用一周后基本习惯,确实能提高操作效率。但应用切换的逻辑和 Android 9 有较大变化,也无法通过滑动底部的距离来切换多个程序,最终只能说是有得有失。也许是失去了通过一次滑动快速切换到较早应用的能力,又重新开始启用边缘触控手势,触发成功率似乎提高了不少,能够满足日常使用。总的来讲,目前 Android 10 版本的软件在质量上达到了自己合格线。不过索尼移动的软件开发能力依然令人担心,不少定制功能在逐渐关停,最新的 Xperia 1 II 甚至取消了有十年历史的 Xperia 相册,而改用 Google 相册。Xperia 相册的设计概念其实不错,但近两年问题越来越多,终于被放弃了。Xperia 1 II 下个月在日本上市时不少软件功能不会随机提供,而要等待日后软件更新,可以侧面反应索尼移动目前在软件上的问题。只能希望软件质量问题不会在 Xperia 1 II 上重演。
2020/05/05 更新
国行的第二次 Android 10 更新,据称版本反而领先港版,版本号 55.1.A.5.0。此次升级主要修复了一些之前的问题。最近相机没有再遇到无法保存照片的恶性 bug,但启动速度依旧差强人意。看来 Xperia 1 的相机启动速度到此为止。除此以外,系统运行总体稳定。
主要参数概览
- 6.5寸 21:9 CinemaWide™ 4K HDR OLED 显示屏(1644×3840像素)
- X1™ for mobile
- DCI-P3 100%
- BT.2020 (REC.2020)
- 标准、长焦、广角三摄像头系统,搭载高速人眼对焦
- 4K HDR 视频录制
- BIONZ™ X for mobile
- 标准 12MP 26mm 1/2.6 Exmor RS™ for mobile 闪存堆栈式传感器
- F1.6 G 镜头
- 1.4μm 像素密度
- 双重相片二极管对焦
- 光学防抖拍摄
- SteadyShot™ 高级智能混合防抖
- RAW 降噪
- FHD 分辨率 960 帧超慢速摄影
- 广角 12MP 16mm 1/3.4 传感器
- F2.4 镜头
- 1.0μm 像素密度
- 定焦
- SteadyShot™ 五轴防抖
- 长焦 12MP 52mm 1/3.4 传感器
- F2.4 镜头
- 1.0μm 像素密度
- 光学防抖拍摄
- SteadyShot™ 高级智能混合防抖
- 前置 8MP 1/4 摄像头
- F2.0 镜头
- 1.12μm 像素密度
- SteadyShot™ 五轴防抖
- HDR 模式
- 由 CineAlta 参与开发的创作家模式(Creator Mode)及电影大师(Cinema Pro)
- 167mm * 72mm * 8.2mm @ 178g 轻薄机身
- 6GB 内存、128GB UFS 存储、最大支持512GB microSDXC 扩展存储
- LTE 双卡双待
- 预装 Android 9 Pie 操作系统
- 高通骁龙 855 芯片组
- 3330 mAh 锂离子聚合物电池、自适应电池保护、18W PD 快充
- IP65/68 防水、双面康宁大猩猩玻璃6
【图文内容不定期更新】
本文相关图片版权属于各版权所有人
最后 · 最初 ——索尼(Sony)Xperia XZ3 使用感想
去年9月,索尼在 IFA2018 发布了系列首款搭载 OLED 屏幕的 Xperia 智能手机 XZ3。恰好家里有手机换机需求,便首发购入波尔多红与森绿两台。这一次和以往不同,虽然在初期和平时也会经常借用,自己并非这两部手机的实际日常使用者。不过正因为此,本文的视角也会不同以往,更多基于对索尼没有特别偏好,对技术和数码兴趣不大的普通用户。由于 XZ3 与上半年的 XZ2 外形与配置十分相似,系统版本目前也同为 Android 9 Pie,因此本文对 Xperia XZ2 亦或有一定参考价值。
本文基于中国大陆地区所售 Xperia XZ3 写成,产品型号 H9493。本机支持主卡 4G 副卡 3G 网络双卡双待,完整支持中国移动联通双 4G 网络所有频段,国行固件支持移动联通电信的 VoLTE 网络,可在支持电信 VoTLE 的地区通话与收发短信,支持国内所有运营商的 2G GSM 网络,不支持中国移动 TD-SCDMA 3G 网络与中国电信 3/4G 网络。由于硬件一致,该型号可以与包括香港、台湾地区版本在内的系统固件通刷。
_
最后的 Ambient Flow
索尼移动在 MWC2018 上发布了采用全新设计语言 Ambient Flow 的智能手机 Xperia XZ2,并在年中推出同样设计语言的2018年度旗舰 Xperia XZ2 Premium。Ambient Flow 是之前 Loop Surface 设计语言的后继,然而,这是一个既不叫好也不叫座的设计,2018年下半年推出的 Xperia XZ3 则是该设计的最后一款机型。相比之前约三年一换的设计语言,Ambient Flow 在商业上是彻底的失败。不过,这并不意味着 XZ3 的设计毫无亮点。
Ambient Flow 的设计思想是技术与环境和人的融合共存,并以流动的形状和典雅的表面处理来体现这份和谐。
机身颜色方面,XZ2 选择了类比水面反射的流体银,表现夜晚湖面微光的流体白,深海中略带青色得深绿以及温和柔软得灰粉四色。Xperia XZ3 的色彩选择依然沿袭该理念,波尔多红、澈黑、银白与森绿四色的灵感皆来源于自然风光。
Ambient Flow 另一大特征则是完全曲面的背面设计,可以很好地贴合手掌,提供比先前设计,尤其是全平衡设计(OmniBalance)更好的握持感。同时,系列经典的玻璃材质背面在复杂流线设计的加持下,实现了不同角度光线照射时机身颜色的细微变化,并呈现出独特的曲线,在2018年相当千篇一律的智能手机产品线中是一抹独树一帜的靓丽。
Xperia XZ3 的 Ambient Flow 设计在 XZ2 的基础上进一步改良。边框厚度从6.5mm进一步压缩到3mm,因此,尽管中央最厚处仍有9.9mm,拿在手中的感觉却异常纤薄,毫无厚重感。158 x 73mm、193g 的机身尺寸和重量在同尺寸手机里也算不过不失。
2018年也是各类所谓全面屏手机层出不穷的一年。屏占比(屏幕占机身正面面积比例)成为了业界炒作的热点,为了提高屏占比,采用各式各样的异形屏、增加额外的机械结构、削弱正面摄像头的规格与性能、减小扬声器的尺寸与功率、选择显示效果不佳但可弯曲的低端 OLED 来缩小上下边框尺寸…一切固有设计都可以为了屏占比这一个因素妥协,似乎屏占比就是一台智能手机的一切。尤其在互联网上,没有过分追求屏占比的厂商只能收到大量的嘲笑与贬低。
即使如此,索尼也没有盲目追求屏占比。高性能的可以在弱光环境下得到良好成像效果的前置摄像头、音量充沛的上下立体声扬声器,足够强度的防水 USB 接口,都是 Xperia 的坚持。在不降低硬件规格的基础上,XZ3 的上下边框依然控制在了较小的宽度,和2017年的 Xperia XZ Premium 不同,实际上手并不会觉得明显落后时代。如果没有在第一眼就被具有质感的做工和变化的光泽所吸引的话。
Xperia XZ3 正面上下边框皆为约1cm宽,在实际使用时不但不会觉得多余,反而无论是单手还是双手持机,拇指都有更充分的面积稳定机身,而不会造成误触。当然,这个宽度还有一些可以改善的空间,但不应成为否决 XZ3 的理由。
Ambient Flow 的秘密在机身背面。XZ3 在背面钢化玻璃之下施加了多达四层不同反射效果的色彩涂层,于是,随着光线照射和观察角度的不同,机身将展现出出截然不同的色彩,行云流水,宛如光线在流动。
Ambient Flow 的曲面设计并不只有设计性,更具有功能性。随着智能手机相机功能越来越强,摄像头传感器的尺寸与厚度也越来越大。摄像头如果位于顶部,要么和屏幕组件重叠,镜头明显突出机身,要么和屏幕错开,屏幕上方不得不留出大量空间容纳摄像头。如何在避免用户感到机身厚重的同时,不突出镜头地容纳大型摄像头?Ambient Flow 的答案是把传感器放到机身中间。
可惜的是,综合来看,这一设计依然存在问题,并没有得到认可。Ambient Flow 设计注定了系列经典的侧面指纹识别要被舍弃。基于侧面指纹在美国市场受惠普公司专利限制的传言,Ambient Flow 设计的初衷就是为了回避侧面指纹也不一定。不能使用侧面指纹,也不打算使用尚不成熟,识别率相对较低的屏下指纹识别,毫无特色的背面指纹就成了唯一的选项。
然而不知为何,XZ3 的指纹传感器位置较为微妙,手指并不能下意识触及。在不看手机背面的情况下,误触到摄像头镜头是常有的事。重要的是,背面指纹无法在手机正面朝上放于桌面时使用,自己过去批评过的设计,最终还是被用在了 Xperia 上。需要多久才能适应因人而异,但对于习惯了多年侧面指纹的老用户来说,这无疑是非常痛心的倒退。
总的来讲,Ambient Flow 是一个失败。它也许由规避侧面指纹专利问题而被提出,又或是穷则思变,为了摆脱过往方正外形的束缚。它努力保留了 Xperia 系列一贯的双扬声器、高质量前置摄像头等特色,却也牺牲了指纹解锁体验,并失去了大量系列爱用者的支持。这或许是2018年 Xperia 销量继续雪崩的一个重要原因。
不过,值得一提的是,两位非 Xperia 粉丝的女性用户对 Ambient Flow 设计的评价倒是高于以往,认为曲线设计比棱角分明的方正机身更美观,比过去的手机更打动她们。这么一想,去年凄惨的销量更多是因为索尼移动在全球大部分市场的营销与渠道都不入流也说不定。但无论如何,Xperia XZ3 给 Ambient Flow 设计画上了休止符。
_
最初的 OLED
除了外形,Xperia XZ3 的特征恐怕就是融汇索尼 Bravia 技术经验的系列最初的 OLED 屏幕。
Xperia XZ3 搭载了一块6英寸18:9比例的 QHD 分辨率 HDR OLED 屏幕(分辨率
2880×1440),新开发了为 OLED 优化的图像处理引擎,充分发挥了 OLED 的显示性能。
OLED 屏幕从显示原理上可以实现接近纯黑的黑色与极高的明暗对比,理论上可以实现更优的显示效果。但实际上,OLED 并非完美无缺。
智能手机用的 OLED 屏幕出现已久。最初的 OLED 饱受易于烧屏和色彩过饱和的困扰,尽管对比度高,实际观感却始终差强人意。近年来 OLED 技术不断成熟,成本也持续下降,三星和 LG 作为 OLED 面板行业的领军人物,不但在自己的产品上积极应用,也为其他厂商提供元件。然而,不同成本的 OLED 屏幕显示效果依然天差地别。在高端产品上,高品质的 OLED 面板提供了符合预期的高画质,但在中低端或是主打性价比的产品上,廉价 OLED 的显示效果简直惨不忍睹,色彩浑浊、偏色明显、暗部存在色块。
Xperia XZ3 这次采用的是 LG 提供的 POLED 面板,再经过自家经验技术调校,通过传承的 TRILUMINOS™ Display for mobile 广色域技术与 X-Reality for mobile 图像复原技术等,实现符合索尼水准的显示画质。此外,过去 HDR 机型中的动态对比增强及 HDR 升格等功能依然健在(目前仅支持 YouTube、Amazon prime video、Netflex 等部分应用), 为观赏影视作品提供优秀体验。
随着 OLED 的普及,频闪问题也逐渐得到重视。简单说,受限于技术,移动设备上的 OLED 屏幕在低亮度下不得不以低频率闪烁以维持正常的色彩显示,同时不影响屏幕寿命。苹果、三星等厂商的高端产品也只能做到高亮度下使用对眼睛损伤较小的 DC 调光或高屏 PWM 调光,当亮度降低到一定程度则切换至交易产生疲劳甚至不适的低频 PWM 调光。Xperia XZ3 也不例外,它以亮度的约70%为阈值切换调光方式。这是相对妥当的做法,但仍然没有避免 OLED 的弊端。
屏幕显示效果在网络文章中难以描述。如之前文章所说,用相机拍摄的照片距离肉眼所见有差距,尤其是难以表现真实的亮度与对比度,实际价值并不高。如今色温偏暖偏冷偏艳偏淡都可以通过软件调节,拿几台不同的设备放在一起合照,也说明不了问题。因此,这次对 Xperia XZ3 的屏幕依旧采用主观描述,一切都是个人的主观见解。
在去年国内外各大厂商的旗舰智能手机上市后,自己逐一去店头试用与观察,尤其是与 Xperia XZ3 的屏幕显示效果比较。简单来讲,Xperia XZ3 的 OLED 屏幕显示效果符合其定位,体现了 OLED 的特长,但也没有避免 OLED 的缺点。
在去年下半年推出的产品力,屏幕实际观感优于 Xperia XZ3 的智能手机恐怕只有苹果的 iPhone Xs 系列和三星的 Galaxy S9 系列,尤其是 S9,确实是 OLED 的标杆。在 S6 之前,自己一直对三星的 OLED 屏幕嗤之以鼻,严重的蓝绿过饱和与浑浊的色彩,完全抵消了 OLED 高对比度带来的优势。从 S6 开始,OLED 的进步肉眼可见,到了今天,显示效果已经充分优秀。过去存在的问题被遗留到了两三千元价位的产品上。
Xperia XZ3 的 OLED 屏幕经过独家调整后,在色彩等方面表现出色,却和其他一些产品一样存在同样的问题——不规则的像素排列使得屏幕精细度远低于像素密度。因此,尽管 XZ3 的屏幕分辨率高达 2880×1440,实际看起来却仅与 FHD(宽1080)相当,甚至由于钻石型的排列,水平线条需要子像素渲染,不但图案发虚,还会引入杂色。当观看距离较远时,这个问题并不显眼,优秀的色彩和明暗比占了主导,赏心悦目,但如果视力较好或观看距离较近,就会察觉问题。
个人来讲,XZ3 这块屏幕并非无可挑剔。在同价位产品中,它的色彩、屏幕精细度以及频闪控制,它都做到了胜人一筹,比中低端价位产品更是优势明显。然而,精细度的退步以及自己能感知到的频闪,最终还是抵消了 OLED 带来的好感。只能说,在目前的 OLED 屏幕中还算不赖,但还无法满足自己的标准。
_
依然的 Motion Eye
1920万像素的1/2.3寸 Exmor RS for mobile 图像传感器(像素间距1.22μm)、BIONZ for mobile 图像处理引擎、25mm广角的F2.0光圈 G 镜头。Xperia XZ3 的相机方案依然是老三样。当然,处理器和算法每年都在升级,但随着多摄像头系统的日益普及,在广角、长焦等差异场景下,Xperia 的相机竞争力受限也是事实。
Xperia 从2012年就采用的基于 AI 的高级自动模式在 XZ3 上健在,可以实时识别场景,并结合用户的运动状态(固定、移动、步行等),为美食、夜景、人像、文档、逆光、风景、微距等13种不同场景自动选择最适合的拍摄模式。基于笑脸或运动轨迹的预判拍摄、基于运动模式识别的相机快速启动等功能增强了 XZ3 的出片成功率。
从 Xperia XZs 开始提供的基于硬件的960帧超慢速录像功能的分辨率提升至 FHD(1920×1080),也算是处理性能提升后的得益。这个功能在 XZ Premium 的使用感想中做了不少介绍,不过日常使用率并不高。
视频录制依然是 Xperia 的强项,XZ3 的前后摄像头都支持源自 CyberShot 的 SteadyShot™智能主动模式(五轴防抖),视频稳定性领先。防失真快门、4K HDR 视频录制、ISO 12800 微光拍摄和 ISO 4000 微光录影也算是 Motion Eye 的传统特长,就此不多展开。
以下样片全为 XZ3 直出,没有利用辅助工具的旅行随手拍。部分照片有裁剪,并统一缩小为高度1080像素,90% JPG 压缩,无其他后期处理。
可以看到,尽管画质显著提高,一年前的课题仍旧存在。Xperia XZ3 上的这套 Motion Eye 依然缺少足够的可玩性,不支持全手动设置、不支持 RAW 输出、不支持 Google 相机等第三方拍照软件、没有专门的长焦与广角镜头…不过在日常使用中,只要不是智能手机明显无法应对的微光或高明暗对比场景,迄今 XZ3 和 RX100m2 同时拍摄的数百张的照片给了自己充分的自信,Xperia XZ3 足以在大部分场景下替代之前爱用的 RX100m2,提供令人满意的画质。
_
不变的 HiRes
Xperia XZ3 的音效方面的进步中规中矩。HiRes 支持、DSEE HX 音频升格引擎、LDAC/ aptX HD 高清蓝牙音频、ClearAudio+ 自适应音质增强、S-Force 环绕立体声等早就是 Xperia 旗舰标配。
得益于足够空间的屏幕上下边框,XZ3 的扬声器音量比前代 XZ2 进一步增加20%,从 XZ1 起的连续多次提升后,Xperia 的外放效果相比自己之前的 XZ Premium 有了一耳朵的改变。可惜自己几乎不用外放,对这方面无感。
从 XZ2 新增的动态振动系统也是如此。随着音乐、视频的音效节奏震动手机对自己来说并没有特别的价值,消费者似乎对此也不买账。
_
最新的 SoC
Xperia 旗舰始终采用高通当年最新 SoC,XZ3 也不例外。
高通骁龙 845 处理器与6GB内存(国际版为4GB),配合64GB UFS2.1高速闪存(支持最大512GB microSDXC扩展),Xperia XZ3 无论是日常使用还是大型游戏都应付自如。
与 Qnovo 合作开发的电池保养技术及充电长寿技术(电池标称容量3330mAh,额定容量3200mAh)、最新的 Android 9 Pie 操作系统、IPX5/8 防水溅防尘、蓝牙5.0、LTE Cat18(最高1.2Gbps下载速度)、NFC 等 Xperia 的独家功能与最新 SoC 与操作系统的特性一应俱全。
在实际使用中,国行系统的节电优能后台管理工具和 Android Pie 配合良好,即使安装数十款国产软件,包括一些恶名昭著的后台流氓,Xperia XZ3 的发热与耗电控制依然良好,日常中度一整天使用毫无问题。曾经被 810/820 处理器与国产软件折磨过的两位不谙数码的用户纷纷表示几个月来从未再遇到过去的烦恼。这样看来有了节电优能功能之后,或许让国内用户用国行系统对普通人来说才是最合适的选择吧(笑)。
Xperia XZ2 与 XZ3 还支持最高9W的快速无线充电。国行首发套装附有充电底座 WCH20,确实比传统方式更加便捷,也大幅减少了 USB 接口磨损。可惜无线充电在 Xperia 用户中并不流行,XZ3 会是短期内最后支持无线充电的机型。
_
绝唱的 XZ3
Xperia XZ 系列将在 XZ3 结束,不及 Z5 的六代产品。Ambient Flow 设计更是两代完结。XZ2/3 是索尼移动穷则思变的豪赌,只是,失败了。完败。
Xperia 的销量在2018年继续雪崩式下跌。规避侧面指纹专利没有打开美国市场,取消从外形到功能的一系列 Xperia 特色输掉了大量忠实粉丝,没有意识到日本本土市场无锁机市场的政策变化又被中低端机型抢占份额,缺乏产品亮点与营销能力不足丢了仅有的欧洲市场,中国市场本土团队令人遗憾的专业能力与工作热情让粉丝失望,国内几乎不存在的营销、渠道与售后也完全没有拉拢新用户的能力……
Xperia XZ3 不完美,但是,它决不是糟糕的产品。正相反,XZ3 有着与定位相称的优秀素质,在画质、音质、相机等智能手机的主要卖点上都有着符合定价的竞争力。大幅降价的 Xperia XZ2 近期销量大增,XZ3 恐怕也只能以这种方式结束自己的生涯。
不过,XZ3 不会是绝唱。
_
Xperia 1 即将来临。
_
本文相关图片版权属于各版权所有人
浅谈设立目标与计划
古人云,“凡事预则立,不预则废”。虽说真若走极端事无巨细地制定计划,不说效率有限,仅从计划赶不上变化这一铁则来讲,因频繁调整计划带来的重复劳动,及目标难以按计划实现的挫折感也会令人疲惫。如何在过度计划和缺乏计划之间取得平衡是一门有意义的课题,一方面需要从顶向下地规划自洽且能容错的体系,一方面更要亲身实践与改良,将理论应用到实际的工作与生活之中,获取成效。本文试图梳理自己的一些经验与感悟,作为自己迄今对目标计划制定的总结,及今后进一步优化的备考。
诚然,世上没有银弹。不存在绝对的普世方法,能够不加调整就适应每个人的特殊情况。寻找更具普遍意义的理论与法则是很多人的毕生追求,不过从务实的角度来讲,更为具体的定制的方法论往往能更快地提供效用,勿论这些细枝末节也许能成为更高层法则的灵感与论据。因此,即使方法固有优劣,对那些宣称高效万能的方法也应始终保持必要的谨慎,至少应先有意识地判断自己的情况是否与其适用范围相符,再根据需要采用与实践相应的方法。本文亦然。常感世间流行的热说与自己脱节,或是明显缺乏指导意义,或是由结论反证并不符合实际情况。这也是本文从一开始就不以提供普世的指导与启发为目标的根本原因。
繁冗铺垫之后,切入正题。
诸如新学期目标这类假期作业式的计划恐怕很多人从小就有经验。自己系统地制定目标与计划的尝试则始于中学时期。那时的计划大多指向学业,更接近中短期的学习计划,范围限定,目的单一。即使如此,制定计划也并不轻松愉快。难以具体、不易执行、追踪不便、缺乏灵活,最终无法达成…种种难题在当时就令人头痛,甚至怀疑设立目标制定计划的意义。
不具体、不实际、不可考,都属于术的问题,相对容易改进与琢磨。不灵活,则更接近略的范畴。世间唯一不变的就是改变。这意味着,制定目标与计划时,从最开始,就需要从体系上考虑到灵活,从心态上拥抱变化。这也是本文将讨论的首要问题。
灵者,迅敏,活者,可变。灵活,意即能根据情况迅速地作出改变。论迅速,大体是越快越好,又回到术,论改变,正是问题的核心,不能肆意妄为,否则不免南辕北辙,只增徒劳。身处不断变化的世界,短期计划不得不频繁调整才能适应新形势,进而积少成多,量变引起质变,中期乃至长期计划随之变化的事例也并非罕见。话虽如此,根据目标的类型,变化的频率和幅度大相径庭也是事实。不同周期的目标有不同的特征,有必要大致了解它们的性格,才能更好地制定计划。
以周或月为单位的短期目标几乎要时刻做好改变的准备。或公或私的突发事件,与他人进度的依赖关系,感冒腹泻之类的身体不适,甚至预料之外的堵车与阵雨,都可能打乱一天乃至数天的计划。
年度目标看似相对稳定,其实依然充满变数。一项新的职务,一次组织调整,又或是一份新的工作,就能让目标大幅调整,原定的计划也不再适用。搬家、买车之类的变化虽然不会影响目标,但也会对计划的实施造成不小的影响。各种因素综合,年度目标与计划很难如一而终。个人经验,一份较为细致的年度计划,最终若能达成较核心的三成内容,便可说是取得了不错的成果。
中长期的目标时间跨度可从数年至数十年,相对稳定,但仍可能被彻底颠覆。职业规划方面,或家庭生活、兴趣爱好相关的目标通常属于此类。一般而言,越是年轻无拘束,越能调转方向无负担。自己初中接触编程后想做游戏开发,高中时想当英文翻译,大学里跑去翻译日文,毕业后又成为程序员。这种程度的目标切换,想必每个人都深有体会。个人情况不同,可以想象,一方面,一些人方才毕业就已能看到退休,另一方面,有些人即使已然而立乃至不惑,开辟新战场确立新目标仍果敢无畏。中长期目标可适当拔高理想预期,同时考虑底线,一方面自我挑战,一方面接受变数。
更长期的目标通常不再拘泥于具体的工作,而已然成为个人价值观的体现。想要过怎样的人生,希望成为怎样的人,直接决定了这份目标的基调。因此,尽管长期目标在年少时同样易变,但随着阅历积累,三观逐渐构筑完整,跨入成年后长期目标总能落入一个较为稳定的范围。稳定的长期目标对个人的自我认同与自我实现至关重要。它就像是企业的使命与价值观——缺失固然不意味着无法生存,但显然少了一份灵魂。自洽的、相对稳定的自我认同可使人免于因苦恼处世原则而产生的无谓的精神疲劳。更重要的是,它确保了中期目标无论如何变化,总能在大方向上与个人价值观匹配,进一步落实到短期目标,形成一个统一的整体目标体系。值得庆幸的是,自己在五年前为自己设计的人生蓝图,现在看来毫不过时,并且站在今天的立场来看,至少在今后若干年内依然适用。从事实来看,它多次在自己迷茫时找回方向,帮助自己在中短期目标不得不发生剧变时调整心态并尽快修复目标体系,意义重大。对于不安于平庸者,这样一封作给自己的答案,不管是否成文,恐怕大都不可或缺。于情于理,都应当根据自身的实际情况,较早地开始构建属于自己的长期目标,并根据环境变化与自我发展而经常性地补充、完善与调整,以应对复杂多变的世界。当然,及时行乐、得过且过也都是,如确信这是所期望的生活方式,在日常生活中能知行合一,精神负荷也会减少很多,倒不失为一种自洽的选择。只是这在很大程度上与个人性格有关,非一朝一夕形成,亦难在一夜之间改变,不可强求。
如上所述,制定目标的关键在于认识不同层级目标的意义与性格。长期目标不需要非常具体,可以仅包含抽象条目。它至关重要且相对稳定,应尽早确立。中期目标只要能与长期目标融洽,应接受并允许大幅度的调整。短期目标则需以不确定为前提设立,充分考虑灵活性的问题。
问题回到实际目标与计划的制定。
长期目标稳定,长期具体计划却不现实。国家与巨大企业在掌握大量一手数据时依然无法保证准确预测三至五年后的未来,判断失误的例子数不胜数,对于普通人,要断言一年后自己会处于怎样的状态就已经是高难度动作。因此,长期与中长期计划不必也无能深入细节,止于路线图级别的大纲即可。于是,长期目标与长期计划的界限相对模糊。长期计划中不会包含实际可执行的步骤,本质上是一系列细化目标的集合。逐步实现这些目标,也就是有计划地实现更高一级的目标。
例如,在确立自己相信的价值观后,长期目标可能包含确保自身和家人较自由的、较高质量的生活条件,以支持较为自主的创造性活动,并输出有一定独创性的价值,最终自我实现,诸如此类。进一步说,若致力于计算机科学与软件工程,一种可能的中长期职业目标是成为具有扎实技术背景,在某一细分领域拥有较强实力,能够带领团队完成较大规模复杂项目的专家人才。若兴趣爱好是学习外语,掌握某语言一定数量的词汇量,能正确理解与使用该语言的现代语法,具备书籍报刊的阅读理解能力及新闻影视作品的听力水平,了解基本的文化背景与习俗常识,可在不借助他人帮助的情况下与母语话者正常交流等,都能作为中长期目标的内容。甚至对静态模型制作这样纯娱乐性质的项目,中期目标也能列举掌握高阶制作工具技巧的使用,理解并能实际应用各类上色手法,有模具改造及引入其他材质组件以提升细节与质感的能力,能够制作可承载若干作品的场景,等等。从个人实践来看,基于以上原则制定的五年计划,总体上可以保证一定的稳定性,给中短期计划足够的安定感。
时间跨度在两年以内的目标初具现实意义。可实现,可衡量,可追踪是保证中短期目标能有效达成的要点。
中短期目标与计划不应包含明显不可实现的内容,应根据个人实际情况量身定制。过分超出自身能力范围的计划对目标的最终达成反而有负面作用,容易半途而废,持续消极懈怠。可以说,一个可实现的目标才能导出一份可实现的计划。如何预判能否实现,一个简单有效的依据便是过往事实。对曾经完成过的项目,可适当提升预期。对自己未接触但有他人先例的项目,可分析彼此条件后选择合理的目标。前无古人的开创性事业不确定性较大,也难见于日常,这里不作深究。举例来说,如果去年一年阅读书籍册数为零,今年订10册的目标就有很大风险,要做好大幅修改目标的准备,或者根据第一个月的结果再提出具体目标。假如去年已经读完10册,今年则可以综合其他目标,考虑优先级,在这个数字上略作调整。他人的经验固然有一定的参考价值,但如果和自己的条件不同,就必须意识到不一定适合自己。如今互联网发达,虽能轻松接触到很多相隔千里的陌生人,也带来了虚夸成本低、软广告普遍、幸存者偏差被放大的副作用。鼓吹德语无法自学必须找老师的人里难免会有教育机构的托,声称零基础6个月通过日语 N1 的人大多美化了经历,即使一个论坛里通过健身获得提升的真实案例上百,也不意味着大多数人都能轻而易举做到。
可衡量也是中短期目标的必要条件。无法衡量便无法比较,无法比较便无法评判,若无法定性是否达成,目标本身的意义也会消散。为衡量目标,需要设定标准。数字通常是简单有效的标准。前文所举的读书10册便是一例。诚然,世间存在大量无法以数字衡量之事。心态是否更加乐观,生活是否更加幸福,都不会像电子游戏,可以通过一组参数一目了然。中短期目标可以从主观的抽象的感受出发,但若要落实,可以操作,最终还是需要细分到能够衡量的条目。否则,这可能不是一条合适的目标,或者说至少不属于本文讨论之列。
可追踪更多是流程问题和工具问题。政府、企业办事都有流程,良好的流程有助于减少不确定性,提高效率,并能在更短时间内建立习惯。习惯可谓生物进化过程中获得的神奇机制。它帮助大脑减负,让人的行为模式仿佛有惯性一般,无需过多外力介入也能自行运转。一旦追踪目标形成习惯,进度才能持续推进,并避免不知不觉越发偏离。那么,对于制定与追踪目标,何谓良好的流程?简单明确、有据可查、滴水不漏,或许是几个要点。个人目标的追踪相对而言较为频繁,复杂一分,日积月累就容易变成重担。这不仅是身体负担,更会成为精神负担,严重影响可持续性。因此,可以只有一条分支就只设计一条分支,可以省略一个步骤就省略一个步骤。有据可查是指追踪的数据被长期保存,将来有需要时总能迅速查找。如今大数据成为热点,无数人都想从大数据中找到价值。个人在自己制定与追踪计划过程中产生的数据,自然也弥足珍贵,信息量巨大。纸片、单独的文档,又或是零散的邮件,显然不能满足这一需求。大容量的,便于搜索与处理的,可长期保存不易丢失的方式更为推荐,各种数字化的工具会优于传统方案。滴水不漏则指流程涵盖各类场景,无论何时何地,追踪都不会受限或搁置。换句话说,不能因为不在家中就中断执行,也不能因为出门在外无法携带大件包裹而无法实施。举例来讲,制定了跑步目标,就可以考虑借助专门的运动助理软件来记录计划的执行。单一的入口与固定的操作,可以大幅提高长期坚持追踪进展的可能。数据存于云端,无论是手机还是电脑网页都能以最佳模式访问。又因为支持手机这一几乎总能随身携带的设备,追踪流程在绝大多数情况下都不会被客观因素打断。
最细粒度的计划以周还是月为单位见仁见智,不过工作之外,周计划通常不确定性较大,制定、追踪与更新的成本也高,还是月度计划更具可行性。尤其是工作多年,业已成家的情况下,不仅每日工作强度不会太小,周末也可能要承担家务或陪伴家人,业余时间不一定总能保证,更不必说依然精力充沛。个人经验,除去已成习惯的日课,或是特别简单可以在短时间内完成的任务,每个月根据当前状况专门制定的目标与计划不宜超过4项。条目数量众多不利于记忆与识别,也不利于集中力量逐一完成。精力过度分散往往最终事倍功半。月度计划应预留足够的灵活性,并对随时可能发生的变化做好准备,不必拘泥完美,让计划不但没有帮助自己,反而成了一种束缚。
最后,目标与计划的制定终究是具体的,个人的。根据个人做事风格,随着所处环境变化,恰当地调整,才能最大程度上发挥其效用。通常,在经过数十次尝试与改进后,会对自己有更深的了解,制定计划时也会更游刃有余,结果更贴合实际。
接触所谓 GTD 概念十数年,对自我管理的方方面面都做了大量尝试,积累经验教训无数,其中目标管理可说还是其中较为简单的一环。如何设计适合个人的整体流程、如何有效处理信息、如何选择和利用工具、如何迭代改进,无一不是更加灵活深奥的主题。
以上仅为在设立目标与计划过程中的一点心得,在此整理成文,以飨读者。如能抛砖引玉,引发一些新鲜思维的碰撞,将不胜荣幸。
Angular、.NET Web Api 验证(Authentication)与跨来源资源共享(Cors)
验证是任何 Web 服务都必须考虑的基础问题。关于 .NET 平台的验证与授权,按理说微软已经提供了相当充分的文档与示例代码。
- ASP.NET Web API 的验证与授权:了解验证与授权的基本概念
- ASP.NET Identity 2.0:了解 ASP.NET 目前用于实现验证授权的 Identity 框架
- ASP.NET Web API 的本地账户验证:了解如何利用 .NET 提供的框架实现用户注册与登陆,并通过获得的 bearer 口令(Token)获取资源
.NET Identity 框架提供了现成的数据库结构以及一系列接口,可以实现用户注册、登录登出、口令生成、邮箱的确认、密码重置等基本功能,也可以与社交媒体账户集成实现用户注册与登陆。
需要注意的是,.NET MVC 与 .NET Core 所使用的接口代码和 .NET Web Api 有所不同,如果混合阅读文档与代码,可能会造成混淆与理解上的困扰。不同版本的文档对邮箱验证等功能的处理逻辑也有差别,不可简单合并使用。
后端若部署至 Azure 等云平台,口令的生成也可能会遇到在本地不会发生的问题,报错“ The data protection operation was unsuccessful. This may have been caused by not having the user profile loaded for the current thread’s user context, which may be the case when the thread is impersonating.”。例如,.NET MVC 版示例代码在用户登录并验证邮箱后生成口令时会试图调用 /Token 接口,触发错误。网上针对此问题有一些解决方案,却都不太有效。事实上,可暂时忽略对邮箱是否得到验证的检查,直接前台调用 /Token 接口,就能避免该错误。对邮箱的确认可以在之后实际执行处理时按需进行。
微软官方的示例代码都没有涉及 Cors(cross origin resource sharing) 问题,即使是 Angular 项目模板,由于前端默认与后端共存于同一个解决方案,也不存在这一问题。然而,如果前后端分离,前端 Angular 程序的域名很可能与后端不同。
微软针对 .NET Web Api 的 Cors 有一些文档,但很遗憾,如果有接口通过 bearer token 进行验证与授权,那些文档中的解决方案很可能会引发新的问题。
- .NET Web Api 中对 允许跨源访问:介绍多种允许 Cross origin request 的方式
由于 Chrome 等一些浏览器在一定条件下出于安全原因为首先发送 OPTIONS method 的 HTTP 请求(如 headers 中指定 “Content-Type”: “application/x-www-form-urlencoded” 时),情况变得更加复杂。
如果 OPTIONS method 没有被允许,则会遇到 405 错误代码。不当的设置可能会在允许跨源访问资源时却阻碍了用户登录等验证 API。又或是无意中重复允许 Cors origin 设置,会提示 The ‘Access-Control-Allow-Origin’ header contains multiple values 错误而无法获得资源。
网络上简单明了且实际有效的解决方案并不好找,经过反复尝试与分析,要避免所有这类问题,采用全局设置恐怕是最简单的方法之一。
- 不要像下面这样通过 Web.config 来设置 Cors
1 2 3 4 5 6 7 |
<httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="Content-Type" /> <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> </customHeaders> </httpProtocol> |
- 不要像下面这样通过 ApiController 属性来设置 Cors
1 |
[EnableCors(origins: "https://127.0.0.1", headers: "*", methods: "*")] |
- 不要在 WebApiConfig 等类中通过诸如 config.EnableCors(); 等代码方式设置 Cors
- 安装 Microsoft.Owin.Cors 的 NuGet 包
- 在 startup.cs 的 ConfigureAuth 方法开始时调用语句 app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
- Angular 前端发送请求时, headers 中只需指定 “Content-Type”: “application/x-www-form-urlencoded” 一项即可
- 如果使用 RestAngular 获取资源,只需按如下方式设置 Content-Type 与 Authorization 即可
1 2 3 |
RestangularProvider.setDefaultHeaders({ 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer ' + {concat the access token here}; |
至此,运行于 Azure App Service 的后端 .NET Web Api 将可以与非同源的 Angular 程序交互,实现本地用户账号的注册登陆等操作,可以通过 bearer token 实现资源请求过程中的验证与授权。
英雄
即使没有勇气去改变错误,也请务必守住骨气让自己不要说服自己也去为错误辩护。
做一个堂堂正正、追求真理的人。
做一个英雄。
两分钟了解 Node.js
本文粗略介绍 Node.js 特点与用途,以及意外地很多 Windows 用户不那么容易找到的使用 npm 的方法。
- Node.js 是高速的服务器端单线程事件驱动异步非阻塞式 JavaScript 平台
- 占用内存少,可无缝处理客户端与服务器端数据,适用于 SPA 或 WebSocket 应用
- 异步处理使得连接大量客户端时性能依然较好,无需等待磁盘I/O等低速操作
- 通过npm(node package manager)管理模块依赖
访问官方站点获取详细信息 https://nodejs.org/ 。
如无特殊需求,通过 .msi 安装包安装 Node.js 后在开始菜单启动 Node.js command prompt 即可执行命令,如,输入 npm install –g @angular/cli 便能安装 Angular CLI。