程序员的自我修养
孜孜不倦,技术学习,自我提升的学习心得和笔记。
闭眼卖布
微信公众号:闭眼卖布
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
函数式和面向对象编程有什么区别?
函数式编程 (Functional Programming) 和 面向对象编程 (Object Oriented Programming) 是两个主流的编程范式,他们有各自独特的闪光点,比如函数式编程的数据不可变、惰性求值,面向对象编程的继承、多态等。这些语言特性上的区别,可以参考之前的文章,这篇文章主要从实现相同功能的角度,来对比这两种编程范式,他们在实现上的逻辑是截然相反的。初步实现在函数...原创 2019-07-02 15:07:08 · 10043 阅读 · 0 评论 -
静态类型和动态类型有什么区别?
编程语言按照类型检查可以分为两大类:**静态类型 (Static Typing) **和 动态类型 (Dynamic Typing)。在现在比较流行的这些语言里,静态类型的代表人物有 Java、C/C++、Golang 等,动态类型有 Python、Ruby 等。静态类型和动态类型有什么区别呢?为什么在程序语言设计时要考虑是静态还是动态?在写代码时,Python 写起来简洁,效率高,可能100行...原创 2019-07-01 14:30:25 · 11312 阅读 · 1 评论 -
编程语言的一些基础概念(一):静态函数式编程
世界上最好的编程语言是什么?这就好像问 世界上最好的车是什么车?F1 比赛的,日常家用的和跑山路的最好的车显然是不一样的。同理,不同的编程语言也有他们最适合的使用场景,程序员们通常都会个几种语言,因为工作需要可能要学新的语言。不同编程语言之间是不是完全不一样呢?他们之间有没有什么共同点是不同语言间类似的呢?有没有一些最基本的概念?最近在看了 Coursera 上的 Programming ...原创 2019-07-02 15:06:32 · 1022 阅读 · 2 评论 -
编程语言的一些基础概念(二):动态函数式编程
在上一篇《编程语言的一些基础概念(一)》中,通过静态类型的函数式编程语言,介绍了一些编程语言的特性,包括数据不可变,尾递归,匿名函数等。这一篇在上篇的基础上,通过 Dynamic Typing (动态类型) 的函数式编程语言 Racket,再介绍一些编程语言的特性,比如 Stream, 惰性求值, 宏 Macro 等。括号的使用天花乱坠的括号,这是 Racket 和 LISP 等这类语言最直观...原创 2019-06-22 17:04:50 · 877 阅读 · 0 评论 -
编程语言的一些基础概念(三):面向对象
在前面两篇中,主要讲了函数式编程语言的一些基础概念。这篇是 Coursera Programming Languages, Part C 的总结,通过 Ruby 介绍面向对象编程里的一些概念。了解这些概念能让你在上手任何一门新的面向对象语言时,都更加得心应手。虽然用的是 Ruby,但是不会涉及很深的 Ruby,即使不懂 Ruby,读下来应该没问题。对于已经了解面向对象编程的朋友,可以考虑直接跳到...原创 2019-06-30 23:11:07 · 3490 阅读 · 0 评论 -
如何用 Vue + Vuetify 快速建站?
懂点基础,学点套路,轻松用 Vue 写个网站几个月前用 Vue + Vuetify 这一套框架写了个 仓库管理系统 和 个人网站,近来不写前端了,所以整理了如何用 Vue,Vuetify,Vuex,Vue-router 写一个单页应用 (SPA),为以后回忆方便,也供初学者参考,少踩坑。(这篇不是 Vue 的基础介绍,所以建议先读了 Vue 的官方文档,再来看怎么应用。)这篇以开发的个人...原创 2019-06-20 11:47:03 · 15316 阅读 · 0 评论 -
如何使用 Git Hook 自动部署服务器?
一行命令,自动将本地文件部署到远程服务器上。最近搭了个个人网站,在放到服务器上时,考虑到,如果每次更新的内容,都要用 FTP 或者别的文件传输方式,将文件一个个的放到服务器上,简直是太麻烦了,有没有什么办法更好,更快的完成部署呢?使用 Git Hooks(Git 钩子),可以做到这点。Git Hooks 是什么?「Git 能在特定的重要动作发生时触发自定义脚本」,比如说pre-commit...原创 2019-06-20 11:46:07 · 671 阅读 · 0 评论 -
共识算法: Raft
上篇讲到了「拜占庭将军问题」:多个拜占庭将军要如何在可能有叛徒、信使可能被策反或者暗杀的情况下达成是否要进攻的一致性决定?还不了解的先看看上一篇《拜占庭将军问题》。这篇主要是介绍简化版拜占庭将军问题的解决方案:Raft 共识算法。拜占庭将军问题是分布式领域最复杂、最严格的容错模型。但在日常工作中使用的分布式系统面对的问题不会那么复杂,更多的是计算机故障挂掉了,或者网络通信问题而没法传递信息,...原创 2019-06-19 21:09:50 · 242 阅读 · 0 评论 -
分布式负载测试实践
上篇文章介绍了 Raft 共识算法,会去了解这些分布式的内容是因为工作上的需要。每个月代码总结也停了好久,用这篇文章完整总结一下前一段时间做的小工具:分布式定时负载测试,主要目的有一下几点:测试内部开发 API 在不同请求发送速度和不同数量请求下的延迟,找出延迟过高的让开发程序员去优化。不断增加请求的数量模拟增长的用户量,找出系统能处理请求数量的瓶颈。监控系统在不同数量的请求下需要多少的资...原创 2019-06-20 11:41:16 · 342 阅读 · 0 评论 -
Webpack快速入门实践
源起能碰上 webpack,是偶然也是必然。本来想在公司下个项目试试 AngularJS,但是又不能使用 server。奇怪要求的限制,滋生了奇怪的请求,所以在 Google 上查了半天没有找到合理的解决方案,只在 Google Group 里面看到有两个人讨论的热火朝天,里面提到了 webpack.config.js 貌似能够成功解决能够这个问题,尝试了下,老是有问题,就开始读 webpac...原创 2017-04-08 22:45:00 · 330 阅读 · 0 评论 -
浅谈 RPC 和 REST: SOAP, gRPC, REST
在一次高盛面试中,被问到了一个问题,SOAP 和 REST 之间的区别是什么?当时东一榔头西一棒槌的答了几条,总感觉很了解的很肤浅。怎么从一个比较全面的角度,去了解 SOAP 和 REST ?最近看了个专栏,文章里相对详细的介绍了他们,加上一些别的搜索和理解,在这里做个总结和梳理。首先,第一个问题应该是 为什么会将 SOAP 和 REST 进行对比?为了搞清楚这个问题,这篇文章会先介绍 SOA...原创 2019-03-25 14:35:00 · 1378 阅读 · 0 评论 -
Linux 入门手册——《鸟哥的 Linux 私房菜》
对 Linux 的了解一直停留在简单的 command line 层面,比如 ls 能列出所有当前文件夹下的文件和文件夹,但这个功能是怎么实现的?能不能自己定义命令来简化日常的工作?在安装完一个软件后,安装在里哪里?比如说安装完了 node, 为什么在终端能使用 npm 指令了?在/目录下有 /bin, /var, /etc, /home, /dev 等文件夹,这些文件夹都是做什么用的?为什么要按...原创 2019-06-20 11:39:31 · 358 阅读 · 0 评论 -
所见即所缚,设计一个新软件该有怎样的思维方式?
你们有没有碰到过这么一种情况?在小组进行头脑风暴时,有人讲出一个不错的想法,它就会在脑子里挥之不去,刚想到点别的,还没深入,就又回到了这个想法。知道的越多,思维越受束缚。创新难,难在不容易走出思维的牢房和知识的边界。以前大家都用带键盘的诺基亚手机,习惯了手机有按键,研发一款新手机时,有几家手机厂商能够想到将键盘删除,改成触屏手机?现在大家习惯了触屏手机,在下一代个人通信设备中,会是以什么样的方式进...原创 2017-04-14 21:51:00 · 218 阅读 · 0 评论 -
为什么一定要了解基础?
刚开始玩王者荣耀时,用后裔无脑走天下,按推荐出装站撸随便上分。差不多到黄金铂金,就遇到了瓶颈,一方面是对手变强了,一方面是自己对游戏了解太少,不懂英雄,不懂装备。当时如果对面有个蔡文姬,游戏一开始,总有队友“善意”的提醒,「射手出个制裁」,然后我刷刷的开始翻装备,制裁?什么是制裁?干嘛用的?不了解装备,按照系统推荐出装,游戏可以玩的很开心。那还有必要去了解里面的 90 来个英雄和近 100 件装备...原创 2019-03-29 17:48:00 · 383 阅读 · 0 评论
分享