2021-12-05 18:09:24    6    0    0

在信息时代知识逐步碎片化,在讲管理课程和在行咨询过程中,发现很多小公司管理者对管理问题存在很多误解。

比起有资源,有品牌的大公司,毫无疑问小公司的管理更为重要。可惜是的市面上的管理理论几乎都是针对大组织,翻开《哈佛商业评论》,不是拉姆查兰告诉你要“炸掉人力资源部”;就是加德纳·莫尔斯告诉你《设计“零偏见”组织》。对于小公司,炸掉人力资源部?哪来的人力资源部;零偏见?对老板有偏见还是对员工有偏见。

小公司团队管理需求有三个特点:

简单。必须足够简单,小公司资源少,简单意味着抓住主要矛盾,解决核心问题;
说人话。小公司的管理者和员工很多都没有受过专门的管理培训,不仅要管理者能够理解,而且要员工能接受;
可以落地。小公司时间紧迫,需要拿来能用,用后有效。理解接受之后,照着说明书一步一步做就好。

做好小公司团队管理,只需要搞清楚这五件事

想想怎么赚钱(经营)
为了赚钱要做什么事(管理)
做这些事需要哪些人(人力资源)
这些人明天要做什么(计划)
这些人昨天做了什么(总结)

一、想想怎么赚钱(经营)

如果你是老板,那么你的客户是谁,你的产品或服务是什么,你的产品和服务做到什么程度客户愿意买单。

如果你是管理者,那么你的老板是谁,老板订立的目标是什么,目标做到什么程度会如何影响你的收入。

需要注意的是:

无论是客户的需求还是老板的目标都是基于现有情境和认知模式,情境在变化,认知在升级,所以需求和目标也是动态变化的。不要纠结商业模式,不要心存妄念,没有任何人能够凭空发现一个蓝海,也没有人能够自己设定一个完美的目标。

管理者设定目标,但不要被目标所束缚。小公司资源有限,更要小步快跑,快速迭代。

二、为了赚钱要做什么事(管理)

知道怎么赚钱之后,就要把赚钱这个目标分解为行动和决策两部分。

所谓行动,就是要做什么事,比如寻找办公地点、注册公司、购买设备设施等等。

所谓决策,就是依据这些事之间的逻辑关系和资源现状,决定先做哪些,后做哪些;花多少时间做这些,花多少精力做哪些。

如果实在想不出要做什么事,最简单的办法就是模仿。想开店就去店里打工,想开厂就去厂里学习,搞不清楚没关系,照着做就行。没有多少中小企业老板是管理专业,真是管

2021-12-05 18:09:24    11    0    0

谢邀

在团队士气低迷的时候,Leader 应该怎么提升整个团队的心理状态?

作为团队的负责人,有这个意识就很值得肯定。是的,Leader要为团队士气负责。


回到具体问题,先分析影响团队士气的主要原因,再谈谈如何团队提振士气。


  • 影响团队士气的主要原因
  1. 目标问题。目标模糊,目标没意义;
  2. 路径问题。没有工作计划,工作计划无法达成目标,工作计划偏离目标,;
  3. 回报问题。达成目标的团队回报无法预期或预期较低,达成目标的个人回报无法预期或预期较低;
  4. 信任问题。目标不信任、路径不信任、回报不信任。

  • 如何团队提振士气

一、首先解决目标问题

管理者最重要的工作就是为团队设定目标和并为目标赋予意义。

目标有三个关键:

  1. 目标必须要短期、具体。不要混淆目标和意义,如果把目标定为改变世界,十年八年看不到进展,人心很快就散了。反过来说,一个具体可达成目标,比如这个月实现多少销售额,比如新版本三周上线。
  2. 团队要对目标有共识。不要会上打哈哈,会下唱反调、拖后腿。有更好的目标提前说说,大家一起讨论,确定了目标后大家一起全力以赴。
  3. 要让成员明白目标对每个人的意义。从大的角度说,这是我们伟大航路上关键一步;从小的角度说,一次区域销售第一对每个人的职业发展都有好处,一次提前上线可以在同行竞争中取得多大的优势。意义可以为团队唤醒斗志,激发潜力。

