labchy 发布的文章

程序员经常使用的网站

程序员的工作和日常生活非常的枯燥,这里给大家推荐一些程序员经常使用的网站,也是我经常上的一些网站,我将会从多个角度、多个层面分别为你整理归纳这些网站和论坛

项目类

项目是一个面试官非常看重的点,也是拓展视野、挖掘轮子一个的地方,下面就为你推荐几个程序员都应该 mark 的项目类网站

  1. Github 代码托管 https://github.com

作为开源代码库以及版本控制系统,Github 拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,Github 已经成为了管理软件开发以及发现已有代码的首选方法。代码托管必备。

Github 也有非常多好的项目可以推荐,比如我自己的 github (逃了)

https://github.com/crisxuan/bestJavaer

还有其他非常多优秀的 Github ,比如 CS-notes、JavaGuide、mall 商城项目

  1. 码云代码托管平台 Gitee | Software Development and Collaboration Platform

码云托管平台是中国的,之所以国内自己开发了一个码云平台,是因为 github 涉及到 fq,你懂的,而且码云是开源中国的托管平台,会定期评选一些优秀的项目,你不可错过!

  1. Gitlab https://about.gitlab.com/

对于有些人,提到GitHub就会自然的想到Gitlab,Gitlab支持无限的公有项目和私有项目。其首页截图如下

程序员必须知道的几个Git代码托管平台

程序员必须知道的几个Git代码托管平台

  1. coding.net https://coding.net

谈到 coding.net,首先必须提的是速度快,功能与开源中国相似,同样一个账号最多可以创建 1000 个项目,也支持任务的创建等

博客类

  1. CSDN https://www.csdn.net/

中国专业IT社区CSDN (Chinese Software Developer Network) 创立于1999年,致力于为中国软件开发者提供知识传播、在线学习、职业发展等服务。中国最大、最具专业的博客平台,同时也是质量最高的博客平台

  1. 博客园 http://www.cnblogs.com

这样一个不起眼的地方,却吸引了很多IT技术精英,把这里当作自己的网上家园,每天在这里分享着精彩的原创内容,也许他们看重的不是华丽的外表、诱人的虚名,而是纯净、专注、对技术人员的理解。

  1. 掘金 https://juejin.im/

掘金现在被字节跳动收购了,内容审核变得越来越严格,也涌现了很多大佬,他们写的文章非常帮,强烈推荐大家每天逛一逛,博客内容都是经过层层筛选的,非常值得一看

  1. 思否 https://segmentfault.com/

思否上面有很多大佬,不得不说思否的界面做的非常清新,舒服,这就让人很喜欢这个博客平台,目前看来还是比较小众,但是上面的开发者的互动很多,是一个很温馨的地方。s

  1. infoq https://www.infoq.cn/?utm_source=infoq&utm_medium=toutubiaoti

infoq 是最近兴起的一个技术社区,界面非常小清新,让人感觉很舒服,目前入驻的开发者倒不是很多,但是 infoq 依托极客邦的大流量和资源,做起来应该很快的,我入驻了 infoq ,感觉里面还是有很多大佬的,推荐大家经常浏览一波

  1. GitChat https://gitbook.cn

GitChat 是一个付费学习网站,当然也支持免费模式,因为付费所以相对文章质量比较高,但是免费的文章同样也很不错,而且我就在 GitChat 上面写了很多免费文章,不应该是很多,应该是全部免费,我的 gitchat 主页如下 程序员cxuan 的 GitChat

  1. V2EX https://www.v2ex.com

无论你是在大学进行人生最重要阶段的学习,或者是在中国的某座城市工作,或者是在外太空的某个天体如 Sputnik 1 上享受人生,在注册进入 V2EX 之后,你都可以为自己设置一个所在地,从而找到更多和你在同一区域的朋友。

  1. OSCHINA https://www.oschina.net

这个网站和CSDN一样是国内最大程序员社区,各种教程、资源、工具、书籍都是可以找到的。在社区里,你可以尽情的写博客,发动态,激烈的讨论问题,只有在这种环境下才能激起你学习的热情。

  1. 简书 https://www.jianshu.com/

