美文网首页程序员
tech| 极客时间学习笔记 1

tech| 极客时间学习笔记 1

作者: daydaygo | 来源:发表于2019-01-16 16:00 被阅读48次

date: 2018-11-23 17:50:51
title: tech| 极客时间学习笔记 1

技术管理

成长不是顿悟, 而是练习

  • 内容: 技术领导方面的学习感悟; 技术领域内容; 硅谷文化/见闻/经历; 技术人员成长

  • 职场分身术: 带人 从给答案到做引导; 什么时候适合->给答案/线索/让对方找答案; 如何引导->通过问题->提高解决问题的能力

  • 帮助团队成员成长: 迅速(指导/反馈/监督/交流/协调资源); 明确的分解和布置任务; 建立有效的合作关系(上下级/相关部门); 不要陷入静态思维(换位思考); 看看大公司怎么做的(是否可以被提升->过去半年到一年里是否按照下一个级别的标准在工作); 个人成功->自己 vs 管理者成功->团队

  • 激发团队人员责任心: accountability/responsibility; 明确责任制/让责任制变得有效/成员有归属感

  • 提意见: 自己是否适合提这个意见; 放低姿态->更容易获得尊重; 合适的时机; 夸对方+正向反馈

  • 别人提意见: 了解自己内心->对意见的一般反应; 克服情绪上的障碍

  • 管理与被管理 期望值差异: 最需要被避免; 增加彼此的了解; 每半年/一年进行一次期望值深度对话; 有了约定后要持续跟进

  • 管理者不用亲力亲为: 事情能不能做好vs按照自己的方式做好; 介入->什么方式哪些地方; 授权和分配任务->明确目标/制定计划保持跟进/给出反馈尤其是正面反馈; 不用亲力亲为的关键->有效的任务分配/保证分配的任务能圆满完成

  • 不要做微观管理者: 独立自主vs指导帮助->因人而异/因时而异; 跟进的粒度->制定目标确定传达/多给指导少亲手做/设定频率保持跟进/交流难点给出建议; 交流的重要性

  • 兼容并包的领导方式: 保持员工组多样性->互联网市场组成多样/产品的用户多样->国籍人种性别/团队内部差异/团队创新思维(组织要么创新, 要么死亡)->坚定的承诺/谦卑的勇气/正确的认知/开放的心态/高情商/合作的意愿

  • 工作分配: 没有建立充分信任->建立参考基线/问题比答案更重要/工期估算/执行力/后期维护; 细节->新人/不同类型的员工/大项目需要指定负责人

  • 工作中的人际关系: 保持开放心态和愿意沟通的态度; 尽可能对别人的分享工作交流持积极友善鼓励的态度; 加入一些有利于自己成长的社交圈子; 适当寻求帮助; 对别人的意见尽可能认真对待

  • 理解并建立自己的工作弹性: 具有弹性的架构才是有生命力的; 焦虑 rumination; 正确面对压力->走出思维误区->结交积极向上的人保持良好心态->付出和回报不一定等比/fake it, until you make it

  • 说不: 轻重缓急/正确评估自己的能力和时间资源/勉强做

  • 技术人员建立影响力: 存在感->不要在一些可有可无的事情上纠缠; 说服力->观点清晰条理清楚/换位思考; 谈判力->取决于自己的知识智慧经验直觉/事情的来龙去脉/共同利益减少冲突; 协调力->从平时做起/成为团队里让事情发生的人/对资源保持敏感度/适时传达沟通; 鼓舞力-> 担心/困难/长处/成果/建设性意见

  • 技术人的犯错成本: 所有关于公司公关层面的事都不是小事; 人事变动的宣布一定要谨慎; 技术/业务问题不确定就不要随便给答案; 技术失误导致错误的产品决定; 错误->要去试错/要在错误中成长

  • 错误中成长: 伸展错误->挑战能力之外->培训机制; 无知错误->信息透明和共享; 粗心错误->复盘机制; 高风险错误->planB

  • 职场规划: 想清楚问题再和领导沟通寻求帮助->个人价值观/长期愿景/达到目标还缺啥/优势和长处(合作性/独立思考/行动快速/产品思维); 需要领导提供什么支持->能证明自己的项目/需要人带/更多练手机会/专注培养某一项技能/接触更多业务架构的讨论/参加一个系统的培训; 想要什么差距在哪->和领导沟通寻求帮助->设定目标并设定一个你和领导都满意的规划->让计划可执行可追踪

  • 硅谷公司一对一沟通: 谈话内容没有定式; 沟通更有效(善于聆听/换位思考); 沟通的杠杆->对技术领导而言, 团队的成功才是真正的成功

  • 硅谷人到底忙不忙: 2种氛围(工作狂vs平衡工作生活); 主动延长工作时间->对自己有帮助/对升职加薪没有直接联系; 这种氛围下充分利用好选择和自由->和组员沟通, 了解他们真正想要什么

  • 硅谷面试: 多轮面试->算法编程(编程硬功夫)/系统设计(根据自己的能力和经验去架构整个系统)/工作经验面试(技能树)/价值观+团队协作; 多轮->侧重/面试官的主观影响; 刷题->重在功底/是不是真的懂; 面试官经验->思路局限在一个熟悉的领域; 潜规则->难度递增; 如何拿到面试机会->内推/简历闪光点/共事过同事给能力背书

  • 硅谷开发流程: OKR设立->主项目+子项目->子项目生命周期->主项目生命周期->收尾维护复盘

  • 硅谷 code review: commit/PR/MR; 代码合并规则->评论; 帮助成长, 而不是代码; 提交代码类型 bug/优化/迁移/feature; 注意事项->PR+单一+找谁审/代码风格+可读性+错误处理+测试+质量和规范+架构+性能+@

  • 中美支付环境差异: 市场占有->各种卡/ACH/支票/现金/电汇/PayPal; 钱包系统->NFC/RFID/QRCode/磁感/安全芯片/主机卡模拟/客户验证数据/令牌化技术; 支付趋势->可穿戴设备/越来越快/虚拟币

  • 编程马拉松 hackathon: hack项目成为正式产品的原型; 技术不一定在代码里; 和大牛结对编程; 即使面对大牛也可以表达意见; geek is the new sexy

  • 各角色沟通: 产品经理->产品和项目的边界/沟通协调/产品给人用的, 是人就会有需求/产品经理技术经理项目经理互助; 数据工程师->数据试验/数据指标/数据异常监控

  • bug引发事故: 追究责任, 而不是惩罚->做好善后/避免再犯; 对事不对人->及时发现和制止/改善制度和流程; 反复问为什么->从根本上发现问题; 员工关系建立->信任互助, 为目标努力, 而不是不安全感->不断反思/学习/进步的良性循环

  • 项目延期: 为什么项目容易延期->人们在历史长河中累积的经验失效了; 怎么办->流程(计划制定与跟进)/优先级/共享项目状态表/不要漏掉任何一个人/提供有效的反馈渠道

  • 项目管理三个技巧: 项目计划要对多个项目进行细分重组(能力->任务/时间->负债平衡/有挑战有意思vs脏活累活/挑战->成长/任务之间的依赖/任务->主题主线->成就感); 细分重组; 工期估算->自己判断+组员沟通->截止日期才是最好的效率工具->过于乐观+留出缓冲; 实时跟踪+planB->一旦出现延迟一起分析原因

  • A/B test: 永远不要过分相信你的直觉; 试验样本的数量和分配很重要; 分析的维度尽可能全面; 其他组的改动对A/B test 产生的影响; 比较值的趋势必须是收敛的, 而不是发散的; 数据埋点(前端实时数据/后端实时事件); 形成一个流程/设计一个工具; 试图给每个结果一个合理的解释; 必要的时候重新设计实验; 不同客户端分开进行测试

  • 幂等: 幂等令牌+确保唯一性(比如DB唯一索引); 令牌产生时间怎么产生/令牌误删除的可能/各种竞争条件/请求重试处理; 系统中需要多层幂等

  • 大数据时代的算法: 算法是面试敲门砖; 编程->算法思想vs具体算法; 不精通算法的工程师永远不是好工程师

  • 数据库知识: 数据库从来不出问题->业务量/流量没上来->尽量避免坑, 更快的修复; 选型; 数据库相关架构; 人为错误(误操作/修改表结构锁表); 访问瓶颈; 研发过程->索引/事务支持/锁(乐观锁/悲观锁)/cache/主从

  • 系统拆分: 创业/项目初期->业务拆分(productivity vs complex)->注意事项(测试变复杂/接口改动需要大量协调/报错处理/日志的完整性/超时设置/代码自由); 拆分临界点->业务量需要水平扩展/开发人员经验/几乎不可逆

  • api设计与实现: 签名; 设计原则->restful/参数结构化/认证和安全/客户端无关/幂等; 好的api框架->访问权限统一控制/自动测试/请求响应格式以及序列化反序列化/日志与日志过滤/自动生成文档/对架构和性能的影响; 设计中的平衡->自由总是相对的/当前vs未来/可维护性vs效率/aop

  • 编程语言: 初学者不用纠结先用哪种语言->跳进去游几圈->不可能只学一门语言; 精通一门; 也可以用脚本语言入门, 比如python; 前后端至少各掌握一门; sql 非常重要的一门语言; 要测试; 并发/分布式思维看待程序

  • java: 核心库非常慎重/函数的精度和运行时间要求非常高; 推荐新手入门/常见开发问题; 不要重复造轮子也不要搬太多轮子/了解DI, 选择一个好框架/所有项目使用统一文件结构/api保持统一风格和模式/规范开发环境提供合适工具

