美文网首页
全栈攻城师的技能必备点

全栈攻城师的技能必备点

作者: 新强吖 | 来源:发表于2016-09-27 16:53 被阅读92次

转载:

作为一个全栈开发人员("Full Stack Developer",简称FSD)需要熟悉以下领域的知识:关系数据库;服务器;网络和客户端。

数据库/数据源

需要清楚SQL和NoSQL区别,这是你进行架构选择的首要决定,你需要知道每种类型的区别和优缺点。至少你应该知道两种数据库的实现,比如MySQL和Oracle,需要掌握SQL语句,以及不同数据库的方言。

NoSQL这里应该了解类似 MongoDB 和 ArangoDB之类数据库,对JSON之类语法和SQL风格的语法熟悉掌握,比如下面两种查询都是基于同样数据结构和同样用户意图:

// BSON

sample.bar.find({}, { foo: 1 }).limit(2)

// AQL

FOR row IN bar

LIMIT 2

RETURN { foo: row.foo }

此外,需要了解 DB normalization,对数据库进行normalize能够获得更好视图和扩展性,也能导致更小的数据和更好性能。除了normalization,每个DB都有特殊优化方式,比如FLOAT和DECIMAL不同会影响性能等等。

服务器/数据处理

首先询问自己的问题是:我的应用是如何工作的?使用许多静态内容?还是得动态产生内容?需要实时通讯吗?这些问题的答案会帮助你决定是需要Apache/Nginx Node.JS, Java, Go, Erlang, Python等服务器,如果你的站点有很多静态内容并不需要实时通信,你应该尽量简单化,一个简单的HTML预处理器,比如PHP 或 embedded JS 或 Mustache JS 就足够了,也许还会需要缓存,比如Varnish。

编写你自己的应用有很多苦难,需要你从众多语言中挑选,创建网络监听器,编写协议分析器,这些都是在你完成应用逻辑之后都需要做的,除了了解JSON和XML数据格式,还应该了解RESTful, RPC和会话,这些都是有关数据通讯或存储的方式,会话中保存的是用户是否登录的状态,状态作为变化数据的另外一种代称,是存储信息的唯一配置。

安全也是应该关注的地方,可以容易通过OWASP ASVS checklist实现。

设置好接口和通讯后,需要考虑优化性能,缓存是你应该考虑的事情;第二个提升性能办法是压缩数据,能够提升传输速度,最经常使用压缩算法是gzip,更小的blob数据比如小于256字节会在压缩时变得更大点。

网络/数据传输

虽然只需要通过很简单的HTTP代码就可以实现客户端浏览器和服务器之间的数据通讯,TCP/UDP等底层协议都被隐藏起来,但是为了提高性能、安全和流量,还是需要了解TCP基础知识,然后是HTTP协议,有许多头部信息和实现都必须详细了解。

在这些协议之上,通用的数据结构如XML和JSON应该知道如何使用。

客户端/数据表现

HTML CSS和Javascript是必须掌握。

语义HTML能够支持盲人阅读器或其他机器读取你的HTML,此外,可访问性也是很重要的,创建交互性用户体验。icroformat提供传输信息给用户的标准方式,能够增强UX用户体验。

CSS也需要了解normalization,HTML5Boilerplate是一个默认的CSS模板;你要知道响应式设计responsive design;小屏幕手机上client hints是有用的。考虑使用Bootstrap之类框架,能够进行增加规则,同时防止大框架造成的过载,移除不用规则,最小化使用它。

确定你需要JS框架才加入它们,如果你希望AJAX调用,VanillaJS就够用。JQuery、Angular和React都是现代常用框架。

通用编程

不管你使用JS或PHP或Ruby等,需要知道点如何创建坚固架构。

易于维护,易于开发,有性能hot-path,没有泄漏,有资源生态经济系统。

至少需要了解编程模式在心。同时试图更深理解你的标准库包是如何工作的,搞点黑技术。

相关文章

  • 全栈攻城师的技能必备点

    转载: 作为一个全栈开发人员("Full Stack Developer",简称FSD)需要熟悉以下领域的知识:关...

  • iOS 全栈攻城狮 —— 服务器开发

    全栈攻城狮的定义 全栈工程师,也叫全端工程师,英文Full Stack developer。是指掌握多种技能,并能...

  • 一名全栈工程师的必备工具箱

    全栈工程师,也叫全端工程师,是指掌握多种技能,并能利用多种技能独立完成产品的人。全栈工程师熟悉多种开发语言,同时具...

  • 全栈测试工程师,技术栈真的全面吗?

    Time will tell. 一、什么是全栈测试工程师? 全栈工程师,指掌握多种技能,并能利用多种技能独立完成产...

  • 全栈工程师真的全栈吗?

    什么是全栈测试工程师? 全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人,也叫全端工程师(同时具备前端...

  • 全栈测试工程师

    什么是全栈测试工程师? 全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人,也叫全端工程师(同时具备前端...

  • Angular 2

    背景 作为一个全栈工程师,前端 JS 库的使用是必备的技能。除了老牌的 jQuery,当下还有 React/Ang...

  • 我的全栈技能树

    成为一名技能全面而又有所精通的全栈工程师,是我的目标。下面就分享一下我自制的全栈技能树。希望我能够一一点亮技能,不...

  • 全栈运营成长之路

    全栈这个概念最开始是来源于全栈工程师,指一个工程师,能掌握多种技能能运用这些技能独立完成产品开发过程。而全...

  • java骨灰级程序员推荐:全栈学习路线,15K月薪稳拿offer

    全栈工程师,也叫全端工程师,英文FullStackdeveloper。是指掌握多种技能,并能利用多种技能独立完成产...

网友评论

      本文标题:全栈攻城师的技能必备点

      本文链接:https://www.haomeiwen.com/subject/caderttx.html