简书是一个不仅仅为程序员提供的创作分享社区,上面充满了各种各样精彩的博文,也有很多优秀的博主,但是相比较与CSDN个人认为在技术创作方面就略低一筹了。

问答类

  1. 知乎 https://www.zhihu.com/

有问题,上知乎。知乎,可信赖的问答社区,以让每个人高效获得可信赖的解答为使命。

本是一个分享各种人生杂谈,和一些鲜为人知以及各种大牛的免费和付费的知识型网站。由于流量逐步扩大,吸引了大批优秀的程序员在上面分享自己的技术创作,也是一个程序员常去的网站之一,不仅仅是为了学习技术。

  1. 思否问答 https://segmentfault.com

SegmentFault 思否是中国领先的新一代开发者社区和专业的技术媒体。我们为中文开发者提供纯粹、高质的技术交流平台以及最前沿的技术行业动态,帮助更多的开发者获得认知

思否

教程类

  1. 菜鸟教程 https://www.runoob.com

菜鸟教程提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识,是个小白入门,学习语言的好地方。

  1. w3schoool

在W3School,你可以找到你所需要的所有的网站建设教程。从基础的 HTML 到 CSS,乃至进阶的 XML、SQL、JS、PHP 和 ASP.NET。从左侧的菜单选择你需要的教程! 和菜鸟教程十分相似的网站。

  1. 易百教程 https://www.yiibai.com

易百网是一个内容全面的教程网站,专注于VBScript, MATLAB, EJB, IPv6, IPv4, 电子商务, PostgreSQL, SQLite, SDLC, Assembly, 操作系统, JSON, iOS, 设计模式, VB.Net, 计算机基础知识。

  1. Bilibili1 https://www.bilibili.com

期初这个网站是由游戏玩家视频火起来的,尤其LOL骨灰级玩家遍布其中。bilibili 是国内知名的视频弹幕网站,通过动漫打出了名声,最近两年发展势头迅猛,里面有不少有创意的 Up 主,不乏一些有趣的程序员。

  1. 中国大学MOOC网 icourse163.org

中国大学MOOC(慕课) 是国内优质的中文MOOC学习平台,由爱课程网携手网易云课堂打造。平台拥有包括985高校在内提供的千余门课程。在这里,每一个有意愿提升自己的人都可以免费获得更优质的高等教育。

  1. 慕课网-程序员的梦工厂 https://www.imooc.com

慕课网(IMOOC)是IT技能学习平台。慕课网(IMOOC)提供了丰富的移动端开发、php开发、web前端、android开发以及html5等视频教程资源公开课。

  1. 网易云课堂 https://study.163.com

网易云课堂,是网易公司打造的在线实用技能学习平台,主要为学习者提供海量、优质的课程,用户可以根据自身的学习程度,自主安排学习进度。涵盖实用软件、IT与互联网、外语学习、生活家居、兴趣爱好、职场技能、金融管理、考试认证、中小学、亲子教育等十余大门类。

  1. 实验楼 https://www.lanqiao.cn/courses

实验楼这个网站我直接吹爆,无需配置繁琐的本地环境,随时在线使用。

实验楼

算法类

  1. LeetCode https://leetcode-cn.com

几乎每个算法大牛都知道的神奇网站,这个网站上面有:算法、数据库、Shell、多线程等多种类型供你学习。多数人在上面练习编程算法,尤其是给想进入一线互联网公司的技术人员,提供了一个免费又方便的题库。面试前都会在上面进行长期和充分的刷题,是你的不二选择。

  1. LintCode https://www.lintcode.com

LintCode领扣上有数量超过1000道的算法题目和人工智能题目,通过刷题熟练掌握数据结构和算法。完成各大名企的阶梯训练,为你斩获心仪的offer打下坚实的基础

  1. 洛谷 https://www.luogu.com.cn

洛谷创办于2013年,致力于为参加noip、noi、acm的选手提供清爽、快捷的编程体验。它拥有在线测题系统、强大的社区、在线学习功能,也是一个很好练习刷题的网站啦

接单类

  1. 程序员客栈 https://www.proginn.com