技术与商业案例解析 2018-12-20 18:28:43

企业分析要求综合素质: 不只开发的世界; 经济学基本原理; 基本财务知识; 现代企业如何运行的; 以史为鉴; 做人要有大局观; 积跬步

选择比努力更重要
眼界+人+方法论
往者不可谏来者犹可追
站在行业变革前夜, 只有伟人才能比别人看得更远
一个人的成功: 机遇+个人能力+眼界
有些时候,花时间做一些近期内没有什么意义,但是却能够提高自身

Amazon 领导力准则:

  • 贝索斯: 公司领导人应该旨在实现长远的目标 而不应该屈从于短期的利益
  • 敢于谏言, 服从大局: 办公司政治 一团和气 维持和领导的关系 vs 追求真理; 做出决定以后大家一起承担责任, 然后就事论事进行改进
  • 决策正确: 领导必备的素质->不拘泥于细节和自己熟悉的范围; 寻找多样视角并挑战自己的观念->经常修正自己对事物的理解和决策; 深思熟虑+能够跳出自己的观点
  • 客户至尚: 客户入手->反推工作; 关注竞争对手, 但更关注客户; 客户总是非常不满足(总是想要更好的东西, 甚至他们都没有意识到这一点); 度难以把握
  • 节俭: 成本控制; 物美价廉 电商; 云计算->更低廉但盈利更多; 员工福利/仓库空调/面试/员工绩效提高计划
  • 主人翁精神: 长期利益vs短期利益; 小团队vs公司整体; 薪酬体系(少现金多股票)
  • 选贤育能: 不断提升招聘和晋升员工的标准; 选拔天才贯穿始终; bar raiser; 高于组内平均水平->一走一留
  • 最高标准: 近乎苛刻的高标准并且不断提高标准; 确保问题不蔓延及时解决并不复现
  • 创新简化: 简化和创新密不可分; 创新不要受局限; 创新要接受长期被误解; 退货无客服参与
  • 崇尚行动: 速度对业务影响至关重要; 很多决策和行动都可以改变->不需要广泛推敲; 深思熟虑/管理好风险->进行冒险; 速度就是一切; 让市场告诉是不是犯错了; 尝试->失败->纠正->前进
  • 远见卓识: 局限性思考->不同角度考虑问题
  • 好奇求知: 持续学习, 不断提升; 对各种可能性保持好奇心并付诸行动
  • 赢得信任: 专注倾听, 坦诚沟通, 尊重他人; 善于自我批评; 对自己和团队都有高要求
  • 刨根问底: 深入各个环节, 掌握细节; 审核, 数据vs传闻->怀疑态度; 不遗漏任何工作->最高标准
  • 达成业绩: 结果->硬指标; 关注业务的关键决定条件, 确保工作质量并及时完成; 面对挫折不气馁

