V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sadhen
V2EX  ›  程序员

送出几本《Scala 实用指南》

  •  1
     
  •   sadhen ·
    darcy-shen · 2018-09-27 23:15:49 +08:00 · 17245 次点击
    这是一个创建于 2241 天前的主题,其中的信息可能已经有所发展或是发生改变。

    异步社区传送门,有勘误,目前只有 3 条,希望在第二次印刷前有更多的反馈。

    具体规则

    1. 共 6 本。
    2. 在评论区撰写评论即可参与,也欢迎讨论关于 Scala、翻译等话题。
    3. 北京时间 10 月 1 日 0 点 0 分截止,结束后当日会在帖子后附言公布获赠名单。
    4. 获赠结果通过对评论用户去重后随机获取。
    5. 获赠用户需为( 9 月 28 日)以前注册,一个用户只能获赠一本。
    6. 全国包邮(新疆、西藏、港澳台邮费需自付,见谅)。
    7. 保留最终解释权。

    本书特色

    1. 几本靠谱的 Scala 编程书籍中最简单务实的一本
    2. 注重工程实践,深入浅出,深入到 JVM 字节码做分析
    3. 简明扼要地介绍了 Akka 的核心概念,为大家接触 Akka 做一个必要的缓冲
    4. 结合设计模式,高屋建瓴,翔实有料

    作者译者简介

    • 文卡特·苏帕拉马尼亚姆( Venkat Subramaniam )博士 Agile Developer 公司的创始人,同时也在休斯敦大学兼任教职。他已经培训和指导了数千名软件开发者。他也是多本书籍的(合著)作者,其中包括获得 2007 年度 Jolt “生产力大”( Productivity Award )的《高效程序员的 45 个习惯:敏捷开发修炼之道》一书。
    • 沈达(@sadhen):挖财数据研发工程师,Scala 爱好者,Apache Spark Contributor,专注于大数据和分布式系统。业余时间是GNU TeXmacs的贡献者。
    • 何品(@hepin1989):目前是淘宝的一名资深软件工程师,热爱反应式编程,同时也是 Akka 和 Netty 等项目的贡献者,活跃于 Scala 社区。

    闲话翻译

    简单陈述一下个人的翻译经历:

    1. 从 2013 年开始翻译GNU TeXmacs的文档,目前的完成度大概是 80%,通过翻译逐渐加入了 GNU TeXmacs 的开发。
    2. 2015 年,探索 Linux 手册页的翻译方案,并给 GNU Groff 提交了Patch,改善中文在终端中对于空格的处理,和 @hosiet 翻译完善了许多手册页的翻译。工作之后,没有做过任何贡献,但 @hosiet 一直在坚持,最后将我们的翻译反馈到了 Debian/Ubuntu 软件源中。 @hosiet 后来成为了一名 Debian Developer

    另外,何品大哥在翻译本书之前,参与过龙腾世纪和质量效应 2 的游戏汉化,翻译过《 Netty 实战》,目前由何品参与翻译的《反应式设计模式》也快要上市了。

    译文展示: TeXmacs 哲学

    source: http://www.texmacs.org/tmweb/about/philosophy.en.html

    TeXmacs 的主要目标之一是通过显著地降低创造高质量用户接口的成本,促进那些与科学相关的自由软件的开发。如果你计划为 TeXmacs 与某个软件写插件,请联系我们。

    作为一个数学家,从科学的角度上讲,我坚信只有自由软件可被接受。两个主要理由如下:

    • 对于一个不开源的“数学”系统,其计算结果不能作为数学证明的一部分。
    • 正如数学家需要从其它定理构建新的定理,自由地修改和发布数学软件中算法的需求合乎情理。

    然而,当前主流的数学软件大多是专有的。这很奇怪,且是一种耻辱。这种现象的根源在于数学家们往往不认为编程是一种完全的科学活动。结果,实用软件的开发被委托给了“工程师们”因而数学家们只能像黑盒一样使用这些程序。

    这种对科学活动的细分是非常武断的:从科学的角度认知黑盒中所有为何物往往十分重要。反过来讲,科学上深邃的理解往往能够诞生更加精良的软件。所以我认为科学家们应当将软件开发视为完全的科学活动,如同撰写文章。自然而然,这种软件的发布方式和科学的传播应当兼容,即:公众可及、可复制和自由使用。

    呼吁大家一起参与开源社区!!!

    <del>成为 Apache XYZ 项目 PMC Member,迎娶白富美,走上人生巅峰</del>

    广告时间

    这个公众号主要关注反应式编程,包括 Netty、Akka、Spark、Scala 等话题,刚刚开始建设,欢迎大家关注。

    为了不给何品大哥拖后腿,终于在这个月给 Apache Spark 和 Scala 项目贡献了若干个 PR。今晚发布的 Scala 2.12.7 就有鄙人的一点点微小的贡献,欢迎大家尝试。

    第 1 条附言  ·  2018-09-28 00:31:56 +08:00
    有兴趣来杭州工作的同学,可以联系我 ( moc.ohoz TA nehdas ) 或者何品内推哦!

    我们部门(挖财数据平台)一直在招人哦。大家看本书的推荐序,就是我们老板(《 Scala 函数式编程》的译者之一)写的。其他岗位的同学对我司感兴趣,也可以找我内推 http://job.wacai.com/

    鄙人在知乎刚开的一个专栏: https://zhuanlan.zhihu.com/scalastyle 欢迎大家关注投稿
    第 2 条附言  ·  2018-10-09 20:01:42 +08:00
    恭喜 List("@xcjx", "@chocolatesir", "@lnomve", "@funky", "@wenning", "@magicsilence") 中奖。请告诉我你们的联系方式。我的邮箱 MyV2EXNickname AT zoho.com 。完整的抽奖代码:

    ```
    @ repl.history.foreach(println)
    import $ivy.`com.lihaoyi::requests:0.1.4`
    import $ivy.`org.json4s::json4s-jackson:3.5.2`
    import org.json4s.jackson.JsonMethods.parse
    import org.json4s._
    import org.json4s.JsonDSL._
    import scala.util.Random

    // 一些常量
    val url = "https://www.v2ex.com/api/replies/show.json?topic_id=493356"
    val numberOfWinners = 6

    // 从 V2EX 获取数据
    val source = requests.get(url)

    // 解析 JSON,获取所有参与抽奖的用户
    val json = parse(source.text)
    case class Profile(username: String, github: String)
    case class Member(member: Profile)
    val members = json.extract[List[Member]].map(_.member.username).distinct

    // 抽奖
    Random.shuffle(members).take(numberOfWinners)
    ```

    参考了这个 Python 版本的代码 /raw/5cda96d8fb26e5e49e0a20b51b9514f87bf0ff68/mytest.py 。最后手动检查一下大家的 profile 是否符合要求。

    ```
    import random
    import requests

    url = 'https://www.v2ex.com/api/replies/show.json?topic_id=490659'
    # 中奖人数
    numberOfWinners = 4

    if __name__ == '__main__':
    source = requests.get(url)
    names_list = []
    for item in source.json():
    username = str(item['member']['username'])
    names_list.append(str(item['member']['username']))
    # print("list length: " + str(len(names_list)))
    names_set = set(names_list)
    totalMembersCount = len(names_set)
    print("本次参与活动人数为:{}".format(totalMembersCount))
    print("-" * 20)
    for name in names_set:
    print(name)
    print("-" * 20)
    luckyMembers = random.sample(list(names_set), numberOfWinners)
    print("恭喜中奖用户:" + str(luckyMembers))
    ```

    大家可以对比感受一下 Scala 和 Python 的一些异同点。
    第 3 条附言  ·  2018-10-09 20:06:37 +08:00

    恭喜 @xcjx @chocolatesir @lnomve @funky @wenning @magicsilence 中奖。请告诉我你们的联系方式。我的邮箱 MyV2EXNickname AT zoho.com 。完整的抽奖代码:

    import $ivy.`com.lihaoyi::requests:0.1.4`
    import $ivy.`org.json4s::json4s-jackson:3.5.2`
    import org.json4s.jackson.JsonMethods.parse
    import org.json4s._
    import org.json4s.JsonDSL._
    import scala.util.Random
    
    // 一些常量
    val url = "https://www.v2ex.com/api/replies/show.json?topic_id=493356"
    val numberOfWinners = 6
    
    // 从 V2EX 获取数据
    val source = requests.get(url)
    
    // 解析 JSON,获取所有参与抽奖的用户
    implicit val formats = DefaultFormats
    val json = parse(source.text)
    case class Profile(username: String, github: String)
    case class Member(member: Profile)
    val members = json.extract[List[Member]].map(_.member.username).distinct
    
    // 抽奖
    Random.shuffle(members).take(numberOfWinners)
    

    参考了这个 Python 版本的代码 mytest.py 。最后手动检查一下大家的 profile 是否符合要求。

    import random
    import requests
    
    url = 'https://www.v2ex.com/api/replies/show.json?topic_id=490659'
    # 中奖人数
    numberOfWinners = 4
    
    if __name__ == '__main__':
    source = requests.get(url)
    names_list = []
    for item in source.json():
    username = str(item['member']['username'])
    names_list.append(str(item['member']['username']))
    # print("list length: " + str(len(names_list)))
    names_set = set(names_list)
    totalMembersCount = len(names_set)
    print("本次参与活动人数为:{}".format(totalMembersCount))
    print("-" * 20)
    for name in names_set:
    print(name)
    print("-" * 20)
    luckyMembers = random.sample(list(names_set), numberOfWinners)
    print("恭喜中奖用户:" + str(luckyMembers))
    

    大家可以对比感受一下 Scala 和 Python 的一些异同点。

    479 条回复    2018-10-20 11:49:17 +08:00
    1  2  3  4  5  
    llvb26
        201
    llvb26  
       2018-09-28 11:01:39 +08:00 via iPhone
    支持一下 哈哈哈佛系心态
    ahuizzz
        202
    ahuizzz  
       2018-09-28 11:02:43 +08:00
    分子++
    corningsun
        203
    corningsun  
       2018-09-28 11:05:18 +08:00
    分母+1
    Sanko
        204
    Sanko  
       2018-09-28 11:05:27 +08:00 via Android
    支持下
    hippoboy
        205
    hippoboy  
       2018-09-28 11:14:27 +08:00
    试试看
    changhe626
        206
    changhe626  
       2018-09-28 11:16:12 +08:00
    支持+1,我正在学习 scala
    beny2mor
        207
    beny2mor  
       2018-09-28 11:22:56 +08:00
    之前写 spark 项目的时候用的模模糊糊的,
    想要
    lcx412
        208
    lcx412  
       2018-09-28 11:27:56 +08:00
    我来当分子,正在学 Scala
    natforum
        209
    natforum  
       2018-09-28 11:27:58 +08:00
    分母
    curran12
        210
    curran12  
       2018-09-28 11:28:27 +08:00
    分母
    funky
        211
    funky  
       2018-09-28 11:29:19 +08:00
    分母
    Wdj
        212
    Wdj  
       2018-09-28 11:32:45 +08:00
    专业分母
    jonzhao
        213
    jonzhao  
       2018-09-28 11:33:12 +08:00
    分母来了。。。。
    QiuMing
        214
    QiuMing  
       2018-09-28 11:39:21 +08:00
    过来支持下
    chuhemiao
        215
    chuhemiao  
       2018-09-28 11:41:47 +08:00
    date scala
    yamato
        216
    yamato  
       2018-09-28 11:44:34 +08:00 via Android
    组成分母
    nvidia1314
        217
    nvidia1314  
       2018-09-28 11:46:49 +08:00 via iPhone
    再抽一次奖!
    DrJoseph
        218
    DrJoseph  
       2018-09-28 11:53:17 +08:00
    降低中奖率
    juyulin
        219
    juyulin  
       2018-09-28 11:53:57 +08:00
    分母+1
    csfwff
        220
    csfwff  
       2018-09-28 11:54:19 +08:00
    拉低中奖率
    magicsilence
        221
    magicsilence  
       2018-09-28 11:54:51 +08:00
    支持一下
    Spider
        222
    Spider  
       2018-09-28 11:55:33 +08:00
    Scala 的符号好像有点复杂~
    vvmint233
        223
    vvmint233  
       2018-09-28 11:55:58 +08:00
    分母++
    zhanwh9
        224
    zhanwh9  
       2018-09-28 11:57:27 +08:00 via Android
    我想用 Scala 写诗。
    ifconfig
        225
    ifconfig  
       2018-09-28 11:58:06 +08:00
    谢谢老板
    shenw1990
        226
    shenw1990  
       2018-09-28 12:10:41 +08:00
    我也可以中奖吗?只看过 scala for the impatient 的路过
    shell314
        227
    shell314  
       2018-09-28 12:14:35 +08:00 via Android
    支持一波,
    Tyrande
        228
    Tyrande  
       2018-09-28 12:16:49 +08:00
    if ....... else ........
    hdzsj2010
        229
    hdzsj2010  
       2018-09-28 12:26:29 +08:00 via iPhone
    一直对响应式编程感兴趣,准备学习 Scala 与 akka
    sheep3
        230
    sheep3  
       2018-09-28 12:36:24 +08:00
    scala 开发者!!支持一下~~
    zuston
        231
    zuston  
       2018-09-28 12:57:25 +08:00 via iPhone
    支持
    limbo0
        232
    limbo0  
       2018-09-28 12:59:21 +08:00
    分子
    chocotan
        233
    chocotan  
       2018-09-28 13:02:21 +08:00
    已经有电子书了,抽中送别人
    sadhen
        234
    sadhen  
    OP
       2018-09-28 13:10:48 +08:00
    @hdzsj2010 反应式
    sadhen
        235
    sadhen  
    OP
       2018-09-28 13:12:36 +08:00
    @chocotan 大佬的 linux.com 邮箱是什么骚操作
    MrMario
        236
    MrMario  
       2018-09-28 13:24:34 +08:00
    分母+1
    SFJ4MEGabMk2
        237
    SFJ4MEGabMk2  
       2018-09-28 13:24:59 +08:00
    +1
    Linxing
        238
    Linxing  
       2018-09-28 13:28:26 +08:00
    万一中了呢
    redtears
        239
    redtears  
       2018-09-28 13:33:14 +08:00
    支持一下
    sadhen
        240
    sadhen  
    OP
       2018-09-28 13:33:49 +08:00
    The Power of Static Typing:

    https://github.com/apache/spark/pull/22577

    本来这个 bug 是没有发现的,Scala 2.12.7 编译器做了优化之后,在编译器就发现错误了。大家有兴趣可以了解一下。
    sadhen
        241
    sadhen  
    OP
       2018-09-28 13:34:04 +08:00
    编译期
    typetest
        242
    typetest  
       2018-09-28 13:40:37 +08:00
    分母++
    qq1009479218
        243
    qq1009479218  
       2018-09-28 13:41:09 +08:00
    拉低分母
    hackerang
        244
    hackerang  
       2018-09-28 13:42:41 +08:00
    +1+1,经常看到楼主在 scala/cn community 里的发言
    bringyou
        245
    bringyou  
       2018-09-28 13:48:21 +08:00
    支持一波。。另外二维码好像过期了
    sonkabin
        246
    sonkabin  
       2018-09-28 13:55:02 +08:00 via Android
    分母+1
    hnyoumfk
        247
    hnyoumfk  
       2018-09-28 13:58:07 +08:00
    日常分母
    paragon
        248
    paragon  
       2018-09-28 13:59:20 +08:00
    分母++
    shuyu
        249
    shuyu  
       2018-09-28 14:07:10 +08:00
    支持一波,scala 新手
    longzi
        250
    longzi  
       2018-09-28 14:11:03 +08:00
    大佬大佬,支持下
    sadhen
        251
    sadhen  
    OP
       2018-09-28 14:16:37 +08:00
    更新代码清单,没有见过比 @hepin1989 更勤快的

    https://github.com/ReactivePlatform/Pragmatic-Scala/commits/sbt
    h19981126g
        252
    h19981126g  
       2018-09-28 14:17:56 +08:00
    分母+1
    Mrlgm
        253
    Mrlgm  
       2018-09-28 14:18:23 +08:00
    分母+1
    yangehappy
        254
    yangehappy  
       2018-09-28 14:19:02 +08:00
    分子 支持下
    qyzxgl
        255
    qyzxgl  
       2018-09-28 14:19:42 +08:00
    😁
    wilsonmk
        256
    wilsonmk  
       2018-09-28 14:23:18 +08:00
    参与一个,支持支持
    marssun
        257
    marssun  
       2018-09-28 14:31:12 +08:00
    分母+1
    Wien
        258
    Wien  
       2018-09-28 14:38:23 +08:00
    支持一波挖财
    valsdc
        259
    valsdc  
       2018-09-28 14:39:11 +08:00
    支持一波,虽然暂时用不到。
    Beebird
        260
    Beebird  
       2018-09-28 14:41:00 +08:00
    重在参与。。支持一下
    mztql
        261
    mztql  
       2018-09-28 14:42:48 +08:00 via iPhone
    支持
    jjs4500
        262
    jjs4500  
       2018-09-28 14:43:02 +08:00
    支持挖财。
    mandy0119
        263
    mandy0119  
       2018-09-28 14:43:25 +08:00
    拉低中奖率,支持一下
    james
        264
    james  
       2018-09-28 14:47:04 +08:00
    Scala 粉,看到冷清的国内社区难得有人这么积极贡献力量,非常开心。
    JackFlyD
        265
    JackFlyD  
       2018-09-28 14:58:44 +08:00
    重在参与,分母+1
    Ryan817
        266
    Ryan817  
       2018-09-28 15:02:42 +08:00
    永远的分母
    diggerdu
        267
    diggerdu  
       2018-09-28 15:02:49 +08:00
    学习一个
    ml1344677
        268
    ml1344677  
       2018-09-28 15:09:15 +08:00
    分母+1
    jqian
        269
    jqian  
       2018-09-28 15:11:48 +08:00
    支持支持,因为线上系统用的 scala,而且 spark 里也能使,顺便学了一把 😄
    Akatsuki
        270
    Akatsuki  
       2018-09-28 15:12:07 +08:00
    分子
    470326964
        271
    470326964  
       2018-09-28 15:27:55 +08:00
    作为分母
    windvans
        272
    windvans  
       2018-09-28 15:28:25 +08:00
    当一回分子
    nosay
        273
    nosay  
       2018-09-28 15:29:45 +08:00
    拉低中奖率,支持一下
    sadhen
        274
    sadhen  
    OP
       2018-09-28 15:30:41 +08:00
    @jqian 向大佬学习 博客很硬核 http://jqian.net/#myblog
    shoumu
        275
    shoumu  
       2018-09-28 15:42:26 +08:00
    分母+1
    mianju
        276
    mianju  
       2018-09-28 15:48:53 +08:00
    估计依旧不会中> <
    HidingKing
        277
    HidingKing  
       2018-09-28 16:09:01 +08:00
    +1
    Mrkon
        278
    Mrkon  
       2018-09-28 16:09:50 +08:00
    mark
    jmjc
        279
    jmjc  
       2018-09-28 16:23:01 +08:00
    +2
    FreeBSD
        280
    FreeBSD  
       2018-09-28 17:21:39 +08:00
    分母+1
    duobei
        281
    duobei  
       2018-09-28 17:23:33 +08:00
    再来一次
    cashew
        282
    cashew  
       2018-09-28 17:27:30 +08:00
    参与一下。
    GoForce5500
        283
    GoForce5500  
       2018-09-28 17:28:31 +08:00
    建议把 Scala 用在生产环境的跟大家汇报一下主要目的?感觉在国内 Scala 相关书籍比公司用户数还多了。
    MisakaTang
        284
    MisakaTang  
       2018-09-28 17:30:33 +08:00
    实力分母
    freewind
        285
    freewind  
       2018-09-28 17:34:08 +08:00
    ++++1
    Shintaku
        286
    Shintaku  
       2018-09-28 17:36:46 +08:00 via Android
    姿瓷
    sizyuu
        287
    sizyuu  
       2018-09-28 17:44:58 +08:00
    支持!
    maemo
        288
    maemo  
       2018-09-28 17:45:19 +08:00
    支持支持,之前有用过 Scala 来跑 e2e 测试
    sadhen
        289
    sadhen  
    OP
       2018-09-28 17:49:41 +08:00
    @GoForce5500 此言差矣。即使排除 Spark,国内用 Scala 的公司还是有好多的。只不过很多项目是 Java 和 Scala 混血的,大家没有意识到而已。比如 腾讯的 Angel:

    https://github.com/Angel-ML/angel
    feihuxiongdi
        290
    feihuxiongdi  
       2018-09-28 17:49:57 +08:00
    支持!
    colmoon
        291
    colmoon  
       2018-09-28 17:53:04 +08:00
    顶!!!
    Reznik
        292
    Reznik  
       2018-09-28 18:05:16 +08:00
    我来当分母,不知啥时候才有时间学 Scala
    sadhen
        293
    sadhen  
    OP
       2018-09-28 18:06:56 +08:00
    @Reznik

    从单元测试开始,直接用。直接体验一下效率提升的感觉。

    不要学,要用。
    wanghuitrue
        294
    wanghuitrue  
       2018-09-28 18:09:30 +08:00
    谢谢老板!!!!
    Ryoma
        295
    Ryoma  
       2018-09-28 18:13:45 +08:00
    日常分子
    Mistwave
        296
    Mistwave  
       2018-09-28 18:29:29 +08:00 via iPhone
    @sadhen 哈哈哈是了,看一本肯定是不够的。
    忙完了我发个邮件给 lz 先聊聊吧😂
    smallyin
        297
    smallyin  
       2018-09-28 18:38:46 +08:00
    支持
    flybird1971
        298
    flybird1971  
       2018-09-28 18:38:47 +08:00
    分子 还是 分母呢 ??
    tmxklzp
        299
    tmxklzp  
       2018-09-28 18:45:21 +08:00
    分子++
    Anybfans
        300
    Anybfans  
       2018-09-28 18:51:32 +08:00
    支持下
    1  2  3  4  5  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2883 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:08 · PVG 15:08 · LAX 23:08 · JFK 02:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.