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

程序人生

专栏成员
266
文章
298407
阅读量
69
订阅数
软件开发探索之道:让自己成为知识的所有者
这些让人摸不着头脑的问题,只要你耐心查找,在 stackoverflow 或者各种论坛上,一般能够找到答案。不过,别人给出来的答案很可能是模棱两可的,不好理解的,甚至是错误的。我们需要花时间甄别那些正确的、并且精准的答案,还需要花时间阅读这些答案。有时候,即便是你得到了答案甚至记住了答案,你可能还是没有完全理解别人给出的答案。当你需要把这样的答案讲给别人时,你会发现自己似乎无法讲得清楚。
tyrchen
2021-09-27
5480
透过 Rust 探索系统的本原:泛型
在 Fundamentals of Generic Programming[1] 里,Alexander Stepanov(泛型概念的创立者)用一段优雅的文字描绘了计算机技术不断泛化(generalized)的历史:
tyrchen
2021-05-11
1.1K0
透过 Rust 探索系统的本原:内存管理
对于开发者来说,内存无非是两种管理模式:手动管理或者自动管理。C 语言是手动管理内存的大哥大,而 Java 则是自动管理的扛把子。很多人认为 Java 是使用垃圾回收做内存管理的鼻祖,其实不然,lisp 早于 Java 大概二三十年就武装上了简单的 GC。不过公认的高效率的 GC 是 Java 带给我们的。
tyrchen
2021-05-11
1.2K0
当我做 hackathon 时我在做什么 (3)
治大国若烹小鲜。做 hackathon 也是如此:需要有合适的方法(能),合适的工具(贤),然后朝着目标方向不疾不徐,缓步前进(有所为有所不为)。
tyrchen
2021-01-29
6710
构建下一代 HTTP API - 架构
在构思 Quenya 的时候,我已经有之前 UAPI 和 Goldorin 在生产环境下的应用经验。总结起来,就是 UAPI 有一个很好的结构(见我四年前的文章:再谈 API 的撰写 - 架构),但它做事的顺序反了,先有代码,再有 spec,通过代码生成 spec(当时是 swagger 2.0);Goldorin 纠正了这一做法,通过 spec 来生成代码,但 Goldorin 的问题在于自己定义 spec,并没有深思熟虑。另外,Goldorin 还有两个问题:
tyrchen
2020-12-16
8170
2020 活久见:欧美主流 app「熔断」了
在海外做移动端应用开发,有一家公司是几乎不可避免的:facebook(以下简称 FB)。它打造(并且几乎垄断)了从获客到获利(广告)的一条龙服务,使得你无法抵制那巨大的诱惑 —— 前提是你要在自己的 app 里装入 FB 的 SDK。
tyrchen
2020-05-12
5330
Libra 中使用的 rust crates
昨天朋友圈被 Facebook 的 Libra 刷屏。网上有很多关于 Libra 的快文章,从上帝视角到技术细节,从经济模型到语言实现,可谓是各领风骚,我就不凑短期的热闹。因为最近在学 Rust,就在本地 build libra 的漫长时间里,整理了 Libra 的依赖 —— 我想一个语言的初学者都会有类似的问题,一个大公司(成熟团队)所做的项目,究竟会用到哪些生态中成熟的类库?毕竟,awesome-xxx 过于大而全,反而不便甄选。我之前也整理过 tikv 的依赖,发现一些关键库的使用,大家英雄所见略同。libra 因为涉及到 cryptocurrency,相关的加密算法也额外多些。具体细节大家移步(可以点击原文链接):https://github.com/tyrchen/unchained/blob/master/code/libra.md。因为我直接从编译时下载的 log (Downloaded xxx) 来抓的依赖,所以里面有依赖的依赖。
tyrchen
2019-06-20
8920
你们要的 Forge Unveiled 讲座视频
过去十年的铺垫,让区块链技术有了扎实的理论基础,Bitcoin, Ethereum 以及其后继者给我们展现了数据公开可验证且不可篡改的独特魅力和无穷潜力,于是一个又一个去中心化应用拔地而起,一条又一条有的没的的「公链」以迅雷不及掩耳之势凭空造出,比大自然还鬼斧神工 —— AI 工程师们自嘲自己是调参工程师,其实好多区块链工程师才是真正的调参工程师:把共识的参数调一调,一条链就出来圈钱了。然而过去的一年里我们看到,喧嚣散尽,留下的是一地鸡毛。区块链技术陷入了一个尴尬的境地:她活在舞台的中心,一颦一笑都牵动着媒体,可她衍生出来的产品却无人问津。我们知道,一个产品用户愿意使用,一定是产品抓住了用户的痛点或者痒点,让用户为之侧目;开发者要能开发出抓住用户的产品,他们自己必须对产品有深刻的理解,有趁手的工具来开发产品,并脚踏实地真心做事;而用对了工具,往往可以释放巨大的产能。iPhone 诞生前,人们对手机 app 的理解是 S60 或 Windows mobile 的样子,ruby on rails 起势前,web 开发是低效的,大军团作战的,因而往往中庸中透着丑陋。
tyrchen
2019-05-15
4700
你要避免的软件开发模式
做软件开发十数年,见识了形形色色的开发者,和各种各样的奇葩软件开发模式。本文跟你侃侃这些软件开发模式及其特点。 IDD(IDE-Driven Development) 大巧在所不为,大智在所不虑。 -- 荀子 天论 IDD,也就是 IDE 驱动开发,几乎是初学者步入软件开发殿堂的必经之路。IDE 为开发者屏蔽了很多细节,并且几乎不用配置(相对于 vim / emacs / sublime)就可以使用代码自动补全,代码跳转,搜索,以及签入签出等软件开发中将会使用到的几乎所有工作。 然而,它带来的危害也是显而易
tyrchen
2018-03-28
8470
程序员效率指南
最近很多朋友都是春节前后看了知乎日报的「年度热门·能花钱的,就不要花时间」关注「程序人生」的,所以寂静了很长一段时间的后台消息,随着新读者的加入,又活跃了起来。不少读者希望我谈一谈如何提高平时开发工作的效率。效率这个东西,无非就是工具的使用,而在这方面,仁者见仁,智者见智,我无意挑起新的战争。本文稍稍谈谈我个人的工作心得,我把它分成10条建议,欢迎全盘否定,或者部分接受。 Rule 1: 尽量不要用windows进行开发 除非你只用dotnet开发软件,不然osx/ubuntu会是更好的开发平台。太多太多优
tyrchen
2018-03-28
9030
走进 racket(lisp) 的世界
上周追着看了个大牛的好几篇文章,发现一个叫racket的语言出镜率颇高 —— 这已经是我十月来第三次从各种大牛的文章中接触这个词。就如「惊天魔盗团」里那个被催眠的法国人,当生活中多次出现和赌博相关的场景,Las Vegas自然而然成为他的下一个旅游目的地。而racket,在上个周末,便成了我的Las Vegas。 我对编程语言的接触大致分成三种「境界」: ✓ 浅尝辄止:了解一下语言设计的理念,基本功能,使用场景,写写一些基本的程序。如ruby,io,scala,clojure,object c,lua,ha
tyrchen
2018-03-28
2.5K0
产品解析:join.me
题外话:感谢大家的留言。上一篇文章(该让谁升职?该裁掉谁?)引发了一些争议和讨论,各种观点交织在一起,很赞。文章本就是表达个人观点的一个手段,每个人都应独立思考的权利,所以我并不奢求我的每一句话都得到赞同。另外,有人提议再多写写职场建议,没问题,我已经想好了一个题目,不过不是今天讲。 今天趁着使用的热乎劲还没有过去,分析join.me这个产品。 昨天下午美国的同事做training,需要用到桌面共享软件。他说用join.me,我说用公司标配的Microsoft lync。于是昨天早上我们就一起做了个实验,结
tyrchen
2018-03-28
1.3K0
高效能程序员的七个习惯
昨天收到一个读者留言,问作为程序员,有什么学习和工作上的好习惯可以借鉴?想了想,干脆附庸风雅一下,总结个『高效能程序员的七个习惯』吧。Disclaimer:一家之言,可不信,但不可全信。 拥抱unix哲学 每个程序员入门的第一堂和第二堂课应该是和unix哲学相关的内容,简言之就是:做一件事,做好它。具体点: 小即是美。 让程序只做好一件事。 尽可能早地创建原型。 可移植性比效率更重要。 数据应该保存为文本文件。 尽可能地榨取软件的全部价值。 使用shell脚本来提高效率和可移植性。 避免使用可定制性低下的用
tyrchen
2018-03-28
7420
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档