Amazon:

  • prime 客户至尚
  • 硬件: 对未来趋势把握准确vs能不能在既有条件下实现目标; kindle->积累的运营数字产品的经验; FirePhone;
  • echo: 忠于市场的真实反应/生态圈/开放性; Tap音箱; echo dot; echo show; echo plus(低音喇叭 智能家居控制); echo spot; echo button
  • 语音助手Alexa: 语音处理领域Nuance/Yap/Evi; 独立出来->平台->生态
  • 面试: 领导力准则; bar raiser 企业文化守护者 选贤育能
  • 大数据: dynamo(nosql先驱); EMR; 插管吸血开源; redshift(数仓/数据分析); Aurora(兼容mysql); Athena(查询服务); kinesis(流数据导入与分析); Glue(ETL); quickSight(数据可视化)

Alibaba:

  • 大数据: maxCompute; OceanBase; PolarDB(两地三中心主从备份; 软硬件结合->10倍性能); 重叠的功能; 流计算引擎->JStorm/Flink/Blink

Google:

  • 占领客厅: chromecast 视频播放投到电视上; nest 智能温控器; 谷歌音箱(技术->7个麦克风vs2个麦克风 云端服务)
  • 创新精神: 花费大力气去解决难题; 制度上支持 80/20; 创新->非常符合实际需求; 下一代内部实施后才会在业界大肆宣传上一代技术; 以论文方式公布核心技术而且只公布一部分; 宣传一个技术时往往宣传得普遍适用言过其实
  • 面试: 面试和决定发offer的人之间是分离的; 非常难->面试打分5等(不想->想)->委员会(招/不招/加面/有条件的招)->资深副总裁->队伍匹配(资料库); 更苛刻的面试失败惩罚->冷冻期/3次面试失败; 只要最优秀的人+优化谷歌自己的利益+有钱
  • 大数据: 三驾马车(FS/MR/BigTable)->互联网内容存储/倒排索引(词->文档)/增量更新; 广告业务(羊毛出在狗身上, 让猪买单); 起个大早, 赶个晚集
  • MapReduce vs DBMS -> spark
  • Spanner: 多数据中心->存储/查询/一致性; 时间同步问题->原子钟+GPS; F1->兼容mysql/扩展性非常好; 金融行业->两地三中心

