首页
学习
活动
专区
工具
TVP
发布

程序人生

专栏作者
265
文章
284953
阅读量
68
订阅数
数据:逍遥游
对程序员来说,数据是我们时刻都在打交道的东西。我们的代码如同一台机器,把进入的数据转换或者映射成出来的数据。数学上,不过是:y = f(x) 而已。数据就像庄子口中的鱼,在代码的作用下,一会化身为文件,在文件系统里「沉潜」,一会化身为变量,在内存中「浮动」,一会又扶摇直上,化身为字节流,在网络中「翱翔」。
tyrchen
2018-12-13
5770
区块链技术漫游指南
自从9月份北京黑客马拉松成功举办后,不少朋友希望我们能把团队内部平时举办的 BBL 分享出来,我们觉得这个建议不错,随即开启了 ArcBlock Technical Learning Series,目前已经分享了八个主题,涵盖数据处理和分析,区块链技术,软件开发设计等内容。我们希望通过分享技术主题,即让感兴趣的朋友们收益,大家互相切磋,又能锻炼我们的工程师对知识的归纳和总结的能力 —— 因为,学会一件事情是一回事,能够把所学内容总结并传授出去,是另一回事。在这个过程中,我们学到了很多,也收到了很多反馈。最有意思的是,虽然区块链已经大热了一年多,很多技术群体对它的认知还停留在去中心化,加密货币,以及对智能合约的浅显理解上。所以,我们 ArcBlock 技术团队觉得有必要协力打造一个完整的区块链技术指南,从概念,原理,以及应用几个层次完整阐释我们对区块链技术的理解。目前的大纲如下:
tyrchen
2018-12-12
7330
在程序中时间旅行
三年前,当我写下那篇青涩的『永恒不变的魅力』的文章时,我刚刚是 elixir 和 clojure 的入门者。我如饥似渴地从 Bret Victor,Rich Hickey 等人身上吸取思想和力量,来浇筑我对函数式编程的信仰。函数式编程语言中有诸多让人赞不绝口的设计思想,但 immutability(不可变)显然是皇冠上的明珠。它让我们可以肆无忌惮地使用并发,不必考虑 lock,因为没有 critical section 可言;它让我们不必再终日在野指针造成的 segment fault,坏引用导致的 exception 中彷徨哀怨甚至自戕。当我们用一个产品的时候,确定性让我们感到安全和愉悦 —— 你使用微信,发给朋友的信息如果代表发送的小菊花停了没有惊叹号,那就一定成功了,这就是确定性;immutable 给程序员带来的确定性是:我给你一个引用,只要你拿着,就算到了天荒地老,海枯石烂它也能够访问,且还守候着原来的值。
tyrchen
2018-12-07
7270
Erlang 入坑指南
想了半天憋出这么个题目来,这也的确只是一篇入坑文。之前程序君写过一篇 Erlang 文章,我用谷歌翻译出来给 Joe Armstrong 老爷子看,老爷子看后大加赞赏,说这家伙搞懂 Erlang 了,我要和他约一组,于是就有了程序君与Joe老爷子对话这篇文章。这篇入坑指南很短,尝试从另一个角度认识 Erlang 。
tyrchen
2018-08-15
2K0
如何提高代码质量?
好的程序员从来不靠格子衫或者颜值吃饭,就像你家 C 罗明明可以靠脸,却非要用不断精进的身体和技术迷倒你。
tyrchen
2018-07-30
6250
银河系跳槽指南
这几天跟朋友聊的很多的一个话题是跳槽。马老师说员工离职的原因林林总总,只有两点最真实:1. 钱,没给到位;2. 心,委屈了。两个理由合二为一,就是干得不爽。如果把员工跳槽的动机归根于这个,有些过于简单粗暴。干得挺爽还主动拍屁股走人的,也大有人在,毕竟还有更大的世界可以追求。
tyrchen
2018-07-30
3890
思考,问题和方法
转眼已是七月。距我上次更新公众号,已经一月有余。离我加入 Arcblock,也有两月。如果把人看做一个运行的软件,那么这两个月我已经迭代好几轮,就像龙珠里在飞往那美克星的太空船里不懈修炼的悟空。
tyrchen
2018-07-30
6750
Code is Law
如果你以为本文是在讲 Ethereum,或者 Smart Contract,那我非常抱歉。本文将要讲述的是 Engineering practices 以及我对一些流程的思考和应用。
tyrchen
2018-07-30
9040
欢迎来到区块链的世界
在两三周前的文章中,我提到了我将要离开湾区,迁居到西雅图,做区块链相关的事情。四月底的那个周末,挥别妻女后,我一人一车,在后座上两个静悄悄的儿童座椅和 Ted Radio hour,backstreet boys,邓丽君等的陪伴下,一路北上,穿 Oregon(俄勒冈州)而抵 Redmond(雷蒙德),安全到达朋友家中。如今正式入职 Arcblock 一周,该安顿的已经安顿差不多了,是时候写点什么。
tyrchen
2018-07-30
8290
Tubi 为什么?
在一段旅程行将结束的时候,retrospective 是最好的临别礼物。Tubi 是一家独特的 startup,站在外人的角度,你很难想象这样一家不到三十个工程师的公司,竟然同时维护着五个主要的产品线:二十多种客户端软件(并且还在不断增加);五十多种自研或者第三方的后端服务(即便第三方,也还需要部署升级记录 metric 等维护工作);一个完备的广告系统;一套复杂的 data pipeline 和 personalization engine;还有,刚刚研发成功的,堪比 netflix 水平的下一代转码系统。做同样的事情,Hulu 有数百(甚至成千)工程师,而 netflix 有数千工程师。所以我在为之自豪的同时,常常在想,究竟是我们做对了哪些地方,才导致这样的结果?毛同学在《实践论》中说:认识从实践始,经过实践得到了理论的认识,还需再回到实践去。本文,我希望能探讨并总结出理论的认识,从而指导自己下一步的实践。
tyrchen
2018-07-30
9030
管理是什么(一)
简言之,无论团队大小,管理者的主要任务是建立 信任,输出 文化,确定 目标和战略(策略),有效 执行,并且和团队不断 学习和成长。
tyrchen
2018-07-30
3250
2018年3月过去了,我收获到什么?
最大的收获自然是我和 Joe 老爷子访谈,它是无价的。我前些日子已经放了篇文章:Joe Armstrong 面对面。没看过的同学可以点进去看看。我希望我六十岁时,也能像老爷子一样,睿智,洞悉世事,和我聊天的人都有这样的感觉 —— 就跟 Frodo 憧憬未来时夸赞 Sam 那样:Tyr the thinker。
tyrchen
2018-07-30
3080
分布式系统中的监工:Overseer
最近从无趣的工作中发现了有趣的事情,工作和业余时间都扑了些精力上去,本待上周末最终的成果出来后再写文章的,无奈事情太多,代码还没写完,二月上旬已过,再不写文章春节就过去了,所以这次程序君先上车,再补票。 需求 事情是这样的:两周前同事催促我升级我之前做的一个轮子 merlin - 见我去年的文章:停下来,歇口气,造轮子。 在那篇文章里我提到了为什么会有需要做这样一个内部的 release 构建工具。自那时起,merlin 为我们内部的几个 elixir service 的 release 保驾护航几个月,总
tyrchen
2018-03-29
9430
比特币浅析
与比特币首次结缘大概是 2013 年我结束创业,回到 Juniper 时。有阵子,饭桌上我的同事东哥经常会眉飞色舞地谈起很多关于比特币和中本聪的轶事,还有他做量化交易的有趣经历,并常常劝我也看看这个主题 —— 即便那时我对此并没有太大的感觉。经历过一次如梦般的创业历程,我还在艰难适应朝九晚六的坐班身份,以及,谋划着未来肉身翻墙的事宜。我浅浅看了网上有关比特币的中文资料,简单将其和电子货币画上了等号,根本没有阅读中本聪的论文,也没有关注任何一篇比特币的技术文章,就将其抛诸脑后。 再度被拉回比特币的世界,是去年
tyrchen
2018-03-29
1K1
程序员字典:「牛逼」
昨天发了中国团队的招聘贴 新的冒险,基本要求这一页我是这么写的: 作为一个已经命中注定和代码打大半辈子交道的程序员,我们职业生涯的「小」目标大多是 成为一个牛逼(awesome)的工程师。虽然不是每个
tyrchen
2018-03-29
1.4K0
用Lean Canvas 自我剖析(一)
这是昨日直播的文字版。 上次我开了个头,主要讲了为什么要「经营」我们的职业生涯。Simon Sinek 说 great leaders start with why,如果我们要 lead 自己的人生,
tyrchen
2018-03-29
1.3K0
如何学习一门新的技术
很久没有把我在 adRise 内部的演讲放出来了,一来最近我分享的频率低了(同事们也做了不少分享),二来有些分享是我们内部的系统,不方便放出来,但今天我跟团队分享的内容和内部系统无关,而是一个 framework,一个学习的 framework。 虽然演讲的标题是「如何学习一门新的语言」,slides 的所有内容也围绕着学习一门新的语言展开,但正如我最后放出的两个 head fake,我讲这个主题的目的并非教大家一门新的语言 elixir(尽管我以此为例),也并非教大家如何学习一门新的语言(尽管整个篇幅由此
tyrchen
2018-03-28
5970
代码重构之道
如果我纯粹为今天工作,明天我将完全无法工作。 -- 某子 程序员要面向未来编程。代码重构永远是程序员们无法回避的话题,当你的软件在编写的那一刻起,重构就不可避免。做一个系统,我们为什么要费劲地不断抽象,竭尽全力让自己的代码能够被重用,说白了就是让我们今日所付出的时间,让未来的我们能够更轻松地工作而已。 有位读者让我就 Martin Fowler 的『重构 - 改善既有代码的设计』一书,谈谈重构。我诚惶诚恐。这本书我很久很久以前买过,至今还躺在北京家中的书柜里;当时对系统领悟还不够深,所以很多思想都并未参透,
tyrchen
2018-03-28
9200
重构:撰写合格的代码
在「代码重构之道」里,我犯了个懒,讨论了什么情况下需要考虑重构,以及工具和方法来促进重构,但对如何重构代码本身,或者说:如何把烂代码转化成好代码,或者至少是合格的代码,没有太多提及。这篇文章谈一谈这个话题。 我们先给「合格的代码」做个定义: 满足项目所定义的 lint 规则 代码清晰简洁,没有反人类的逻辑或者刻意为之的 trick 尽可能控制副作用 代码的注释适量,不多不少 代码的接口定义合理,很难误用或者滥用 第一条不消说,我们在前文中已经描述了一个严格限制的 lint 规则,lint 规则并非普适,每个
tyrchen
2018-03-28
9680
再谈 API 的撰写 - 总览
背景 去年我写过一篇文章:撰写合格的 REST API。当时 Juniper 裁掉了我们在德州的一支十多人的团队,那支团队有一半的人手在之前的半年里,主要的工作就是做一套 REST API。我接手这个工作时发现那些API写的比较业余,没有考虑几个基础的HTTP/1.1 RFC(2616,7232,5988等等)的实现,于是我花了些时间重写,然后写下了那篇文章。 站在今天的角度看,那时我做的系统也有不少问题,很多 API 之外的问题没有考虑: API 的使用文档。当时我的做法是把文档写在公司使用的协作系统 c
tyrchen
2018-03-28
1.4K0
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档