随笔 - 21,  文章 - 0,  评论 - 5,  阅读 - 7707
  2015年5月13日

期望一个凡人掌握开发过程中各个方面的知识,合理吗?也许不合理,但是Facebook正是要寻找这样的人。在一个OSCON会议上,一名Facebook的工程师告诉我的,他们只聘请“全能(Full stack)”的程序员。那么,全能是什么意思呢?

对于我,一个全能的程序员应该熟悉每一个层面的技术知识,如果不是全部掌握,也要对所有的软件技术有真正的兴趣。

熟悉整个技术体系的程序员,可以使得周围的人的生活更加容易。这就是为什么我反对在工作场合的技术鸿沟。当然,大公司里的政治和沟通的问题往往会影响他们的发展。我想Facebook招聘策略的目的就在于,如果聪明的人身心俱到,一个好的产品可以在更短的时间内发布。

技术知识体系的分层:

1.    服务器,网络和主机环境

  1. 这包括理解什么会宕机,为什么会,没有任何资源是理所当然的。
  2. 合理使用文件系统,云存储,网络资源,理解数据冗余和可用性。
  3. 在硬件受限的情况下,如何扩展应用。
  4. 那么关于多线程和竞争呢?你猜怎么着,你在你的开发机器上看不到,但是在现实中却经常发生。
  5. 全能程序员可以与DevOps协同工作。系统应该提供有效的错误信息和日志能力。DevOps会在你之前看到这些信息,使它们有意义。

2.    数据建模

  1. 如果数据模型存在缺陷,那么业务逻辑和更高的层次将要用奇怪、丑陋的代码来弥补那些模型没有覆盖到的边界场景。
  2. 全能程序员知道如何构建合理规范化的关系模型,包括外键、索引、视图、查找表等。
  3. 全能程序员熟悉非关系数据存储的概念,理解其比关系型数据存储的优点。

3.    业务逻辑

  1. 明白应用程序提供的核心商业价值。
  2. 需要扎实的面向对象知识。
  3. 需要理解框架。

4.    API层面/Action层面/MVC

  1. 理解外部如何与业务逻辑和数据模型进行交互。
  2. 框架在这里会用得很多。
  3. 全能的程序员有能力写出清晰,一致,简单易用的接口。一些API的复杂得使我感到厌烦。

5.    用户界面

  1. 全能程序员a)知道如何创建可读的布局,或者b)明白自己需要帮助艺术和图形设计师。无论哪一种,实现好的视觉设计是关键。
  2. 掌握HTML5/CSS3。
  3. Javascript在将来会是非常重要的一门语言,很多令人兴奋的作品都是用Javascript完成的。(node, backbone, knockout……)

6.    用户体验

  1. 全能程序员明白,用户只是想让产品可以正常工作。
  2. 一个好的系统不会使得用户患上腕管综合征和眼痛病。一个全能程序员会将一个需要8次点击3个步骤的工序,修改为1次点击。
  3. 全能程序员会添加有用的错误信息。如果有什么出错了,要向用户道歉。有时程序员漫不经心写的错误信息会让用户觉得很傻。

7.    理解用户和业务的需求

  1. 现在我们模糊的进行的架构设计,但这会远离了真正的需求。
  2. 全能程序员会预先看看当用户在使用软件的时候,会发生什么。同时,他们也会关注业务部分。

其他问题:

  1. 能够编写质量单元测试。顺便说说,Javascript现在也可以进行单元测试了。
  2. 理解持续自动化集成,包括构建应用,测试,编写文档和部署扩展。
  3. 安全意识也非常重要,因为每一个层面都会有其易受攻击的地方。

总结:

将代码紧紧的绑到一个特定的环境(库,操作系统,硬件等等),是非常糟糕的实践来的。全能程序员理解所有的知识体系,不意味着他们可以走捷径。然而,他们确实会这样做,如果只是建立一个原型的话。

技术型创业公司需要全能程序员的多才多艺。但是,一个成熟的公司,需要更多的是专注的技术。

我不确定在你使用多种语言,使用多个平台,甚至为多个行业工作之前,你是否可以自称为全能程序员。全能程序员要在“高级程序员”之上,因为他们与通晓多语言的程序员在同一线上,但是对各个模块的关系更有全局的意识。注意我刚刚的列表,只有3-5项包含了编写代码。

posted @ 2015-05-13 17:16 移动互联奇葩 阅读(232) 评论(0) 推荐(0)
  2014年3月10日