微软:

  • 面试: AA; 自上而下的管理风格(对上级负责); 领导者极大的自由裁量权->一个圈子加一个圈子
  • office: 升级销量->为了创新而创新; office365->ui和底层分离/onedrive; 收费方式->月收
  • 大数据: 微软硅谷研究院(dryad); 大数据发展史是做OS的人向做DBMS的人发起的一场战争; 必应的cosmos(压缩算法; SCOPE); azure->HDInsight/DataLake/CosmosDB
  • 综合工程师改革 陆奇: 软件平均开发周期三年->三权分立(开发/测试/项目经理)->测试和开发合并
  • SQLServer 眼光决定一切: 偷懒, 使用windowNT来实现某些功能->重写->7.0 几乎重写所有模块 存储引擎/数据处理/数仓/数仓查询语言MDX/ETL支持->大跃进 基于DB的WinFS

facebook:

  • 面试: 2轮电面->4轮现场(onsite)面试->面试官「包裹」->HR->招聘委员会(招/不招/加面)->VP->轮岗期; 刷题; 考评0-7档; 倾向于使用年轻人->勤奋和有更多时间工作
  • 用人之道看企业发展: 招聘 晋升; 怎么用人需要什么人->企业特色/发展前景
  • 大数据: Hive(快糙猛)->presto; Cassandra(Dynamo)->HBase(BigTable)
  • 黑客精神: move fast and break things(快糙猛); hack everything; move fast with stable infra

LinkedIn:

  • 大数据: kafka samaza(流处理)

ashton-tate 桌面数据库

  • dBase-> 偷懒 用工具翻译汇编到C语言-> 添加菜单 -> 遇到的进攻: 带编译器执行效率更高/自定义函数 -> 半成品 -> 卖身给竞争对手
  • 无敌不可以肆意妄为: 一直未解决向后兼容问题; 目光短浅, 签下技术债; 对市场需求和变化反应慢; 食言而肥, 让用户失望

reddit 天涯美国版:

  • 比较核心的功能: 分容分享+打分机制(赞成反对/时间)
  • 论坛叫好不叫座, 盈利困难

zynga 发家从农场开始:

  • 德州扑克->农场种菜farmVille->CityVille->超强吸金->大扩张->续作太烂而且使用交叉推广
  • 启示: 太多精力关注自己的失败而没有注意到智能手机兴起; 领导人能力; 对待失败的态度; 乱花钱; 领导人眼光

保罗.格雷厄姆 创业教父:

  • Lisp专家 blub论断(不同编程语言不同在哪 怎么判断更高级)->语言特性
  • 创业思考: how to get startup ideas; do things that don't scale; startup=growth
    hacker news 创业+社交:
  • 和reddit相似: 新闻集中营, 允许用户上传新闻
  • 不同: 专业论坛vs综合性论坛 用户规模 技术含量更高
  • 拥抱变化, 适应变化, 才是常态
    Y Combinator 孵化器vs培训班:
  • 孵化器等同骗子->创业团队提交申请->一年2次, 每次3个月创业投资培训计划->团队PK->入选团队拿走7%股权
  • airbnb: 你们公司这个想法到底能不能成功我不知道, 但是你们连个人一定能存活下来. 因为你们这样坚定的信心和做事情的决心, 我相信你们两个人
  • 创业项目vs创业团队
  • 创业导师的经验可以给创业团队带来非常多的价值; 方便后续融资; 维护前期创业者和后续创业者类似校友的关系
  • 创新工厂: 孵化器->纯VC

SAP:

  • DB2 Oracle
  • HANA战略: 内存数据库 列存储 支持事务 同时支持分析查询 几乎完成整合R的功能 现代数据库常用的shared-nothing架构
  • 高价: 关注集中到价格上; 营造高大上的形象
  • 敢吹->半成品就敢给用户->高效率开发(4年80个版本)->作为公司战略高度->收购老牌数据库厂商Sybase
  • 成功(大大)忽悠+成功(高效)执行=成功产品

salesforce SaaS先驱:

  • 理念超前: 基于什么层面的超前(领域, 领域内愿意吃螃蟹的有多少); 公司使用什么态度来对待这个概念; 到底多超前; 盈利

sun:

  • 廉价又高性能的工作站/服务器
  • java语言: 机器/os无关, 可以运行在任何平台上
  • pc+win/linux->量变引起质变; 2000->2008
  • 看错敌人, 等待自己的只有灭亡; 挖墙脚的都是敌人, 也许现在看起来微不足道; 一锤子买卖vs持续不断; 过日子要精打细算->开源节流

