惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
IT之家
IT之家
Google DeepMind News
Google DeepMind News
罗磊的独立博客
爱范儿
爱范儿
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
U
Unit 42
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
B
Blog
博客园 - 叶小钗
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - K.NET

集群系统运营数据的处理重构 日志分析工具 地图组件 集群通信系统客户端 网管接口重构(2014年) 网管职责重构(2014年) 用例要素(非原创) 边界接口设计 项目管理平台架构 内外网邮件自动转发 GIS服务器需求分析 集群通信应用开发吐槽(2014年) 讯飞语音 - 贾维斯 报文分析 - 抓包 2014年终工作总结 通用访问 - 用“反射”来设计通用的通信协议,以及配套的SDK、工具 追求卓越 - 整合调试过程 站在客户视角,精简软件,整合软件 书单目录
知识库201608
K.NET · 2014-05-03 · via 博客园 - K.NET

心理基础

本我:无意识

自我:潜意识

超我:教练(OB)视角,对话自我,反思过去和计划未来

认识

本我 观察

自我 加工

超我 质检

抽象

从表面到本质

演绎

从本质到表面

素材:依赖直接的感知, 过滤间接的感知,审视注入的成见

归因:关注样本数量, 时间跨度, 自身关联性, 主次因素

警惕:小样本(自利、单因素、无因果并存、短期),先入为主(政治、世俗注入),大概率非必然(一棍子打死)

推理

从已知到未知

创造

从原料到产品

分解:按关联程度分解,模块对外呈现抽象接口(稳定),对内封装具体实现(被隔离)

泛型:正反向推理、反证、排除、谓词、穷举

类比:通过记忆或联想解决问题

比喻:化未知为已知,化抽象为形象,例如UML

警惕:忽视其他可能性,充分条件与必然条件

记忆

从过去到现在

结构:多级,类似ROMCPU缓存、内存、硬盘

l生活:三观 》习惯,思维方法》常识 》照片,随笔,书籍

l编程:本文 》常用技能 》知识纲要,代码库(通用模块,项目模板)》参考资料(书籍、文章),参考项目

思绪:便签

情感

本我 - 本能

自我 - 成见

超我 - 原则

基础

身体感觉

安全感、幸福感

自信感、透视本质与核心价值

倾向

从疲劳到休息,从无聊到刺激

占有欲、道德感、集体归属感(尊重、友爱、欺压、攀比虚荣,陌生防御,政治倾向)、成就感(创造与毁灭,知难而退)、美感

基础:做有乐趣并且能维持生活的工作,承担起家庭的责任,对物质需求要知足常乐

社会:诚信和控制距离能让合作变得简单,政治是少数人的游戏

充实:良性的亲情友情,漫游(旅行、虚拟世界),身体的活力

行为

本我 - 基础

自我 - 主导

超我 - 引导

基础

条件反射、体力脑力作息节奏

情感沉淀、情绪惯性、行为思维惯性,外部刺激、约束

跳出环境、对话自己、透视本质

倾向