程序员客栈是领先的程序员自由远程工作平台,未来互联网企业用人方式。提供优秀程序员为您进行网站建设制作、测试运维服务、人工智能AI、大数据区块链、软件开发等优质服务。

  1. 码市 https://codemart.com/developers

码市是互联网软件外包服务平台,意在连接需求方与广大开发者。让项目的需求方快速的找到合适的开发者,完成项目开发工作。

  1. 猿急送 https://www.yuanjisong.com/job

猿急送为您提供兼职程序员,兼职工程师信息,猿急送是一个高级技术共享平台,是优质的程序员兼职网站,这里汇聚BAT等知名互联网公司的技术开发、产品、设计大牛。

  1. 开源众包 https://zb.oschina.net

开源众包–专业的软件众包平台,350万+ 优质开发者为您提供网站、APP、微信/小程序、企业应用等软件开发服务,有效降低企业 IT 软件开发成本、解决技术资源不足等问题。

开源众包

  1. 实现网 https://shixian.com

这个比较高级,是一些知名公司技术人员兼职的平台。我们可以在线约好去其他公司兼职坐班。实现网为企业提供BAT等名企背景的、靠谱的开发设计兼职人才和自由职业者,满足企业项目外包、驻场开发、远程兼职、技术咨询等短期人力需求。

  1. 猪八戒 https://shenyang.zbj.com

猪八戒网企业外包服务,中国领先的灵活用工平台,其中服务品类涵盖LOGO设计、UI设计、营销推广、网站建设、装修设计、工业设计、文案策划、知识产权的服务。

  1. 码易众包平台 https://www.mayigeek.com

码易是智网易联旗下IT软件服务平台,集软件商城、企业应用、电商软件、crm软件、商务服务平台于一体的一站式软件外包开发服务平台。

求职类

  1. 牛客网 https://www.nowcoder.com

求职之前,先上牛客,就业找工作一站解决。这个网站不像csdn和OSChina以技术博客论坛为主了。但是在你需要的时候,却是相当有价值,里面有面试技巧、各种知名的不知名的互联网公司的对应往年校招社招面试题库,刷到你手软,一般应届生用这个比较多。

  1. 拉勾网 https://www.lagou.com

拉勾招聘是专业的互联网求职招聘网站。致力于提供真实可靠的互联网岗位求职招聘找工作信息,拥有海量的互联网人才储备,互联网行业找工作就上拉勾招聘,值得信赖的求职。

  1. Boss直聘 https://www.zhipin.com

BOSS直聘是权威领先的招聘网,开启人才网招聘求职新时代,让求职者与Boss直接开聊、加快面试、即时反馈,是一个致力于为招聘者和求职者搭建高效沟通、信息对等的平台

  1. 猎聘 https://www.liepin.com

猎聘,2018年香港上市。作为中国知名中高端人才求职招聘平台,汇聚56万+知名企业、16万+认证猎头,为5700万用户提供高薪工作岗位。总之,猎聘还是非常不错的。

使用Ruby on Rails进行Web开发的利弊

如今,许多初创企业和成熟企业都选择Ruby on Rails进行Web开发,例如Basecamp,GitHub,Dribble,Airbnb等公司均使用此框架构建网站。

那么,为什么要使用RoR呢?

Ruby on Rails简介

统计数据

首先,让我们看看关于Ruby on Rails框架的数据:

根据BuiltWith的数据,超过523339个网站是用这种技术创建的。
在GitHub上有近4000名程序员为RoR的发展做出了贡献。
Ruby on Rails拥有超过45000颗GitHub星。
Arc指出,一位Ruby on Rails高级开发人员在北美的平均时薪是121-140美元。

Rails的简短历史

David Heinemeier Hansson于2000年代初创建了Ruby on Rails,当时他在开发名为Basecamp的项目管理工具。

RoR框架以其快速、简便的web应用程序开发和部署而著称。因此,Ruby编程语言的创建者Matsuki Yukihiro Matsumoto将此工具称为“ Ruby的杀手级应用”。

Rails的基本原理