杰克:

  • 严格按照规范: 一天工作16小时, 8小时Twitter, 8小时Square
    Twitter:
  • you can either be a dressmaker or the CEO of twitter. you can't be both
  • 华尔街给新公司蜜月期->估值模式
  • 硬道理: 公司, 总是要赚钱的; 现在盈利vs画大饼
  • 站在风口上, 猪也会飞; 但是风停了, 就很容易看到是真凤凰还是只是头猪了
    square:
  • pos机
  • capital: 小微企业贷款->无固定还款日期, 刷信用卡时还
  • caviar: 送餐业务
  • 流血IPO
  • 比特币支付
  • 创新; 把核心用户的体验做到极致(手续费/到账时间短); 融资能力(Twitter董事会虚职/流血IPO)

Box:

  • 2008经济危机->传统企业寻找更廉价it设备; iPhone/ipad等新硬件
  • 企业市场 盯着钱做业务 vs 互联网企业模式 花钱培养用户流量
    DropBox:
  • 存储: aws s3; Y Combinator 投资; 面向消费者
  • UI: 特殊文件夹
  • 自建数据中心

Pinterest 图片社交:

  • 图片是一个更好的沟通方式
  • 通过pin的方式保存图片->按照不同类别组织->共享图库给其他用户->可以follow->app版
  • 盈利: 企业宣传; 企业图片广告; app添加购买功能
  • 版权: nopin html tag; 自动屏蔽一些网站
  • 是否上市->创业原始股

Groupon 团购鼻祖:

  • IPO->庞氏骗局: 高折扣无法维持->老客户流失vs新客户入局
  • 卖身/被收购: 创始人->风口上的猪vs弄潮儿

大数据:

  • 自建轮子: 愿不愿意vs能不能; 公司到底有没有需求; 公司文化; 够用+专有工具导致被锁死在平台
  • 抱团取暖vs插管吸血
  • Palantir: 国安; 金融机构
  • splunk: 机器大数据的分析; 企业安全/网络安全; 立足核心价值+非常努力多元化发展
  • confluent: 在kafka上飞驰的数据交换者; 数据库日志恢复功能->数据复制->数据交换(生产者/消费者); 主要产品开源+控制中心收费
  • powerSet: HBase; 自然语言的SE
  • dataStax: Cassandra(没法保证行级的一致性); 整合spark/Solr提供数据分析搜索功能; 多语言/平台支持; IDE环境
  • databricks: spark; 基石上开发附加产品; 基于spark平台的应用进行认证确保兼容性; 技术支持
  • data Artisans: Flink(理念更先进)
  • Dremio: hive->drill->Arrow; 预先计算
  • imply: druid->同时支持离线实时数据分析/可插拔查询系统/不支持join/不支持sql; SQL层组件+可视化查询模块
  • kyligence: 如何有效的进行预计算
  • snowflake: 云端弹性数据仓库
  • PingCAP: TiDB->newSql; mysql层->100%兼容/使用mysql的测试/备份协议; 存储层->raft/spanner
  • 蓝海vs红海
  • 通过技术积累来判断企业: 最好本人就是某一方面的专家; 技术是否有适用有意义的场景; 领先独到的优势; 技术积累的广度和深度; 不断充实自己, 提高对技术和商业的理解

论文:

  • 作为互联网的软件开发人员, 能不能读懂论文, 是一项可以决定自身发展潜力的必备技能
  • 写作角度: 写给谁看的(顶级期刊/发表目的); 怎么写出来的(对同行的知识结构有假设->基础知识; 不说谎->化了妆; 批判性而非教科书式)
  • 基本功: 写+发表; 找到2篇可以比较的(后者引用前者); 一般只交代作者成功的故事
  • 亲身实践(加入类似团队)+看解读

办公软件的战斗:

  • 微软霸主: 企业很多时候是瞎折腾+内斗(no zuo no die); 没有跟上时代; 屡败屡战; 螳螂; 菜单/可以读取竞争对手的格式; 红狮会战(Excel); 软件合集works
  • VisiCalc: 行是数字, 列是A1; 没有申请专利; 写软件vs卖软件->拖更新vs拖钱
  • WordStar: 所见即所得; 全球公认最大的纯软件公司(->莲花->微软); 鼠标+下拉式菜单; 核心团队出走/重新收购->多产品线无法整合->政治斗争下的「吃螃蟹」
  • WordPerfect: 汇编->性能; 免费技术支持(等待时讲笑话不至于无聊); 仓促推出window版
  • 莲花公司: 花巨资请麦肯锡做软件推广->华尔街日报全版广告; 磁盘附带软件说明书; notes->封闭性(华为2015迁出); IBM恶意收购
  • slack: 非常强大的内部沟通功能; 非比寻常的搜索功能(消息/文件/通知等跨类搜索); 自带一个机器人(使用问题/定制); 整合第三方应用/应用商店
  • 启示: 避免内斗 居安思危; 敌人的出现往往出其不意(甚至不同领域, 口香糖vs手机app); 全方位拓展往往大概率失败vs拓展/尝试->抵御危机; 收购/仿造有威胁的产品

