自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 10 09 | 手把手教你写用例: 优化微信加好友的功能

简单地说,用例就是描述在什么场景下用户用产品来做什么事儿,其目的是要清晰地、有条理地和工程师、设计师团队进行交流。因此,用例需要列出产品所有的情况,以及每种情况的工作流关系。写用例时,需要写明:什么情况下可以开启这个功能;执行完这个操作以后,用户得到了什么;这个用例怎么利用已经存在的产品架构。最后,我讲解了如何把用例具体化,这个过程对于缺乏框架的新产品和已经有框架的成熟产品是不一样的,并且分别给出了这两种情况下用例具体化的方法。

2023-04-19 13:40:11 773

原创 9 08 | 目标客户和用户画像

今天我主要讲述了目标客户和用户画像。目标客户就是你的产品针对的客户群体, 需要你先拓展(思考所有可能的目标客户)再专注(找到更加有针对性的目标客户)。用户画像就是生动描绘用户的特点,把这类用户抽象成一个人,然后用介绍这个人的方式来描绘这类人。通过确定用户需求、目标客户和用户画像,我们可以得到一句非常清晰的表述,即用户问题说明,从而真正弄清楚到底要“为什么用户解决什么问题”。

2023-04-19 13:39:18 766

原创 8 07 | 如何寻找用户需求?

用户需求,是大家每天最常说的词,也是误区最多的词。一个最大的问题就是,产品经理写了几十页的用户需求文档,挂了各种各样精彩绝妙的韦恩图、曲线图、UI图,结果却发现这个产品解决的痛点实际上根本就不存在。用户需求一定要立足于用户,一定要验证这个痛点到底是不是真的存在。平衡车(Segway)就是一个例子。这种靠电力驱动、具有自我平衡能力的交通工具,刚出现的时候惊为天人, 各种投资人、发明家都为这样的绝妙设计而感到震撼,但是这个被寄予厚望的发明却并没有顺利落地。平衡车需要经常充电,而且售价非常昂贵。

2023-04-19 13:38:38 353

原创 7 06 | 硅谷产品经理们都来自什么背景?

今天这篇文章讲了硅谷产品经理的背景, 介绍了硅谷的不同公司对产品经理的职业背景、工作经验、学术背景的要求。随后,我还介绍了的产品经理应该具备的软实力,包括领导能力、沟通能力、创新精神和执行力。而软实力的重要程度绝对不亚于学术背景以及工作经验, 有很多产品经理并不是科班出身,但是因为具备了非常强的软实力,所以在产品经理的岗位上脱颖而出。

2023-04-19 13:38:02 331

原创 6 05 | 硅谷产品经理每天在做什么?

通过上面的这个真实案例,你应该可以发现以下几点。产品经理的工作内容取决于产品发布的阶段。开发初期,产品经理需要花更多的时间在思考上。这个阶段主要弄清楚要做什么, 所以需要花大量时间做调研、策略以及制定产品功能需求。这时和工程师交流的时间比较少,更多的是和调研、市场的同事们一起。开发最紧张的阶段, 产品经理需要花更多时间在执行上。这个阶段需要花大量时间解决开发难点,根据困难和挑战修改之前提出的方案,并且和营销部门讨论开发的策略。

2023-04-19 13:37:32 298

原创 5 04 | 产品经理和项目经理有什么区别?

今天的这篇文章我主要讲解了产品经理和项目经理之间的区别。产品经理的工作性质是能够带领一个产品的团队做出决定,开发出用户想要的产品, 这包含了产品的策略、功能设定以及执行。项目经理的工作性质是能够组织团队在有限的时间内,按期完成一个非常复杂的项目。在策略已经制定完成、想要做什么已经确定的情况下,需要项目经理把一个很大的项目分成一个个小的部分,分配给不同的工程师,能够管理各种各样的task。产品经理和项目经理在某些团队可能同时存在。

2023-04-19 13:36:42 208

原创 4 03 | 科技巨头和初创公司的产品经理有什么不同?

今天这篇文章,我对比了科技巨头和初创公司产品经理的区别。可以看到,大公司人多部门冗杂,每个具体的工作都有专人负责,做决定讲究各部门意见的统一,做事情讲究高效的工作流程,办公室政治也无所不在,而好的产品经理在这样的环境下,能够激励各部门的同事们,满足他们的利益,制定井然有序的运作机制。初创公司的产品经理,则需要敢想敢闯敢干,有前瞻性,执行快狠准,并且哪里需要就去哪里,讲究灵活果敢。我还讲了大公司与小公司的文化差异,不同背景出身的产品经理不适应的原因,并提出了适应新环境的一些建议,希望对你有所帮助。

2023-04-19 13:36:19 133

