其他技术区最新随笔(rss) RSS

整理了最近百年的藏历数据,做了个公历藏历映射的小工具

@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 过去三年一直都在每年藏历新年前设法拿到新一年的藏历数据更新到自己的一个gihub项目里面,今年临近藏历新年,却发现以往的很多藏历网站都没有更新明年的数据了,正好弄到了最近一百年的藏历数据,花了点时间全部都更新了进去,顺便申请了一个还不错的域名 zangli.pro, 发布了一个新网站百年藏历,方便大家随时查询或者在自己的产品中直接引用藏历公历的换算脚本。

2019-01-30 13:34 作者: emu【评论:0】【阅读:39】 

小米技术分享:解密小米抢购系统千万高并发架构的演进和实践

     摘要: 本文原文内容引用自高可用架构公众号,内容有整理和修订。1、引言大家对下面这个排队的场景应该非常熟悉,这个是小米手机抢购的用户排队交互图,大家看到这些排队的兔子时,说明也有很多用户在同一时间向小米抢购系统提交了购买请求。▲ 小米手机抢购排队中...小米抢购系统后端服务面临巨大的压力,下图可以反映小米抢购系统面临的瞬间峰值压力。这张图截取自某年米粉节大秒服务后端其中一组LB(负载均衡层)的...  阅读全文

2019-01-24 20:27 作者: Jack Jiang【评论:0】【阅读:34】 

《测试驱动开发》的读书笔记

     摘要: 《测试驱动开发》的读书笔记 学习基础: 学习过程: 学习目的: 学习感悟: 学习代码: 测试驱动开发的规则 测试程序开发周期的阶段 《测试驱动开发》的读书笔记 学习基础: 熟悉《设计模式》的基本概念,熟悉《重构》的基本概念,熟悉基本的Java语法,熟悉Eclipse和JUnit的使用,有相对较好的英语基础。 学习过程: 第1部分,手工输入实例程序,了解TDD的方法和过程。重点...  阅读全文

2019-01-18 23:25 作者: 朱远翔【评论:0】【阅读:37】 

详解音频编解码的原理、演进和应用选型等

     摘要: 本文来自网易云音乐音视频实验室负责人刘华平在LiveVideoStackCon 2017大会上的分享,并由LiveVideoStack根据演讲内容整理而成(本次演讲PPT文稿,请从文末附件下载)。1、引言大家好,我是刘华平,从毕业到现在我一直在从事音视频领域相关工作,也有一些自己的创业项目,曾为早期Google Android SDK多媒体架构的构建作出贡献。就音频而言,无论是算法多样性,Code...  阅读全文

2019-01-18 22:02 作者: Jack Jiang【评论:0】【阅读:33】 

《单元测试之道Java版》的读书笔记

     摘要: 总览 第2章 首个单元测试 第3章 使用JUnit编写测试 3.1 构建单元测试 3.2 JUnit的各种断言 3.3 JUnit框架 4. 测试什么? 5.CORRECT(正确的)边界条件 6.使用Mock对象 7. 好的测试所具有的品质(A-TRIP) 8. 在项目中进行测试 9. 设计话题 总览 这是本相对简单的书,书中采用的JUnit的版本也是旧的,但是在新的J...  阅读全文

2019-01-16 17:57 作者: 朱远翔【评论:0】【阅读:36】 

《重构》的读书笔记–方法列表

     摘要: 第5章 重构列表 5.1 重构的记录格式103 5.2 寻找引用点105 5.3 这些重构手法有多成熟106 第6章 重新组织函数 6.1 (P110)Extract Method(提炼函数) 6.2 Inline Method(内联函数)117 6.3 Inline Temp(内联临时变量)119 6.4 Replace Temp with Query(以查询取代临时变量)1...  阅读全文

2019-01-16 17:50 作者: 朱远翔【评论:0】【阅读:29】 

《重构》的读书笔记

     摘要: 总览 第1章 重构,第一个案例 1.1 (P1)起点 1.2 (P7)重构的第一步 第2章 重构原则 2.1 (P53)何谓重构 2.2 (P55)为何重构 2.3 (P57)何时重构 2.4 (P60)怎么对经理说 间接访问 2.5 (P62)重构的难题 2.6 (P66)重构与设计 2.7 (P69)重构与性能 第3章 代码的坏味道 3.1 (P76)Dup...  阅读全文

2019-01-16 17:48 作者: 朱远翔【评论:0】【阅读:33】 

《重构》的读书重点

重构的原因:
  • 改善软件的设计水平;
  • 使软件更加容易被理解;
  • 使软件更加容易寻找错误;
  • 使软件开发速度更快;
  • 使软件代码更好维护。
重构的时间:
  • 增加函数的时候重构;
  • 修改错误的时候重构;
  • 代码审查的时候重构。
