SegmentFault 的威海初村发展的怎么样怎么样

SegmentFault 之声 - 知乎专栏
{"debug":false,"apiRoot":"","paySDK":"/api/js","wechatConfigAPI":"/api/wechat/jssdkconfig","name":"production","instance":"column","tokens":{"X-XSRF-TOKEN":null,"X-UDID":null,"Authorization":"oauth c3cef7c66aa9e6a1e3160e20"}}
{"database":{"Post":{"":{"title":"SF 讲堂「构建健壮的后端应用的七点实践」要开播啦","author":"segmentfault","content":"讲座地址为:各位,在 LeanCloud 任 Node.js 后端开发工程师 --
会在 今晚 20:00 为大家带来一场讲座,主题是《》。本次讲座主要介绍的是在后端开发和具体语言无关的,可有可无但又不可或缺的组成部分,包括 :API 文档自动测试异常收集日志收集时序数据负载均衡容器化对讲座内容或是后端开发有疑问的小伙伴,欢迎报名在讲座的讨论区(最近讨论)发帖提问,讲师会在直播时解答。","updated":"T02:27:58.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"likeCount":0,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T10:27:58+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-2a7a0f73ecbb27871a0bd_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":0,"likesCount":0},"":{"title":"SF 讲堂「超越find():使用MongoDB聚合框架探索数据」要开播啦","author":"segmentfault","content":"讲座地址为:各位,来自浙江财经大学数据分析和大数据计算客座教授 -- Christoph Schubert 会在 今晚 20:00 为大家带来一场讲座,主题是《》。本次讲座内容简介 :MongoDB也被称为NoSQL之王,是一个很好的操作数据库,以JSON格式存储数据,迅速加快了我们的开发速度。 但是如何聚合和分析存储在Mongo中的数据? SQL允许我们使用GROUP BY和HAVING来执行简单的报告和分析任务,那么如何Mongo呢?Mongo为我们提供的集成框架 (aggregation framework)甚至超过了SQL。 在本课程中,我们将对MongoDB的管道方法进行概述,并讨论一些具体的例子。对讲座内容或是后端开发有疑问的小伙伴,欢迎报名在讲座的讨论区(最近讨论)发帖提问,讲师会在直播时解答。讲师往期讲座:","updated":"T05:53:25.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"likeCount":0,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T13:53:25+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-e313d20dfc17de94caad4a6ebab2b8cf_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":0,"likesCount":0},"":{"title":"justjavac 要在 SF 讲堂开播「前端程序员应该懂点 V8 知识」啦","author":"segmentfault","content":"讲座地址为:各位,前端工程师 --
会在 今晚 20:00 为大家带来一场讲座,主题是《》。本次讲座内容简介 :对于每个前端程序员来讲都有一个终极理想,那就是搞懂 javascript 引擎是如何工作的。javascript 性能经过了两次飞跃:第 1 次飞跃是 2008 年 V8 发布,第 2 次则是 2017 年的 WebAssembly。不过 WebAssembly 到底能不能掀起前端的波澜还是未知数,但是 V8 对前端的贡献大家都有目共睹。我从去年底开始连载“V8引擎专栏”,记录一下自己学习 V8 源码的点点滴滴。本次直播我给大家分享:我为什么要研究V8V8 为什么这么快?如何编写高性能的 JS 代码可读性 VS 高性能对讲座内容有疑问的小伙伴,欢迎报名在讲座的讨论区(最近讨论)发帖提问,讲师会在直播时解答。","updated":"T01:20:22.000Z","canComment":false,"commentPermission":"anyone","commentCount":2,"likeCount":11,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T09:20:22+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-1c1cd5ee0902acd1c469f6_r.jpg","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":2,"likesCount":11},"":{"title":"SF 讲堂推荐「Web 永恒不变的主题:布局——Box,Flex,Grid」要开播啦","author":"segmentfault","content":"讲座地址为:各位,全栈工程师 --
会在今晚 20:00 为大家带来一场讲座,主题是《》。他会讲些什么?可以看看他线上 Slide 地址:以下为内容简介:HTML 诞生本来是想方便大家看文献,结果因为它方便传播的特性,加之后面的互联网的大爆发,很快,它就被我们驱赶着,驰离了原先的轨道。现在,难以计数的产品建构在 HTML 之上,呈现文字排版只占其中很小的一部分,绝大部分时间,我们都用它来布局。于是,布局,成为前端必须掌握的技能之一。最早我们用 &table&;后来大家学会用 CSS,开始借助盒模型(box),用 &div&;接着随着 HTML5 和 CSS3 的到来,我们可以用 Flex 更加方便快捷的解决问题;近期,Grid 也从规范中走出来,被越来越多的浏览器支持。这次分享应该会偏基础,先回顾一下使用盒模型进行布局,然后使用 Flex 更高效的解决问题,最后展示一下更强大的 Grid 的使用。讲师往期讲座:","updated":"T09:59:07.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"likeCount":0,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T17:59:07+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-23d7d2ebe00fbdbc3e3fcf4_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":0,"likesCount":0},"":{"title":"SF 讲堂推荐「JSON的SOA解决方案及其在云服务API管理中的应用」要开播啦","author":"segmentfault","content":"讲座地址为:各位,CDIF 框架作者 -- 陈淼波 会在今晚 20:30 为大家带来一场讲座,主题是《》。讲师简介:曾先后在中兴通讯、大唐移动,以及 Intel 上海软件研发中心工作。在多个项目中担任高级软件工程师、软件架构师等,研发团队技术负责人等职责。专利软件技术创新曾获 Intel 软件部门最高奖励,并用于每一台 Intel 芯的移动设备中。曾发表美国专利 4 篇,IEEE CGO 会议论文 1 篇。熟悉技术产品的研发和管理流程,以及移动生态、云服务、物联网等领域内的 IT 业发展趋势。个人完成 CDIF 框架的全部代码实现,实现了对云服务 API 管理的颠覆式技术创新。讲座简介: 是世界上第一个基于 JSON 的 SOA 解决方案,并可为所有的云服务创建出统一的 API 规范模型,以及基于该规范模型的 RPC 调用接口。在此基础上,云服务 API 可获得自动 API 文档和接入代码生成,自动测试页面生成,数据缓存,双向数据推送通道等方便有用的能力。本讲座将分享 CDIF 的架构设计,以及其为云服务 API 开发者带来的各种方便和强大的管理能力。","updated":"T07:30:02.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"likeCount":0,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T15:30:02+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-3fb16ae9f5c4bb01fb88_r.jpg","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":0,"likesCount":0},"":{"title":"SF 讲堂推荐「云计算,大数据,人工智能的相遇,相识,相知」要开播啦","author":"segmentfault","content":"讲座地址为:各位,网易云解决方案总架构师 -- 刘超 会在今晚 19:30 为大家带来一场讲座,主题是《》。讲师简介:网易云解决方案总架构师,代码级略懂OpenStack、Hadoop、Docker、Lucene、Mesos等开源软件,10多年的云计算架构与开发经历,积累了丰富的企业级应用的微服务化,容器化实战经验,曾出版《Lucene应用开发揭秘》,个人博客课搜索 popsuper1982讲座简介:云计算,大数据,和人工智能,最近火的不行不行的词汇,似乎不相同,但又似乎相互关联,到底是什么样的关系呢? 其实他们本没有什么关系,各自活在不同的世界里,然而随着互联网的发展,相互纠葛在了一起。本次讲座从历史发展的角度,详解三种技术纠葛在一起的过程。","updated":"T10:28:38.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"likeCount":0,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T18:28:38+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-2a7a0f73ecbb27871a0bd_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":0,"likesCount":0},"":{"title":"SF 讲堂推荐「写 CSS 也要开脑洞:万能的 `:checked + label`」要开播啦","author":"segmentfault","content":"讲座地址为:各位,全栈工程师 --
会在今晚 20:00 为大家带来一场讲座,主题是《》。他会讲些什么?可以看看他线上 Slide 地址:以下为内容简介:你可能不知道,网上那些看起来高大上的表单控件,实现的机制都是 :checked + label。这一对 CSS3 新增的选择器帮助我们将纯 CSS 组件的版图拓展出去一大块。再复合其它的元素和选择器,比如动画、~ 、flexbox,我们可以开发出更多又好看又好用兼容性又好的表单控件。本次分享将包含以下重点:使用 &label& 替换常规 radio 和 checkbox开关控件的编写多选控件的编写星星打分控件的编写结合 Vue 开发标签输入组件通过学习本次分享,您将学会:CSS 预处理工具 Stylus 的使用了解到 CSS3 若干新增元素CSS 动画基础面向用户:写过 CSS,具备 CSS 基础。平时布局写的比较多,希望学习了解其它 CSS 技巧。对组件比较感兴趣的同学。讲师往期讲座:","updated":"T09:50:58.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"likeCount":0,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T17:50:58+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-3be28423baee16beea65_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":0,"likesCount":0},"":{"title":"SegmentFault 技术周刊 Vol.22 - 进击的 Google I/O 2017","author":"segmentfault","content":"Google I/OGoogle I/O 是由 Google 举行的网络开发者年会,讨论的焦点是用 Google 和开放网络技术开发网络应用。Google I/O 早已成为全球计算机爱好者关注的焦点,北京时间\n5 月 18 日凌晨 1 点,Google I/O 2017 在美国加州山景城的海岸线圆形剧场拉开帷幕。今年 Google I/O 的几大看点:Google AssistantGoogle LensGoogle HomeGoogle PhotosCloud TPUAndroid OVR/ARGoogle Assistant在去年的 Google I/O 大会上,Google 的 AI 用 Google Assistant 的方式初步落地,Google Assitant 是一个不仅能回答问题还能围绕一个话题陪你聊天的语音智能助手,而今年的 Google I/O 上,Google Assistant 的能力得到进一步的加强,专注于听觉和视觉识别的大方向,是语音、文字、图像三大沟通形式的整合。谷歌 CEO Sundar Pichai 表示,Google Assistant 与搜索并列,是谷歌机器学习技术最重要的产品/服务载体。Google LensGoogle Lens 是谷歌全新计算机视觉服务的名称,可以理解为一个强大的视觉搜索引擎,所见即所得的理解整个视觉世界,并为你提供服务建议。它智能识别取景器中的图像内容(如用户智能手机中的照片),并作出相应的操作回馈。其使用场景包括:识别旅游地标;提取照片中的文字信息、手机号码;与谷歌翻译整合的实时翻译等。Google HomeGoogle Home 是一个集成了 Google Assistant 语音识别助手的智能音箱,除了播放音乐、搜索、建议安排待办事项等常见功能,Google Home 还能成为智能家居产品的中枢,根据用户需求,完成调节温度、开启灯光等任务。\n而这次 Google Home 获得了一个最重要的功能:“Hands Free Calling”,用户可以直接通过 Google Home 拨打电话,而它并不像其它音箱一样与手机连接后成为手机的扬声器,而是真正可以脱离手机直接拨打电话。Google Photos谷歌宣布了 Google Photos 基于机器学习技术的全面升级,很可能是其诞生以来的最大升级。Google Photos 将利用机器学习技术自动为照片添加标签、进行分组、自动对照片效果进行调整(比如自动翻转)。\nGoogle Photos 还可以做很多的图像处理工作,比如把模糊的照片变得更清楚。此外它还将整合 Google Lens 的图像识别能力,提供一系列新特性,比如识别照片中的电话号码。Cloud TPUTPU 的全称为:TensorFlow Processing Unit(TensorFlow 处理单元),是 Google 专为自家的深度学习框架 TensorFlow 而推出的处理器,安装在数据中心的服务器中。\n在去年的 I/O 大会上,谷歌宣布了其第一代 TPU。围绕着人工智能,Google 也重新改造计算中心,并发布了一个新的芯片 TPU 2.0 或者说 Cloud TPU。Android O和上一代系统 Android N 相比,Android O 更加面面俱到了。原先的多窗口模式将被分成上下两个界面,在 Android O 上,画中画功能比多窗口模式更实用。VR/AR在 VR 和 AR 领域,Google 更多的是与其他厂商合作,例如 HTC vive,联想等,让用户在没有 PC 的情况下,更好的获得 VR 和 AR 的体验。我们再一次领教了 Google 如何把晦涩难懂的人工智能技术,包装成了聪明智能的 Google Lens,Google Assistant 等服务,让我们知道,这是人工智能,而不是“人工智障”。人工智能本次 Google I/O 2017 的 Keynote 是:Mobile first to AI first。我们炒过智能穿戴,炒过 VR 和 AR,还炒过工智能和机器学习,之所以没火就是因为它们离我们太远。Google 欣喜的看到,人工智能终于结出了每个人均可品尝享用的硕果。倘若 Google 能让人工智能技术越来越便捷地为民众所用——无论是在工具层面,还是应用方式层面——那么,所有人都会更快地从人工智能技术中获益。毫无疑问,AI 成为了今年 Google I/O 大会的绝对主角,大会上“人工智能”、“深度学习”也频频出现。孩子们甚至某些小动物仍比我们最好的自我学习的机器人更聪明。但我认为,在未来的某一点,我们也许能够建立一个基于NN增量式学习的人工智能程序(NNAI),可以学习到小动物的聪明程度,学习如何计划和推理,把各种各样的问题分解成能快速解决(或已经解决)的子问题。人工智能接管的世界即将来临,让我们拥抱它吧。深度学习深度学习可能对于很多初学者是一头雾水,在高速发展的同时有很多新的概念名词被抛出,而本文则是对一些常见名词的备忘介绍。深度学习属于经验学科,随着现在研究的进展所用到的基础框架也在不断地完善。幸运地是,开源系统让任何人都有搭建一个深度学习架构的可能。人工智能在视频上的应用主要一个课题是视频理解,努力解决“语义鸿沟”的问题。传统的手工特征有一大堆,目前效果较好的是 iDT (Improved Dense Trajectories) ,深度学习对图像内容的表达能力十分不错,在视频的内容表达上也有相应的方法。包括数学基础、机器学习、深度学习、自然语言处理、泛数据科学五个方面。Google 正式支持 Kotlin今年的 Google I/O 上, 专门邀请了Jake Wharton (Square员工,Butterknife 作者,知名 Kotlin 推动者)来分享 Kotlin 心得,Google 终于正式支持了JetBrains的编程语言 Kotlin, 将其作为 Android 的官方开发语言。对于开发者而言,这绝对是一个激动人心的好消息。谷歌宣布,将 Kotlin 语言作为安卓开发的一级编程语言。Kotlin 由 JetBrains 公司开发,与 Java 100% 互通,并具备诸多 Java 尚不支持的新特性。JetBrains 在 2010 年首次推出 Kotlin 编程语言,并在次年将之开源。下一版的 Android Studio(3.0)也将提供支持。快速学习一门语言最简单粗暴的方法当然是亲自动手实践一个项目,现在就来试一试:笔者根据多年编程经验,编程语言都应该在思想上互通的,如果,没有想到这一点。学习之路苦不堪言。今天分享下,当拿到一个新语言时,如何来学习。我们该如何在 Android 中应用这门新的语言呢?今天的这篇文章带你学习使用\nKotlin 开发 Android 应用,并对比我们传统语言 Java,让你真真切切的感受到他的美和优雅。进一步研究 Kotlin而对于一些小伙伴,早早就已经开始实践出真知了:虽然 Kotlin 使用简单快捷,然而由于自己的深入研究的习惯导致每接触到 Kotlin 的新功能,就马不停蹄的研究它的本质,这里总结一下关于如何研究 Kotlin 的一些方法来快速研究掌握 Kotlin。作为有经验的开发人员,大家都知道 Android 现在基本上都用 gradle 构建,gradle 构建过程中只要加入 Kotlin 代码编译的相关配置,那么 Kotlin 的代码运用到 Android 的问题就解决了。最后,附上学习任何一门语言必备的秘笈:(本期完)\n# SegmentFault 技术周刊 #「技术周刊」是社区特别推出的技术内容系列,一周一主题。周刊筛选的每篇内容,是作者的独到见解,踩坑总结和经验分享。每周四更新,欢迎「」或者「」。大家也可以在评论处留言自己感兴趣的主题,推荐主题相关的优秀文章。","updated":"T06:18:27.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"likeCount":0,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T14:18:27+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-38cc2e49d8_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":0,"likesCount":0},"":{"title":"SegmentFault 技术周刊 Vol.28 - GitHub —— 你不得不上的交友网站","author":"segmentfault","content":"相信每一个程序猿都听说过 GitHub 了,简单来说 GitHub 是一个主要提供基于 Git 来进行版本控制的项目托管服务的网站,她是世界上最大的开源软件社区,世界各地的程序猿在 GitHub 上开源自己的项目,关注和参与自己感兴趣的开源项目,嗯,同时 GitHub 还是世界上最大的同性交友网站。什么是 GitHub先来了解下 Git 和 GitHub 到底是个什么关系吧~本文旨在使用通俗易懂的文字,讲解版本控制背后的理论,以便你能对程序员们如何工作有个全局概念。求职面试时,你肯定看到过或者听说过在 GitHub 上有开源项目或是参加过别人的开源项目是加分项,甚至有面试官要求提供 GitHub 账号地址,那么 GitHub 到底为什么这么重要呢?知乎上面有人总结了 GitHub 的基本功能:GitHub 是社交网站,具有和社交网站相同的好友、评论、赞、讨论等功能。任何人均可参与其他人的代码仓库的开发。(当然不能直接改人家的代码。)协同开发与编程,而且支持互相评论。通过 Git 版本控制系统来提高生产力。GitHub 入门非常给力的从 0 开始系列,还不太熟悉的小伙伴们赶紧来学习 GitHub 吧!我是从小白一路过来的,很能理解你们内心的感受与困惑,因为这些阶段都是我自己亲身经历过的,所以我写的文章都会从你们的角度去出发,并且我对文章高要求,除了排版、配图很用心外,文章的内容每次写完我都会亲自看三四遍,确保不会出现误导以及你们理解不了的情况,你们看的很轻松易懂的文章其实因为我背后做了很多的功课。注册 GitHub认识 GitHubGitHub 主页设置你的 GitHubGitHub 基本概念创建自己的项目GitHub 是基于 Git 的,所以也就意味着 Git 是基础,如果你不会 Git ,那么接下来你完全继续不下去,所以今天的教程就来说说 Git ,当然关于 Git 的知识单凭一篇文章肯定说不完的,我这篇文章先介绍一些最基本的、最常用的一些 Git 知识,争取让你们 Git 速成。上一篇文章只介绍了对本地 Git 仓库的基本操作,今天我就来介绍下如何跟远程仓库一起协作,教你们向 GitHub 上提交你们的第一行代码!SSH生成SSH keyGitHub 上添加 SSH keyPush & Pull提交代码关于 Git 相信大家看了之前一系列的文章已经初步会使用了, 但是关于Git还有很多知识与技巧是你不知道的,今天就来给大家介绍下一些 Git 进阶的知识。用户名和邮箱alias其他配置diffcheckoutstashmerge & rebase解决冲突SSH 深入研究SSH 是一种网络协议,用于计算机之间的加密登录。目前是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,所以想要在 GitHub 提交代码的第一步就是要先添加 SSH key 配置。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。简单来说,SSH提供了两种级别的安全验证:第一种级别是基于密码的安全验证,知道账号和密码,就可以登陆到远程主机。 Team的开发工作中,就是使用这种方式登陆编译服务器,或者开发机器。因为是在内网中,这种级别的安全验证已经足够了。第二种级别是基于Public-key cryptography (公开密匙加密)机制的安全验证。首先:查看你是否有../ssh 这个文件;\n怎么查看;找到你的git安装目录,在安装目录下查看是否./ssh作为一个开发者,经常要面对管理一大堆服务器的情况,对unix类服务器,我们一般用ssh连接来管理。那么你一般怎么连接ssh,输入密码?弱爆了,既难得记,又不安全。现在俺们都用证书来连接ssh登录服务器是程序猿日常生活必不可少的一部分,也时不时的会遇到自己配置ssh登录的问题,拿日常使用的git来讲,不管使用github也好,还是自己搭建的gitlab等等,如果不能很好的理解ssh的原理,极容易遇到各种问题。这篇文章就尝试向大家简单讲解下ssh的原理、调试方式和常见问题。这里要讲的主要是免密码登录,也就是使用密钥登录的方式。下面这个问题相信一定有小伙伴遇到过。方案一与方案二都是创建 .git-credential 文件并写入用户信息,一个是手动创建,一个命令创建。我们可能会需要在一台电脑上以不同的github账户去使用git,这时就需要去解决如何管理本机上的多个ssh key的问题了。主要是 windows 用户会遇到很多纠结的问题,linux/unix 用户属于这方面的高端用户,应该有能力处理此类问题,而且网络上也有很多解决方案,本文的受众是 windows 用户。由于今天配置了一下午,虽说配置过程基本搞清楚,懒得重新配置一遍,所以文中皆以文字形式叙述,没有截图。个人博客GitHub Pages 是通过我们的网站托管和发布的公共网页。\n你可以通过在线生成器创建和发布GitHub Pages页面。如果你偏爱本地操作,你可以使用Mac和Windows的GUI软件,或者是命令行。GitHub Pages文档团队通过 Github 利用 Github 的工作流程(译者注:即前文提到的 Markdown 编写内容,PR 提交等),Jekyll 以及 Github Pages 服务来提供一个高质量的文档。Github Pages 提供给我们文档团队的好处同样对每一个运行 Github Pages 的站点都是可用的。确保你的username.github.io不会跳到别的站点解决gh-pages分支clone到本地后出现push冲突有任何问题,可以查看帮助文档。Jekyll又一个系列教程。Jekyll将原始文本根据一定规则转换成静态的网页和博客。但这个转换并不是简单的字符串替换就了事了,而是首先读取各个文件中的内容,根据配置文件中描述的参数在内存中构建一个巨大的对象存储整个博客的信息,然后再将这些信息根据配置文件中定义的输出方式来生成具体的HTML文件。整个项目是由Ruby写的,所以若需要在本地调试则需要安装Ruby。这篇文章主要介绍博客内容的编写及本地测试,内容主要来自Jekyll的文档、Liquid的文档之前已经介绍了如何搭建环境和如何创建整个博客项目,并编写了博文,这篇文章主要就是介绍分页功能如何通过jekyll实现。使用Category分类使用文章标签索引文章预先准备对已有项目进行git初始化创建一个名为gh-pages的分支发布上传到github修改后提交hexohexo,更快,更轻,更简洁。你值得拥有~之前我一直在使用wordpress(下称wp),就在前些日子,我爱上了markdown,但在wp上又没找到完美一点兼容markdown的插件。慢慢地,越来越觉得wp很臃肿,最终,我选择了放弃它了。现在,我选择了一个基于node.js的小萝莉hexo。要想搭建漂亮的 blog,还需要模板系统,官方推荐的是 jekyll,但是配置稍复杂,今天推荐另一个选择 —— hexo,一个简单地、轻量地、基于 Node 的一个静态博客框架。Hexo是一个基于Nodejs快速简洁高效的博客框架,Hexo使用Markdown语法来编辑文章,只需要几秒钟的时间就可以成生静态的网页。整个系统就是一个博客系统。Github Issues嗯,是的,github issues 还可以这样用。Wordpress 、Typecho 太重,还要买 VPS、部署服务器环境、安装插件、主题,太折腾人,于是我想,完全可以利用 Github 提供的 API 来实现一个只有一个静态页面的博客,具体思路如下:作者在 Github issues 上写文章(写 issues)博客页面通过 JS Ajax 请求 Github API 来获取文章内容,进行页面的渲染通过社会化评论插件实现评论功能于是花了几天时间实现了这个设想Gitment 是作者实现的一款基于 GitHub Issues 的评论系统。支持在前端直接引入,不需要任何后端代码。可以在页面进行登录、查看、评论、点赞等操作,同时有完整的 Markdown / GFM 和代码高亮支持。尤为适合各种基于 GitHub Pages 的静态博客或项目页面。展示自己的项目Github Pages,让用户能够自定义项目首页,同时,让其编写的网页能够通过域名访问直接展示出来。Github Pages被当作是用户编写的、托管在github上的静态网页,Github提供了一定的空间供开发者存放静态网页。在github上搜索相关项目时会发现,有的项目不光写了一手好文档并且还给出了项目的在线运行Demo。事实胜于雄辩,一个在线演示可能给项目带来更好的印象分。如何在github上维护自己个人项目源代码的同时并生成项目主页呢?经常会有人问我如何才能将自己做的静态页面放到网上供他人欣赏,是不是需要自己有一个服务器,是不是还要搞个域名才能访问?对于以上问题我都会回答:用github来展示你的前端页面吧。优秀的开源项目GitHub 助攻利器用Node.js写了一个爬虫,可以获取GitHub各种编程语言star数前十的库Github Trending基本上是我每天都会浏览的网页,上面会及时发布一些GIthub上比较有潜力的项目,或者说每日Star数增量排行榜。\n不过由于Github Trending经常会实时更新,即使你访问得再勤,难免还是会错过一些你感兴趣的项目,为此不少人都想出了自己的解决办法,例如josephyzhou,他的github-trending 项目得到了众多人的青睐,我仔细阅读了他的源码 (Go),发现实现也较为简单, 就用Python 重写了一下,发现代码少了好多,详见 我的 github-trending。作为GitHub党,分享一些好用的Chrome插件,帮助增强Github功能。标题名称在Chrome插件商场搜索,即可安装对应的插件。迁移到Github之后,我们开始接入各方工具,提高我们的工作效率(钱可不能白花啊)。Git WebHook 是一个使用 Python Flask + SQLAchemy + Celery + Redis + React 开发的用于迅速搭建并使用 WebHook 进行自动化部署和运维系统,支持:Github / GitLab / Gogs / GitOsc。最近自己写了一个Chrome浏览器扩展/插件(github repo),并将其发布到了谷歌官方商店(chrome web store),该插件为github上的仓库提供travis-ci运行状态和运行时间的图表,你可以直观地了解到哪些仓库(自己或者别人的)开通了travis-ci的build,还可以看到特定repo近十次build的时间和状态变化,鼠标置于具体build上,还可查看具体build时间和message,点击还可以进入特定的travis-ci build页面。现在没有多少人不用github,使用频率很高,首页的contributions对于我们了解自己和别人的提交记录比较有帮助,简直是交友神器,修改成立体直方图以后更加直观。我们平时搜索发现 GitHub 上的不错的 Repo 就点 Star 的方式收藏了起来,想哪天会用到,但真的要用时也想不起来叫什么了,而且越收藏就越多,找出来也很费劲的,网友呼吁 GitHub 出个 Tag 的功能,但官方似乎已经回应不会做此功能了。使用了vue.js+webpack进行开发和构建。非常的简单,高效,没有多余的东西。GitHub提供的Gist服务简直是保存代码段的神器!可以把gist当做一个小型仓库,具有版本控制,markdown。从网上的搜索的结果来看,好像在10年就推出了这项服务,真是知道的太晚了!请允许我大呼『工具改变生活!』『工具改变程序员的生活!』GitHub 小贴士# SegmentFault 技术周刊 #「技术周刊」是社区特别推出的技术内容系列,一周一主题。周刊筛选的每篇内容,是作者的独到见解,踩坑总结和经验分享。每周四更新,欢迎「」或者「」。大家也可以在评论处留言自己感兴趣的主题,推荐主题相关的优秀文章。","updated":"T06:43:05.000Z","canComment":false,"commentPermission":"anyone","commentCount":1,"likeCount":44,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T14:43:05+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-5e678fb5ebb_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":1,"likesCount":44},"":{"title":"SegmentFault 官方翻译功能上线","author":"segmentfault","content":"昨天我们亲爱的国际友人,Webpack 的开发者 Sean Larkin 被邀请加入了 SegmentFault 社区(详见:)。和他在微信群的聊天中提到,目前语言问题是一大障碍,他现在是借助 Google 的网页翻译功能来看大家的问题的。但是网页翻译会将所有文本都翻译成英文,这会造成一些理解上的不便,并且非常容易破坏原有排版。特别是计算机编程领域,文本中存在大量的代码混杂的情况,如果把这部分也理解为单词翻译的话会造成很大的错误。针对这一情况,我们利用 Markdown 的语法解析功能,对需要翻译的文本进行分析,去除不需要关注的部分。比如我的这个问题我们在分析的时候就会首先按区块进行分析,直接过滤掉不需要翻译的区块(红色的部分),比如代码片段。针对每一个区块,我们还会做特殊处理。比如如果你在段落里使用了 code语法来标记,我们就会将其识别为一个不需要翻译的片段,在翻译的时候去除掉它,翻译完以后再填回去。还有一种特殊的情况,如果你在整个段落,比如标题中,完全使用了英文(这在技术领域是很常见的),我们也会将其标记为不需要翻译,这可以更好地传达你本来想要表达的意思。我们的翻译功能目前是基于客户端做识别的,如果你的浏览器是英文版,而目标文本是中文,就会显示一个英文的 \"Translate\" 按钮在下方。点完以后,稍等片刻即可看到结果,再点击 \"Show original\" 即可看到原文如果你的浏览器是中文系统(包括繁体中文),而目标文本是英文,就会显示一个中文的 \"翻译\" 按钮跟上面一样,也可以查看原文我们目前的翻译系统是基于 Google Translate API 的神经网络机器翻译(Neural Machine Translation),翻译结果与传统方法相比有了很大的提高,但是也还不能达到完全自然的效果,不过减少了很多沟通上的障碍,这也是我们创办 SegmentFault 的初衷。我们目前只在问答中测试了此系统,后续会逐渐覆盖到所有产品线。我们同时也计划邀请更多其他国家的开发者来 SegmentFault 参与交流,为了让交流障碍更少,同时也提高大家自己的阅读效率。我们做如下倡议尽量使用精确和简短的语言描述你的问题使用业界通用的语言,不要自己造词。不要在问题中夹杂无关的语气词。如果你想翻译效果好,我们还建议你尽量使用短句子。用语法包裹你的代码这是中文开发者一个非常非常不好的习惯,一上来就一堆代码,而且没有任何语法标记,Markdown 在识别的时候会造成排版混乱,翻译的时候更是惨不忍睹。正式场合不要使用俚语呃,关于这个问题你们还是自己看好了。。。","updated":"T14:17:24.000Z","canComment":false,"commentPermission":"anyone","commentCount":8,"likeCount":39,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T22:17:24+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-a17cdaaa77c450fe9ff2d7_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":8,"likesCount":39},"":{"title":"SegmentFault 技术周刊 Vol.26 - 年中复盘 --- 程序员的自我修养","author":"segmentfault","content":"不知不觉已是 6 月中旬了,掐指一算 2017 年已经过去了一半。过去的半年,也许你刚跳槽进入一家新公司,在一个全新的环境里学习和成长;也许你还是和去年一样,仍然奋斗在各种各样的项目和需求里,每天和产品、设计、运营打交道;也许你还在无休止的加班,每天忙忙碌碌却没有方向;也许你正在犹豫是否辞职,彷徨着不知道下一步要怎么走。不管怎样,现在就可以让自己停下来,找一个清新的早餐,或者在某个安静的夜晚,重新审视自己,对工作、对生活做一个全面的复盘,重新规划,适时调整,更好的前行。生于忧患相信小伙伴们都还记得前不久网传华为辞退部分 34 岁以上员工的事。很多人不由感慨程序员也是青春饭,并开始思虑自己的未来,犹豫是不是要转行,担心自己 34 岁以后无处可去。互联网行业工作强度很大,而中国的互联网从业者更忙。程序员更是战场中的排头兵,身体健康的透支导致很难长期抗战。当你意识到自己跟不上节奏的时候,不管是出于对身体状况的担忧,还是对未来潜在威胁的恐惧,又怎会不感到焦虑呢?“谁的青春不迷茫”,但其实迷茫不仅限于青春期,人生的每一个阶段都可能迷茫。回想自己这几年的迷茫,刚毕业那会迷茫要不要进入IT行业,要。工作两三年迷茫要不要离开家乡去互联网公司?去。来北京后,要不要跟着公司搞互联网金融,搞了。去年朋友说创业去不去,思索良久,么去;那么现在呢,要不要继续在北京吸霾,还是没有想好,要不要进入一个新的领域去拼搏,也是没想好?如果有一天,我们终将离开现在拼搏的城市,那我们将何去何从?我认为如果让我说出我心中中国互联网乃至移动互联网发展最好的十个城市排名,我会这么排:北京,深圳,上海,杭州,广州,成都,武汉,南京,西安,厦门。如果除了北上广深,这四个一线城市外,让我推荐程序员最好的归宿和去的地方,首选应该是杭州,其次是成都,再次是武汉,然后是厦门。PS:从关注 SF 微信公众号的小伙伴们所在城市的分布来看,排名前十的分别是:北京、上海、杭州、武汉、深圳、广州、南京、成都、西安、厦门。所谓程序员要想不被淘汰,每个人都需要有自己的核心竞争力,有自己的存在的价值。而在发展变化如此之快的互联网行业,风口浪尖上的程序员们尤甚。我观察圈子里很多成功和不成功的技术人,提出一个观点,那就是个人的核心竞争力是他独特的个性知识经验组合。这个行业里拥挤着上百万聪明人,彼此之间真正的不同在哪里?不在于你学的是什么技术,学得多深,IQ多少,而在于你身上有别人没有的独特的个性、背景、知识和经验的组合。如果这种组合,1,绝无仅有;2,在实践中有价值,3,具有可持续发展性,那你就具备核心竞争力。定位能够产生目标,目标会让你聚焦在一个方向上,远离迷茫。所以,只要你根据自身的实际情况,找好定位,就拥有了摆脱迷茫的银弹。博客和书籍一样,博客是知识最好的沉淀。最后奉劝大家,如果你还没有写博客,那从现在开始开通个博客,走出第一步,如果你已经开始写博客了,不要去奢望靠写博客去赚钱,安心的写博客提升自己能力,总结经验,把它看成一种投资自己的手段,别把目标搞错了,也许有一天你会突然发现,原来你已经走了这么远,而且还有意外收获!勿忘初心,才能方得始终!我的每一篇文章,通常需要2小时~6小时的写作时间。有时候写完以后,觉得特别累,都不想干别的事情了。不过,我还是觉得这是值得的。回过头看,我幸亏把时间花在写作博客上面,否则那些时间就白白过去了,没有留下任何印记。在2016年我主要做了两件事情,即编程与写作。在编程方面我主要把重点放在了JavaScript、Vue、React的学习与探究上,而在写作方面我主要发表了20余篇关于前端的原创技术文章。古人云:学而不思则罔,思而不学则殆。在我看来编程与写作其实并不冲突,编程是一个学习与探究的过程,而写作则是一个分享与记录的过程,只有举一反三,方能为师矣。书山有路互联网的发达几乎可以让我们在网上找到任何我们想要的信息,我们也越来越习惯碎片化的阅读和学习。但当我们想要全面、深入地去了解某一样技术、某一门语言的时候,仅有网上的碎片化信息是远远不够的。“优秀的编程书是没有时间限制的。它们会超越语言的限制,IDE 的限制和平台的限制。它们不是解释 how,而是 why。”为什么中国的程序员总是在不断学习新的开发工具、钻研程序代码,而不逐步提升自己的视野、思维和经验?本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。良好的程序设计能力:掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列);理解计算机科学的核心概念(例如计算机系统结构、操作系统、编译原理和计算机网络);熟悉至少两门以上编程语言(例如C++,Java,C#,和Python);专业的软件开发素养:具备良好的编程实践,能够编写可测试(Testable),可扩展(Extensible),可维护(Maintainable)的代码;把握客户需求,按时交付客户所需要的软件产品;理解现代软件开发过程中的核心概念(例如面向对象程序设计,测试驱动开发,持续集成,和持续交付等等)。整理分为四大块:编程语言(能写代码)-&程序设计(能写好代码)-&计算机底层(能做别人做不到)-&计算机理论(能做别人想不到)不过以我的经历,实际过程中会螺旋上升,编程语言-&程序设计-&计算机底层-&计算机理论-&编程语言-&…,因为一下啃完一整块是不现实的。简历其实很多技术人员有很强的工程能力,但是不屑于上述的一些活动,个人觉得这是一个误区,只有有效和这个社会融合,才能获取更多有用的知识和体验,而具备这些能力,才能更好的为公司服务。最后,如同写博客一样,将你写好的简历不断的修改和完善,直到自己满意,然后将简历投递给心仪的公司吧。简历就是简单的介绍一下你自己有多 NB。所以,你需要介绍以下的内容:我是谁。我会什么。做过什么。结果如何。然后把这些内容放到一个模子里,就可以了。作为一个潜入 IT 圈五年之久、看过数万份简历的 HR,在这个问题上还是有点发言权的。HR 在筛选简历时主要从公司需求出发,重点不一,不过还是有很多“通用”的套路,为了在 30 秒内判断出这份简历是否值得跟进,我认为程序员写简历的正确姿势是这样的:相信程序员对 Github 都不会陌生,你的 Github 也是自己的简历,在 Github 的贡献越大,对求职的帮助就越大,也能够慢慢增加自己的影响力。面试面试过程中,应该注意哪些问题?面试中遇到冷场怎么化解?如何给面试官留下好印象?
对于许多年轻的计算机或 IT 相关专业毕业生,在没有实际项目开发经验的情况下找到第一份全职工作可能是你在职业生涯中遇到的最大的挑战。我整理这篇文章的重点不在于资源的整理,上面 4 点:面试前的准备——面试题库——大公司面试总结——面试相关的网站和书籍,我是按照先后顺序整理的。想要去应聘参加面试,首先当然得准备好简历以及自检技能咯;然后再看看你所面试领域的一些题库,看看自己是否能够回答上来;再者去针对性看看你要应聘的公司,看看以往面试者是怎样的一个流程以及问了一些什么问题之类的;最后,如果以上几点都做了之后还觉得美准备好,那么可以找一些网站和书籍看看;英语这个硬伤如今英语对程序员而言,已经不仅仅是看懂国外的开发文档和技术博客这么简单了。无数的中国开发者走出国门,进入到各大世界顶级公司从事 IT 开发工作,参加各大开发者会议,和无数国外程序员交流合作。英语对于程序员来说,毫无疑问已经越来越重要了。别让英语成为自己进步的硬伤。在此之前,我不并不知道原来有那么多的同学在学习英语的道路上是一路走到黑的。 他们甚至从未想过:英语作为一门语言,学习起来应该是一件比较自然而然的事情,就像我们自然而然地学会汉语那样。在这份指南里,我会尽可能地综合我主观的看法与一定的科学依据,为大家提供一份详尽的英语进阶指南,真心希望本指南能给你带来一点小小的帮助。作为程序员,工作中不得不接触英语。如果你对一些新的技术或开源项目感兴趣,英语更是必不可少的。如果你不想花太多时间、精力和金钱去上学习班,又希望可以在日常生活和工作中去提高英语,那么希望这篇文章可以给你带来些帮助。对于咱们这些高端大气、时刻需要和国际接轨的码农,英语的重要性自然是毋庸置疑的。尤其是那些胸怀大志的潜在大牛们,想在码农行业闯出一片天地,秒杀身边的小弟们,熟练掌握英语更是实现其目标最关键的因素之一。否则,试想在你捧着某出版社刚刚翻译出来的《JSP 高效编程》苦苦学习JSP模板的时候,你旁边的小弟却是拿着原版的《AngularJS in Action》学习开发单页面应用,虽然你们都同样认真地学习了一个月,可做出来东西的效果能一样吗?软技能程序员走江湖必备。这篇文章从以下几个方面进行了整理和推荐,对新手小白自学找资料很实用:学新技术:想学新技术去哪里找教程?找项目:想要开发项目,去哪里找点子?找教程?找书籍:哪里可以找到免费的书籍?交流探讨:遇到问题哪里可以交流?其他:一些程序员相关GitHub 其中一个最重要的作用就是发现全世界最优秀的开源项目,你没事的时候刷刷微博、知乎,而人家没事的时候刷刷 GitHub ,看看最近有哪些流行的项目,久而久之,这差距就越来越大。那么如何发现优秀的开源项目呢?通过这些项目你可以大幅度减少不必要的开发而将精力放在更重要的地方。16个相对来说比较小众,但是对程序员来说却有趣或者有用的网站21个与学习编程有关的网站。 每个网站,我会作一些简单的介绍。中国程序员容易发音错误的单词 (以美式发音为准, 非音标为字母发音)本文定位于为使用GIT标准分支开发流程的开发团队新人提供一份参考指南,其中的内容都是我们公司在研发团队初创时所遵循的一些开发流程标准,经过近一年的实践,虽说还有很多不足,但是随着团队经验的丰富和人员的扩张,我会适时地更新本文,分享我们在使用GIT开发流程中遇到的问题和解决方案。2015年底,在为华为做咨询顾问一年多之后,我决定接受新的挑战,加入华为公司,成为这个拥有着最大的开发者群体的世界级公司的一员。 如何有效地在大公司内进行过知识的传递也是一个课题,我决定将这本书的书稿开源,惠及更多的开发者。基本口诀先靠自己、再靠别人排除原因、礼貌问答善于总结、手留余香我实际上是那种总是会问出愚蠢问题或“不好”问题的大信徒。我一直在问人们一些愚蠢并且完全可以通过谷歌搜索或搜索代码库解决的问题。大多数时候我都不愿意自己去搜索解决,但有的时候我又会无论如何都自己去搞定,而且也不会认为这如同世界末日一样可怕。所以本文中列举的各个策略不是关于“在提问之前你必须要做的所有事情”,而是“一些可以帮助提出更好的问题并得到我想要的答案的要点!”。作为一枚程序员,我们天生就是来解决问题的。在你不知道你的问题之前,我帮不了你,Google 也不能帮你解决问题。积跬步,致千里大神不是一天练成的。成熟期是整个职业生涯中最关键的时期,快的可能一两年就能走过去;慢的,可能整个职业生涯都定格在成熟期。从上面分析中可以看到,这些问题最终都和“心”相关。要想高速成长,就得克服掉温水中的舒适。要想提高自信,还得思考成就感获取渠道这么虚头巴脑的问题。所以要想迈过去这个坎儿,必须有一颗非常强大的内心。每个程序员、或者说每个工作者都应该有自己的职业规划,如果看到这里的朋友没有自己的职业规划,希望你可以思考一下自己的将来。成为技术大牛梦想固然很美好,但是要付出很多,不管是Do more还是Do better还是Do exercise,都需要大量花费时间和精力,这个过程中可能很苦逼,也可能很枯燥。这里我想特别强调一下:前面所讲的都是一些方法论的东西。但真正起决定作用的,其实还是我们对技术的热情和兴趣!只有保持足够的兴趣才能在技术上走得更远。如果做技术无法体会快乐,完全是为了养家糊口而被迫走上这条路,相信很难在漫长的职业生涯中有足够的动力持续成长。世界很精彩,不喜欢做技术的人不一定非要做技术,如果最终一定要转行,越早就越能在新的行业中掌握主动权。心经目前能想到的一些学习的技巧和陷阱,大致都列了出来。都是我个人的一些学习的经验,如果对你有帮助,想必也是极好的,如果你觉得我写的有不合理的地方也欢迎指出。坚持着去实施提及的一些方法,一定会对你的生活和职业带来改变。有的人想成为大牛,却不曾为此努力。有的人辛苦耕耘,却收获寥寥。很多时候,你跟成功的差距并不是能力,也不是运气,或许只是正确的方法?这是一篇不鸡汤的成功学指南,如果你相信且愿意坚持尝试,未必帮不到你!关于我的一些详细信息:我现年32岁,有10年以上扎实的工作经验。直到最近几年我才对自己所做的工作充满信心。即使是现在,我也在不断质疑自己。问题在于,这种质疑并不会消失,所以你要做的就是无视它,不断的解决问题,不断的积累经验。首先我要说明的是以下提到的只是一些帮你提升技能的小贴士。最终你还是需要找到一条最适合你自己的路。这些只是我发现对我有帮助的点。我想说的是,本篇里面分享的一些道理和方法,都是通俗易懂的,就和常听到的例如101%和99%的365次方的故事、1万小时的道理等等一样,但真正去认真思考并实践的屈指可数,也许,坚持才是程序员最大的修养,和各位共勉!出任 CTO程序员的未来在哪里?当然是“出任CTO,迎娶白富美,走上人生巅峰!”,想想是不是有点小激动?以前的我,只会一味的阅读技术书籍,沉迷于技术。以前的我,不喜欢和不熟悉的人聊天,甚至有些偏内向。以前的我,只会用最快的速度完成安排下来的任务。以前的我,只关注自我成长。现在的我,阅读的书籍类型有管理,心理,商业,人文。现在的我,喜欢和人聊天,倾听,讨论,分享自己的想法。现在的我,在接到任务之前更多的是思考是否合理,有没有更好的解决方案。现在的我,关注团队每个人的成长。在工作 2 年左右,我发现自己在技术深度上很难有专业造诣的时候,我开始把眼光放的更长远,我不再把自己仅仅定位成一个前端工程师,而是会开始关心互联网的发展趋势与整体格局,关心产品从 0 到 1 诞生过程中的盈利模式,关心在产品迭代中工程师与运营多方参与的角度和结合的效率,关心工作流程和团队文化,这一切其实都是我潜意识不自觉的关注,是一种不安分,过后很久才逐渐意识到自己早就在默默铺路,有时候一个选择早就做了,只是你还未意识到。从 Google 回来在 Coding 做 CTO,对我来说也是人生的一个大改变。最近我在知乎看到一个好问题,“从大公司离开到小公司当 CTO 是怎样的体验”,我摘抄了一个好答案:“ 顶着 CTO 的名号,招聘,培训,鼓励程序猿,拉网线,查机房,装系统这都是 CTO 要做的事;讨论方案,推方案,定方案,确定进度,拖延进度,安抚程序猿,挨老板骂,安抚老板,这也是 CTO 的职务。” 不包括 Coding,而我的工作还包括 Coding,很伤心。(笑)致程序媛虽然程序媛们没有程序员鼓励师,但我们自己就是自己的鼓励师。程序媛们正在创造越来越多的可能。PPS:SF 微信公众号的关注者中有 20% 是程序媛~加油吧程序媛们,请为自己自豪!在男性占据技术行业统治地位的今天,人们恐怕难以想象,历史上首位电脑程序员竟然是一名女性!在1842年,人称“数字女王”的阿达-奥古斯塔(Ada Lovelace)编写了历史上首款电脑程序。我觉得就是社会上的social stereotype,这种固有偏见会打消一些姑娘想要成为程序员的想法。她们会听到很多声音:你不适合,或者你做不好,或者说这个很累,坚持不下来,这会导致一件事情在还没开始的时候,就被否定掉了。我是那种“反着来”的类型,越是说我不行,我就越要证明自己可以。最后小时候,我们以为能够改变世界的人只有极少数的科学家。然而今天,互联网正在以几何级的速度改变着世界,改变着我们的生活。“程序员是世界上少有的能改变世界的人”,而每天坐在电脑前敲代码的我们就是这其中的一员。“这是最好的时代,也是最坏的时代”。我们生于这个世界,也终将改变这个世界。","updated":"T08:04:10.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"likeCount":13,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T16:04:10+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-c814f97a9cbd73bf8a5461e_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":0,"likesCount":13},"":{"title":"SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备","author":"segmentfault","content":"Git 的诞生是一个非常有趣的故事。1991年 Linus 开源了 Linux 内核,无数 Linux 爱好者在世界各地为 Linux 编写代码,那么问题来了,这些代码该如何管理呢?起初 Linus 使用 BitKeeper(BitMover 公司的版本控制软件)管理 Linux 的核心开发,后来 BitMover 停止了对 Linux 的支持,于是 Linus 秉承自己的版本自己写的精神,花了两周时间自己用 C 写了一个分布式版本控制系统,这就是 Git。Git 入门传统的设计方案我们可以简单的分成两块:工作目录,远程仓库。但是作为一个目标明确的分布式版本控制系统,首先要做的就是添加一个本地仓库。接着我们选择在工作目录与远程仓库中间加一个缓冲区域,叫做暂存区。如果还是没弄懂,那再来看看这篇精简版的吧。无论你是前端还是后台,无论是运维还是移动端研发,GIT是逃避不了的东西,当然你说你要用SVN,那不在这次的讨论范围之内。不多说,请看下文GIT图解分析,10分钟学会git操作,当然下面的教程是为实战为主,会跟你在别的网站看到的不一样。实战是掌握一个工具最快的方法。什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。实战结束,来闯关试试学会了多少。为保大家都能顺利通关,学到所有的知识点,接下来我会写过关攻略,详细介绍每一关的玩法。并且我不会直接给答案,而是演示整个过关的过程。附上备忘小手册。第一次连接远程仓库的配置\n管理修改\n撤销修改(没有提交的[commit])\n删除文件\n创建与合并分支\nBug分支管理\n远程仓库的操作下面是自己学习使用git的常用的命令,还有些使用过程中碰到问题的解决办法,现整理如下。Git 深入理解相信经过上面的入门以后,再对比下面的图解会更有收获和体会。本文背景,在实际项目中使用git已有一年多,发现不少同事虽然会使用常用git指令,但并不理解每个指令对应的作用原理。今天静下心总结下git 的基本理解:代码的存在区域;本文以实际项目出发,理清使用git过程中,代码的迁徙流程。场景: 提交了一个commit(该提交包含很多文件), 发现有问题, 需要回滚, 将线上分支(master)回滚到上一次commit。git 的分支是它最明显的特性, 大部分人听别人推荐使用git都会听到“git分支操作方便...”,对比其他版本控制系统git 分支操作有难以置信的轻量,创建新分支几乎瞬间完成,不同分支之间切换也非常快捷方便;本文将结合实践以及绘图归纳、总结git常见的分支操作指令以及注意事项。终于看完了,最后再来总结回顾一下。个人觉得git是需要认真学的,虽然是个工具但不学习很容易把自己弄糊涂,希望这篇博客可以在某些时候帮到您,让您大概理解git的工作原理并把基本命令串起来。那么下面就说一下Git重要的基本命令吧。本文专注于支撑 Git 的图结构以及这些图的性质影响 Git 行为的方式。通过了解底层,你可以将你心中对 Git 的模型建立在事实之上,而不是基于通过积累使用经验而建立的假设上。这个更真实的模型可以让你更好的理解 Git 做了什么,正在做什么以及将要做什么。Git 进阶Master 是 Git 默认的主分支,版本库初始化以后,默认就是在主分支在进行开发。master分支代码最完整,最干净,用于生产环境。\n主分支只用来发布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支叫做Develop。\n还有一些辅助开发分支,用于应对一些特定目的的版本开发。在讲git的reset和checkout的区别之前,不得不说说HEAD、Index、Working Directory三个区域。git rebase因其“新手应当远离的Git黑魔法”的名号名声在外,但只要使用得当,其可以使团队开发变得无比轻松。本文将对比两个相似的命令:git rebase与git rebase来区分它们的使用场景,最终将“黑魔法”纳入自己的工作流中。本文主要讲解下Git Rebase的基本概念用法、其内部原理以及我们在真实项目中使用Git Rebase应该遵循的原则以及为啥需要遵循这些原则。diff是我们每天都要使用的一个功能,每次提交时,我都习惯先用git diff --cached看看这次提交更改了些什么,确定没问题,然后再git commit。git生成的diff非常直观,直观到我从来都没有去思考过diff是怎么生成的,觉得这应该是很简单的一件事,两个文件做个对比,不就行了。本来计划本篇介绍Git分支的相关知识点与操作,但是准备的过程中发现涉及到很多内部存储原理,决定先介绍一下Git存储原理,明白了这些,有助于理解后续内容,对Git的使用也会有很大帮助。本文讲述了如何使用 git rebase -i 及 git cherry-pick 实现代码回滚。代码回滚属于高危操作,建议慎用!Git 高阶工作流其实不是一个初级主题,背后的本质问题其实是有效的项目流程管理和高效的开发协同约定,不仅是Git或SVN等VCS或SCM工具的使用。\n这篇指南以大家在SVN中已经广为熟悉使用的集中式工作流作为起点,循序渐进地演进到其它高效的分布式工作流,还介绍了如何配合使用便利的Pull Request功能,体系地讲解了各种工作流的应用。统一的工作流程是至关重要的,不管对于哪一个行业的作业来说都一样。对于我们开发人员,工作流包含了开发时 Git 的使用规范、Repo 管理的规范、测试过程的规范、设计交互的管理规范等等。本篇文章重点说 Git 的使用规范和 repo 管理的规范。Gitflow工作流定义了一个围绕项目发布的严格分支模型。虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架。\nGitflow工作流没有用超出功能分支工作流的概念和命令,而是为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互。除了使用功能分支,在做准备、维护和记录发布也使用各自的分支。当然你可以用上功能分支工作流所有的好处:Pull Requests、隔离实验性开发和更高效的协作。本文定位于为使用GIT标准分支开发流程的开发团队新人提供一份参考指南,其中的内容都是我们公司在研发团队初创时所遵循的一些开发流程标准,经过近一年的实践,虽说还有很多不足,但是随着团队经验的丰富和人员的扩张,我会适时地更新本文,分享我们在使用GIT开发流程中遇到的问题和解决方案。因为gitHub上的项目是公开的,不适合公司内部项目放在上面,而私人的需要收费,这绝非是我们愿意的。所以找了个跟gitHub很相似,但是又免费的gitLab。现在将搭建gitLab过程记录一下留作参考。什么时候需要 Subtree ?\n1、当多个项目共用同一坨代码,而这坨代码跟着项目在快速更新的时候\n2、把一部分代码迁移出去独立为一个新的 git 仓库,但又希望能够保留这部分代码的历史提交记录。Git WebHook 是一个使用 Python Flask + SQLAchemy + Celery + Redis + React 开发的用于迅速搭建并使用 WebHook 进行自动化部署和运维系统,支持:Github / GitLab / Gogs / GitOsc。为了方便开发测试或项目部署至服务器不那么繁琐,搞一个自动部署的小轮子也是必要的。小轮子需要涉及到 Coding 项目托管平台(也可以用 Github 平台),Linux服务器的Nginx、Python( Tornado框架 )。同时配置项目托管平台的个人私钥或项目公钥,保证 git pull 能直接拉取。前言:本教程只面向那些个人开发者,想要自己在linux上搭建一个git中央仓库用来上传发布自己的项目。但是对于团队来说可能有更高的要求,可以使用gitlab搭建一个可视化的类似github的版本管理系统Git 小知识(本期完) ----------------------------------------------------------------------------------------------------------","updated":"T03:28:05.000Z","canComment":false,"commentPermission":"anyone","commentCount":1,"likeCount":41,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T11:28:05+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-bbd011eeeb15c4f_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":1,"likesCount":41},"":{"title":"SF 社区最近的一些产品更新:让原创的优质技术文章得到更多关注","author":"segmentfault","content":"最近我们在社区产品上做了很多的改进,这里面我分享一些我比较关注的几个地方,主要是围绕专栏文章模块的改进。在今年初我们重新上线了头条的板块,我们发现头条板块的互动数据比专栏要好不少,也有用户给我们提了一些反馈,比如专栏文章的点赞门槛好高(需要 15 个声望值),我们开始思考有没有什么办法来提升专栏文章的数据。带着这样的思考我们最近优化了产品,有不少的改进,下面我一一罗列一下。当你关注了某个专栏有了新的文章更新你会收到提醒,这样就能及时的关注到一些专栏优质内容的更新,如果专栏的粉丝数多,也会得到更多的曝光和展示。如果觉得打扰,当然也可以在通知设置页面关闭提醒。降低了专栏文章点赞的门槛,现在所有用户都可以为自己喜爱的高质量的原创技术文章点赞了,如果是 15 声望值及以上的用户点赞,专栏作者同时也会收到声望值。专栏文章列表排版优化,突出了点赞和收藏的位置,方便用户直接进行点赞和收藏文章。专栏文章在发布的时候能直接同步到头条,增加了原创专栏文章的曝光渠道。同步到头条的专栏文章,点击链接会直接跳转到专栏文章的页面,帮助增加专栏文章的浏览量。导航栏进行优化风格统一,让头条跟主站产品更加的融合。所有这些改进,都是希望能提升 SF 社区的产品体验,让更多认真撰写优质技术文章和作者本身能得到更多的关注,也希望社区用户多多关注优质的专栏和作者,为他们的内容点赞,也可以在他们的文章评论板块一起交流分享。接下来我们还有一些新的计划,从运营规范和产品上都会有一些新的升级和迭代。我们有计划评选出 SF 社区的优质专栏和优质作者设计专门的展示页面,给予更多的曝光和关注度。为了保证专栏的内容质量,我们会重新开启专栏的申请审核机制和准入门槛,同时收回滥用专栏和长期不更新的专栏权限。对头条的产品逻辑进行升级,未来可能会增加更多新的分类,引入频道管理员的角色,让头条和专栏文章有更多的融合。前些天
说,我们一个没太关注的小产品,已经帮助开发者记录了超过 10 万篇的代码片段,在这里也提倡大家一些碎片的代码片段和灵感内容可以记录的笔记模块,一些自己梳理沉淀下来的优质技术内容更适合发在专栏文章模块。感谢各位社区开发者用户的支持,还有很多可以完善的地方,我们会不断滴改进,如果你有好的想法和建议,欢迎留言反馈一起交流。","updated":"T06:03:07.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"likeCount":0,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T14:03:07+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-59fb97a6b7c740b90a8c150e68d75294_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":0,"likesCount":0},"":{"title":"SegmentFault 技术周刊 Vol.29 - 听说前端又出新工具了?惊不惊喜?","author":"segmentfault","content":"在前端刀耕火种的年代,布局用 table 标签,CSS 样式大量内联;校验 JS代码是否规范,需要复制代码到 jshint(相信很多 “前辈” 对此都不陌生);压缩合并代码,也是通过压缩工具压缩完再复制到一个文件里;修改了代码要查看效果,必须手动刷新浏览器;代码写好了要发布到服务器,需要用 FTP 软件上传,等等等等。其实严格来说,那个时候还没有前端开发这个职位,那个时候叫切图仔或者页面仔,隶属于设计部或者其他什么部。CSS 不能预编译,也没有模块化,不能自动打包,而今天,这些都只要使用前端构建工具就可以实现了,我们也有了专门的前端开发岗位。如果当时的前端开发者穿越到现在,他一定会非常惊讶,并以为自己做了个假前端。简单的来说,前端工程化就是把一整套前端工作流程中能用工具搞定的部分用工具搞定。起源前端这个职位的诞生也有短短的十年。而在十年之前,我不认识你,那会还叫网页制作,用着一个Adobe非常牛逼的软件叫Dreamweaver。这是一个神奇的软件,绚丽多彩的网页通过它,拖拖拽拽,就这么梦幻般的生成了。网页制作师们,像一群织梦的妇人,心灵手巧,耐苦耐劳,从不抱怨。WEB 前端开发这几年发展非常迅速,非常多的开发框架和构建工具涌现,可能你昨天还在用的工具、插件,到了今天就过时了。在 2 年前,我面试别人的时候,会问一些有没有接触NodeJS、 Grunt、gulp、ES6、Babel 这类技能的问题,超过半数的面试者会回答『没有』,或者说『只是刚刚接触,并不是很深入』。迫于招人急迫,我并不会直接说 NO,然后继续问一些 HTML、CSS、JS 前端三板斧的知识。 然而今年,如果应聘者不会这些技能,那真的很抱歉, 我不会接受一个没有走在前沿的开发者 。任何面试者都不会喜欢一个墨守成规的人。难道没人告诉你,外面的世界已经变了吗?前端工程化相关问题是随着前端的发展越来越受到重视的问题,一套好的工程化解决方案能在提高开发效率(包括代码编写的舒适度及多人协作)的同时确保整个系统的伸缩性(各种不同的部署环境)及健壮性(安全),同时在性能上又能有一个很优异的表现(主要上各种缓存策略加载策略等),而且这套方案又应该是对工程师无感知(或感知很小)趋于自动化的一套方案。总之,要达到这个目的前端工程化还有很长一段路要走。前端工程可以说是软件工程的一个细分领域,流程相似,但特点鲜明。先来说说前端,当然我指的是Web前端,相比其他方向的技术有什么特点:1、说起前端,至少涉及3种语言。(html,css,javascript)2、前端代码在用户端运行时增量安装。(摘自张云龙的文章,资源和代码都是增量下载的)3、最基本的状况下,前端代码不需要编译(即改即生效)。4、浏览器即运行环境,非常易于调试和开发(不需要simulator)。工欲善其事Node, NPM, Grunt, Gulp, Bower, Webpack, Browserify, Yeoman, Brunch……诸多的名词让你一时间感到手足无措,好像根本学不完。 其实关键就是,不要被它们唬住。要知道,所有这些工具,其最初的设计目的,都是要让你的工作变得更简单。 要想弄明白这些工具是什么、如何工作以及为何要使用它们,你其实只需要抓住少数几个核心概念。面对日益纷杂的前端工具,作为新人常感无从下手。经过一番检索和简单对比,再结合自己的喜好,筛选了将要学习和使用的工具,以适应日益工程化、专业化的 Web 前端开发工作。不懂“前端”说的virtual dom、ReactJS、Vue、Angularjs这一大堆东西,也不懂前端说的ES6的优雅,也不知道为啥我用Bootstrap、jQuery就得“剁手”。世界上总得有一篇文章是写给后端工程师看的,后端写给后端看的,不装逼,认认真真。我决定用webpack作为学习前端的第一步,一方面是由于“Build工具”几乎是学习前端的第一道门槛;另一方面它已经“千秋万代一统江湖”了所以请无视——gulp、grunt之类的吧。这个时代不懂点前端知识,真的没有办法生存。就算不会写,也得了解它的原理吧!最近做了一些总结,之前都是迷迷糊糊,搞不清楚前端之前的相关定位。好好梳理了一下。错误之处请各位指正。本文主要说的是 JavaScript 工作流程。前端工程化什么是前端自动化构建就不说了,应为我不是写书的。在前端开发实践中,大公司都会有自己的基础前端架构,能容包括了开发环境、代码管理,代码质量,性能检测,命令行工具,开发规范,开发流程,前端架构及性能优化。相对而言,小公司或则是创业型的公司,前端架构这块做得就相对没有这么好,甚至于很不规范,而规范的目的在于提升工作效率。以前我们敲静态页面都是写好html,css, js,然后再去刷新浏览器,艾尼马又不行,有重新写过再刷新,一个页面下来按chrl+r的次数可让你的键盘多活好几天,要不会刷新快捷按钮那不得手残了都。\n后来,grunt,gulp等工具应运而生,当然它们不止这个功能,但却很好地减轻了我们的负担。这篇文章介绍一些如何使用这些工具使构建页面变得简单高效。这只是个人的目前在用的不成熟的方案,更专业的还请参考百度FIS。在前端开发的初始阶段,开发者通常只用关 html, css, javascript。但是现代化的前端开发已经不仅仅是业务代码本身,真正的前端开发环境涉及很多方面的需求,如:1、开发需求2、共享需求3、性能需求4、部署需求这些东西我们都统一的叫做前端工程化,为了简化前端工程化的配置,出现了很多优秀的工具React 在大多数情况被当做当 SPA (单页面应用)的框架,实际上在真实业务开发过程中,非单页面应用的业务框架居多。所以我们在构建前端工程的时候,以多个页面的方式维护。下面定义前端工程的目标:1、基础技2、应用模式3、样式结构gulpGulp 是一个构建系统,开发者可以使用它在网站开发过程中自动执行常见任务。Gulp 是基于 Node.js 构建的,因此 Gulp 源文件和你用来定义任务的 Gulp 文件都被写进了JavaScript(或者CoffeeScript)里。前端开发工程师还可以用自己熟悉的语言来编写任务去 lint JavaScript 和 CSS、解析模板以及在文件变动时编译LESS 文件(当然这些只是一小部分例子)。最近项目和工作中要开始使用自动化工具了,回想一下以前接触这个的时候就是什么nodejs,grunt之类的了,这次干脆就用一个新的,那么就是gulpgrunt是前端工程化的先驱\ngulp更自然基于流的方式连接任务\nWebpack最年轻,擅长用于依赖管理,配置稍较复杂\n推荐使用Gulp,Gulp基于nodejs中stream,效率更好语法更自然,不需要编写复杂的配置文件webpack五年间,NodeJS成为了服务端以及脚本工具的一代翘楚,NPM的成功让大家意识到一个集中式的依赖/包管理体系的重要性,Bower应运而生,还有试图将CMD和NPM包带到前端领域,统一前后端包格式的Browserify等等,大量的前端工具爆发式地出现,WebPack是其中的(又)一款模块打包工具。构建工具逐渐成为前端工程必备的工具,Grunt、Gulp、Fis、Webpack等等,译者有幸使用过Fis、Gulp。\n前者是百度的集成化方案,提供了一整套前端构建方案,优点是基本帮你搞定了,但是灵活性相对比较低,社区也没那么大;后者提供了非常灵活的配置,简单的语法可以配置出强大的功能,流控制也减少了编译时的时间,可以和各种插件配合使用。\n译者因为要使用AMD模块机制,开始接触了webpack,发现官网上讲的晦涩难懂,无法实践,而国内虽有博客也讲解一些入门的教程,但是要么篇幅过短,要么只讲各种配置贴各种代码,然后谷歌发现了国外大牛写的这篇博客,发现讲的非常通俗易懂,配合实践和代码,让译者感慨万千,瞬间打开了一扇大门。本文主要内容译自webpack入门,以一些小的demo对webpack做了简单介绍,每个步骤都很简单明了,适合对webpack完全不了解的新手阅读,以对webpack有个基本的了解。本文将介绍如何使用webpack对具有较为规范的结构的项目进行构建。主要包括以下几个方面:1、进一步了解webpack.config.js2、进一步了解webpack-dev-server3、使webpack支持es6语法本文主要介绍以下两方面的内容:1、webpack-dev-server自动刷新2、热加载(Hot Module Replacement)首先说,code splitting指什么。我们打包时通常会生成一个大的bundle.js(或者index,看你如何命名)文件,这样所有的模块都会打包到这个bundle.js文件中,最终生成的文件往往比较大。code splitting就是指将文件分割为块(chunk),webpack使我们可以定义一些分割点(split point),根据这些分割点对文件进行分块,并实现按需加载。webpack 进阶webpack-dev-server是一个小型的Node.js Express服务器,它使用webpack-dev-middleware来服务于webpack的包,除此自外,它还有一个通过Sock.js来连接到服务器的微型运行时。webpack-dev-server主要是启动了一个使用express的Http服务器。它的作用主要是用来伺服资源文件。此外这个Http服务器和client使用了websocket通讯协议,原始文件作出改动后,webpack-dev-server会实时的编译,但是最后的编译的文件并没有输出到目标文件夹。历经了多个web项目的实战检验,我们对webapck在构建中逐步暴露出来的性能问题归纳主要有如下几个方面:1、代码全量构建速度过慢,即使是很小的改动,也要等待长时间才能查看到更新与编译后的结果(引入HMR热更新后有明显改进);2、随着项目业务的复杂度增加,工程模块的体积也会急剧增大,构建后的模块通常要以M为单位计算;3、多个项目之间共用基础资源存在重复打包,基础库代码复用率不高;4、node的单进程实现在耗cpu计算型loader中表现不佳;针对以上的问题,我们来看看怎样利用webpack现有的一些机制和第三方扩展插件来逐个击破。基于webpack搭建纯静态页面型前端工程解决方案模板。5分钟从零搭建一个简易高效的webpack开发环境。首先我们明确一下需求:1、打包调试2、提取公共代码3、压缩4、热替换前行本书最大的优势在于形成了完整的知识体系结构,让你合理归纳自己学到的知识,将知识放在它该在的地方。另外笔者想强调的是,无论React还是Vue或者Angular2都是非常优秀的前端框架,使用哪个框架还是属于术的范畴。本书虽然立足于React,但是其中蕴含的设计模式与工程架构可以通用于任何框架。笔者也着力于不希望受到某个具体框架的太多的束缚,毕竟在这个日新月异的前端世界,说不准哪天就落于人后了。给大家的建议1、道阻且长,冰冻三尺非一日之寒;2、广泛地学习,有条件和能力的同学尽早地接触客户端开发,更多地了解服务端开发;3、前端大有可为,新技术的发明者大多不是老东西,老东西经验足但是历史包袱重;4、只在浏览器中思考必死无疑;5、像一位同学提到的,打好基础,offer就有。学校里倒腾几年真的很难搞出什么大新闻,面试官也不会刻意为难你;6、测试测试测试,前端测试值得学习掌握,比如e2e,这是一个机会:我能告诉你很多公司的前端测试都瞎JB点吗?7、学习一些函数式编程的思想,例如:lodash、Redux、RxJS;8、拿到offer只是开始不要嘚瑟。(本期完) ","updated":"T08:46:41.000Z","canComment":false,"commentPermission":"anyone","commentCount":14,"likeCount":82,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T16:46:41+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-2470efaafcf40_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":14,"likesCount":82},"":{"title":"SegmentFault 技术周刊 Vol.25 - Swift 开发:从入门到重新入门","author":"segmentfault","content":"万众瞩目的 WWDC 2017 已经落下帷幕,对于 Swift 开发者而言最关心的自然是 “What's New in Swift” 了。在介绍 Swift 4.0 的新特性之前,还是让我们先回到 2014 年 —— Swift 横空出世的那一年吧。2014 年的 WWDC 大会上,苹果在毫无预兆的情况下发布了用于 Mac OS X 和 iOS 编程的新一代编程语言 Swift。这一举动让很多专业的开发者一夜回到解放前,OC 程序员表示心很凉,在一门全新的编程语言面前,所有人都是零基础。所幸苹果降低了 Swift 的入门门槛,在程序编写上依然支持 Objective-C 和 C 语言,同时弥补了 Objective-C 的一些不足之处,让更多人更快地入门。Swift 1.0 —— 横空出世Swift 以前的 iOS 和 OS X 应用开发均使用 Objective-C,而 Objective-C 是一门及其繁琐(verbose)且学习曲线比较陡峭的语言。现在看来,Swift 1.0 确定了整个语言的基线:类型安全、迅速、现代,它告诉开发者使用 Swift 进行开发是完全可能的。Swift 1.0 有了可选的、智能的值类型,以及很多受欢迎的重大特性,得到了很多 Objective-C 程序员的认可。从这个程序中我们可以看到,用 Swift 足够写出简洁易懂,语法上与其他脚本语言区别非常小,几乎无需学习 Swift 就能理解大概意思的程序。Swift 是什么?简单的说:1、Swift 用来写 iOS 和 OS X 程序。(估计也不会支持其它屌丝系统)2、Swift 吸取了 C 和 Objective-C 的优点,且更加强大易用。3、Swift 可以使用现有的 Cocoa 和 Cocoa Touch 框架。4、Swift 兼具编译语言的高性能(Performance)和脚本语言的交互性(Interactive)。仅在 Swift 发布的 11 个小时后,开发者 Nate Murray 就放出了基于测试版 Swift 开发的应用 —— 一个重制 Flappy Bird 的简易原型。推荐对 Swift 感兴趣的开发人阅读这个新作品的代码,并同时建议下载一份目前的版本试用或收藏。动作快的小伙伴也第一时间上手用起来,嗯,用过都说好。手把手教你如何完成一个 TODO 的应用,功能很简单,就是添加任务和浏览任务。将视屏内容整理了一下。虽然没有什么高深的内容,但是作为一个入门的小程序还是挺适合的。上一次微软大张旗鼓的推出 C# 及其编程平台还是在 2000 年,而将近15年之后,苹果推出了另一门编程语言 Swift。作为一个开发者,能见证一门编程语言的诞生,备感荣幸。Swift 2.0 —— 开源万岁在 2015 的 WWDC 大会上,苹果宣布将开源 Swift。此外苹果还将公开发布在 OSI 标准许可下的 Swift 的源代码,包括编译器和标准库,开放 Linux 的源代码端口,开发者可以在 Linux 上编写 Swift 程序。不难看出,苹果这些举动意在鼓励开发者从而进一步推动 Swift 的发展。经过一年的发展,Swift 2.0 有了哪些新特性呢?Swift 2.0 涵盖了更多新的功能,如升级的错误处理、协议扩展和可用性检查等。今年 6 月,一年一度的 WWDC 大会如期而至,在大会上 Apple 发布了 Swift 2.0,引入了很多新的特性,以帮助开发者能更快,更简单的构建应用。作为这门语言的使用者,必然也会受到它的影响。每一门编程语言都会有一个从推出到趋之完善的过程。Swift 和 Xcode 的问题虽然饱受诟病,然而,个人相信,随着时间的推移和语言自身的成长,Swift 的将来必定会成为主流开发语言之一。Swift 横空出世,如火如荼,那 Swift 在未来有可能会取代 Objective-C 吗?当然。但是没人知道会用多长时间,但是我认为应该是在 5 年之内。我们很容易就忘记计算机语言的生命有多长(现在 C 语言已经 40 岁了)。Objective-C 不会彻底消失,但是我能预见在未来的某一个时刻,它在语言世界中的份额将变得非常小。那么问题来了,如何以最短的时间快速从 Object-C 过渡到 Swift?那就是查看 API 文档,这是一个极其取巧且快速省心掌握 OC 和 SW 之间语法变化的方法Swift 3.0 —— 打破一切2016 年 9 月,苹果发布了被称为 “破坏性更新” 的 Swift 3.0。Swift 3.0 可谓 “打破一切”,如果你已精通 Swift 2.0,那升级到 Swift 3.0 无疑是从精通到入门。保证语言基础的健全以及一致性是一门新语言发展的必经之路,因此也将受到挫折。Swift 3.0 可能不是最有趣的版本,但它让 Swift 更为干净。这意味着什么?恩,首先,从 Swift 2 过渡到 Swift 3 不可避免地将是悬崖式的过渡,大量的代码需要重写,Cocoa 的重命名工作也要落地了,我们将再次创建令人瞩目的科技成果。同样地,我们应该尝试将 “重新布局式的” 改变放到 Swift 3 中,如果可能的话,Swift 3 到 Swift 4 的过渡尽可能平缓一些。还是按照惯例,继续来看看 Swift 3.0 的新特性吧:经历了从 Swift 1.0 到 2.0,一个版本之后代码居然就不兼容了。这如何在团队推广呢?没有想到 3.0 居然变化更加的大。有多大,来体会一下。如果你没有一直紧跟 Swift Evolution 的话,你也许会想知道都有哪些改变,以及它将会怎么影响你的代码,并且你该什么时候开始着手把代码 convert 到 3.0,那这篇文章就是写给你的。嗯,看到这里,Swift 2.0 的开发者的内心是崩溃的,含泪写下从 Swift 2.2 到Swift 3 的迁移指南。Xcode 8 带着 Swift 3 风风火火的到来了,作为一个平时使用 OC 为主的 iOS 开发来说,Swift 3 正式和 OC-like 语法划定了界限。Swift 4.0 —— 充满希望在开始 Swift 4.0 之前,还是先来看看开发者们对它的期望吧。Swift 3 的正式版已经接近完成状态了, 是时候来回顾一下发布之前的事情, 从中汲取经验, 并且用来整理一下我们(Swift 社区)在今年做的事情了. 总的来说, Swift 3 无疑将会是一个 Amazing 的版本, 我们做到的很了不起, 谢谢每一个为这件事情贡献力量的人. 比起马上推进那一堆新计划, 更重要的是让我们每个人从整个大局来看, 了解自己做到的这些了不起的事情.需要补充的一点是,自从 Swift 开源之后,大部分社区成员提交的提案都在讨论和修改之后被接受了。而那些被驳回的提案也都在激烈的讨论之后由核心团队来做最后的决定。就连 Apple 自己的工程师在想要做出改变的时候也会打开 Repo 去写提案。借助开源,苹果充当管理者的角色,确保了语言的一致性,通过开源社区的力量更好的完善语言的功能,让 Swift 成为一个更好的语言。说回本次的更新。new encoding and decoding, smarter keypaths, multi-line strings, and more!从 WWDC 2017 发布的情况来看,Swift 4.0 做了很多重大的改变,包括 String 的重新设计,Codable 协议的原生支持,原生的 JSON 解析,以及其它很多功能的改进等。因此 Swift 4.0 与 Swift 3.0 并没有十分良好的代码兼容性。然而,Swift 推出伊始,它的编译器就是支持兼容性模式的,选择 -swift-version-3 能编译大多数 Swift 3.0 的源码,此外在 Swift 4.0 中还修复了错误代码也能在旧编译器中编译通过的漏洞。而 -swift-version-4 将支持所有在 Swift 4.0 设计准则中提到的新特性,开发者可以以 package 为单位逐步将自己的代码库迁移过来。拥抱变化Swift 4.0 将在 2017 年秋季发布。“种一棵树最好的时间是十年前,其次是现在”,如果你也想尝试用 Swift 进行 iOS 开发,那么现在就动手吧!Swift 2.2 版本:Swift 3.0 版本:“Write the Code, Change the World”,开发者们,让我们拥抱变化,用代码来改变世界吧!(本期完) ----------------------------------------------------------------------------------------------------------原文阅读:","updated":"T02:44:43.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"likeCount":1,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T10:44:43+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/v2-e846e9e7bb_r.png","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":0,"likesCount":1},"":{"title":"SegmentFault 技术周刊 Vol.24 - “游戏” 已启动:Are you ready?","author":"segmentfault","content":"今天是六一国际儿童节,祝小伙伴们六一快乐!本期技术周刊小编为大家奉上几款小游戏,让我们一起来 “玩” 吧~游戏大集合八分音符小游戏这个游戏的原理很简单,就是通过声音来控制小人移动,声音越大,跳得越高。\n1、获取音频和视频\n2、进行音频和视频通信\n3、进行任意数据的通信贪吃蛇\n和童年的贪吃蛇相比,这次是 3D 的哦,而且 JS 代码只有 90 行,是不是很激动?传统 2D 的贪吃蛇游戏一般通过方向键盘控制蛇的前进方向,我一开始就想定位可运行在平板上的Touch交互,所以不考虑

我要回帖

更多关于 威海初村发展的怎么样 的文章

 

随机推荐