Zenefits:

  • 保险和就业挂钩->大公司好解决/小公司难处理
  • CEO作弊丑闻->裁员控制成本

巴顿:

  • 把数据和产业结合起来, 从而能够发现痛点, 弥补鸿沟, 创造价值: 哪些行业需要数据; 高效精准数据采集; 数据变现
  • ecpedia: 猫途鹰; 重视商业vs重视技术
  • zillow: 牛人的观念总是惊人得相似
    Zillow(巴顿):
  • 盈利: 广告+订阅
  • 买买买来巩固自己的地位 -> 买着买着就撑不住了
  • 效率就是金钱(赚钱和花钱的速度)
  • 和Redfin差不多同时出现在市场上
  • 传统行业: 竞争 vs 提供技术服务
    Glassdoor 让公司信息对个人透明:
  • 必须用公司名为后缀的邮箱注册; 提供薪水信息->可以查看薪水分布; 人工审查
  • 服务: 企业做品牌建设; 搜索公司职位->薪酬/排名/员工排名等信息; 广告系统; Facebook inside connection; 集成职位SE

甲骨文:

  • 面试: 校园招聘 唯出身论 精英文化

智能音箱的战斗:

  • 白马非马 智能音箱非音箱: 语音->新交互入口->AI技术要求很高
  • 透过一个领域联合分析多个企业: 同一件事情, 不同的企业怎么做的; why; 对比->深层理解企业
  • 分析企业2要素: 远见(think big)+执行力(bias on action)

Valve:

  • 半条命 MOD大法; 半条命2 黑客 数字版权
  • stream: 游戏界的iTunes; 捆绑大旗; 求生之路1-2; DOTA2
  • 无领导管理: 想要干什么, 兴趣最重要->主动意愿非常强的人
  • VR: vive HTC->Oculus售价高+独有->宝宝不开心宝宝有情绪(黑客破解)
  • 制度: 创始人很有钱; 初期就盈利; 不扩大规模也不上市

雅虎 yahoo:

  • 软银->互联网第一股->互联网泡沫->CFO/投入产出比(节流)+CEO/新媒体vs高科技(开源 从没有发明过任何开创性技术)->和谷歌拼技术->杨致远/微软收购(陆奇)->2008->流水CEO
  • 杨致远: 分类网站(信息齐全/准确); 不重视核心技术; 卖给微软vsVerizon
  • 通过分析人去分析企业->考验分析者本身的水平
  • 大数据领域的活雷锋: Hadoop zookeeper pig->spark/flink

David.Duffield:

  • 三次创业三次IPO成功: 坚持自己熟悉的领域 精准的技术眼光 创业者的眼界; 清楚认识自己, 什么擅长什么不擅长->怎么弥补->生生不息的奋斗精神
    PeopleSoft 仁科:
  • 股权vs投票权
  • C/S架构->浏览器/服务器架构; HR 财务 大型制造商领域 供应链管理 客户关系管理
  • 硅谷一般不会有敌意收购(恶意收购): 空壳->技术大牛都跑路; 收购要约
  • 创始人眼光和技术洞察力; 商业上未曾犯过什么大错->没有经历生死存亡; 欠缺平台性和不可替代性; 创始人对商业和战略格局缺乏眼光->商业问题不一定非要通过技术手段解决/同资本共舞
    WorkDay:
  • SaaS模式 2005 vs 第一个aws服务S3存储 2006; 数据都存在内存里
  • HR 财务 面向学生 面向HR招聘

RealNetworks:

  • 压缩算法/流媒体/内容订阅 RM格式 收费对免费在哪个国家都会失败 iPod/YouTube
  • 应对商业巨鳄: 产品是否具有不可替代性; 在自己更擅长的领域开展业务扩展战线; 抱上另一个大腿
  • iPod的胜利是一个平台的胜利, 而战胜平台, 唯一的办法就是建设自己的平台

mongoDB:

  • humongous
  • 大概怀着伟大理想的人都会做出伟大的产品
  • 数据库领域科班出身vs某些弊端深刻理解
  • 特别注重宣传: 资助用户组/mongo大会/定位开发人员
  • 先绑上大船, 再慢慢修理这艘船
  • 用户体验: 产品非常非常好用, 万一出问题, 也有很好的技术支持
  • 商业技术支持+商业版
  • 安全门事件
  • 基础架构类产品: 可靠性vs可用性(里子vs面子)
  • azure - Cosmos DB

