一些ä¸é”™è‹±æ–‡èµ„æ–™çš„ä¸æ–‡ç¿»è¯‘。
Chinese translations for classic IT resources.
自己想到去åšäº›ç¿»è¯‘,一是促进自己的深入å¦ä¹ ,二是能为大家带æ¥ä¾¿åˆ©ï¼Œä¸‰æ˜¯å…´è¶£ã€‚
éµå¾ªåŽŸåˆ™ï¼šã€Žä¿¡ã€ä¸ºæœ¬ã€åŠ›æ±‚ã€Žè¾¾ã€ã€ä¸å¦„追『雅ã€ã€‚
# ä¿¡ï¼šè¯‘æ–‡å¿ å®žè¡¨è¾¾ä½œè€…æ€æƒ³ï¼›è¾¾ï¼šè®©è¯»è€…è½»æ¾åœ°é˜…读;雅:让读者愉悦地阅读。详è§ä¿¡è¾¾é›… - 百度百科。
- 🙈 自己ç†è§£ç²—浅,翻译ä¸ä¸è¶³å’Œä¸å¯¹ä¹‹å¤„,欢迎 ðŸ‘
- 建议,æäº¤
Issue
- 指æ£ï¼Œ
Fork
åŽæé€šè¿‡Pull Requst
贡献修改
- 建议,æäº¤
- å¦‚æœ‰æ–‡ç« ç†è§£ä¸Šæœ‰ç–‘é—® 或是 使用过程ä¸ç¢°åˆ°äº›ç–‘æƒ‘ï¼Œè¯·éšæ„🙌 æäº¤
Issue
,一起å¦ä¹ 交æµè®¨è®ºï¼
- æ€è€ƒ/æ€ç»´
- 设计原则
- 系统设计实例
- 分布å¼ç³»ç»Ÿ/大数æ®
- å¹¶å‘
FP
/Clojure
/Lisp
Git
Erlang
/Elixir
Java
- 软件测试
- 其它
- æé—®çš„æ™ºæ…§
说明了作者所认为一ä½å‘问者事å‰åº”该è¦åšå¥½ä»€ä¹ˆï¼Œè€Œä»€ä¹ˆåˆæ˜¯ä¸è¯¥åšçš„ã€‚ä½œè€…è®¤ä¸ºè¿™æ ·èƒ½è®©é—®é¢˜å®¹æ˜“ä»¤äººç†è§£ï¼Œè€Œä¸”å‘问者自己也能å¦åˆ°è¾ƒå¤šä¸œè¥¿ã€‚æ¤æ–‡åœ¨ç½‘络上å—到欢迎,被广泛转载而广为人知甚至奉为ç»å…¸ã€‚è‘—å的两个缩写STFW
(Search the fxxking web
)以åŠRTFM
(Read the fxxking manual
)就是出自本文。
Python
Philosophy(Python
哲å¦ï¼‰ç¿»è¯‘åŠç®€æž
既有指明大是大éžçš„ç†å¿µï¼Œåˆæœ‰æŒ‡å¯¼ç»†èŠ‚æ“作的准则;既有谆谆教导的推èï¼Œä¹Ÿæœ‰å£°è‰²ä¿±åŽ‰çš„ç¦æ¢ã€‚- Codehaus宣言:技术管ç†ä¸Žå¼€æºé¡¹ç›®è¿è¥ä¹‹é“
Codehaus
:å作构建开æºé¡¹ç›®çš„社区,强烈强调现代è¯è¨€ï¼Œå¹¶å¼€å‘èšç„¦äºŽæ»¡è¶³å®žé™…需求的高质é‡ç»„件。Groovy
ã€Jetty
ã€Gradle
ã€XStream
ã€Jackson
ã€Drools
ã€jMock
ã€EasyMock
ã€Grails
ã€XDoclet
ã€QDox
ã€Esper
ã€Mule
ã€Janino
ã€JBehave
ã€Stomp
以åŠå…¶ä»–数以百计开æºé¡¹ç›®ï¼Œéƒ½å¾—感谢Codehaus
社区。很多项目å¬èµ·æ¥éƒ½æ˜¯å¦‚雷贯耳å§ï¼Œè€Œè¿™ä»½ç²¾å°çš„Codehaus
宣言是Codehaus
多年在技术管ç†ä¸Žå¼€æºé¡¹ç›®è¿è¥ä¸Šçš„æ€è€ƒã€æ€»ç»“与领悟,相信éžå¸¸å€¼å¾—一读ï¼å‘Codehaus
致敬ï¼ï¼ Java
的通用I/O
API
设计
给出了一个通用Java
IO
API
设计,更é‡è¦çš„æ˜¯ç»™å‡ºäº†è¿™ä¸ªAPI
设计本身的æ¥éª¤å’Œè¿‡ç¨‹ï¼Œè¿™è®©API
设计有些æ¡ç†ã€‚æ–‡ä¸ç¤ºèŒƒäº†ä»Ž 普通简å•实现 æ•´ç†æˆ æ£äº¤åˆ†è§£ã€å¯å¤ç”¨ã€å¯æ‰©å±•ã€é«˜æ€§èƒ½ã€æ— 错误的API
设计 的过程,这个过程是很值得ç†è§£å’Œå¦ä¹ ï¼è®¾è®¡å呿˜¯è‰ºæœ¯ï¼Œä¸€ä¸ªèµå¿ƒæ‚¦ç›®çš„设计,尤其是API
设计,æ—人看æ¥å¤šæ˜¯å¦™æ‰‹å¶å¾—çš„æ„Ÿè§‰ï¼Œå¦‚æžœèƒ½æœ‰äº›ç« å¯å¾ªçœŸæ˜¯ä¸€ä»¶ç¾Žäº‹ã€‚在艺术工作ä¸ï¼ŒçœŸçš„艺术性工作é‡ä¹Ÿåªæ˜¯ä¸€éƒ¨åˆ†ï¼Œè€Œç»™å‡º 方法 以 å‡å°‘艺术工作之ä¸è‰ºæœ¯æ€§å·¥ä½œé‡ 的人是 大师。API
设计原则 -Qt
官网的设计实践总结
Qt
的设计水准在业界很有å£ç¢‘ï¼Œä¸€è‡´ã€æ˜“于掌æ¡å’Œå¼ºå¤§çš„API
是Qt
最著åçš„ä¼˜ç‚¹ä¹‹ä¸€ã€‚æ¤æ–‡æ—¢æ˜¯Qt
官网上的API
设计指导准则,也是Qt
在API
设计上的实践总结。虽然Qt
用的是C++
,但其ä¸è®¾è®¡åŽŸåˆ™å’Œæ€è€ƒæ˜¯å…·æœ‰æ™®é€‚æ€§çš„ï¼ˆå¦‚æžœä½ å¯¹C++
还ä¸ç²¾é€šï¼Œå¯ä»¥å¿½ç•¥ä¸ŽC++
强相关或是过于细节的部分,ä»ç„¶å¯ä»¥å¦ä¹ 或梳ç†å…³äºŽAPI
è®¾è®¡æœ€æœ‰ä»·å€¼çš„å†…å®¹ï¼‰ã€‚æ•´ä¸ªç¯‡å¹…ä¸æœ‰å¾ˆå¤šç¤ºä¾‹ï¼Œæ˜¯å…³äºŽAPI
è®¾è®¡ä¸€ç¯‡éš¾å¾—çš„å¥½æ–‡ç« ã€‚GUI
&CLI
原则
æ–‡ä¸åˆ—出的GUI
å’ŒCLI
的原则:说明了两ç§Interface
适åˆçš„åœºæ™¯å’Œä¼˜åŠ£ï¼›è¿›è€Œå¼•å¯¼ä½ åŽ»æ€è€ƒï¼Œé¢å‘用户或作为程åºå‘˜çš„ä½ ï¼Œäº¤äº’/æ“作 如何æ‰èƒ½æ˜¯é«˜æ•ˆçš„。
- é‡å å®žéªŒè®¾æ–½ï¼šæ›´å¤šã€æ›´å¥½ã€æ›´å¿«åœ°å®žéªŒ
Google
这篇10å¹´å‰2010年的关于『实验基础设施ã€è®¾è®¡çš„论文,现在看æ¥ä»ç„¶æ˜¯å…³äºŽè¿™ä¸ªé¢†åŸŸæœ€æœ‰æ·±åº¦å’Œä½“系的资料。ä¸å•说明了,实验设施的系统设计,还包å«å®žéªŒçš„进阶主题如:实验å¯ä¿¡åº¦ã€æ•感度ã€å›´ç»•实验数æ®é©±åŠ¨çš„æ•´ä½“æµç¨‹ã€‚对于了解Growth Hacking
/ABTest
çš„åŒå¦ï¼Œå¯ä»¥æœ‰æ•ˆçš„å¦ä¹ 实验设施的系统设计,尤其是é‡å 实验设施è¦è€ƒè™‘多方é¢çš„需求ã€ç»´åº¦ï¼Œå¦‚ä½•å»ºæ¨¡æ˜¯å¾ˆå¤æ‚的;对于ä¸äº†è§£Growth Hacking
/ABTest
这个领域知识的åŒå¦ï¼Œå¯ä»¥é€šè¿‡è¿™ç¯‡æ–‡ç« ,å¦ä¹ ä¸€ä¸ªå¤æ‚系统整体的æ€è€ƒå’Œè®¾è®¡çš„æ¨¡å¼ï¼ŒåŒ…å«éœ€æ±‚ã€åœºæ™¯ã€æ¨¡åž‹è®¾è®¡ã€äº§å“æµç¨‹ã€è½åœ°å…³é”®ã€‚
- 日志:æ¯ä¸ªè½¯ä»¶å·¥ç¨‹å¸ˆéƒ½åº”该知é“的有关实时数æ®çš„统一抽象
è¿™ç¯‡æ–‡ç« æ˜¯LinkedIn
的Kreps
å‘è¡¨çš„ä¸€ç¯‡åšæ–‡ï¼Œè¢«ç§°ä¸º 程åºå‘˜å²è¯—般必读 æ–‡ç« ã€‚å¯ä»¥ä½œä¸ºå¤§æ•°æ®/分布å¼ç³»ç»Ÿé¢†åŸŸä¸€ä»½å¯¼è®ºå¼çš„资料。作者对整个领域的ç†è§£å’Œå®žæˆ˜ç²¾æ·±å¹¿åšï¼ŒæŠ“出并梳ç†äº†è¿™ä¸ªé¢†åŸŸçš„æ ¸å¿ƒï¼šæ—¥å¿—。 - Paxos Made Simple
该论文给出æè¿°ä¸€è‡´æ 8BC1 €§é—®é¢˜çš„æ¦‚å¿µã€æœ¯è¯ã€ç®—æ³•ï¼Œä»Žå¤æ‚䏿Гå–å‡ºäº†æ ¸å¿ƒï¼Œç»™å‡ºäº†å¦‚æ¤ç®€å•çš„æè¿°ã€‚å¦è¨€ç®€æ„赅地说明了多实例Paxos
(Multi-Paxos
),这是真æ£å®žè·µä¸ä½¿ç”¨çš„Paxos
。å¯ä»¥è¯´ä¸è¯»è¿™ç¯‡è®ºæ–‡ä½ å°±ä¸çŸ¥é“ä½ è¿˜ä¸çŸ¥é“如何有效地æè¿°å’Œäº¤æµä¸€è‡´æ€§ç®—法。 PaxosLease
ï¼šå®žçŽ°ç§Ÿçº¦çš„æ— ç›˜Paxos
算法
å¯ä»¥è¯´æ˜¯æœ€ç®€å•且å¯ä»¥å®žé™…使用的Paxos
算法å˜ç§ã€‚
- ç†è§£
Kotlin
å程:自底å‘上的视角
Kotlin
çš„å程应该是Java
生æ€ä¸æœ€å¥½çš„å程实现,在生产环境(Android
/ åŽç«¯åœºæ™¯ï¼‰ä¹Ÿæœ‰æ¯”较多实际应用。 æ— è®ºæ˜¯Kotlin
è¯è¨€è¿˜æ˜¯Kotlin
å程,都éžå¸¸æ³¨é‡åŠ¡å®žä¸Žå¼€å‘者å‹å¥½ï¼ŒKotlin
åç¨‹ä»¥å¤§å®¶ä¹ æƒ¯çš„å‘½ä»¤å¼/过程å¼çš„编程方å¼å†™å‡ºéžé˜»å¡žçš„高效并å‘程åºã€‚ 但并å‘ç¼–ç¨‹æ˜¯è®¡ç®—æœºæœ€å¤æ‚的主题之一,å³ä½¿æ˜¯ç”¨å程的编写方å¼ï¼›å†è€…Kotlin
å程的å‹å¥½ä½¿ç”¨æ–¹å¼ï¼Œå¯¹äºŽä½¿ç”¨è€…ç†è§£å程背åŽçš„è¿è¡Œæœºåˆ¶å…¶å®žå而是个障ç¢ã€‚而真æ£çš„ç†è§£å程æ‰èƒ½è®©ä½¿ç”¨å程åšåˆ°å¿ƒä¸æœ‰æ•°é¿å…踩å‘ã€‚è¿™ç¯‡æ–‡ç« è‡ªåº•å‘上视角的讲解方å¼ï¼Œæ£æ˜¯æœ‰æ„于æ£é¢è§£å†³è¿™ä¸ªé—®é¢˜ï¼šå¦‚何有效ç†è§£Kotlin
å程的è¿è¡Œæœºåˆ¶ã€‚ Java
Fork/Join
框架
Doug Lea 大神关于Java 7
引入的他写的Fork/Join
框架的论文。å应å¼ç¼–程(Reactive Programming
/RP
)作为一ç§èŒƒå¼åœ¨æ•´ä¸ªä¸šç•Œæ£åœ¨é€æ¥å—到认å¯å’Œè½åœ°ï¼Œæ˜¯å¯¹è¿‡å¾€ç³»ç»Ÿçš„业务需求ç†è§£æ¢³ç†ä¹‹åŽå¯¹ç³»ç»ŸæŠ€æœ¯è®¾è®¡/架构模å¼çš„æå‡æ€»ç»“。Java
作为一个æˆç†Ÿå¹³å°ï¼Œå¯¹äºŽè¶‹åŠ¿ä¸€å‘æœ‰ç€ç¨³å¥çš„æŽ¥çº³å’Œè·Ÿè¿›èƒ½åŠ›ï¼Œæœ‰ç€ä»¤äººæƒŠå¹çš„生命活力:Java 7
æä¾›äº†ForkJoinPool
,支æŒäº†Java 8
æä¾›çš„Stream
,å¦å¤–Java 8
还æä¾›äº†Lambda
(有效地表达和使用RP
需è¦FP
çš„è¯è¨€æž„ä»¶å’Œç†å¿µï¼‰ï¼›æœ‰äº†å‰é¢çš„这些稳å¥ä½†ä¸å¤±æ—¶æœºçš„准备,在Java 9
ä¸æä¾›äº†é¢å‘RP
的官方Flow API
,实际上是直接把Reactive Streams
的接å£åŠ åœ¨Java
æ ‡å‡†åº“ä¸ï¼Œå³Reactive Streams
规范转æ£äº†ã€‚Reactive Streams
是RP
çš„åŸºç¡€æ ¸å¿ƒç»„ä»¶ï¼ŒJava
æä¾›äº†Flow API
æ ‡å¿—ç€RP
完æˆäº†ç”± 集市å¼çš„自由探索阶段 å‘ æ•™å ‚å¼çš„规范统一阶段 的转å˜ã€‚通过上é¢è¿™äº›è¯´æ˜Žï¼Œå¯ä»¥çœ‹åˆ°ForkJoinPool
的基础é‡è¦æ€§ã€‚
- 务实的函数å¼ç¼–程(by Bob大å”)
Bob
大å”çš„çŸæ–‡ï¼ŒFP
在软件开å‘优点上务实的æ€è€ƒï¼Œå¼•导大家ç†è§£ã€å¦ä¹ 和使用FP
ï¼Œæ–‡ç« åŽåŠç¯‡è¿˜ç”¨FP
è¯è¨€Clojure
简约演示了一番。在文末ä¸å¿˜å‘¼åå¦ä¹FP
,并推èClojure
è¯è¨€ã€‚ - 手把手介ç»å‡½æ•°å¼ç¼–程:从命令å¼é‡æž„到函数å¼
本文是一篇手把手的函数å¼ç¼–程入门介ç»ï¼Œå€ŸåЩ代ç 示例讲解细腻。但åˆä¸ä¹æ´žè§ï¼Œç¬¬ä¸€èŠ‚ä¸åˆ—举和点评了函数å¼ç§ç§è®©çœ¼èбç¼ä¹±ç‰¹è´¨ï¼Œç»™å‡ºäº†ã€Žç†è§£å‡½æ•°å¼ç‰¹è´¨çš„æŒ‡å—针:函数å¼ä»£ç çš„æ ¸å¿ƒç‰¹è´¨å°±ä¸€æ¡ï¼Œæ— 副作用ã€ï¼Œç›¸ä¿¡å¯¹äºŽæœ‰ç§¯æžå¦è¿‡æŒ–过的函数å¼åŒå¦çœ‹æ¥æ›´æ˜¯æœ‰ç›¸çŸ¥æ¨æ™šçš„æ„Ÿè§‰ã€‚å¸Œæœ›çœ‹äº†è¿™ç¯‡æ–‡ç« ä¹‹åŽèƒ½åœ¨å¦ä¹ 和使用函数å¼ç¼–程的旅途ä¸ä¸å†è¿·è·¯å“¦ï¼Œå…„die~ - Successful Lisp ä¸çš„
Lisp
ä¹¦ç±æŽ¨èLisp
ä¹¦ç±æŽ¨è和点评,由于Lisp
与其它è¯è¨€ä»ŽåŸºæœ¬æ¦‚念就开始的差异,已有的è¯è¨€ç»éªŒå而是个å¦ä¹ 阻ç¢ï¼Œæ·±å…¥æµ…出的巧妙讲解对入门太é‡è¦äº†ã€‚- 特别æè¿™ç¯‡å¥½æ–‡ã€è½¬ã€‘å¦ä¹
Lisp
çš„ä¹¦ç±æŽ¨è
Git
å·¥ä½œæµæŒ‡å—
关于Git
工作æµä¸»é¢˜ï¼Œä¹Ÿè®¸è¿™æ˜¯ç›®å‰æœ€å…¨é¢æœ€æ·±å…¥çš„说明。这篇指å—以大家在SVN
ä¸å·²ç»å¹¿ä¸ºç†Ÿæ‚‰ä½¿ç”¨çš„集ä¸å¼å·¥ä½œæµä½œä¸ºèµ·ç‚¹ï¼Œå¾ªåºæ¸è¿›åœ°æ¼”进到其它高效的分布å¼å·¥ä½œæµï¼Œè¿˜ä»‹ç»äº†å¦‚何é…åˆä½¿ç”¨ä¾¿åˆ©çš„Pull Request
功能,体系地讲解了å„ç§å·¥ä½œæµçš„应用。行文ä¸å®žè·µåŽŸåˆ™å’Œæ“作示例并é‡ï¼Œå¯¹äºŽGit
的资深玩家å¯ä»¥æ¢³ç†æ€è€ƒæå‡ï¼Œè€Œæ–°æŽ¥è§¦çš„åŒå¦ï¼Œä¹Ÿå¯ä»¥è·Ÿç€step-by-stepæ“练å¦ä¹ 并在实际工作ä¸ä¸Šæ‰‹ä½¿ç”¨ã€‚Git
2.1
有哪些新特性?
Erlang
之父å¦ä¹Elixir
è¯è¨€çš„一周
作为Erlang
之父 Joe Armstrong,对Erlang VM
上的新è¯è¨€Elixir
åšäº†å¾ˆç²¾å½©çš„评论和æ€è€ƒã€‚『特定领域专家的专业直觉ã€ã€ã€Žç¼–程è¯è¨€è®¾è®¡çš„三定律ã€ã€ã€Žç®¡é“æ“作符é¿å…æ¶å¿ƒä»£ç ã€ã€ã€ŽElixir
的sigil
引出的程åºè¯è¨€å¦‚何定义/解释å—符串ã€ç‰ç‰é—®é¢˜çš„讨论,个性鲜明åˆå¹½é»˜è¯™è°çš„è¡Œæ–‡é£Žæ ¼ï¼Œéƒ½èƒ½å¼ºçƒˆæ„Ÿå—到 Joe Armstrong 深入广åšçš„è€é»‘客风范。
- 关于
Java
ä½ å¯èƒ½ä¸çŸ¥é“çš„10件事
作者是个Java
è€é¸Ÿï¼Œè¡Œæ–‡é£Žè¶£å¹½é»˜ï¼Œå¨“娓é“出Java
的诡异和难点时ä¸å¿˜ç€ç»™å‡ºç”¨å¿ƒè‰¯è‹¦çš„æç‚¹ã€‚
Stubs
å’ŒMocks
的区别
翻译自《Programming Groovy》,讲得言简æ„赅。