问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

产品经理需要对代码了解到什么程度?

发布网友 发布时间:2022-05-01 19:41

我来回答

6个回答

懂视网 时间:2022-05-02 07:39

~$ mongod
2017-07-13T19:24:32.101+0000 I CONTROL [initandlisten] MongoDB starting : pid=26124 port=27017 dbpath=/data/db 64-bit host=jonny-PC
2017-07-13T19:24:32.101+0000 I CONTROL [initandlisten] db version v3.2.11
2017-07-13T19:24:32.101+0000 I CONTROL [initandlisten] git version: 009580ad490190ba33d1c6253ebd8d91808923e4
2017-07-13T19:24:32.101+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2k 26 Jan 2017
2017-07-13T19:24:32.101+0000 I CONTROL [initandlisten] allocator: tcmalloc
2017-07-13T19:24:32.101+0000 I CONTROL [initandlisten] modules: none
2017-07-13T19:24:32.101+0000 I CONTROL [initandlisten] build environment:
2017-07-13T19:24:32.101+0000 I CONTROL [initandlisten] distarch: x86_64
2017-07-13T19:24:32.101+0000 I CONTROL [initandlisten] target_arch: x86_64
2017-07-13T19:24:32.101+0000 I CONTROL [initandlisten] options: {}
2017-07-13T19:24:32.131+0000 E NETWORK [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
2017-07-13T19:24:32.131+0000 E NETWORK [initandlisten] addr already in use
2017-07-13T19:24:32.131+0000 E STORAGE [initandlisten] Failed to set up sockets during startup.
2017-07-13T19:24:32.131+0000 I CONTROL [initandlisten] dbexit: rc: 48

基本客户端操作

mongo 是客户端

~$ mongo
MongoDB shell version: 3.2.11
connecting to: test
> 

直接连上了本地的服务器。

常用命令

使用数据库和集合前不用建立,执行插入数据时会自动建立

这一点和关系型数据库不同。用之前必须要先创建 数据库和表。否则不行,但是mongodb不一样,用之前不需要创建。

usb db_name (切换数据库)

比如我们要使用test数据库

MongoDB shell version: 3.2.11
connecting to: test
> use test
switched to db test
> 

提示已经切换到test数据库

再比如我们要用一个stu数据库,其实之前没有,但是直接use stu

> use stu
switched to db stu

db.foo.insert(...) 向集合foo插入文档

只有当我们向这个数据库里插入数据,这个数据库才会真正建立

比如我们现在先 use test 切换到 test数据库

然后插入一条数据:

集合是blogg

> use test
switched to db test
> db.blogg.insert({‘id‘:1,‘title‘:‘myblog‘})
WriteResult({ "nInserted" : 1 })
> 

WriteResult,这两个键值对 就插入成功了。

也可以这样,预先定义你要插入的内容

> d = {‘id‘:2,‘title‘:‘yourblog‘}
{ "id" : 2, "title" : "yourblog" }
> db.blogg.insert(d)
WriteResult({ "nInserted" : 1 })

我们查询一下

db.foo.find() 查询集合foo文档

多插2条,查询:

> db.blogg.insert({‘id‘:2,‘title‘:‘myblog2‘})
WriteResult({ "nInserted" : 1 })
> db.blogg.insert({‘id‘:3,‘title‘:‘myblog3‘})
WriteResult({ "nInserted" : 1 })
> db.blogg.find()
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : 1, "title" : "myblog" }
{ "_id" : ObjectId("5967cc9bf9e6f46246252b7a"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cca0f9e6f46246252b7b"), "id" : 3, "title" : "myblog3" }

db.foo.findOne() 查询集合foo文档,显示方式不同.

注意这里O是大写

> db.blogg.findOne()
{
	"_id" : ObjectId("5967cc37f9e6f46246252b79"),
	"id" : 1,
	"title" : "myblog"
}

查询带条件

比如我只要id为2的

> db.blogg.findOne({‘id‘:2})
{
	"_id" : ObjectId("5967cc9bf9e6f46246252b7a"),
	"id" : 2,
	"title" : "myblog2"
}

> db.blogg.insert({‘id‘:2,‘title‘:‘myblog2‘})
WriteResult({ "nInserted" : 1 })
> db.blogg.find()
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : 1, "title" : "myblog" }
{ "_id" : ObjectId("5967cc9bf9e6f46246252b7a"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cca0f9e6f46246252b7b"), "id" : 3, "title" : "myblog3" }
{ "_id" : ObjectId("5967cd30f9e6f46246252b7c"), "id" : 2, "title" : "myblog2" }


> db.blogg.find({‘id‘:2})
{ "_id" : ObjectId("5967cc9bf9e6f46246252b7a"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cd30f9e6f46246252b7c"), "id" : 2, "title" : "myblog2" }

这里的 "_id "是mongodb 自己创建的。每个文档的id不一样

db.foo.update() 更新文档

update 修改器 ---set

比如我们 增加或修改指定键值对

修改 id 为1 title 从myblog改成myblog1

> db.blogg.find()
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : 1, "title" : "myblog" }
{ "_id" : ObjectId("5967cc9bf9e6f46246252b7a"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cca0f9e6f46246252b7b"), "id" : 3, "title" : "myblog3" }
{ "_id" : ObjectId("5967cd30f9e6f46246252b7c"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cdc4f9e6f46246252b7d"), "id" : 2, "title" : "yourblog" }
> db.blogg.update({‘id‘:1},{‘$set‘:{‘title‘:‘myblog1‘}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.blogg.find()
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : 1, "title" : "myblog1" }
{ "_id" : ObjectId("5967cc9bf9e6f46246252b7a"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cca0f9e6f46246252b7b"), "id" : 3, "title" : "myblog3" }
{ "_id" : ObjectId("5967cd30f9e6f46246252b7c"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cdc4f9e6f46246252b7d"), "id" : 2, "title" : "yourblog" }

若没找到,则新建 键值对:

比如 id为1的 再插入一条 titile-2 ,myblog1-2

> db.blogg.update({‘id‘:1},{‘$set‘:{‘title-2‘:‘myblog1-2‘}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.blogg.find({‘id‘:1})
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : 1, "title" : "myblog1", "title-2" : "myblog1-2" }
> 
删除就是 unset
> db.blogg.update({‘id‘:1},{‘$unset‘:{‘title-2‘:‘myblog1-2‘}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.blogg.find({‘id‘:1})
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : 1, "title" : "myblog1" }
> 
inc修改器 增减指定键的值 默认修改第一个

比如修改id 的值,增加可以为负数 比如 -2

> db.blogg.update({‘id‘:1},{‘$inc‘:{‘id‘:-2}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.blogg.find()
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : -1, "title" : "myblog1" }
{ "_id" : ObjectId("5967cc9bf9e6f46246252b7a"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cca0f9e6f46246252b7b"), "id" : 3, "title" : "myblog3" }
{ "_id" : ObjectId("5967cd30f9e6f46246252b7c"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cdc4f9e6f46246252b7d"), "id" : 2, "title" : "yourblog" }
> 

见到了之后,操作后变成了id -1

第三个参数 true 的话 则无匹配创建,有匹配更新

比如修改id 为 -1 的 记录,发现没有 size 则新建了。

> db.blogg.update({‘id‘:-1},{‘$set‘:{‘size‘:10}},true)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.blogg.find({‘id‘:-1})
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : -1, "title" : "myblog1", "size" : 10 }
> 
第四个参数 true 表示 更新匹配多个文档

比如三个id为2的文档,匹配的3个都被新增了 size 为7 的键值对。

> db.blogg.find()
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : -1, "title" : "myblog1", "size" : 10 }
{ "_id" : ObjectId("5967cc9bf9e6f46246252b7a"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cca0f9e6f46246252b7b"), "id" : 3, "title" : "myblog3" }
{ "_id" : ObjectId("5967cd30f9e6f46246252b7c"), "id" : 2, "title" : "myblog2" }
{ "_id" : ObjectId("5967cdc4f9e6f46246252b7d"), "id" : 2, "title" : "yourblog" }
> db.blogg.update({‘id‘:2},{‘$set‘:{‘size‘:7}},false,true)
WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 3 })
> db.blogg.find()
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : -1, "title" : "myblog1", "size" : 10 }
{ "_id" : ObjectId("5967cc9bf9e6f46246252b7a"), "id" : 2, "title" : "myblog2", "size" : 7 }
{ "_id" : ObjectId("5967cca0f9e6f46246252b7b"), "id" : 3, "title" : "myblog3" }
{ "_id" : ObjectId("5967cd30f9e6f46246252b7c"), "id" : 2, "title" : "myblog2", "size" : 7 }
{ "_id" : ObjectId("5967cdc4f9e6f46246252b7d"), "id" : 2, "title" : "yourblog", "size" : 7 }
> 

删除 db.foo.remove()

> db.blogg.find()
{ "_id" : ObjectId("5967cc37f9e6f46246252b79"), "id" : -1, "title" : "myblog1", "size" : 
 var cpro_id = "u6292429";
 



                                        

热心网友 时间:2022-05-02 04:47

1.技术架构/实现方式
比如设计一个网站类的产品是使用什么编程语言开发的php,jsp或者Python。确定了编程语言以后你要知道整个产品项目中使用了什么开发框架,是团队自己研发的框架,还是使用市面上比较流行的框架。其次是数据库的选择,根据你们的业务需求是使用mysql这种关系型数据库还是mongodb这类非关系型数据库,最后就是服务器,服务器一般关心的问题就是稳定性,安全性,还有负载了。
根据不同需求选择服务器,
使用什么样的服务器?自己管理的,还是云。如果是云的话还要了解一些云服务和产品的内容,比如RDS,负载均衡,内容分发等等。
使用什么操作系统是window还是linux?Linux的话一般还分Ubuntu和redhat两个派系。
服务器的运行环境是怎样的?使用怎样的代理nginx,Apache还是tomcat或者为了实现高负载混合使用它们还是要自己用node来写一个更好更适用的。还要注意是否有其他插件需要支持。
如果是桌面级应用或者是手机APP这样的产品需求的东西还不一样,你还要考虑跨平台性以及其他细节问题。上述例子主要是网站产品主要依靠浏览器,平台兼容的考虑少一些。
2.技术特性
技术的生命周期:作为产品经理的你已经知道了产品是有生命周期的,那么其实我们生产产品使用的技术也是有生命周期的。假如项目周期比较长,比如10年吧,技术生命周期一般就2~3年,服务器操作系统生命周期会更长一些,,如果这部分能考虑到能节省很多重构成本。可是关键问题是这个问题本身就不太现实,我们很难预测2~3年以后我们的产品的样子。
技术的优缺点:作为PM你不用了解具体的实现方式,关键在于你要知道不同技术架构有什么优缺点,适合做什么事情。比如mysql和mongodb的区别,php和jsp的区别,它们的开发效率和健壮性怎么样,是不是符合我现阶段产品开发的需求。项目不大其实没区别,项目大的话就很明显了。
3.技术成本
不管怎么说作为PM掌控产品全局你要知道整个项目的技术开发成本是怎样的。其实都是项目管理里面的内容这里就不多说了,值得提的是程序员是个喜欢创造的工种,如果你只是设计好了让他们照着设计做他们会玩的很没乐趣的。要让他们也参与其中你会发现你的项目会比你想象中的进展要好。亲测,上个项目,我的开发团队就为客户提供了超出合同范围的各种各样的功能……重要的是这部分开发人员是愿意付出不计较成本的。(丫的,你们搞那么多功能就不怕有BUG客户再让咱们改吗????)
4.了解设计模式
其实才是整个业务架构里比较重要的东西,不过我现在理解的也不深刻,只能建议了。
一般你要先了解面向对象编程是怎么回事。
然后了解一些,单例模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,这类的设计模式。了解以后对你认识程序员的工作有所理解,最少忽悠不了你,你知道他们设计一个业务逻辑的流程是怎么样子的。这样就能做到心中有数了。
转自互联网的一些事

热心网友 时间:2022-05-02 06:05

产品经理没有必要对代码有特别深入的了解。
所谓产品,面对的是用户,用户体验永远是第一位的!

要从用户的角度,而不是工程师的角度理解业务逻辑。如果从用户逻辑讲的通,而技术上难以实现,那就需要有专业的架构师从技术上把关,而不是把要求产品经理都是架构师。当然额外有这样的能力更好,但不是必须的。
罗永浩可以说是比较好的产品经理,可能压根就不懂代码。但对于大部分产品经理来说,懂技术是与工程师顺利沟通的基础。刚才那个1888回答的挺好。

热心网友 时间:2022-05-02 07:39

产品经理当然要懂技术,不能因为不需要敲代码就不去了解技术,
所以产品经理的懂技术需要技巧:
1、先知道你的产品需要哪些技术
2、弄清楚几种技术之间的关系
3、了解每种技术的基本逻辑
4、遇到不懂得问题积极和技术工程师探讨,不要不懂装懂
5、先从产品逻辑理解技术,然后用技术逻辑进行反推
产品经理也要忌讳对技术的深入钻研,因为那样的话容易导致从技术工程师的角度出发,产品经理也很吃亏往往就是什么都懂什么都不精,但是这也是产品经理的特色。

热心网友 时间:2022-05-02 09:31

我认为产品经理需要懂一些交互设计,或是懂一些UI,至少在界面上可以分得出哪里好用或不好用,但同时我也认为是产品经理的悲剧,因为把一个产品经理身上维系了太多东西,这样看来,什么都懂的产品经理显然是一个非常无敌的人:产品经理要懂产品规划、产品的需要分析、要听用户的声音、要分优先级开发功能、要懂设计、要懂交互、要懂开发(Google的要求)、要会分析数据、还要负责协调团队等等。这样的人有,但好像真的不多。
在一个领域上做到一个点就非常的不容易,而对产品经理的要求可能仅能做到浅尝辄止就可以了。总之,在我看起来,国内的产品经理更像是传达老板的意见、协调项目各方角色的一个中间人。但这么讲或许是悲观主义的看法。

热心网友 时间:2022-05-02 11:39

肯定要很熟悉啊
产品经理需要对代码了解到什么程度?

一般你要先了解面向对象编程是怎么回事。然后了解一些,单例模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,这类的设计模式。了解以后对你认识程序员的工作有所理解,最少忽悠不了你,你知道他们设计一个业务逻辑的流程是怎么样子的。这样就能做到心中有数了。转自互联网的一些事 ...

擅长复杂业务流程的低代码开发平台有哪些?

引迈JNPF低代码开发平台可以以极少量代码或无代码的方式开发各种企业级管理系统,其特点如下:1. web在线开发低代码开发平台是个全Web可视化开发和运行架构,只要在web端网页就能开发,不需要安装配置复杂的本地开发环境;2. 代码生成器依托代码...

产品经理需要懂技术吗?懂到什么程度?

● 避免技术过度设计。所谓技术过度设计,是指技术人员设计了没有必要的代码灵活性和复杂性,而后续的业务根本用不到这些特性,宝贵的时间和资源被浪费。产品经理有时需要和技术人员进行深入沟通,分析业务情况,帮助技术人员砍掉不必要的灵活性、扩展性设计。● 与技术人员沟通顺畅。对于研发人员来讲,如果...

当产品经理需要懂代码吗?

只能回答,产品经理还是需要懂得一定的代码知识的,但是不用懂怎么写代码。下面来举个栗子来说一下,哈哈?假如你要做一个网站,你需要懂得需要哪些开发人员。最基础也需要前端、后端技术。前端语言包括:html、css、js、ajax、、react、jquery等。后端语言包括:php、python、java等。这样具体要实现某个功能...

产品经理(尤其是创业的)需要懂技术吗?懂到什么程度?

产品经理当然要懂技术,不能因为不需要敲代码就不去了解技术,所以产品经理的懂技术需要技巧:1、先知道你的产品需要哪些技术 2、弄清楚几种技术之间的关系 3、了解每种技术的基本逻辑 4、遇到不懂得问题积极和技术工程师探讨,不要不懂装懂 5、先从产品逻辑理解技术,然后用技术逻辑进行反推 产品经理...

产品经理需要懂技术吗?懂到什么程度

依我看,产品经理需要懂技术,而且还要写代码,写过代码和看过书完全是两回事。但是不需要水平有多高。哥这么多年七七八八学了点技术,虽然至今还是菜鸟,但是比完全不懂技术的,还是感觉踏实很多。不过我从一开始就是最简单最实用的VBA、VBS、JS入手,目的就是操作EXCEL操作电脑里的文件,跟DOS批处理...

产品经理需要哪些方面的能力?

1. 对开发的逻辑了解 这个之前在另一个答案中提过,就不说太多了,你可以不会写代码,但你要知道业务实现逻辑和开发难度,很多时候不是你一句话说改就改的,同时可以避免被开发蒙(他们没坏心,只是每个人都有自己做不完的工作)。2. 对美术的造诣修炼 你以为产品经理就不用跟美术打交道了...

互联网的产品经历需要什么样的技术知识,需要懂到什么程度?

产品经理需要懂技术,在一个创业公司就尤其需要 懂技术,其一,需要有侧重,不意味着写代码比软件工程师更好,而是很清楚技术能用来做什么,为什么目的服务。可以带来什么用户价值,给公司带来什么商业利益;其二,在针对一些功能实现的可行性上,才会有所取舍;其三,了解一下技术常识和基本方法,可以提高...

产品经理需要懂技术吗?需要是计算机专业吗?

首先,需要肯定的是,产品经理最好还是需要懂点技术。虽然不像开发人员那么精通,可以写代码,但是至少跟开发讨论的时候,能够听懂开发讲什么。想必很多产品经理都经历过不懂技术而被开发嘲弄的经历。产品经理可能觉得只要自己提需求,开发来实现就好了,具体怎么实现的不管。所以经常跟开发沟通都是:“这里有...

产品经理需要懂的开发逻辑

产品经理在互联网行业中扮演着核心角色,与开发团队紧密协作。本文旨在探讨产品经理需要了解的关键开发知识,包括产品开发阶段、组件和接口问题,以及前端、后端和移动开发技术。在产品开发流程中,产品经理负责需求设计与评审,之后进入开发阶段。此阶段涉及代码仓库与分支管理,产品经理需了解如何在不同分支进行...

产品经理需要懂交互设计吗?懂到什么程度?

Google的要求)、要会分析数据、还要负责协调团队等等。这样的人有,但好像真的不多。在一个领域上做到一个点就非常的不容易,而对产品经理的要求可能仅能做到浅尝辄止就可以了。总之,在我看起来,国内的产品经理更像是传达老板的意见、协调项目各方角色的一个中间人。但这么讲或许是悲观主义的看法。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
oppor9怎么长截屏啊 怎么从主板的型号来初步看主版的好坏? 膀胱括约肌松弛的症状 恢复感冒嗓子哑的方法 尿道括约肌什么用 怎么从主板型号上看主板性能 梦见辖区合并什么兆头? 2023年2月理发吉祥日 微信拍一拍满屏怎么弄 同等学力在职硕士与统招研究生区别 不懂技术的产品经理想学习技术要从哪里开始? 请问互联网产品经理需要懂编程吗? 产品经理应该懂哪些编程技术 编程是产品经理应该考虑的吗 刚毕业,想培训,不知道去培训编程还是产品经理? 产品经理需要会编程吗 我是一名产品经理现在想学习下关于编程方面的知识,请问从哪里入手会比较好 产品经理为什么要学编程? 杭州有哪些著名旅游景点? 现任白马寺方丈释印乐和灵隐寺方丈释光泉哪个修为高? 中华慈孝文化节哪些明星受聘文化大使? 想到灵隐寺要坐地铁到哪一站? 求解《五福蛇鼠一家人,再把土字来翻新打一生,肖》 (余)字猜一生肖? 灵隐寺现在的住持是谁呢 雪尽小桥梅总放猜一生肖 2级建造师报考条件不满足怎么办 灵隐寺的介绍 关于劳动合同纠纷的法律规定是怎样的 初中没毕业学2建有什么要求吗 不懂编程能成为产品经理吗 有哪些好的java编程和产品经理学习网站 电脑下载的文件存在哪里比较好 蚂蚁借呗的钱可以提银行卡吗 蚂蚁借呗可以转账到银行卡里吗? 西瓜什么季节成熟 支付宝借呗可以提现到银行卡吗 铝合金螺丝用什么材质最好 在铝合金上打眼上螺丝有什么技巧? 铝合金自攻螺丝用多大的钻头 铝合金门固定锁体的螺钉拧不紧怎么办? 打在铝合金门窗里的膨胀螺丝寿命多久?如果到了使用年限怎么更换呢? 在铝合金上打自攻螺丝要用什么工具? 铝合金上的螺丝,拧下来,再装上去,螺丝牢不牢 汤姆克鲁斯 在碟中谍4中穿的像是皮衣戴帽子的衣服是什么牌子的?哪里能找到? 什么材质的自攻螺丝可以攻铝型材 广告公司招商文案 急,手机内存无缘无故被占用了,杀毒也没毒,-怎么回事?专家解答下- 铝合金安装需要多大螺丝 手机存储空间不知道被什么占用了,怎么清理呢?