摘要: 启动 阅读全文
posted @ 2014-03-10 10:09 移动互联奇葩 阅读(158) 评论(0) 推荐(0)
  2014年1月26日
摘要: 原文地址:https://www.mozilla.org/en-US/styleguide/products/firefox-os/typeface/ 阅读全文
posted @ 2014-01-26 11:01 移动互联奇葩 阅读(147) 评论(0) 推荐(0)
摘要: 原文地址:https://www.mozilla.org/en-US/styleguide/products/firefox-os/color/基础知识 Firefox OS鼓励开发者使用一下颜色,但也不是强制的,开发者可以使用他们自己喜欢的颜色。主要颜色所有颜色推荐渐变颜色正确的渐变风格错误的渐变风格用法示例 略 阅读全文
posted @ 2014-01-26 10:29 移动互联奇葩 阅读(171) 评论(0) 推荐(0)
摘要: 原文地址:https://www.mozilla.org/en-US/styleguide/products/firefox-os/ 本指南帮助设计和开发者定义他们Firefox OS 应用的视觉风格。本指南分为一下几个部分。 调色板 字体 标题? 背景 列表 按钮 标签栏、工具栏和过滤器 输入区 开关、复选框和滑块 动作图标 应用图标 本指南提供许多核心的视觉设计和核心元素,然而下面的这个设计是应该始终遵守的核心设计思想。Shape forms are Bold, Geometric but with hints of organic softness. 2. ... 阅读全文
posted @ 2014-01-26 10:27 移动互联奇葩 阅读(151) 评论(0) 推荐(0)
  2014年1月24日
摘要: 原文地址:https://developer.mozilla.org/en-US/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_build_overview构建目标:4个镜像文件 构建程序的目标是构建4个可以拷贝到Firefox OS设备的镜像文件。 boot.img Linux内核和根文件系统镜像,后者提供一组可用的基本Unix工具。 system.img Firefox OS的核心,包括Gonk,Gecko和b2g。 userdata.img Gecko的用户配置文件和Gaia的Web应用。 ... 阅读全文
posted @ 2014-01-24 12:04 移动互联奇葩 阅读(194) 评论(0) 推荐(0)
摘要: 原文地址:https://developer.mozilla.org/en-US/Firefox_OS/Platform/ Gaia是Firefox OS的用户界面层.在Firefox OS启动之后,显示在屏幕上的一切东西都是由Gaia绘制出来的,包括锁屏,主屏幕,拨号界面,以及其他的应用程序.Gaia完全是由HTML,CSS,和JavaScript编写的.它和底层的操作系统以及硬件进行交互是通过标准的Web API来完成的,这些API是由Gecko实现的. 由于这种设计,Gaia不仅Firefox OS设备上运行,而且能够在其他操作系统和其他浏览器上运行(尽管可有有些功能依赖于浏览器)。.. 阅读全文
posted @ 2014-01-24 11:40 移动互联奇葩 阅读(243) 评论(0) 推荐(0)
摘要: 原文地址:https://developer.mozilla.org/en-US/Firefox_OS/Firefox_OS_usage_tips/远程调试 打开Settings>Device Information>More Information>Developer,然后在这个列表中选中Remote Debugging。最终,通过USB把设备链接到电脑。截屏 以下是三种Firefox OS截屏方法,如果你是Android开发者,会发现它们的步骤非常相似。准备好你的手机 在手机上,开打Settings > Device Information > More In 阅读全文
posted @ 2014-01-24 11:36 移动互联奇葩 阅读(222) 评论(0) 推荐(0)
摘要: 网页原文:https://developer.mozilla.org/en-US/Firefox_OS/Introduction Firefox OS(也可称它的代号“Boot to Gecko”或直接称为“B2G”)是一款基于Linux和Mozilla Gecko技术的开源手机操作系统。Firefox OS提供给应用开发者一个强大的平台来创造优秀的产品。此外,他的灵活性能够使最终用户高兴。 对于Web开发人员来说,需要重要理解的是用来显示和启动其他Web应用的整个用户界面是一个Web应用。尽管增强了对手机硬件设备和服务的访问,但对用户界面进行的任何修改和在Firefox OS上运行的任何.. 阅读全文
posted @ 2014-01-24 10:45 移动互联奇葩 阅读(412) 评论(0) 推荐(0)
  2014年1月20日
摘要: :w !sudo tee % 阅读全文
posted @ 2014-01-20 09:53 移动互联奇葩 阅读(192) 评论(0) 推荐(0)
< 2025年5月 >
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7

点击右上角即可分享
微信分享提示