winRAR:

  • 具有知识版权的非公开压缩算法: 格式支持; 40天后还可以用(吃瓜群众 被盗版->安全)

Tableau:

  • 把公司的技术做到一定规模,然后再把这家公司卖掉
  • 一家非常微软化的公司
  • 自建数据引擎: 各种数据源清洗后导入
  • 学术界vs工业界

周鸿祎:

  • BAT
  • 3721: C2C; 流氓软件之父; 战斗力+耐力
  • 雅虎中国: 营收而非发展->短视
  • 能够从一次声势浩大的战斗里面吸取教训,并在此基础上得到难以想

Hadoop:

  • Cloudera: 三国魏, 历史总是惊人的相似, 但也只能到相似的程度了; 发行商, 类似Redhat; 数据仓库 Impala kudu
  • MapR: 三国吴; 重写文件系统->HBase->kafka; Drill
  • Hortonworks: 三国蜀; 价格战, 有钱的不缺那点钱, 没钱的希望更便宜
  • aws-E-MpaReduct Azure-HDInsight

从0到1:

  • 创业者->有价值而且很少人做(先发优势 是否适合创业->远见卓识); 投资人->投资潜力大而且没有被发现
  • 历史就是这样的出其不意
  • 严肃而保守->国家安全: 自由主义者和政治主张
  • 言论自由&有钱人不断起诉
  • Sun公司2000: 计算资源应该像水和电一样, 由公司提供, 客户按需消费 -> 等待时间

Redfin:

  • 在地图上展示房源信息: 早于Google地图
  • 盈利: 房产中介服务费3% vs 广告(数据才是真正赚钱的东西)

F5(龙卷风):

  • 一招鲜之殇: 硬件负载均衡器 -> 软件定义网络

在线差旅报销Concur(史蒂夫 · 辛格):

  • 转型: CD卖软件 -> 卖许可证(培训/定制/维护) -> 开发定制软件 -> SaaS
  • 毕业前创业 -> 学位 -> 董事会
  • 正现金流 -> 大规模提高正现金流依然保持收支平衡甚至盈利

企业转型:

  • 百年老店IBM: 自动制表机 -> 大型计算机 -> 服务公司; 大数据->起了大早赶了晚集(官僚作风/对开源项目的保守态度 SystemML 眼光向来不错)
  • 微软: window+office(os/app/IDE/DB等尝试后) -> 错失搜索/社交网络/移动互联网/手机 -> 云计算
  • HP: 大型机/医疗器械/打印机 -> 拆分优质资产, 企业级到消费级 -> 计算机
  • 领导人 + 旧业务有足够的现金流支撑到新业务造血(转型是找死, 不转型是等死) + 时机

Cray 超级计算机:

  • 单一化的隐忧(一条腿走路): 晶体管->集成电路; 超算(非常非常小的市场)->PC
  • 寻找第二条腿: 和第一条腿的互补性+第一条腿的独创性; 第二条腿往往在一个已经有竞争对手的市场里

Halo的开发者Bungie:

  • 2000接受微软收购, 2007离开微软
  • 卖身 收购: 一锤子买卖 人才收购(打散/独立业务) 独立运营

玩转 VS Code 2018-12-10 15:48:15

下限-开箱即用的体验: 快捷键(肌肉记忆) 编程语言和框架支持 工作流的选择和支持(资源管理器/版本管理)
上限: 插件开发扩展能力
学习指南: 核心编辑器使用(快捷键 编程语言)->工作台/工作区->定制/插件开发

如何设计一个秒杀系统 2018-12-06 19:35:31

秒杀: 主要解决2个问题(并发读 并发写) 稳准快(高性能/一致性/高可用)
架构原则: 数据尽量少/请求尽量少/路径尽量短/依赖尽量少/不要有单点

动静分离:
动态数据: 数据是否和URL(唯一化)/浏览者(登录)/时间/地域相关, 是否含有cookie等私密数据(去掉)
改造: 结合上面的动态数据 ESI(edge side include)/CSI(client side include)
上CDN: 失效问题 命中率问题 发布更新问题 节点不要太多

热点数据 二八原则: 优化/限制/隔离(业务/系统/数据)
流量削峰: 排队(MQ) 答题(生成/推送/图片生成) 分层过滤(CDN->前台读->后台写->DB)
性能 QPS: CPU执行时间+线程等待时间(RPC IO-wait sleep wait); 线程数=2*CPU核数+1
优化: 减少编码 减少序列化 java极致优化(直接使用servlet 返回json) 并发读优化
减库存: 下单/付款/预扣(有效付款时间) 缓存vsDB 应用层排队vs数据层排队
plan B: 降级(系统性能vs用户体验) 限流(客户端vs服务器) 拒绝服务
缓存失效设计: 被动vs主动

