ARTS #73

Algorithm

139. 单词拆分

func wordBreak(s string, wordDict []string) bool {
    wordMap := make(map[string]bool)
    for _, word := range wordDict {
        wordMap[word] = true
    }
    length := len(s)
    dp := make([]bool, length+1)
    dp[0]=true
    for i := 1; i <= len(s); i++ {
        for j := 0; j < i; j++ {
            if dp[j] && wordMap[s[j:i]] {
                dp[i] = true
                break
            }
        }
    }
    return dp[len(s)]
}

Review

Processing guarantees in Kafka

TIP

组内有同学分享了gohook黑魔法,通过改写指令对go这种编译型语言实现运行时aop。跟着源码粗略了解了下原理,核心代码主要集中在genJumpCode和CopyInstruction,记录下后续有空再详细学习下。
网上找到的资料:gohook 一个支持运行时替换 golang 函数的库实现

Share

怎么做技术规划

前置输入

  1. 时间:需要明确要定制多久期限的规划
  2. 业务理解:确定要达成什么目标
  3. 业界知识:竞品目前所处阶段、自己所处阶段、有没有业界通用解决方案和开源现成的东西
  4. 人力:明确可用的人力资源

怎么定制目标

  1. 目标要站在更高的组织维度,不止于解决当前问题,想清楚未来的方向。
  2. smart原则:
  • Specific:明确的
  • Measurable:可衡量的
  • Achievable:可实现的
  • Relevant:相关的
  • Time-Bound:有时效性的
  1. 不同视角确认目标
  • 问题视角:合作伙伴的提出的问题或者需求、历史线上事故怎么优化修复、去年遗留的任务
  • 竞争视角:竞品分析
  • 外部宏观视角:前沿技术、未来可能的需求
  • 愿景视角:公司和大团队对团队的需求、用户/客户底层视角

转化为任务

  1. 设定全景图,然后按照业务架构一层层拆分
  2. 明确可执行路径:按照整体的大目标,拆分子目标,对每个模块进行子目标的拆解和拆分;对于每个子任务/目标,需要明确都要做哪些事情
  3. 设定里程碑
  4. 拆分负责人&人力资源
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容