原创 3 02 | 硅谷的产品经理是什么样子的?

今天我先从硅谷的产品经理热说起,揭秘了美国最优秀的计算机专业毕业生、商学院毕业生全部都“趋之若鹜”的产品经理项目是怎么运作的,培养出了什么人才, 也解释了为什么Yahoo、谷歌、Asana、Quip的CEO全部都是产品经理出身。之后,我通过描述硅谷的产品经理是什么样子的,描述了产品经理应当具有的一些重要技能,相信你已经了解为什么“长期来看,公司的成与败取决于产品经理”,知道了为什么最优秀的产品经理不应该把全部时间花在写文档上,而是应该让团队的成员得到积极影响,让别人替自己做决定。

2023-04-19 13:34:13 274

原创 2 01 | 什么是优秀的产品经理?

这几年,产品经理这个职业越来越热门,无数的朋友同学来问我怎么转行做产品经理,但是每次我详细问他们是怎么理解产品经理这个职业的,却发现大家说什么的都有。有的说是做科技的还不用写代码,感觉终于有自己可以做的科技岗位了;有的说经理嘛,听上去就是权利挺大的,一毕业如果去做这个倍儿有面子;还有的说,将来想自己创业做老板,产品经理是最合适的敲门砖。实际上,我对产品经理的理解是,带领产品团队,在高效的时间内推出满足用户需求的产品。这里面包含四点。

2023-04-19 13:33:38 190

原创 1 开篇词 | 打造千万用户的世界级产品

之前,我在Instagram、微软都做过产品经理,担任过多个千万级用户产品的产品经理,也有过自己的教育创业公司,还在上市之前的Atlassian做过营销工作。因此,我希望通过这个专栏来帮你梳理思路,希望它之于你,也能像当年这本书之于我一样,带你入行,给你指引方向,让你成为一个更好的产品经理。甚至和六七十岁的老校友聊天,说得最多的也是我们发布的产品。纽约的地铁上、哥斯达黎加夜店的舞池上,看着形形色色的路人,坐着的,趴着的,站着的,看到他们拿出手机在Facebook产品的界面上敲敲打打,这是我最幸福的时刻。

2023-04-19 13:31:55 135

原创 Spring中配置相关的注解

@Configuration@ComponentScan@Bean@Import@PropertySource

2021-04-28 23:15:07 351

原创 Spring整合Junit

1.导入Spring整合Junit的坐标;2.使用Junit提供的@Runwith注解把原有的main方法替换成Spring提供的;3.使用@ContextConfiguration告知Spring的IoC容器的创建是基于xml还是注解,并且说明位置。@ContextConfiguration属性:locations:指定xml文件的位置,加上classpath关键字,表示在类路径下; classes:指定注解类所在的位置。通过上述步骤,在单元测试类中的方法执行时,便可以创建Sp

2021-04-28 21:44:09 114

原创 Spring常用IoC注解

目录一、用于创建对象@Component@Service@Controller@Repository二、用于注入数据@Autowired@Qualifier@Resource@Value三、用于改变作用范围@Scope四、和生命周期相关的@PostConstruct@PreDestory文章内容基于B站视频教程,这里做下总结,方便复习查看。常用IoC注解根据用处分为一下四类:一、用于创建对象作用同XML配置文件中的<bean&g.

2021-04-28 15:18:13 502

原创 第一个重构案例

目录重构前类图:重构前源程序:Movie.javaRental.javaCustomer.java重构:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。重构是一种经千锤百炼形成的有条不紊的程序整理方法,可以最大限度地减少整理过程中引入错误的几率。本质上说,重构就是在代码写好之后改进它的设计。第一个重构案例展示了一个小程序,如何一步一步地将其从结构化程序重构为面向对象程序,使其能够更方便快捷地去修改以满足之后的需求。实例:影片出租店所用程序,计算..

2020-12-21 16:30:30 1167 1

转载 @PostConstruct注解

转自https://www.jianshu.com/p/98cf7d8b9ec3一、被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。PreDestroy()方法在destroy()方法执行之后执行。执行顺序二、spring中Constructor、@Autowired、@PostConstruct的顺序其实从依赖注入的字面意思就可以知道,要将对象p注入到对象a,那么首

2020-07-14 15:12:16 431

原创 SSH密钥对生成

SSH秘钥对,如果~/.ssh里面没有key的话: ssh-keygen -t rsa -C "your_email@example.com" 一直按回车 pbcopy < ~/.ssh/id_rsa.pub 复制即可

2020-06-21 14:21:17 349

原创 LeetCode-75题.Sort Colors

