GITC 2016 - 移动互联网专场

Posted on Sun 27 November 2016 in it • Tagged with gitc

移动互联网专场

25号主要听了移动互联网专场的分享,涉及面比较广,就连讲架构也要把团队、业务都捎带上。

抱着学习移动端技术架构的心来的,郭占星和汪亮亮的ppt得仔细看看。

阿里在移动端对2B猛烈发力,势头不可阻挡。

关于互动直播和人机语音对话的两个ppt也值得学习。

技术架构

  • 1号店移动技术发展历程(郭占星)

  • 途牛旅游Android客户端架构优化之旅(汪亮亮)

  • 大型医药电商微服务技术架构(杨林)

心得分享

  • 一号店的技术架构 Android/iOS 同步开发/各服务的入口统一调度
  • 一号店的全量日志平台 平台结构划分为收集、配置管理和报表三部分 后续有空闲资源可以考虑实施一个
  • 一号店的开发模式 迭代+看板 灰度发布
  • 途牛旅游Android客户端的挑战和机遇

    业务耦合严重 -> 上下层双向调用变成从上到下的单向
    代码复用率低 -> 沉淀公共组件
    无平台化产品 -> 搭建业务公共平台,如日志、热更服务等
    
    开发成本高
    H5用户体验不好
    
  • Android技术演进

    插件
    基础服务
    代码管理: 统一代码规范和review平台(他们用gerrit)
    
    低成本 + 较优用户体验 = React ...

Continue reading

GITC 2016 - 前端技术专场

Posted on Thu 24 November 2016 in it • Tagged with gitc

GITC 2016

GITC 2016 入场券

托孙总的福,有了这次参会机会。

会议室分布

前端技术专场

今天主要听了几场前端技术的分享,对我来说信息量颇大,收益匪浅。

新知识(only 4 me)

落地的前端工程化

可实施的前端工程开发流程

  1. 本地开发(developing)
  2. 静态代码检查(linting)JSLint/ESLint
  3. 单元测试(testing)Mocha
  4. 合并进入主干(merging)
  5. 自动构建(building)
  6. 自动发布(publishing)

前端开源框架&工具

  • React Facebook出品的最流行的前端框架
  • Ant Design 蚂蚁金服前端框架,基于 React 框架,开发和服务于企业级后台产品
  • JSLint JavaScript 代码检测工具
  • webpack 前端资源加载/打包工具
  • Gulp 基于流的自动化构建工具
  • Vue.js
  • Element 饿了么前端框架,基于Vue ...

Continue reading

QCon Beijing 2013 day 3

Posted on Sat 27 April 2013 in it • Tagged with QCon

今天上午听的企业级开发框架整体质量挺高的。

开发多语言持久性应用程序

Sohu邮箱的Python经验,非常好,等ppt。 有时间练练PypiServer,类似maven; Fabric,项目发布,眼下就能用; 还有在C中调用Python的方法,没准儿也能用上 Redhat 应用 JBoss AS7 构建企业云服务平台,非常好的Topic,等ppt出来要好好读。记录一些要点: 云计算的本质是服务外包! JBoss与PaaS平台融合,包括GAE/SAE/AWS。

eBay 打造下一代数据集成平台 我们的业务今年如果发展顺利,运营系统就得参考这个了。

下午是主题演讲。

Oracle 打造未来的Java,介绍了很多JDK 7新特性: 二进制串; switch字符串; 简化泛型等等。

Coud Foundry 分解应用程序以实现可部署性和可扩展性 这个非常好,ppt还没有放出来,google了一下看到去年Chris Richardson就开始讲这个topic了,主要包括4部分内容: 1、 Monolithic Program ...


Continue reading

QCon Beijing 2013 day 2

Posted on Fri 26 April 2013 in it • Tagged with QCon

今天上午听了自动化运维专题,新浪、腾讯、百度、淘宝4场的水准都很高,绝对的物有所值。

新浪CDN自动化运维 http://vdisk.weibo.com/s/z0eoy CDN平台规模:300G带宽,1000+台服务器,覆盖全国7个ISP 40多个IDC 自动化运营经验: 1、基于puppet/Zabbix开源系统的自动化运维系统:提升运维效率,加快故障处理速度; 2、规范主机名:ISP.IDC.City.Group.Role.Product.ip4.domain.com 3、 建立SRE角色(site reliability engineer),保护多数工程师不被打扰 可以顺便参考一下这篇文章:http://wenku.baidu.com/view/6c26cb27bcd126fff7050bab ...


