`

Java职业生涯(二)转“全栈开发者”

 
阅读更多

转自http://redis.iteye.com/blog/2006894

 

纯粹基于道德而掌握开发堆栈的每一方面的预期是合理的吗?可能不是,但Facebook这样要求。一个Facebook的员工在OSCON告诉我,Facebook只雇佣全栈开发者。那么全栈开发者是什么意思呢

 

对我来说全栈开发者是对每一层都熟悉的人,如果不真正对所有的软件技术感兴趣不会对它们精通。

 

好的开发者熟悉整个堆栈,他们是知道如何使生活周边的事更容易的人。这就是为什么在办公室我如此反对偏执的原因,当然,政治及沟通挑战在大型组织中还是按固有的套路。我认为Facebook所持有的招聘政策是:如果聪明的人用脑用心,就能在更短的时间内构件更好的产品。

 

全栈的层:

 

1.服务器、网络和服务器环境

  1. 知道哪里可能崩了和为什么会崩,没有什么是理所当然的。

  2. 适当的使用文件系统,云存储、网络资源,必须具备数据冗余和可用性的概念。

  3. 知道应用的伸缩性对硬件的需求。

  4. 什么是多线程和竞争条件?想想看,在开发机上你可能看不到这些,但是现实环境中它们就是会发生。

  5. 全栈coder还要能与运维并肩作战。提供有价值的错误信息和日志。确保它们是可靠的,因为运维会在你之前看到这些东西。(原文为DevOps

     

2.数据建模

  1. 如果数据模型有缺陷,业务逻辑和上层逻辑就要用奇怪的代码(很丑)来弥补数据模型的缺陷。

  2. 全栈开发者要能够建立合理的、标准的关系模型,包括外键、索引、视图、查找表等。

  3. 全栈开发者要熟悉非关系型数据存储(应该指的不止是NoSQL),并且知道它们相对关系型存储优势所在。

     

3,业务逻辑

 

  1. 应用提供的核心价值。

  2. 可靠的面向对象技能。

  3. 可能会用到的框架。

     

4,API层、Action 层、MVC

 

  1. 理解外部对数据模型和业务逻辑的操作。

  2. 该层会有很多框架应用。

  3. 全栈开发者要具备编写清晰、一致和易用的接口。过高的复杂度让人厌恶。

     

5,UI

 

  1. 全栈coder:a)知道如何创建可读的页面布局;b)或者明白自己需要帮助设计师。A或B,关键是要能有好的视觉设计。

  2. 掌握HTML5和CSS。

  3. JS正在逐步成为语言新锐,Javascript的世界里已经完成了很多激动人心的工作(node, backbone, knockout...)。

     

6.用户体验

 

  1. 全栈coder要知道用户需要的就是It works!

  2. 一个好的系统不会废了用户的手腕和眼睛。一个全栈coder会发现和审视需要8次点击、3步操作的流程,并最终把它一键搞定。

  3. 提供有价值的错误信息。如果崩溃了,就要向用户致歉。有时候程序员会写出让用户自我感觉很二的错误信息。

     

7.知道用户和业务到底要什么

  1. 现在我们模糊了架构的界限,但却可能远离了实际需求。

  2. 全栈coder要明确知道用户使用软件时的场景,而且要领会业务。

     

关于这个问题的其它方面:

  1. 编写高质量的单元测试能力。顺便说一下现如今连JS也可以做单元测试了。

  2. 持续集成。发掘程序构建中重复、可自动化的流程,在一定程度上自动完成测试、文档和部署。

  3. 对安全性的敏感,不同的层都可能有自己的脆弱点。

     

最后:

 

应用严重依赖一个特定的第三方实现(lib、系统、硬件等)是非常糟糕的实践。全栈开发者要知道了解全面不代表就可以走捷径。当然在抛弃原型法中,他们可以这么干。

 

在技术起步时很需要全栈开发者的多面技能。然而,在团队定型后,会越来越需要专注技能。

 

 

我不觉得在具备了多语言、多平台甚至跨行业的职业生涯之前,你可以称自己为全栈开发者。全栈远超“高级工程师”,它更接近是多语言的开发者并且能在更高的角度看到之间的关联。注意在我的列表中只有3-5项涉及到编码。

 
分享到:
评论

相关推荐

    Java柠檬班Java全栈自动化

    Java柠檬班Java全栈自动化课程是一项针对Java编程和全栈开发领域的专业培训,它针对的是...课程的设计旨在培养学员具备全面的技术能力,以便他们能够灵活应对软件开发中的各种挑战,为未来的职业生涯奠定坚实的基础。

    基于Java的Java、JavaScript、CSS、HTML全栈学习之路设计源码

    在动手实践中,学习者将能够更加深刻地理解全栈开发的概念,掌握解决实际问题的方法,从而为未来的职业生涯打下坚实的基础。 该项目是一个综合性的Java全栈开发学习资源,它通过一系列精心设计的源码和教程,为学习...

    全栈 Java 关于全栈开发详解:核心技术、优势及应用场景解析

    内容概要:本文深入探讨了‘全栈’这一软件开发概念。首先明确了全栈不仅仅是指某一个...其他说明:该资料来源于CSDN上的技术博主分享,包含大量真实案例和个人见解,可以帮助有志者更好地规划自己的职业生涯发展道路。

    2020年JAVA程序员职业生涯规划范本.pdf

    作为一名JAVA程序员,职业生涯规划至关重要,因为这决定了你在IT行业的长远发展和专业成长。在信息化日益发达的今天,JAVA因其跨平台、稳定性和丰富的库支持,成为众多开发者的首选语言。以下是一些关键的知识点和...

    【职业规划】JAVA软件工程师职业生涯规划范本 (WORD档).doc

    【JAVA软件工程师职业生涯规划】 在当今信息技术飞速发展的时代,JAVA软件工程师作为IT行业的核心角色,有着广阔的职业前景。此份职业生涯规划旨在为JAVA软件工程师提供一条清晰的发展路径,帮助他们在职业生涯中...

    java面试资料

    在规划职业生涯时,Java开发者可以设定成为技术专家的目标,比如专注于架构设计、高性能系统开发或云计算解决方案。同时,也可以考虑管理方向,如项目经理或技术领导,负责指导团队并优化开发流程。 ### 4. 对加班...

    基于Java的SpringCloud-Alibaba保姆级全栈教程设计与实践

    通过项目实战的方式,帮助开发者将理论知识转化为实践技能,为未来的职业生涯奠定坚实的基础。 本教程致力于为初学者提供一个全面且深入的学习路径,帮助他们从零开始构建微服务架构的Java全栈应用。通过对每个步骤...

    基于Java的算法练习与多语言源码学习设计

    在当今的编程教育与实践中,项目驱动的学习方法越来越...无论对于编程新手还是有一定基础的学习者,该项目都是一个不可多得的学习资源,能够帮助他们在实践中深入理解和掌握编程技术,为未来的职业生涯奠定坚实的基础。

    基于springboot+vue开发it职业生涯规划系统--附毕业论文+源代码+sql(毕业设计).rar

    《基于SpringBoot+Vue开发IT职业生涯规划系统》的毕业设计是一项综合性的项目,它结合了后端开发技术SpringBoot和前端开发框架Vue.js,旨在构建一个实用的职业生涯规划平台。这个系统不仅为用户提供个性化的IT职业...

    1000多本电子书涵盖了各个方向,包括C-C++、Java基础、Java服务器、PHP

    文档的最后一部分涉及到Linux操作系统的学习,这不仅对系统管理员或希望深入了解操作系统原理的开发者有着重要意义,也对所有希望成为全栈开发者的学习者来说,是一个不可或缺的部分。 本文档是一个集成了计算机...

    DesenvolvimentoFullStack:全栈学科竞赛

    全栈开发,也被称为全端开发,是一种涵盖前端和后端技术的软件开发方式。在这个领域,开发者需要具备从设计用户界面到构建服务器端逻辑,...这样的比赛有助于提升开发者全面的技能,并且对个人职业生涯的提升大有裨益。

    基于ssm+vue实现的美食系统.zip

    在信息技术高速发展的今天,基于Web的应用系统已经成为了企业不可或缺的一部分。...通过这个项目的实践,学习者可以更深入地理解现代Web开发的流程和框架的使用,为未来的职业生涯打下坚实的基础。

    实习实践系统 2024免费JAVA毕设

    这样的技术组合不仅能够帮助学习者掌握后端服务的搭建,还能学习到前端开发的基本技能,为成为一名全栈开发者打下坚实的基础。 整个项目的主要内容包括以下方面: 1. 源码:项目提供的源码是整个系统的核心,包含...

    java北大青鸟2年毕业项目

    总的来说,【Java北大青鸟2年毕业项目】是一个全面的实践平台,它涵盖了从基础编程到高级应用的多个层面,旨在培养具备独立开发和团队协作能力的全栈Java开发者。通过参与这样的项目,学员不仅可以巩固理论知识,还...

    课工场Web全栈工程师7月份结业考试机试试卷.zip

    【标题】"课工场Web全栈工程师7月份结业考试机试试卷.zip"揭示了这是一个针对Web全栈工程师的结业考核,时间点...通过这个考试,学员可以检验自己在Web全栈开发中的理论知识和实践能力,为未来的职业生涯打下坚实基础。

    合工大《网站设计与开发》个人网站设计Java,html,css,js,sql

    在合工大的《网站设计与开发》课程中,学生通常会接触到一系列关键技术,包括Java、HTML、CSS、...通过实际项目练习,学生不仅可以加深对理论知识的理解,还能提高实际编程能力,为未来的职业生涯打下坚实基础。

    Java程序员必会的程序

    虽然JavaScript不是Java的一部分,但作为Web前端开发的主要语言,了解其基本语法和DOM操作,能够与Java后端进行有效交互,是全栈开发者的必备技能。 通过系统学习上述知识点,初级Java程序员不仅能构建坚实的编程...

    【9101】基于springboot+vue的校园社团信息管理.zip

    通过该项目的学习与实践,学习者可以更深入地理解前后端分离开发模式,以及如何将业务需求转化为功能实现,这对于成为合格的全栈开发者十分有益。 项目文档的编写和资源包的整理,体现了开发者对项目的重视和对学习...

    【springboot9034】基于springboot+vue的在线商城系统设计与开发-代码.zip

    【springboot9034】基于springboot+vue的在线商城系统设计与开发-代码.zip是一个集教学、实践和就业准备于一体的优秀项目,通过它,开发者可以全面提升自己的技术栈,为成为一名合格的全栈开发者做好准备。

    java基于ssm+jsp 问卷调查系统源码 带毕业论文+ppt+sql

    在当今信息技术高速发展的背景下,各类软件项目开发需求日益增长,其中基于Web的应用尤为突出。...通过对该项目的研究和实践,开发者可以系统地学习到Java Web开发的关键技术点,并为未来的职业生涯打下坚实的基础。

Global site tag (gtag.js) - Google Analytics