当我们追求不可替代时

昨天,angela zhu在她的公众号“嘀嗒嘀嗒”,发表了一篇职场文章,怎样让自己成为不可替代的程序员。突然,我发现我在职场上难有前进的弱点和问题被暴露无遗。因为一直以来,我追寻的目标,都是可替代。其实我没有在任何公司从事过哪怕一天的职业运维工作,但很有意思,在我职场的最后几年,运维工程师很多工作方式和策略都是我来手把手教的。并不是因为我懂得多少技术,而是我非常清楚运维的至高目标,系统架构应竭力避免单点隐患,什么是单点隐患,就是这个节点崩溃了,系统整个就崩溃了。如何避免?就是任何一个节点,一个设备,一个硬件,或一个服务,崩溃了,系统都有自动检测,利用冗余机制快速恢复,哪怕是降级恢复的策略,保证系统的可用性,不会因为这个故障而全盘崩溃。当然,实话说,这个只是目标,在实践中并不是能做到完全的可靠,但至少,我们所有运维策略,架构设计,以及系统的扩展性分析,都是以这个目标为导向的,那么,为什么罗嗦...阅读全文

我是如何成为一名更优秀的程序员的

译者注:本文作者 James Long,前 Mozilla 工程师,NodeJS, ReactJS 社区活跃开发者。NodeJS 著名模板引擎 Nunjucks 作者,JavaScript 格式化工具 Prettier 作者。在 Mozilla 工作 6 年后离开,年仅 32 岁自己创业开公司。其人生经历值得大部分程序员学习。在React Conf上有几位朋友咨询我如何成为一名更优秀的程序员。由于某种原因,人们认为我是一个值得倾听的高级程序员。所以我想有必要把我这些年编程路上的『心路历程』写下来。关于我的一些详细信息:我现年32岁,有10年以上扎实的工作经验。直到最近几年我才对自己所做的工作充满信心。即使是现在,我也在不断质疑自己。问题在于,这种质疑并不会消失,所以你要做的就是无视它,不断的解决问题,不断的积累经验。首先我要说明的是以下提到的只是一些帮你提升技能的小贴士。最终你还是需要找到...阅读全文

Golang并发编程中的同步(sync)与通信(channel)

Golang中实现并发非常简单,只需在需要并发的函数前面添加关键字"go",但是如何处理go并发机制中不同goroutine之间的同步与通信,golang 中提供了sync包和channel机制来解决这一问题。Synsync 包提供了互斥锁这类的基本的同步原语。除 Once 和 WaitGroup 之外的类型大多用于底层库的例程。更高级的同步操作通过信道与通信进行。而golang中的同步是通过sync.WaitGroup来实现的。WaitGroup的功能:它实现了一个类似队列的结构,可以一直向队列中添加任务,当任务完成后便从队列中删除,如果队列中的任务没有完全完成,可以通过Wait()函数来出发阻塞,防止程序继续进行,直到所有的队列任务都完成为止。WaitGroup总共有三个方法:Add(delta int), Done(), Wait()。Add:添加或者减少等待goroutine的数量...阅读全文

进程间的通讯(IPC)方式