架构是一种平衡术
[图片上传失败...(image-9149aa-1547625611715)]


高可用系统架构

极客时间 - 持续交付 2018-12-06 16:06:45

主要组件(四大金刚): 配置管理/环境管理/构建集成/测试管理
灰度发布
移动App
开源红利
代码分支管理: 主干开发(Google/Facebook) git-flow(github/gitlab)
依赖管理: 工具自动化 环境一致性 代码更新必定更新版本号(commitID)
git代码回滚
2个披萨团队

环境:

  • 开发/功能测试/验收测试(产品展示)/预发布(相同基础设施)/正式
  • 公共(中间件/框架类/底层公共业务(账户/登录/基本信息))+泳道 统一配置
  • 公司主流语言栈 统一镜像 配置模板 统一软件版本+更新方式 架构解决环境路由问题 自动化环境产生过程
  • 标准化-规范(代码/依赖 命名 开发 配置 部署 安全 测试) 约定大于配置 自描述
  • 配置vs配置管理 环境配置 运行时配置(配置中心-微服务)
  • 用户访问入口管理 应用间调用链管理 数据层访问 环境创建/拆分

构建工具(maven)-构建检测(maven enforce)
CI: TravisCI CircleCI jenkinsCI(+k8s)
docker: 用容器来构建镜像(DooD DinD)
发布: deploy/release/rollout 把大象装进冰箱分几步 单机部署(易用/快速/稳定/容错性强/回滚顺滑) 集群部署(灰度->蓝绿/滚动/金丝雀
immutable: 任何变更都需要发布 黄金映像/VDI/PhoenixServer/IaaS

发布系统:

  • 1 张页面展示发布信息
  • 2 个按钮简化使用
  • 3 种发布结果: 成功/失败/中断
  • 4 类操作选择: 开始/停止/回退/重试
  • 5 个发布步骤: markdown/download/install/verify/markup
  • 6 大页面主要内容: 集群/实例/发布日志/发布历史/发布批次/发布操作

发布系统架构: group deployConfig deploy deployBatch deployTarget; 刹车机制(quick and dirty); 提升发布速度(下载/点火); 降级机制
单机单应用vs单机多应用 增量发布vs全量发布
监控保障发布质量: 用户侧(端/设备/唯一用户id)/网络/业务(核心业务指标)/应用(调用链/鹰眼)/系统; 监控30分钟; 一套完整的运维事件体系
静态代码检测工具: CI IDE集成
破坏性测试: 破坏点/整个系统 混沌工程(使用现实世界事件/在生产环境执行/自动化连续实现/)

CD测试难点:

  • 测试数据准备和清理, 分布式系统的依赖, 测试用例高度仿真
  • mock(测试用例解耦更快执行更快准备) -> 基于类/对象或微服务
  • 回放: SLB/新增服务器

平台化:

  • 确定模块及其范围: 代码管理 集成编译 环境管理 发布部署
  • 学会做减法: 最重要/最紧急 减少纵向深度
  • 标准先行
  • 选择合适的驱动器: 中小团队-jenkins 复制情况下->人才是最好的驱动器
  • 抽象公共能力: 账户与权限(单点登录/授权鉴权) 用户行为日志->任何行为都可被追溯 消息通知 安全与故障处理
  • 统一用户入口
  • 聚力而成

devops: 计算资源也是交付内容->云计算
数据: 用好的数据来衡量系统->故障时间/业务量; 大的故障和影响往往都出于一些非常愚蠢的失误; 数据驱动; 稳定性指标/性能相关指标/成熟度指标
移动app持续交付生命周期: 代码及依赖管理->组件化 项目信息管理->版本化 静态代码检查 构建管理 发布管理 运营管理 热修复
移动app交付流水线: 发布快车模式(并不是所有功能都放在最近的版本 固定发布间隔 不保证发布到用户侧)
提升app交付效率: 开发效率(方便拆分代码仓库->开发并行度 组件多版本->按需选取 专业分工-组织结构) 构建效率(扁平化依赖 二进制交付) 测试效率(代码静态扫描 UI自动化测试 自动monkey测试) 发布效率(分发的精准性/稳定性)
模拟: gitlab(代码管理) + jenkins(pipeline工作流) + ansible(自动化部署 vs chef/puppet/salt Tower) + k8s
测试环境: FAT-独立功能测试环境 FWS-稳定版本供其他团队联调 UAT-用户接受测试环境
数据库变更: 业务相关只能新增, 修改删除只能DBA操作

less is more, simple is better
越痛苦的事, 越要经常做: 比架构师懂得多 比开发人员动作快 比QA眼睛尖 比运营人员心脏大 比产品经理还会吹

相关文章

网友评论

    本文标题:tech| 极客时间学习笔记 1

    本文链接:https://www.haomeiwen.com/subject/zqmmdqtx.html