二、其次解决路径问题

  1. 工作必有计划。士气高涨的时候可以自发工作,士气低迷的时候必须细化工作计划,无论最终目标能否达成,最少要让每个成员都清楚的知道自己要干什么,紧随其后是的是让每个成员清晰的感觉到一个个小目标的达成。
  2. 计划无法达成目标。团队负责人必须首找到路,挖掘资源,突破创新,即使是一片荒漠也要榨出绿洲,即使是沉沉黑夜也要撕出一道光明。其次要说服自己,反复推演也罢,自我暗示也罢,如果不能说服自己,就不要试图说服别人。
  3. 计划指向目标。经常开会,确解决异常,推进进度。更重要的是让克服的困难和坚韧的能力必须得到展示和肯定,让每个成员知道很多人都在为目标努力,问题在一个个解决,进度在一点点推进,我们并肩前行,互相依靠。

三、然后解决回报问题

  1. 描绘团队未来。饼必须要有,而且要画的大。对于多数和我们一样普通人来说,一辈子能有几次突破现状,超越阶级的机会。每个人都知道概率不高,但是谁有愿意轻易放弃,安
2021-12-05 18:09:24    8    0    0

每个周末的午后,把儿子送进EF读书,随后找个环境幽静的咖啡馆坐一会,这便是我一周中最放松的时光。
在咖啡厅的气氛和环境这两点上,我似乎有强迫症,比如装修主色调的运用,地上装饰是否比较体验文化气息,营造了一场视觉盛宴,尤其在比较细微的地方我会非常关注。
简单说,必须能让我一进门就迅速有耳目一新的感觉,要不然我就会转头离开。因为我觉得只有在这样的环境中,闲暇时能够更加放松和享受,写出的文章才会更带有情感。
如果这一天心情大好,也会和妻子点上一壶功夫茶,畅谈一些身边的先闻趣事。
毕竟和她谈话,能让我捕获很多的写作素材。

熟悉我的人都知道,我有位从事猎头工作的老婆,平时的工作是专为某些医疗、金融投资机构提供中、高级岗位职位人才招聘及相关咨询服务。
相比之下,这项工作对业务专业性与人脉关系要求较高,经常会被行业大咖问:“这家公司你觉得怎么样?和某某公司比,你觉得他们之间区别是啥?”
如果回答的不够专业,或者被对方感觉很水,不仅当场尴尬,而且会在信任上大打折扣。
对猎头这项工作来说,一旦失去了信任,就意味着确定性的消失,长此以往,这个圈子也就别想混了。

上周,我妻子手上的某候选人,在通过初试、复试后,最终被卡在了终面上。
这种高端VP岗位的夭折,显然让她十分郁闷。
我本想安慰她,没想到被瞪了一眼,说:“少跟我提这事!煮熟的鸭子都飞了,几十万佣金啊,就这么飞了!”
我一哆嗦,感受到怨愤之气已冲破了天空,立马话锋一转,“胜败乃兵家常事,没事的。”
“去你的兵家常事!我真火大着呢,少惹我!”
我很理解,毕竟业务的发展非常艰难,这给她的情绪带来了压力,笑了笑说:“好吧。那为什么终面被拒呢?”
“现在的客户真难伺候,招的是VP,问的全是与细节相关的问题,最终,候选人抱怨企业小瞧了他,企业则吐槽这哥们很水。”
她喝了口茶,抬起头问我。
“好像在你们技术圈里,这种事情还挺多见?”

这样的话题,曾经在技术圈内也争论了过一阵子。
我试图用几个例子来向他解释,还别说,这方面可是我的强项。

比如,当团队规模超过几十人以上,而且不止一条产品线,那就需要有一名技术总监来管理和协调各个产品线Leader,并负责搭建公共技术平台,提升开发效率,控制质

2021-12-05 18:09:24    10    0    0

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。[1] 
1988年,巴利·玻姆(Barry Boehm)正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。

简介

螺旋模型(Spiral Model)采用一种周期性的方法来进行系统开发。这会导致开发出众多的中间版本。使用它,项目经理在早期就能够为客户实证某些概念。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。软件开发过程每迭代一次,软件开发又前进一个层次。采用螺旋模型的软件过程如下图所示::
title
螺旋模型基本做法是在“瀑布模型”的每一个开发阶段前引入一个非常严格的风险识别、风险分析和风险控制,它把软件项目分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。

螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。对于这些系统,风险是软件开发不可忽视且潜在的不利因素,它可能在不同程度上损害软件开发过程,影响软件产品的质量。减小软件风险的目标是在造成危害之前,及时对风险进行识别及分析,决定采取何种对策,进而消除或减少风险的损害。

四种象限

螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:
title

  1. 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
  2. 风险分析:分析评估所选方案,考虑如何识别和消除风险;
  3. 实施工程:实施软件开发和验证;
  4. 客户评估:评价开发工作,提出修正建议,制定下一步计划。

螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。

2021-12-04 14:05:11    8    0    0

1.Vuex是什么

Vuex 是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据的共享。

当我们的应用遇到多个组件共享状态(数据)时,就可以用到Vuex了。

2.Vuex的使用

安装完VueX后,在项目的src目录下新建store文件夹,然后在store目录下新建index.js。(使用最新的Vue-CLI 4.x.x安装Vuex会自动配置好以下步骤)

在store/index.js中 导入 Vuex 包并创建 Store 对象

  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex)
  4. export default new Vuex.Store({
  5. state: {
  6. },
  7. mutations: {
  8. },
  9. actions: {
  10. },
  11. getters:{
  12. }
  13. })

在main.js中将 store 对象挂载到 vue 实例中

  1. import store from './store'
  2. //.....
  3. new Vue({
  4. render: h => h(App),
  5. // 将创建的共享数据对象,挂载到 Vue 实例中
  6. // 所有的组件,就可以直接从 store 中获取全局的数据了
  7. store,
  8. }).$mount('#app')

3.Vuex的核心概念

Vuex 中的主要核心概念如下:

  • State
  • Mutation
  • Getter
  • Action
    在上面的index.js中我们也可以看到一个Store对象就包含了这几个对象

3.1 State

State 提供唯一的公共数据源,所有共享的数据都要统一放到 Store 的 state 中进行存储。

3.1.1创建数据

  1. export default new Vuex.Store({
  2. state: { num: 0 }
  3. })

然后我们在组件中访问 state 中数据的有两种方式:

3.1.2访问数据的第一种方式

this.$store.state.全局数据名称 //访问刚刚创建的num就是

  1. this.$store.state.nu
2020-10-29 09:40:04    104    0    0

数据库结构

title

语句

  1. $info = $model->user_info();
  2. if (isset($info['error'])) return $this->response($info);
  3. if (!isset($info['id'])) return $this->param_error('返回信息错误');
  4. $rs = $this->model->where('id', $this->id)->update(['cid' => $info['id']]);

打印出info的值

  1. array (
  2. 'id' => 1329389309362531,
  3. ...
  4. }

保存后数据库的值
title

修复bug

  1. $rs = $this->model->where('id', $this->id)->update(['cid' => $info['id'].'']);

后续

上面是使用laravel5.7,使用laravel5.5之后得到
title

而其他同事laravel5.5是正常的

2020-09-07 18:44:42    182    0    0

在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。(QEP:sql生成一个执行计划query Execution plan)

  1. mysql> explain select * from servers;
  2. +----+-------------+---------+------+---------------+------+---------+------+------+-------+
  3. | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
  4. +----+-------------+---------+------+---------------+------+---------+------+------+-------+
  5. | 1 | SIMPLE | servers | ALL | NULL | NULL | NULL | NULL | 1 | NULL |
  6. +----+-------------+---------+------+---------------+------+---------+------+------+-------+
  7. 1 row in set (0.03 sec)

expain出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra,下面对这些字段出现的可能进行解释:

一、 id

我的理解是SQL执行的顺序的标识,SQL从大到小的执行

  1. id相同时,执行顺序由上至下
  2. 如果是子查询,i
2020-09-07 18:04:49    52    0    0

背景