方法一:遍历一遍数组。遍历过程中,如果某个元素的值小于前一个元素的值,则将两个元素的值对换,直到该元素的值不再小于前面元素的值或者该元素的值已经换到了数组的第一位。class Solution {public: void sortColors(vector<int>& nums) { if(nums.size() <=1) ...

2019-05-14 22:15:35 190

原创 LeetCode-231题.Power of Two

使用n&(n-1)的方法:因为2的整数次幂的二进制只有一位是1,所以如果n是2的整数次幂,那么n的二进制只有首位是1,其余为为0;n-1的二进制首位为零,其余位为1。即如果n&(n-1)=0,则n为2的整数次幂。class Solution {public: bool isPowerOfTwo(int n) { if(n <= 0) ...

2019-05-09 17:10:48 195

原创 LeetCode-152题.Maximum Product Subarray

int maxProduct(vector<int>& nums) { vector<int> allProduct; int n = nums.size(); int product = 0; int start = 0; int end = n-1; f...

2019-05-09 16:01:42 145

原创 LeetCode-169题.Majority Element

class Solution {public: int majorityElement(vector<int>& nums) { map<int, int> elemap; for(int i = 0; i < nums.size(); i++){ elemap[nums[i]]++; ...

2019-05-07 18:08:30 182

原创 LeetCode-189题.Rotate Array

1. use extra arrayclass Solution {public: void rotate(vector<int>& nums, int k) { int length = nums.size(); if(k % length == 0) return; else{ ...

2019-05-07 17:42:19 134

原创 LeetCode-136题.Single Number

使用位运算符:位异或class Solution {public: int singleNumber(vector<int>& nums) { int result = 0; for(int i = 0; i < nums.size(); i++){ result ^= nums[i]; ...

2019-04-22 17:05:18 147

原创 LeetCode-70题.Climbing Stairs

方法一:Brute Forceclass Solution {public: int climbStairs(int n) { if(n > 2){ return climbStairs(n-1) + climbStairs(n-2); }else if(n == 2) return 2; ...

2019-04-16 10:06:47 119

原创 LeetCode-20题.Valid Parentheses

没有考虑到使用stack的方法,时间复杂度与空间复杂度都很高。class Solution {public: bool findRightBracket(char c, int i, string s){ char rightBracket; if(c == '(') rightBracket = ')'; ...

2019-04-12 15:34:22 95

原创 LeetCode.9题-Palindrome Number

判断数字的每一位与回文数的每一位是否相等:class Solution {public: bool isPalindrome(int x) { bool result; if(x < 0) return false; else{ int n; for(in...

2019-04-04 11:44:12 111

原创 LeetCode-83题.Remove Duplicates from Sorted List

做题时没有注意到是排序好的链表,所以没有必要创建一个set容器存放链表中的元素。适用于无序的链表:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) ...

2019-04-02 17:20:57 112

原创 LeetCode-69题.sqrt(x)

暴力查找法:class Solution {public: int mySqrt(int x) { int squareroot; for(long int i = 0; i <= x; i++){ if(i*i == x){ squareroot = i; ...

2019-04-02 15:33:53 216

原创 LeetCode-58题.Length of Last Word

解法思路: 从字符串最后一位开始遍历,遇见第一次不是空格的字符开始计数,再次遇见空格时退出遍历,计数所得即为最后一个单词的长度。代码如下:class Solution {public: int lengthOfLastWord(string s) { int ssize = s.size(); int lastwordsize =...

2019-03-26 16:55:06 141

原创 LeetCode-415题.Add Strings

代码如下:class Solution {public: string addStrings(string num1, string num2) { //去除字符串中非数字的字符(虽然题目中说是有字符‘0’-‘9’,但是debug时好像不是这样 for(int i = 0; i < num1.size(); i++){ ...

2019-03-26 16:45:48 142

原创 代码整洁之道-有意义的命名

“代码作者应尽力写出易于理解的代码。我们想把代码写得让别人能一目尽览,而不比殚精竭虑地研究。我们想要那种大众化的作者尽责写清楚的平装书模式;我们不想要那种学者挖地三尺才能明白个中意义的学院派模式。” ——《代码整洁之道》Robert C.Martin 著 韩磊 译目录命名规则一:名副其实命名规则二:避免误导命名规则三:做有意义的区分命名规则四:使用读得出来的名称命名规则...

2019-03-20 12:09:25 746

转载 UML类图和类与类之间的关系

一、UML类图1.类的属性的表示方式UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示。例如下图中的Employee类:UML类图中表示可见性的符号有三种:+:表示public-:表示private#:表示protected(friendly也归入这类) 实际上,属性的完整表示方式是这样的:可见性  名称 :类...

2018-11-03 22:02:37 776

转载 MySQL load语句详细介绍

Load的语法LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED B

2018-01-19 15:38:43 5950

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除