Ruby on Rails是一个广泛用于Web应用程序开发的开源框架。它在Ruby上运行,专注于简单性和完善的输出。

它的核心原则使企业家可以减少花费。同时,开发人员可以更快,更轻松地完成任务。

原理:避免重复代码(DRY)

该规则指出,每个代码段都需要在系统内进行唯一,明确且权威的提交。它使应用程序代码更清洁,错误更少。此外,开发人员可以重组代码或将其重构。

原理: 约定优于配置

这个概念假设您使用的系统、库和语言在默认情况下假定了许多逻辑情况。程序员需要指定web应用程序的一些非常规方面,而不是每次都创建新规则。因此,编程变得越来越简单高效。

使用Ruby on Rails进行Web开发的利弊

当涉及到web应用程序开发时,有各种各样的工具可供选择。为了做出正确的决定,您应该考虑学习曲线、可伸缩性、托管需求、安装的方便性、文档等因素。

Ruby on Rails的优点

1.安全性

近年来,网络安全问题已成为企业面临的一个严重问题。根据Cybint Solutions公司的数据,令人震惊的是64%的公司都面临过网络攻击。与此同时,62%的公司成为网络钓鱼和社会工程攻击的受害者。

从下图可以看出,后一类网络安全问题主要针对SaaS、金融机构和电子商务平台。

这些统计数据说明了为什么您未来的解决方案的安全性至关重要。

幸运的是,由于其内置机制,Ruby on Rails可以保证您的网页或应用程序不受常见漏洞的影响。有了这个框架,您的web产品将免受以下威胁:

跨站脚本攻击
SQL注入
跨站请求伪造
不安全的直接对象引用或强制浏览。
2.使用简单

RoR以直观,简洁和易于理解的语法而闻名,这对程序员来说意味着更高的可用性。

Ruby on Rails开发人员编写的代码更少。因此,创建web应用程序的过程变得更快。由于框架的可读性,对于开发人员来说,代码变得更容易理解了。

此外,由于项目遵循相同的规则和原则,程序员可以在任何开发阶段从一个Rails项目转移到另一个Rails项目。

3.开发速度快

该框架提供了大量名为gems的免费开源库。它们扩展或修改了Web应用程序的现有功能,并为开发人员提供了常见问题的解决方案。

今天,Ruby gems的数量已经超过了158700 +,下载量超过了480亿次。

此外,还有一些库扩展和实用程序类,它们构成了Active Support,负责开发Rails应用程序和技术本身。

快速开发是创业公司选择Ruby on Rails的关键原因之一。这个框架加快了MVP开发过程,即使在预算有限的情况下也可以创建高质量的Web产品。

4.社区

Ruby on Rails有一个充满活力的社区。它的活跃成员创建Ruby on Rails专用的网站、论坛和聊天室,帮助开发人员从遇到类似问题的其他程序员那里找到专业答案,并提出解决方案。

此外,社区成员还不断编写指南、手册、课程和其他教育材料。

社区托管了RailsConf,这是RoR开发人员的最大聚会,可以与该框架的其他粉丝分享经验。

5.轻松实现业务逻辑

使用Ruby on Rails可以很容易地在web应用程序中实现复杂的业务逻辑。假设您需要API。应用此框架的开发人员将很快创建它。你唯一要做的就是添加一个像Vue或React这样的前端框架,仅此而已。

6.与前端框架的兼容性

如今,React、Vue和Angular等前端框架越来越受欢迎。由于RoR易于集成,这些工具被广泛地与Ruby on Rails一起使用。您可以采用任何您喜欢的框架进行快速开发。

Ruby on Rails的缺点

1.运行速度和性能

应用程序的成功通常取决于这两个参数。客户通常希望Web应用程序能够快速加载。

谷歌的研究显示了每秒钟的延迟如何减少页面的访问量的。

有时候,Ruby on Rails的运行速度有很多不足之处。对于不到数百万用户的小型应用程序来说,这已经足够了,但在构建一个可靠的web项目时,这可能会成为一个问题。

然而,2019年8月发布的Ruby on Rails 6.0版本涉及了这个主题。新功能允许开发人员使用两个数据库在它们之间进行切换,从而提高了性能。