重构的主要方法
  • Extract/Inline
    • Method
    • Class
      • Subclass
      • Superclass
      • Interface
    • Hierarchy
  • Move
    • Field
    • Method
    • Variable
  • Rename
    • Method
    • Variable
    • Class
  • Pull Up
    • Field
    • Method
    • Constructor Body
  • Push Down
    • Field
    • Method
    • Constructor Body
重构的工具
  • IDE提供了自动化的代码重构工具;
  • JUnit提供了自动化的测试框架;
  • 设计模式提供了重构的方向;
  • 极限编程提供了完整的开发过程,包括:结队编程、自动化测试、代码审查、及时反馈、代码重构等等。

2019-01-16 17:46 作者: 朱远翔【评论:0】【阅读:36】 

《重构》的读后感

重构是本好书

作者优秀,作品优秀,翻译也很优秀。但是,无论多么好的翻译也无法完整传达作者的原意。因此,读之前最好准备英文和中文两个版本,中文读不懂的地方就换英文,英文读的累的地方就换中文。充分利用自己在两种语言上知识储备,可以使读这本书产生事半功倍的效果。

重构是由需求驱动的

为什么要重构?不仅仅是个人或团体的喜好(感性驱动),还应该是由客户的需求变更导致项目迭代出现困难,而重构正是解决困难的好办法,于是推动重构(理性驱动)。

当然,作为重构刚刚入门的程序员一定会到处使用这个大杀器,但是随着技术和经验的成熟,应该走向顺应需求的重构,满足客户需求才是项目的根本。

重构要有具体的目标

目标明确,拒绝诱惑。重构的过程也是熟悉业务的过程,检查错误的过程

重构要把大目标分解成许多个小目标
  • 因为每个小目标才不会超出自己的控制能力,出现错误后也更容易回退。
  • 重构的每个小目标最好能够具备有效地检测机制
  • 重构的大目标必须提供检验机制
重构最好能使用GIT、JUnit等等好的重构工具辅助

熟悉重构的理论知识,善用重构的工具。对于工具的理解可参考《工具的意义》

2019-01-16 17:43 作者: 朱远翔【评论:0】【阅读:16】 

Windows7下chm文件打不开

从网上下载的CHM文件在Windows7系统中无法显示内容,是因为Windows7系统中的浏览器下载的文件是被默认为锁定的,所以打开以后是无法显示里面的具体内容的,解决的办法:

  • 选中这个CHM文件;
  • 点右键,选择“属性”,在“常规”标签栏的最下面,有个“解除锁定”的按钮,点击以后
  • 再正常打开chm文件就可以浏览到里面的内容了。

2019-01-15 12:05 作者: 朱远翔【评论:0】【阅读:36】 

爱奇艺技术分享:爱奇艺Android客户端启动速度优化实践总结

     摘要: 本文由爱奇艺技术团队原创分享,原题《爱奇艺Android客户端启动优化与分析》。1、引言互联网领域里有个八秒定律,如果网页打开时间超过8秒,便会有超过70%的用户放弃等待,对Android APP而言,要求更加严格,如果系统无响应时间超过5秒,便会出现ANR,APP可能会被强制关闭,因此,启动时间作为一个重要的性能指标,关系着用户的第一体验。爱奇艺安卓APP非常重视启动速度的优化,本文将从启动过程...  阅读全文

2019-01-14 11:53 作者: Jack Jiang【评论:0】【阅读:36】 

Android程序员必知必会的网络通信传输层协议——UDP和TCP

     摘要: 1、点评互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯技术这一块)的开发者来说,网络编程是基础中的基础,只有更好地理解相关基础知识,对于应用层的开发才能做到游刃有余。对于Android程序员来说,如果您觉得本文内容稍显枯燥,可以看看即时通讯网之前整理过的一篇类似文章《迈向高阶:优秀Android程序员必知必会的网络基础》,该文内容更偏向于知识点的概括。如果您希望更系统地学习网络编程方面...  阅读全文

2019-01-10 11:15 作者: Jack Jiang【评论:0】【阅读:35】 

全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等

     摘要: 本文来自腾讯QQ技术团队工程师许灵锋、周海发的技术分享。一、引言自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年)、刷一刷红包(2016 年)和 AR 红包(2017 年)几个阶段,通过不断创新玩法,活跃度节节攀升,成为春节一大玩点,给火红的春节带来一抹亮色。2017 年除夕,AR 红包、刷一刷红包再创新高,抢红包用户数达 3.42 亿,共刷出红包 37.77 亿个。那么,QQ...  阅读全文

2019-01-07 12:10 作者: Jack Jiang【评论:0】【阅读:46】 

