HTML5技术

架构师之路--谈业务的合理架构 - 静儿1986(2)

字号+ 作者:H5之家 来源:H5之家 2017-05-24 15:00 我要评论( )

之前做的一个信用名片的项目,有的用户在某星手机的某些版本中上传头像,上传之后头是倒着的。经调查发现我们拍的照片在手机上可以各个角度拍摄,凭借着EXIF信息,这是一种专门为数码相机设置的格式。里面有拍摄时

  之前做的一个信用名片的项目,有的用户在某星手机的某些版本中上传头像,上传之后头是倒着的。经调查发现我们拍的照片在手机上可以各个角度拍摄,凭借着EXIF信息,这是一种专门为数码相机设置的格式。里面有拍摄时翻转手机的信息,可以有8种角度。很多操作系统和图片查看软件都会自动按照信息里的翻转角度,将图片翻转回来。但是某星的某些版本没有这个功能。针对这个问题,开始的时候,我用了一个国外的元数据萃取的工具包将这个EXIF信息的翻转信息提取出来。效果已经达到了。但是作为代码手艺人,觉得只是这么个小需要就添加了一个1MB多的jar包,而且实际上它的实现是解析构建DOM树的方式,意味着为了提取翻转信息,要解析构造整个文件对象。所以我自己又采用了直接读取图片二进制流的方式,取图片前面如果以0xFFD8开头的就是包含EXIF信息的,否则不予处理,读取文件结束。以0xFFD8开头的要判断是否包含旋转信息,包含旋转信息的判断是Intel标准还是Motorola标准,因为这两个标准高字节和低字节代表的含义正好相反。就这样一直到读到旋转信息或者判断出不存在旋转信息,文件关闭。所以最后读入的文件数据很少,效率大大提高。

  在之前公司用Solr搜索引擎的时候,有个需求是将输入的html标签过滤后再分词。但是在Solr中对索引读入后的第一个操作就是分词,使用Solr自带的或者外部的分词器。然后再对分好的词进行更细节的过滤或者近义词之类的。但是这第一步就直接破坏了文档的结构,变成了一个个单词,而不是html文档形式。再去除,可以去除,一个个过滤符号和单词是否是html标签,判断前后都是啥。能做,第一,麻烦,最重要的是效率低。所以我当时的做法是直接修改了自己用IK分词器的源码,读入数据第一个操作先过滤标签。这就很好办了,apache有现成的工具类。这样避免了读入读出带来的性能损耗。

  

  说了这么多,架构到底是一个什么概念。我个人理解,在一个组织和系统内可以有很多维度的架构。

  比如业务架构是我们老大要考虑的事情。他心目中有一个自己的业务架构定位,外面提了一个需求,他有自己的规划,这个是不是应该纳入我们的业务体系。

  比如系统架构是管理者和架构师一起进行考虑的事情。业务定好了,那么用怎样的模块去划分这个业务更利于维护,更高效。

  比如技术架构是架构师的最重要责任。真正从技术角度去展示一个系统,包括硬件的,软件的,抽象的,具体的。它包括网络,服务器,第三方产品使用和调用,软件架构和数据架构。

  比如软件架构是开发人员可以接触到的软件开始的部分。比如一个web系统从nginx反向代理开始到一个SOA架构的系统:包括resin服务,resin服务上有一个mvc架构的程序,调用另一个服务的系统,系统又和缓存,数据库,消息队列,第三方调用打交道。

  比如数据架构,这个之所以单提出来是因为数据是服务的核心。比如对一个WEB应用来说,有一些数据是直接可以放到客户端的,如JS,静态页面。还有一些数据是要放到服务端的。服务端的数据又要考虑是放在缓存还是数据库还是文件等等。放在什么地方要综合考虑效率,带宽,安全,数据有效性和可靠性。

  

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 移动端布局 - 开发之路

    移动端布局 - 开发之路

    2017-05-24 09:01

  • 云计算之路-阿里云上:攻击火上浇油,与云盾玩起了踢皮球 - 博客园团队

    云计算之路-阿里云上:攻击火上浇油,与云盾玩起了踢皮球 - 博客园团

    2017-05-22 18:04

  • 前端架构之路:Windows下安装Nodejs步骤 - MikeXu

    前端架构之路:Windows下安装Nodejs步骤 - MikeXu

    2017-05-19 12:00

  • 云计算之路-阿里云上:攻击又来了,4个IP分别遭遇超过30G的流量攻击 - 博客园团队

    云计算之路-阿里云上:攻击又来了,4个IP分别遭遇超过30G的流量攻击

    2017-05-18 15:03

网友点评