贪(吃、睡

逃避阴暗(失败、丧失),沉迷虚拟世界(游戏、影视)

见“思维方法”

思维方法

动机(值不值得做)

透视本质:看清本质的需求和本质的服务

判断价值:喜欢/需要/适合; 投资与回报

警惕:成见、片面、不考虑后果,冲动

目标(做成什么样)

认知模型:感官/理解/交互

业务逻辑:交互流程(信息、资源的输入输出,加工路径)

警惕:认知不流畅,流程不全面,接口不精确

计划(怎么做-框架)

设计方案:可行性分析,原型实验

划分阶段:逐步消除风险(沟通、复杂、抽象、新事物)

分解任务:降低思维难度,按关联程度将问题分块分层分工,依赖抽象接口

警惕:复杂问题三思而后行,无风险意识导致的返工、无用功,模块耦合度大、接口不抽象

执行(怎么做-细节)

方法思路:依据体力脑力能实现的步骤、方法

用脑节奏:专注,反思(跳出定势),休息

l创造环境:选择清静、单调的环境,设置免打扰

l划分时段:自我专注1-2小时,跳出自我,反思感悟10-30分钟

l难点预警:分时段多次设计和审核,考虑多种方案和方案全面性,参考多种渠道资源

l场景预警:警惕与问题逻辑、环境习惯、认知过程(例如开头难)相关的常见缺陷

l状态预警:当情绪起伏、精力不足,暂时搁置、睡觉

结果应变:沟通反思,修正目标、计划

警惕:蛮干,无法自拔

工程管理

总目标:

l团队的稳定性在于责权平衡,健壮性在于责任交叉,高效性在于目标明确、奖罚分明

l软件的创造过程可能模糊和复杂,需要不断的实践来探索和修正,开发人员和客户之间、开发团队内部,都必须围绕简洁的沟通和频繁的测试,持续完善

企业文化

目标:严谨务实、积极进取

方案:深入客户、透视需求,建立人才库、知识库和赏金制度

警惕:无学习和探讨的氛围,低效加班,绩效大锅饭,项目结束定奖金

迭代产品

目标:宏观上逐步消除风险

方案:

l风险识别:需求理解不准确,模块设计不抽象,质量检测不精确

l阶段规划:从原型产品到最终产品,从核心功能到扩展功能,从功能可用到功能好用

l进度监测:统计全局、阶段、个人的速度与状态,以当前速度推测和调整

警惕:严重偏离客户需求,导致大量返工;凭感觉制定计划,影响工作积极性;测试不严谨,陷入bug泥潭;复杂问题、核心问题设计草率,导致流程复杂,模块耦合度高,扩展和维护成本高

分工合作

目标:建立职责明确、并行高效、结构稳定的团队合作交互流程与平台

方案:

l衡量能力:责任感、悟性、合作、专注、知识库

l划分角色:客户、产品经理、测试、工程与售后服务;开发经理、开发

l流程环节:划分、分配、执行、审核

l开发步骤:理解动机、业务调研、方案设计,需求分析、软硬件实现,实施与运营

l业务事件:查看、提交;提问、批注、求助、分享、讨论、重构、总结、登记工时

警惕:分配时任务完成的标准不清晰,导致功能理解分歧,逻辑不严谨;分配时同一任务没有多人交叉负责,导致设计质量低,复用率低,维护性低,知识分享差;角色固化,导致人员不能充分利用,各角色间不能互相体谅、接口不精确抽象

执行平台

目标:设计核心流程的公司视图、团队视图、个人视图

方案:

l公司视图:项目概览

n立项:业务调研,设计方案,分析可行性

n规划:组建团队,划分阶段,奖罚标准

n状态:当前阶段,风险

l团队视图:里程碑与版本

n划分任务:分解任务,分配任务,提供完成任务的思路与模板

n查看产品:版本、指标、目标、系统与模块任务(具体的产品设计)

n查看过程:任务流程状态、任务执行阶段、触发事件

l个人视图:任务

n任务:来源、输入、输出、规划(步骤、时间、模板)、状态

n执行:时段、计划、演绎、反思,部署新计划、结果

n领悟:思绪、知识库

警惕:仅有缺陷管理、周报的平台,缺少其他流程的平台,缺少整体展示各视图的平台

逻辑建模

总目标:通过封装和抽象,分解从想法到产品的复杂度

总方案:上层决定下层,下层提供可行性约束,层次以抽象接口形式存在

警惕:

l各步骤职责的核心理解不准确,接口描述不清晰;寄希望通过文档模板(或者项目管理软件)解决所有问题

l缺少从人的思维能力、思维过程出发看问题,缺少务实总结、大胆尝试、持续优化

业务:为什么做

原则:为客户创造价值才能为自己创造价值

方案:以业务流程为基础,透视本质的技术、需求、服务

l捕捉动机:发现问题场景,描述业务流程、成功指标、用户数量、投资意向

l依赖资源:输入输出、运算、存储、通信, 技术积累

l设计方案:细分用户,设计新业务流程、定义产品功能, 技术验证

l市场分析:竞争环境、市场时机、营销策略, 估算成本与回报

警惕:

l仅调研客户中的领导角色

l看不透客户表面的要求,抓不住问题核心,设计不出优秀的方案

l被动客服,不主动深入调研使用反馈,积极完善

需求:做成什么样

原则:逻辑严谨、操作简洁、界面美观

方案:感知理解信息、执行步骤完成目标

l描述交互步骤:通过用例描述产品与边界交互, 以时序图和类图为主, 状态图辅助

l制作交互原型:作为评审依据,降低沟通误差

l设计测试数据:作为用例的操作说明和验收标准

警惕:

l闭门造车,面向开发人员设计产品,而不是面向最终客户

l测试人员未参与到需求分析,开发和测试人员依赖的用例没有统一

l没有频繁的迭代反馈

l不重视面向测试人员开发测试和部署工具

设计:怎么做-框架

原则:逐步抽象、控制风险、重用资源

方案:

l分解用例实现:依据逻辑耦合度和复杂度,将逻辑分解成对象逻辑树, 以类图、时序图为主,状态图辅助,典型2种结构如下

Service就专注于user的需求,并组合Glue Code提供的服务完成需求。

Glue Code专注于组合business的调用,管理Business里面对象的生命周期,并且通过Repository保存或加载Business的状态

Business专注于实现业务的核心模型。

Repository专注于数据的保存,并和存储设备一一对应。

以上只是针对典型用例的分析,在逻辑复杂的情况下,用例逻辑可以划分成多个模块,每个模块的下一级都可以认为是Repository,每个模块的上一级都可以认为是User;在逻辑简单的情况下,用例中的单元是可以进行合并的。

l抽象对象实例:对各用例中的对象及成员进行抽象, 形成类型,领域以及领域间概要关联, 通过继承/包含/泛型实现对象间公用

l生成实现框架:依据类型/领域复杂度,生成层与组件;依据性能指标,选择部署方式和相关组件;选择已有通用组件(工具类/SDK类);创建代码目录,明确编程规范;

l编写核心代码:核心业务逻辑,典型模块,难点模块,风险大的模块

实现:怎么做-细节

方案:

l编码

n从上而下:从上层(外部服务)接口到单元测试(未养成习惯),再到伪代码,再到主要代码,再到下层接口,此处递归,最后从上而下补充次要代码

n透视规范:母语命名、首字母识别用途

n代码自查:复读复杂逻辑, 过滤常见异常

l调试

n工程日志:边界的输入输出,包括异常

n开发日志:主要接口(时序/状态)日志, 异常

n  检测代码覆盖率:通过单元测试工具(未形成习惯)

n通用访问:开放核心对象的实时状态访问

l定位异常

n信息来源:观察到的现象,工程日志, 开发日志,系统日志,断点调试,通用访问

n分析日志:定位异常, 定位时间,定位功能、定位设计、定位代码

n挖掘异常:验证测试用例设计的全面性,分析并归纳到常见异常表(非预期的交互顺序;边界非法输入;内存泄露; 非预期的多线程并发顺序)