美图App的移动端DNS优化实践:HTTPS请求耗时减小近半

     摘要: 本文引用了颜向群发表于高可用架构公众号上的文章《聊聊HTTPS环境DNS优化:美图App请求耗时节约近半案例》的部分内容,感谢原作者。1、引言移动互联网时代,APP 厂商之间的竞争非常激烈,而良好的用户体验是必须优先考虑的,美图产品以高颜值著称,对产品的用户体验非常重视。从技术的角度来看,客户端的体验优化当中 DNS 优化是非常关键的一环,怎么降低 DNS 的耗时、怎么减少域名劫持等问题,都是大家...  阅读全文

2018-12-25 16:30 作者: Jack Jiang【评论:0】【阅读:32】 

Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展

     摘要: 本文由“猫爸iYao”原创分享,感谢作者。1、引言最近有个需求:评论@人(没错,就是IM聊天或者微博APP里的@人功能),就像下图这样:▲ 微信群聊界面里的@人功能 ▲ QQ群聊界面里的@人功能网上已经有一些文章分享了类似功能实现逻辑,但是几乎都是扩展EditText类,这种实现方式肯定不能进入我的首发阵容。你以为是因为它不符合面向对象六大...  阅读全文

2018-12-23 21:31 作者: Jack Jiang【评论:0】【阅读:60】 

优秀后端架构师必会知识:史上最全MySQL大表优化方案总结

     摘要: 本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/11900000061581861、引言MySQL作为开源技术的代表作之一,是互联网得以广泛流行的重要基础技术之一。国外 GitHub、Airbnb、Yelp、Coursera 均在使用 MySQL 数据库,国内阿里巴巴、去哪儿网、腾讯、魅族、京东等等的部分关键...  阅读全文

2018-12-17 13:34 作者: Jack Jiang【评论:0】【阅读:85】 

达达O2O后台架构演进实践:从0到4000高并发请求背后的努力

     摘要: 1、引言达达创立于2014年5月,业务覆盖全国37个城市,拥有130万注册众包配送员,日均配送百万单,是全国领先的最后三公里物流配送平台。 达达的业务模式与滴滴以及Uber很相似,以众包的方式利用社会闲散人力资源,解决O2O最后三公里即时性配送难题(2016年4月,达达已经与京东到家合并)。 达达的业务组成简单直接——商家下单、配送员接单和配送,也正因为理解起来简...  阅读全文

2018-12-10 19:32 作者: Jack Jiang【评论:0】【阅读:57】 

全面了解移动端DNS域名劫持等杂症:原理、根源、HttpDNS解决方案等

     摘要: 1、引言对于互联网,域名是访问的第一跳,而这一跳很多时候会“失足”(尤其是移动端网络),导致访问错误内容、失败连接等,让用户在互联网上畅游的爽快瞬间消失。而对于这关键的第一跳,包括鹅厂在内的国内互联网大厂,都在持续深入地研究和思考对策,本文将就鹅厂团队在这一块的技术实践,做一个深度的总结和技术分享,希望给大家带来些许启发。学习交流:- 即时通讯/推送技术开发交流4群:101...  阅读全文

2018-12-04 13:36 作者: Jack Jiang【评论:0】【阅读:39】 

用JWT技术解决IM系统Socket长连接的身份认证痛点

     摘要: 1、引言随着瓜子二手车相关业务的发展,公司有多个业务线都接入了IM系统,IM系统中的Socket长连接的安全问题变得越来越重要。本次分享正是基于此次解决Socket长连接身份安全认证的实践总结而来,方案可能并不完美,但愿能起到抛砖引玉的作用,希望能给您的IM系统开发带来启发。学习交流:- 即时通讯/推送技术开发交流4群:101279154[推荐]- 移动端IM开发入门文章:《新手入门一篇就够:从零...  阅读全文

2018-11-28 12:28 作者: Jack Jiang【评论:0】【阅读:54】 

技术干货:从零开始,教你设计一个百万级的消息推送系统

     摘要: 1、点评本文主要分享的是如何从零设计开发一个中大型推送系统,因限于篇幅,文中有些键技术只能一笔带过,建议有这方面兴趣的读者可以深入研究相关知识点,从而形成横向知识体系。本文适合有一定开发、架构经验的后端程序员阅读,文内个别技术点可能并非最佳实践,但至少都是生动的实践分享,至少能起到抛砖引玉的作用。希望即时通讯网本次整理的文章能给予你一些启发。学习交流:- 即时通讯/推送技术开发交流4群:10127...  阅读全文

2018-11-27 20:49 作者: Jack Jiang【评论:0】【阅读:58】 

技 术 改 变 世 界

宣传语

网站分类

其他分类

Google站内搜索

 

24小时内最热随笔

统计信息

订阅

Blog客户端API

推荐客户端

博客排行榜[前100人]

友情链接