Continue reading

Tomcat NIO Configuration

Posted on Thu 10 January 2013 in it • Tagged with Tomcat, 性能测试

Netty HTTP Server相比Tomcat更加轻量之外,性能也会好得多,因为Tomcat默认是用的阻塞式IO。 到时候做性能比较测试时再增加一组打开非阻塞的Tomcat做对比,应该很有意思。

标准参数

protocol的取值: org.apache.coyote.http11.Http11Protocol - blocking Java connector org.apache.coyote.http11.Http11NioProtocol - non blocking Java connector org.apache.coyote.http11.Http11AprProtocol - the APR/native connector.

Samples: <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" /> minProcessors ...


Continue reading

github start guide

Posted on Thu 03 January 2013 in it • Tagged with git, github

最近因为启动了新的项目,正好有机会更新一下原有的技术框架,最近研究了Netty、MyBatis和最新发布的Spring3.2.0。写了一些有意思的demo很想和大家分享,github很火,趁着还没被墙,赶快用起来。 以下是学习记录,包括主要的操作和用eclipse提交的详细说明。

操作步骤介绍

  1. 注册免费帐号 open page https://github.com/signup/free
  2. 设置本地环境 refer to https://help.github.com/articles/set-up-git $ git config --global user.name twotwo $ git config --global user.email twotwo.li@gmail.com $ git config --list user.name ...

Continue reading

GCM Architectural Overview 1

Posted on Fri 31 August 2012 in it • Tagged with Android, Google Cloud Messaging

更详细的信息见android developer原文

Google Cloud Messaging for Android (GCM)是一个免费的服务,帮助开发者从服务器端发送数据到运行在Android设备上的应用程序。这个服务提供了一个轻量级的消息告知机制,用来告诉Android上的程序去服务器端拿新数据(例如一个朋友上传了一个片子),也可以是一条最大不超过4kb的数据(这样应用就能接到即时消息了)。GCM服务处理队列中的所有消息,把它们发送到目标机器上运行的指定程序。 想立马在Android应用中使用GCM,请看Getting Started介绍。

简介:GCM的主要特点

  1. 允许第三方应用从服务器发送消息到设备上的应用;
  2. GCM不保证消息的送到及送达的顺序;
  3. 客户端不需要一直运行来接收消息。当消息送达时系统会通过Intent broadcast来唤醒程序,当然程序需要设置好broadcast receiver和permissions。
  4. 不提供任何内建用户界面或处理器,GCM仅把收到的原始消息传递给程序,由客户端程序全权处理。
  5. GCM需要设备运行在Android2.2及以上版本,并且安装有Google Play Store应用;或者是运行Android2.2,具有Google APIs的虚拟机。对于程序部署方面,不要求必须通过Google Play Store安装的应用。
  6. GCM使用一个现有的连接访问谷歌服务。对3 ...

Continue reading

Android消息推送服务学习

Posted on Sat 18 August 2012 in it • Tagged with Android, Google Cloud Messaging

一个免费的Android Push Notification Service

http://www.push-notification.org/ 可以进行演示: 1. 下载demo程序到手机,设置唯一id,启动; 2. 在网站的console里输入pushto 3. 手机上接到这个字串 开发说明: 客户端:下载apns.jar并集成到自己的代码中; 服务器端:通过网站提供的REST API向服务器发送通知

Google在Android上发布的消息服务框架

C2DM:Android Cloud to Device Messaging Framework

2012年6月26日官方宣布C2DM不建议使用,鼓励大家改用GCM 见:https://developers.google.com/android/c2dm/ C2DM支持Android 2.2及以上版本,参考资料比较多: http://www.ipragmatech.com/power-mobile-app-android-push-notification-c2dm ...


Continue reading

什么是“大数据”

Posted on Sun 15 July 2012 in it • Tagged with Big Data