2.缺乏灵活性

由于组件和模块之间存在严格的依赖关系,因此Ruby on Rails是常规Web应用程序的理想解决方案。但是,当涉及具有特定功能的应用程序时,自定义可能会充满挑战。

配置路由,数据库迁移和其他元素会减慢Web应用程序的开发过程。

3.较低的知名度

在过去的几年里,Ruby on Rails的受欢迎程度一直在下降。谷歌Trends提供的统计数据表明,人们对这个框架缺乏兴趣。

尽管开发人员和支持社区的数量在增加,但该技术并未像PHP的Laravel或Python的Django那样广泛使用。可能的原因之一是其陡峭的学习曲线。通常,精通Ruby on Rails的开发人员都知道一种或两种编程语言。

对于企业所有者来说,这意味着与寻找PHP、Java或Python web公司相比,雇佣一个有经验的Ruby on Rails开发机构可能是一个相当具有挑战性的过程。与此同时,他们会得到更有经验和技术的专家。

Ruby on Rails在Web开发中的使用

让我们仔细看看最适合Ruby on Rails框架的项目。

初创企业

Ruby on Rails是初创公司最适合使用的技术之一。它在构建原型和开发MVP时得到了应用,这使得Rails备受推崇。

像GitHub、Twitter、Airbnb和Dribbble这样的流行平台最初都是用Ruby on Rails创建的。

电子商务

使用前面提到的gems,您基本上可以实现电子商务平台可能需要的任何功能。

Shopify、Fiverr、Groupon和Etsy最初都是基于Ruby on Rails的。

SaaS

在构建SaaS产品时,安全性是重中之重,而Ruby on Rails可确保Web产品的安全性。在此框架内,有很多预防措施来保护数据,包括使用大量gem进行身份验证和增加密码长度,多个内置加密库,跳过伪造请求以及使用强参数。

Basecamp,Zendesk和GitHub是使用RoR构建的最著名的SaaS应用程序。

最后

总之,Ruby on Rails是一个高效的、可伸缩的、安全的web开发框架,它可以帮助您构建任何类型的产品:从电子商务平台到SaaS解决方案。但是,RoR也有一些缺点,应该加以考虑。

敏捷项目管理需要知道的五类图表

轻量级的报表、文档可以有效地帮助敏捷团队更好的将工作可视化、辅助和客户的沟通、清晰的展示进度并且对风险进行把控,对项目管理有很好的作用。在过去的项目管理经验中,个人认为有五类图表是项目经理需要了解并且可以在日常工作中频繁使用的。

敏捷的价值观强调可工作的软件更加重要,但也不能否认文档的价值。

燃尽图 ( Burndown Chart )

燃尽图是敏捷项目中最频繁使用的一类图表,它是在工作完成前对于进度的一种可视化表示。我们经常会利用迭代燃尽图来监控用户故事是否如期进行,当然也可以利用Feature燃尽图来监控MVP的完成情况。如下图:
1.png

该图横轴是时间,纵轴是剩余的用户故事点,灰色线是按照团队平均速率用户故事应该被完成的情况(水平部分是周末),蓝色线是实际情况。通过此图我们可以很清晰地看到该迭代团队的开发速率高于期望并且差距不是很大,项目处于很健康的状况。如果蓝线一直高于灰线或者蓝线偏离灰线太远,项目经理就需要注意了,有可能的原因包括迭代计划不合理、团队开发速率出现了问题等,这会导致团队在迭代后期Backlog不够或者迭代结束不能正常完成计划的点数,所以需要项目管理者和团队一起分析具体的原因并且尽快采取措施。

速率表 ( Velocity Chart )

敏捷开发以迭代为周期开展工作,在每个迭代开始之前都会按照团队的平均Velocity来安排迭代计划,所以持续地关注团队的Velocity便于更准确地了解团队的交付能力,更合理的做迭代计划。项目经理通过Velocity表可以从总体上分析团队的开发速度是否正常、迭代计划是否合理以及对于剩余的Scope是否有交付的风险。如下图:

2.png
该图表横轴是迭代,纵轴是完成的用户故事点数,绿色表示实际完成的故事点数,灰色表示按照团队能力应该完成的故事点数。通过该图我们可以看到绿色和灰色虽然有时不同但一直比较接近,团队处于很健康的状况。如果绿色和灰色某一次或者总是差距很大,有可能的原因包括某一段时期的feature复杂度提升、团队内频繁的人员调整或者各类会议增多导致的开发时间减少等,这时候项目经理就要意识到团队可能有交付风险或者需要调整迭代计划了。

甘特图 ( Gantt Chart )

甘特图也叫横道图,是项目管理领域最常用到图表形式,一般用来展示活动或者事件随着时间和费用的变化,通常会包括活动清单、活动日期、进度期限和每天的进展。在敏捷项目管理中,我们可以借助甘特图来可视化某个特定项目(包含一系列的子活动)的进展。如下图:

3.png
该图拿数据迁移这一事件为例,横轴是时间,纵轴是完成数据迁移需要的一系列活动,相同颜色代表同样的活动,灰色表示还没有完成的工作。通过该图可以看到数据迁移的大部分工作已经完成,只剩下最后的POC2的数据分析,并且能看到各项子活动的实际耗时,便于之后类似活动的计划和安排。在敏捷项目中我们还可以借助甘特图来管理Epic用户故事的进展、预算的花费情况等,如果发现某些子活动没有进展,或者消费超过预算太多,项目经理就要考虑采取一些措施推进某些子活动或者消减某方面的投入了。

日报 ( Daily Update )

以上三类是通用的一些图表,很多项目管理软件已经支持,比如 Jira, Mingle 可以自动生成燃尽图和速率表,甘特图有专门的绘制软件。而日报是我们在离岸交付项目长期摸索的过程中使用最频繁也最重要的一个图表,对于每日的沟通非常有用。如下图:

4.png
该图分为三大块,首先是每天的用户故事进展,然后是已有的Backlog的情况,最后是开放性问题,绿色背景是每天内有变化的故事卡,黄色是由于各种原因被block的故事卡,该报表的目的不是为了汇报工作,而是为了让异地的团队和客户对于每天的进展都能一目了然。虽然我们有项目管理工具比如Jira等,但是对于离岸团队来说,通过这样的图表更能清晰地看到每天的变化,让不和我们坐在一起的客户增加信心,也便于我们把遇到的blocker可视化出来。

红黄绿报告 ( RAG Report )

RAG是Red,Amber,Green的缩写,该报告采用了和交通灯一样的呈现方式,简单易懂,可以用来做项目、人员等的健康度报表,拿项目健康度报表举例,项目经理可以按照自己项目需要关注的维度制定该表,然后定期监控每一项是否健康,对于敏捷团队来说,一周一般就可以了。如下图:

5.png
该图横向是项目是否健康需要考虑的几个维度,纵向是时间,每一个单元格里的颜色采用了RAG,红色表示该项出现了严重的问题,如果不尽快采取措施,会有不能接受的影响;黄色表示有一定的影响,团队已经在通过一些方案减小影响;绿色表示该项如期进行。通过该图可以看到该项目在过去的三周没有严重问题,总体来说比较健康,People方面虽然在第一周遇上了一些问题但是通过采取措施已经完全解决,Legal方面目前还在尝试解决。如果发现有红色出现或者某项持续绿色,项目经理就需要马上找相应人员采取措施了。

总结

任何一个报表都只是辅助工具,如果绘制或者更新报表的过程非常繁琐,那么这样的报表读起来也一定不会轻松。本文推荐的五类报表是我在敏捷项目管理过程中认为简单易用并且很有帮助的一些报表,通过使用他们,可以辅助我们管理进度、高效沟通、预知风险。当然,除了本文提到的五类报表,项目经理还需要了解一些其他的报表,比如基本的财务报表等,这部分跟团队开发模式没有太大的关系,所以没有加入到本文的范围。

/* * @Author: your name * @Date: 2016-09-06 00:00:00 * @LastEditTime: 2020-03-17 18:29:35 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \htdocs\usr\themes\default\footer.php */