为什么要进行进程间的通讯(IPC (Inter-process communication)数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。linux常用的进程间的通讯方式(1)、管道(pipe):管道可用于具有亲缘关系的进程间的通信,是一种半双工的方式,数据只能单向流动,允许一个进程和另一个与它有共同祖先的进程之间进行通信。(2)、命名...阅读全文

Professor Frisby’s Mostly Adequate Guide to Functional Programming

前言同学推荐的书籍,Mark下,有时间阅读About this booThis is a book on the functional paradigm in general. We'll use the world's most popular functional programming language: JavaScript. Some may feel this is a poor choice as it's against the grain of the current culture which, at the moment, feels predominately imperative. However, I believe it is the best way to learn FP for several reasonsYou likely use it ev...阅读全文

Shell脚本之输出带颜色的字体

shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-格式如下echo -e “\033[字背景颜色;文字颜色m字符串\033[0m”例如echo -e “\033[41;36m something here \033[0m”其中41的位置代表底色, 36的位置是代表字的颜色注  1、字背景颜色和文字颜色之间是英文的”;”2、文字颜色后面有个3、字符串前后可以没有空格,如果有的话,输出也是同样有空格下面是相应的字和背景颜色,可以自己来尝试找出不同颜色搭配例echo -e “\033[31m 红色字 \033[0m”echo -e “\033[34m 黄色字 \033[0m”echo -e “\033[41;33m 红底黄字 \033[0m”echo -e “\033[41;37m 红底白字 \033[0m”字颜色:30—–3echo -e “\033[30m 黑色字 \033[0m”...阅读全文

2017 WTM(谷歌女性开发者节) 报名

Google 长期致力于在全球范围内搭建更具包容性的工作环境,其中很关键的一点就是给予女性更多机会去实现梦想,并帮助她们创造改变世界的工具。通过提供适宜的环境和政策,女性可以在科学技术上更加快速地成长,获得更高的价值实现。Women Techmakers (WTM,女性开发者大会)项目是由 GDG (谷歌开发者社区) 的 Women Tech Lead 发起并组织,旨在鼓励和促进女性在技术领域的参与,从而使得更多的女性开发者、女性设计师和科技型公司女性企业家成长、提升和成功。和 I/O 一样,WTM 也是全球性活动。今年 WTM 的主题是 Telling Our Story。今年的 WTM 可以预见的将成为天津 GDG 历史上第二大的活动。嘉宾阵容和数量超过去年很多,我们也换了一个更大的场地。4月15日,我们一起见证属于女性的精彩绽放。当然绿叶们还是可以坐在台下的。时间 / 地点活动时间:...阅读全文

读研究生利弊之我见

嘀嗒你好看了嘀嗒嘀嗒最近的文章,想说的有点多,但留言不能超过600字,就把一部分留言写在这了:看过文章又想到一个老话题—要不要读研。看过几篇文章,都不是很支持,角度大多是“读研不代表有好工作”“时间成本太高”“导师不靠谱”等等,这些都是实际问题,但不经过这样系统的训练,如何能快速得到或着说找到正确路径获得安姐要求的这样的思维能力呢?安姐能写出如此受大家欢迎的文章,想必和在学校里受到的训练是分不开的吧。安姐如果有空,能不能写一篇关于如何获得好的思维能力的文章,世界观和方法论都写写,感激感激!/玫瑰玫瑰你好关于要不要读研的问题,很多人写过文章了。记得我也有提过几次。今天再分享一下我的感受吧。我读硕士和博士的主要专业一个程序语言设计,二是 BioInfomatics。前者加深了我对程序语言的理解,更清楚各种程序语言最基本的设计理念,以及一些在性能和表达上的优缺点。当然,简历上写着“我能写一个...阅读全文

太一星晨解析七层负载均衡关键技术

负载均衡,英文名称为LoadBalance,其意思就是将负载(工作任务)进行平衡,分摊到多个操作单元上进行执行(例如Web服务器、FTP服务器等),实现多个服务器共同完成工作任务的目标。负载均衡建立在现有网络结构之上,它提升了服务器的性能、提高了带宽利用率,增强了网络的灵活性和可靠性。经过十年的发展,负载均衡已经成为网络应用的重要设备,甚至成为大型网络应用的核心设备,与基础路由、交换设备市场并驾齐驱。十年间,负载均衡的前沿技术层出不穷,令用户眼花缭乱。经常在技术网站、文档中出现的“四层负载均衡”、“七层负载均衡”字眼有什么含义?有什么区别?对客户网络有哪些不同的优化?带着这样的疑问,今天我们就来仔细研究一番。四层负载均衡像银行自助排号机 七层负载均衡像银行大堂经理首先,我们来了解一下什么是四层负载均衡、什么是七层负载均衡。四层负载均衡指的是负载均衡设备通过报文中的目标IP地址和端口负载均衡...阅读全文

【PHP扩展开发】深入理解PHP7之ZVAL

PHP7已经发布, 如承诺, 我也要开始这个系列的文章的编写, 今天我想先和大家聊聊zval的变化. 在讲zval变化的之前我们先来看看zval在PHP5下面是什么样子版权申明本文是原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。非经允许,不得用于赢利目的。PHPzval回顾在PHP5的时候, zval的定义如下struct _zval_struct union long lval;double dval;struct char *val;int len;} str;HashTable *ht;zend_object_value obj;zend_ast *ast;} value;zend_uint refcount__gc;zend_uchar type;zend_uchar is_ref__gc;};对PHP5内核有了解的同学应该对这个结构比较熟悉, 因为...阅读全文