上周五参加了第二届大数据世界论坛,第一个收获就是对什么是“大数据”有了基本的认识。 好几位演讲嘉宾都在slide中给出了自己对大数据的定义,通过综合比较下面4个厂商给出的定义,感觉其实业界对大数据还已经形成了定性的共识,但在定量方面貌似还有不小的差异。 下面归纳大家的共识,给出另外一版定义(定量部分仅供参考): 1. 背景 a) 从近几年数据量的增长趋势上看,预计到2020年世界数据量达到35.2ZB(10的21次方),比10年增加44倍; b) 从技术角度看,现有常规技术架构在处理这种规模的数据上面临很大挑战,业界需要新的技术手段能以足够经济的办法处理极端规模的数据量; c) 从业务角度看,大数据对应的收集、处理和分析过程没有发生根本改变,构建和运行大数据系统的投入必须要能够产生最够的价值才有意义 2. 对大数据的描述(6V) a) 大规模(Volume):数据量至少得到达PB(~10的15次方,1000T)的规模; b) 快速性(Velocity):短暂的决定时间和数据本身快速的变化是系统建设最大的挑战; c) 多样性(Variety):数据类型多样,给集成带来了很大的开销。一般来说我们需要构建结构化、半结构化和文件型数据并存的数据系统; d ...


Continue reading

[学习心得]缓存、NoSQL和网格计算——银行能教给我们什么?

Posted on Fri 11 May 2012 in it • Tagged with NoSQL, QCon

演讲者:John Davies,Incept5联合创始人兼CTO、VISA架构师,资深超级极客

John Davies曾在多家世界级金融机构(摩根大亨、法国巴黎银行、Visa的移动支付网站V.me)做首席架构师,作为一个老技术工作者,他在这个主题演讲上分享了很多犀利的技术观点: SQL还是NoSQL的核心问题在于数据是关系型还是结构型的; 分布式计算的首要问题是搞清数据和计算的关系; 企业应用需要扩展性是对于受欢迎的业务来讲内存和CPU永远是不够的; 本地虚拟化、网格和云有什么关系和区别等。

简单的结论背后是他对技术和业务的深刻理解, 一言以蔽之,就是要选择合适的技术。

以下是他的一些直指本源的结论: · SQL might be the wrong language for hierarchical data but it's superb for tables--SQL处理关系型数据(数据表)那是一级棒的语言,但别让它处理结构化的数据 · Question on Page 11 · There are two main ...


Continue reading

qCon Beijing 2012 学习总结

Posted on Sun 22 April 2012 in it • Tagged with Predictably Irrational, QCon

今年的qCon大会安排在工作日:周三到周五,每天日程分为上午3个主题和下午4个并行专题各4个讲座,一共是(3 + 44) 3 = 57个讲座,每人可以当场听(3 + 4)* 3 =21讲。

关于主题演讲

本次的主题演讲者基本上是在国际知名大公司的技术部门摸爬滚打多年的资深工程师或架构师: John Davies是为多家大银行做过首席架构师,他分享的对数据库、缓存、NoSQL等数据处理技术的理解非常深刻; 百度的肖伟的《下一代云平台》据说在之前的某个技术大会上讲过,但对于第一次听的人来说,还是有帮助的,这个PPT对写相关技术文档有很好的参考价值; Joyent公司的工程副总裁Bryan Cantrill分享的Unix哲学和先系统后实现方式的思路对我的启示很大,对以后的资源分配有指导意义; Netflix的高级软件工程师Jason Brown的《利用云技术实现Netflix快速规模化增长》可以作为一个AWS最佳实践来学习; ThoughtWorks的首席咨询师Fabio Pereira的《敏捷软件开发怪诞行为学》对理解驱动人们一起工作并取得相同目标的因素,对一个团队的成功非常有帮助。尤其是今年年初刚看过《怪诞行为学》,对书里的观点非常认同,听起来相互印证,非常过瘾; Mike Lee是一位认同苹果哲学的传奇工程师,由于NASA的Khawaja Shams爽约,第三天上午Mike进行了两场讲座:《如何开发靠谱的应用 ...


Continue reading

QCon BeiJing 2012

Posted on Wed 18 April 2012 in it • Tagged with QCon

今年qcon最大的变化就是把会议时间全放在工作日了。路上感受了人潮汹涌的10号线来到现场发现也是非常火爆,据说本次有1000多人参加。 还有一个变化不太爽,就是没有wifi了,白带iPad了,而且有时候连GPRS信号都没有,qCon应该考虑换个地方举行了,这边的硬件环境太差了。

