• 展开微博窗口
  • QQ:826945906
  • 微信:u200714928
  • 展开分类目录
胡伟

间歇性努力的人,持续性一事无成

昙花一现的努力,都是伪努力。 01 工作上认识个老哥,四十多岁,有意思的人。 他在一线门户做过电商一把手,后来出来单干,又经历过两次创业。 无论职业经理人,还是创业当老板,他保持着每周工作 100 小时以上的习惯。 和他喝过了一次酒,发现个有趣的事情:在如此高强度的工作状态下,他却从来没感到过“痛苦,难受,度日如年”。 创业之路,百转千回,困难挫折如同家常便饭,但他的目光并没因此暗淡。他相信,“人生本来就是由开心和不开心串起来的”。 老哥的事业做得不小。但他有一件特质,尤其吸引我的注意:努力常态化。 这点特质,在我认识的许多大牛身上都能看见。你看他们: 大年初二的早晨,坐到桌前写方案; 年会狂欢结束后,回 …

php面试题

面试题列举如下: 1.redis与memcache差别? 答:key大小、持久化、速度、线程模型、key类型、淘汰策略、集群搭建区别、底层数据结构的差异、内存利用率、碎片处理。 2.innodb的特点? 答:行锁、支持事务、不支持全文检索、读少写多的场景更有利、 3.mysql索引使用的原则?依据这些原则,如何为表加索引? 答:最左前缀原则。 4.php 变量的销毁机制? 答:php5和php7的差别比较大,php5中引用计数存在zval中,而php7中引用计数存在zend_xxx结构中。 5.php array_merge的功能?自己实现一下? 答:数组合并,数字键的value直接加在原有数据的后面,字符键的value或是替换,或是新增。 6.php 里面有哪些数组操作函数? 答:array,array_mer …

golang的一些最佳实践

1.go里面一个goroutine panic了, 会导致进程退出, 所以go func()时第一行带上defer 2.go里面 []byte和string互转是会发生复制的, 开销明显, 如果代码里频繁互转, 考虑使用bytes.buffer 和 sync.Pool 3.在写http api时, parse body这种事情, 如果只是纯粹取body里的json数据, 没必要单独定义结构体, 在函数里定义一个匿名结构体就好 4.同步化的goroutine一不小心就没有退出, 如果你写一个长期运行的服务, 用logger记录每一个goroutine的清理退出, 防止goroutine泄露 5.select语句是会跳过nil的channels的. 因为在Go里往已经close掉的channel里发送数据是会panic的, 可以利用select语句. 附: channel操作导致panic的情况有: 关闭一个nil的 …

redis读书笔记

1.当字符串长度小于1MB时,扩容都是加倍现有空间,如果字符串长度超过1MB,扩容时一次只会多扩容1MB。需要注意的是,字符串的最大长度是512MB 2.可以对多个字符串进行批量读写,节省网络耗时的开销 3.redis自增是有范围的,它的范围是signed long的最大值和最小值之间,超出则会报错 4.redis 分布式锁setnx存在超时不是原子操作的情况,在2.8版本之后,对set命令进行了扩展,使得setnx和expire可以一起执行 5.redis分布式锁不能解决超时问题,因为还存在着临界区逻辑代码未执行完锁就超时了的情况,所以,redis分布式锁不要用于较长时间的任务。还有个安全点的方案是,将 set命令的value参数设置为一个随机数,释放锁的时候先匹配随机数 …

追MM与设计模式(23种设计模式巧妙解析,趣味理解)

创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 2、BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你” …

读书笔记 -《架构修炼之道》

一.网关之道 API网关:将所有API的调用统一接入API网关层,由网关负责输入和输出。有了API网关之后,各个API服务提供团队可以专注于自己的业务逻辑处理,而API网关专注于安全、流量、路由等问题。 代理与API网关的区别:代理是纯粹的数据透传,协议不会发生变化,而网关在数据透传的背景下,还会涉及协议的转换。 API网关的基本功能包括统一接入、协议适配、流量管控与容错,以及安全防护。 设计API的时候常用的工具有RAML、Swagger,这两个工具都可以辅助我们设计API和生成API文档。 API网关的基石:泛化调用。泛化调用与普通RPC调用的区别在于不需要接口提供者的客户端JAR包了。 在API网关中引入管道的概念。将参数校验、黑白名单、限 …

关于锁的知识的总结

简介 乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题。 乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。 悲观锁:悲观锁在操作数据时比较悲观,认为别人会同时修改数据。因此操作数据时直接把数据锁住,直到操作完成后才会释放锁;上锁期间其他人不能修改数据。 在说明实现方式之前,需要明确:乐观锁和悲观锁是两种思想,它们的使用是非常广泛的,不局限于某种编程语言或数据库。 悲观锁的实现方式是加锁,加锁既可以是对代码块加锁(如Java的synchronized关键字),也可以 …

硬件&系统性能

首先看一下系统性能良好时的指标范围: 控类别 指标名称 指标范围(通过) 应用服务器(jvm和配置) JVM jvm内存占用率<=70% 线程池连接数 线程池连接数<=80%,没有出现线程阻塞、死锁现象 数据库活动连接数 数据库活动连接数<=85% full gc频率 大于平均半小时1次GC 是否有异常日志 日志信息中,无错误信息如:OOM、及其他代码提示的错误 是否有OOM 没有年老代、持久代堆异常、栈异常及内存不够造成的异常 内存泄露 多次GC后,内存没有呈线性增长 数据库(mysql5.5) 系统负载 系统负载(Load Average)<=系统中CPU的核数*个数*0.7 CPU占用率 总CPU占用率<=70%,其中%us<=50%或%sy<=50%,%wa<=20%,无热点CPU现象 关注( …

php程序的调试

php 调试最常用的代码中添加 echo、var_dump、print_r 和 exit,以及打日志自不必说了,大概会点php的人都知道这两条。 下面说说需要更深入的调试方法: 1.使用xdebug进行调试 XDebug 是 C/S 结构,其中 Client 是 PHP 中安装的 Xdebug,Server 是 IDE 中安装的插件,使用 DBGP 协议通信。PHP 运行脚本时,通过 Xdebug 插件向 IDE 发送调试信息,并接收 IDE 发过来的控制信号。需要为 PHP 安装并开启 Xdebug,然后设置 IDE 的 Xdebug 插件,使二者可以通信。 优缺点: 支持单步调试和任意变量值的获取 配置复杂,需要 IDE 安装插件 支持跟浏览器的配合,需要请求中携带 XDEBUG_SESSION_START 参数 2. Web App 调试 可以将要调试输出的变 …

RPM包管理详解

RPM Package Manager 由Red Hat公司提出,被众多Linux发行版所采用; 建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系。 一、rpm命令 1、查询已经安装的RPM软件信息 rpm  -q[子选项]  [软件名] 1、q  –query查询 2、query-options查询子选项 [-i,–info]:查看指定软件的详细信息 [-a,–all]:查看系统中已安装的所有RPM软件包列表 [-l,–list]:查询指定软件包所安装的目录、文件列表 [-c,–configfiles]:仅显示指定软件包安装的配置文件 [-d,–docfiles]:仅显示指定软件包安装的文档文件 3、查询文件/目录属于哪个RPM软件:rpm  -qf  文件或目录名 2、查询 …