Category: Software Architecture

0

[总结]理解HTTPS

摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。 我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一个hello消息给B: 如果我们要实现这个聊天软件,本文只考虑安全性问题,要实现: A发给B的hello消息包,即使被中间人拦截到了,也无法得知消息的内容 1.

0

[转]如何运用 DDD 解决团队协作与沟通问题?

领域驱动设计的核心是“领域”,因此要运用领域驱动设计,从一开始就要让团队走到正确的点上。当我们组建好了团队之后,应该从哪里开始?不是UI原型设计,不是架构设计,不是设计数据库,这些事情重要却非最高优先级。 试想,项目已经启动,团队却并不了解整个系统的目标和范围,未对系统的领域需求达成共识,那么项目开发的航向会否随着时间推移而逐渐偏离?

0

[转]聊聊Chaos Engineering的历史、原则和最佳实践

  随着微服务和分布式云架构的崛起,Web 变得日趋复杂,“随机性”的故障因此变得越来越难以预测,而我们对这些系统的依赖却与日俱增。 这些故障给公司造成巨大损失,也给用户带来很大的麻烦,影响他们进行在线购物、交易或打断他们的工作。即使是一些简单的故障也会触及公司的底线,因此,宕机时间就成为很多工程团队的 KPI。2017 年,有 98% 的企业表示,一小时的宕机时间将给他们带来超过 10 万美元的损失。一次服务中断有可能让一个公司损失数百万美元。最近,英国航空的 CEO 透露,2017 年 5 月发生的一次技术故障造成数千名乘客滞留机场,给公司造成 8000 万英镑的损失。 企业需要想办法解决这些问题,因为等到下一次事故发生就为时已晚。为此,混沌工程(Chaos Engineering)应运而生。 混沌工程(Chaos Engineering)旨在将故障扼杀在襁褓之中,也就是在故障造成中断之前将它们识别出来。通过主动制造故障,测试系统在各种压力下的行为,识别并修复故障问题,避免造成严重后果。 混沌工程将预想的事情与实际发生的事情进行对比,通过“有意识地搞破坏”来提升系统的弹性。 1. 混沌工程简史 混沌工程最先出现在互联网巨头公司中,这些公司拥有大规模的分布式系统,因为这些系统太过复杂,他们需要一些新的手段来测试它们。 2010 年 Netflix Eng Tools 团队开发出了 Chaos Monkey。当时,Netflix 从物理基础设施迁移到...

0

[转]当我们聊技术实力的时候,我们到底在聊什么

1. 技术实力的迷思 俗话说“文无第一,武无第二”,技术就是一种“文”的能力,很多时候我们很难直观看出一个技术人员的实力,但不管是公司招聘的面试,还是公司内部的晋升面评,都需要在较短时间内快速判断一个技术人员的实力。正因为技术实力评价本身没有绝对客观的标准,很多时候都会听到类似的吐槽: “我们组内的 XX 技术实力不如我,竟然他晋升通过了,我却被刷掉了,评委真的是~!@#¥”…… “面试官问的都是什么鬼问题,我知道的基本没问,我感觉他根本不会考察我的技术实力”…… “听说算法和数据结构最能体现程序员的实力,我要好好啃啃《算法导论》”(然而啃完又忘记了)…… ……

0

[转]我是如何在 10 分钟内搞砸 IT 面试的

最近,我差点儿就拿下了 FAMGA(CSDN 编者注:国内有 BAT,国外有 FAMGA,即 Facebook、Apple、Microsoft、Google、Amazon。)的工作机会。通过了电话面试,代码笔试题也顺利通过了,但最终却在一对一或二对一面试中翻了船: 白板编程面试:算法; 技术面试:JavaScript,CS,React; 文化适应性:你们懂的; 第二次白板编程面试:回头再写一篇文章吧。

0

Resume resource

This Is What A GOOD Resume Should Look Like:   How to write a great developer résumé and showcase your software engineering skills   https://medium.freecodecamp.org/writing-a-killer-software-engineering-resume-b11c91ef699d 中文版本   Template: https://zety.com/blog/resume-templates-word https://github.com/posquit0/Awesome-CV  

[转]构架学习路线图2018 0

[转]构架学习路线图2018

Kamran Ahmed 的 2018 年现代前端开发指南 想要成为一名成功的前端开发者,那么需要学习以下知识点: 学习 HTML 基础知识; 学习一些 CSS; 学习基础的 JavaScript; 了解一下 jQuery:现在新的项目中,jQuery 的使用已经没有那么广泛,了解一下即可; 学习包管理器; CSS 预处理; CSS 框架; CSS 编程方式; 构建工具; 选择一个框架,如 React、Vue 和 Angular; 学习渐进式 Web App; 了解静态类型检查器; 服务器端渲染。

0

[汇总]面试资源

1. 1. 刷题算法八股文 https://github.com/crossoverJie/Java-Interview 作者面试经验 https://github.com/Snailclimb/Java-Guide   作者耗时6个多月,从十几份顶级面试仓库和200多篇高质量面经中总结出一份全面而详尽的Android面试题集,搜集了国内一线及二线互联网公司最常出现的面试题,非常全面。https://github.com/JsonChao/Awesome-Android-Interview BATJ等公司必问的8道Java经典面试题 JAVA面试解析 刚出炉的一套Java面试题 与 30 家公司过招,得到了这章面试心法 一步步带你深入了解神秘的Java反射机制 https://github.com/crisxuan/bestjavaer   https://github.com/KieSun/InterviewMap   https://github.com/dingjikerbo/Leetcode-Java 从小白到 6 个 offer,我究竟是怎么刷题的? 三面谷歌前,熬夜总结了玩转 Leetcode 的办法 终于不用愁了,GitHub 上的这些面试题项目我给你找好了。     刷道谷歌泄漏的面试题:面试官想从中考察你什么? 几位大厂的技术总监都在用一个新型招聘面试平台ShowMeBug

[转]TopK排序 0

[转]TopK排序

问题描述: 从arr[1, n]这n个数中,找出最大的k个数,这就是经典的TopK问题。   栗子: 从arr[1, 12]={5,3,7,1,8,2,9,4,7,2,6,6} 这n=12个数中,找出最大的k=5个。