和去年一样,三天的会议分成上午的主题演讲和下午的4个同步专题演讲,三天一共有12个专题,这篇学习总结是对总共57篇讲座的归纳整理总结。 下面的内容是三天听课的现场感受和后续学习心得的分享链接:

第一天

知名网站架构分析:4399曹政的《分布式数据库及反范式设计》全部来自实践经验,讲得道理举得例子都是来自工作中,非常有参考价值;蘑菇街的双人表演略显稚嫩,倒也都是实践经验; 大数据NoSQL:上午Incept5的CTO John Davies讲得也不错;腾讯的NoSQL实践据说讲得一般,去听的人都有些失望;没去听这个专题,对百度杨栋的《Beyond MapReduce》挺感兴趣,有时间要学习一下ppt;还有John Davies的《构建高效内存NoSQL数据库》和淘宝杨成虎的《Tair存储系统》程序设计:听了黄毅的Haskell和曾冠东的Scala,后者讲得很不错:客观且基本覆盖我感兴趣的内容 ...


Continue reading

Thrift Python入门者的经验

Posted on Fri 16 March 2012 in it • Tagged with Python, Thrift

缘起

新阳创建了一个基于Thrift的开发平台。除了基于Thrift服务本身,最吸引人的地方在于这个平台提供了服务框架生成(支持Java和Php)、注册发布和监控的集成,他们事业部好多新起的SOA服务项目都是在这个平台下开发的。 在新阳的大力倡导和帮助下,我们部门也开始尝试接入这个平台。为了能够整合进去,首先得要在基于Python的基础架构上整合fb303。

经过一周多,利用边角时间写了ThriftPy工程。可以指导大家开发基于Thrift的Python实现(详见ThriftPy/readme)

而在开发的过程中,碰到了一些很有趣的问题但无法写入开发指导,所以就有了这篇文字。

开发经验分享

一个好软件的源代码看起来一定是清晰而舒服的,在编写过程中对开发效率和运行效率的权衡经过了深思熟虑。

Thrift开发约定(目录结构、命名、注释等)

要想保证Thrift开发工程的清晰一致,一定需要对开发进行约定。

目录结构约定

src gen-py : thrift gen 生成的python代码 py : 手工编写的代码 test : 测试代码 if : idl--*.thrift

==== 命名约定 ====

'''IDL''' -- IDL中定义的结构和服务要进行最详细的注释 /* * Scan Service * /

service ScanService extends ...


Continue reading

压缩工具的效果评估2

Posted on Fri 02 March 2012 in it • Tagged with 命令行工具

通过写这个脚本,搞清楚了Shell中的重定向、在陈萍的帮助下定位了FreeArc的编译错误、最后还重构了一下测试脚本。 这么多收获,一定要分享一下。

重定向知识的学习

标准输入:stdin,代码为 0 ;使用的方式为 < 标准输出:stdout,代码为 1 ;使用的方式为 1> 错误输出:stderr,代码为 2 ;使用的方式为 2>

> ##输出重定向到一个文件或设备 覆盖原来的文件 >! ##输出重定向到一个文件或设备 强制覆盖原来的文件 >> ##输出重定向到一个文件或设备 追加原来的文件 < ##输入重定向到一个程序

标准错误重定向符号 2> ##将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 2>> ##将一个标准错误输出重定向到一个文件或设备 追加到原来的文件 2>&1 ##将一个标准错误输出重定向到标准输出

& ##将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 c-shell |& ##将一个标准错误 管道 输送 到另一个命令作为输入

FreeArc 4 ...


Continue reading

压缩工具的效果评估

Posted on Thu 01 March 2012 in it • Tagged with 命令行工具

因工作需要,比较gzip/bzip2/zip/7z/freearc for linux压缩效果(压缩比和压缩速度)。 为了把测试的人工参与度降到最低,写了个测试脚本。 freearc的安装比较失败,目前还没有解决;测试脚本达到了预期效果,期间解决了几个小问题,把过程写出来和大家分享。

准备测试环境

准备测试文件

tail -n 1000 android_pkgs_172_20120226.log > android_pkgs_172_tail1000.log

安装7zip

有apt-get或者yum的直接安装:sudo yum install p7zip 没有的话下源码编译 http://www.7-zip.org/download.html http://sourceforge.net/projects/p7zip/files/latest/download?source=files

安装freearc for ...


Continue reading