表结构

  1. CREATE TABLE `zb_interface_logs_35` (
  2. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  3. `url` varchar(255) NOT NULL COMMENT '接口地址',
  4. `param` text NOT NULL COMMENT '提交参数',
  5. `response` longtext NOT NULL COMMENT '返回信息',
  6. `interface_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '接口类型:0.发送短信, 10.百度, 20.阿里, 30.纳米',
  7. `ip` varchar(45) NOT NULL DEFAULT '' COMMENT '请求ip',
  8. `created_at` timestamp NULL DEFAULT NULL,
  9. `updated_at` timestamp NULL DEFAULT NULL,
  10. PRIMARY KEY (`id`),
  11. KEY `interface_logs_35_interface_type_index` (`interface_type`)
  12. ) ENGINE=InnoDB AUTO_INCREMENT=6910328 DEFAULT CHARSET=utf8

#

数据3718534条,13.52G

分析

  1. EXPLAIN SELECT id, created_at, response FROM `zb_interface_logs_31` WHERE interface_type=32 AND id BETWEEN 3484981 AND 3560959 LIMIT 3

结果

title

实际时间

title

分析

  1. EXPLAIN SELECT id, created_at, response FROM `zb_interface_logs_31` WHERE interface_type=32 AND id > 3484981 LIMIT 3

结果

title

2020-09-03 18:22:48    51    0    0

基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。

一、什么是长连接、长轮询?

用通俗易懂的话来说,就是客户端不停的向服务器发送请求以获取最新的数据信息。这里的“不停”其实是有停止的,只是我们人眼无法分辨是否停止,它只是一种快速的停下然后又立即开始连接而已。

二、长连接、长轮询的应用场景

长连接、长轮询一般应用与WebIM、ChatRoom和一些需要及时交互的网站应用中。其真实案例有:WebQQ、Hi网页版、Facebook IM等。

如果你对服务器端的反向Ajax感兴趣,可以参考这篇文章 DWR 反向Ajax 服务器端推的方式:http://www.cnblogs.com/hoojo/category/276235.html

欢迎大家继续支持和关注我的博客:

http://hoojo.cnblogs.com

http://blog.csdn.net/IBM_hoojo

也欢迎大家和我交流、探讨IT方面的知识。

email:hoojo_@126.com

三、优缺点

轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。
优点:后端程序编写比较容易。
缺点:请求中有大半是无用,浪费带宽和服务器资源。
实例:适于小型应用。

长轮询:客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。
优点:在无消息的情况下不会频繁的请求,耗费资源小。
缺点:服务器hold连接会消耗资源,返回数据顺序无保证,难于管理维护。
实例:WebQQ、Hi网页版、Facebook IM。

长连接:在页面里嵌入一个隐蔵iframe,将这个隐蔵iframe的src属性设为对一个长连接的请求或是采用xhr请求,服务器端就能源源不断地往客户端输入数据。
优点:消息即时到达,不发无用请求;管理起来也相对方便。
缺点:服务器维护一个长连接会增加开销。
实例:Gmail聊天

Flash Socket:在页面中内嵌

2020-08-24 17:53:20    47    0    0

作者:韩天峰
链接:https://www.zhihu.com/question/47994137/answer/131700752
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

性能上Swoole毕竟是C语言开发的,在某些地方如内存管理、数据结构、通信协议解析上肯定要比PHP开发的workerman高。

功能上swoole提供的高级特性很多,列举几个workerman没有的吧,比如SSL/TLS隧道加密、http2.0、异步mysql驱动、异步redis驱动、异步的http/websocket客户端、process、lock、atomic、table。另外Swoole 2.0内置了PHP原生协程的支持,PHP代码也可以使用类似于Go语言的协程来实现高并发的网络服务器。

外部依赖上workerman需要依赖很多额外的第三方PHP扩展来实现,局限性比较大,这些扩展并非是PHP官方维护的,维护性方面良莠不齐,有些扩展连PHP7都不支持,数年没人维护。而Swoole基本上无依赖,底层的代码全部可控。

开发维护方面,Swoole的开发团队目前有大概18人左右,开发者基本上都是来自腾讯、百度、阿里、滴滴、微博等国内一线互联网企业,支持维护的团队更稳定。

当然workerman的优势是它完全使用PHP代码实现,开发者可以直接看它的源码。有特殊需求也可以直接改源码来实现。如果换成swoole就不是那么简单了。workerman做的事情更多一些,即是框架又是工具和完整的解决方案,对于没有太多后端编程功底的程序员也来说确实会容易很多。而swoole实际上只是一个底层库,不是拿来可用的完整产品,基于swoole有很多PHP的框架和程序,比如tsf、zan php framework、hprose-swoole、zphp、swoole/framework、blink、dorarpc、SwooleDistributed等等,普通开发者可以直接基于这些项目进行开发。

Swoole是给高手用的,门槛比较高,需要使用者有深厚的功底。你这里问的哪个更容易开发,这个没办法回答,这个要看你要开发什么、团队或个人

10/12