Web开垦

2019-11-04 13:18 来源:未知

Web 开发 17 年的所见所得

2017/07/10 · 基础技术 · WEB, 开发建议

原文出处: Daniel Khan   译文出处:众成翻译/myvin   

webview和原生app混合开发放在原生的容器内会产生不可意料的错误,所以设计时注意:

1。通知在类中创建后,在类的delloc中就要有对应的remove方法进行释放,若不释放,会导致对应的崩溃

之前也整理过一篇web开发的书,《Web开发的营养品》,感兴趣的童鞋戳链接。

Web开发这十年都发生了怎样的变化?

关于 NodeConfBP

NodeConfBP 会议于 2017 年 1 月在布达佩斯召开,本次会议为期一天,只有一个演讲室,由 RisingStack – the Node.js Consulting & Development Company 组织并提供赞助。

下面你将会从第一人称视角感受到一个近乎完美的风格化的会议记录:

1.需求最好放在同一端进行开发,尽量避免混合需求开发

2.今天试了一个小demo,测出一个现象,同步出来:

1、CSS揭秘

亲爱的朋友们,希望你们喜欢我们现在的这个新世界。相比 2007年,它已经发生了翻天覆地的变化。很高兴看到大家仍然喜欢电脑。我们现在拥有的电脑比十年前多得多,同时这也带来了新的挑战。可穿戴设备、口袋设备、家具智能设备、自动驾驶汽车,它们都是计算机。我们还教会程序玩各种游戏,并打败了人类。当然,或许也只有喝酒这件事是电脑无法与人类匹敌的。

认识下 Daniel Khan

DynaTrace 做过的任何和 Node 沾点儿边儿的项目基本上我都过了个遍。另外,我还在给 Lynda 做辅导课程。我在当地大学教书,有三个女儿和一个儿子。

这次讲话基本上都是我的故事,涉及到了我 17 年学到的关于 Node 的一些东西。

在我看来,世间万物都是循环的,它们会反复出现,因此我们能够以史为镜,避免重蹈覆辙。

图片 1

这张照片拍摄于 1997 年,是我第一张使用网络摄像头拍摄的照片,照片上右边的那个家伙就是我。

我们购买这台 silicon graphics O2 差不多花了一辆小轿车的价钱,然后这个家伙跑过来说“现在我们正在使用网络摄像头一起拍照”。然后 哇哦 照片就出现在互联网上了,在那个时候这真的是一件特别炫酷的事情。

1998 年我就已经开始玩 HTML 了。

图片 2

当时的网站看起来和图片上展示的差不多,而且那个时候这本书还没写呢。

那个时候还木有 Google,木有 Facebook,木有 GitHub,木有 Wikipedia,也木有 StackOverflow。

那个时候我们只有新闻组,我们可以在上面提问,其他人也可以回答问题。有点儿像 email,但和 email 还是有区别的。

图片 3

时间走到了 1999 年,也就是 17 年前,我在 Square 新闻组里写下了我的问题:

  • “我正在写 web 数据库,但是我们已经有桌面数据库了呀。”

是的,Microsoft Access!

  • “我的主机支持 MySQL,但是我并不知道这是什么意思…”

我真的不知道。

  • “我知道 query 语句是如何运行了。”

其实,我完全不知道。

那个时候,我真正学到的一点是:网络永远不会遗忘。那时我真的是毫无头绪。

2.获取webview的高度时注意webview的动态获取高度问题,否则获取的内容高度不准确

object 作为 observer 监听了通知 A,然后 object 中途被释放执行了dealloc,随后app发出这个通知 A:

图片 4

Web应用

进入 2000 年

在 2000 年我成为了一名 web 开发者,当时我在给 Austrian Job Service 教 Perl,因为在那个时候,找不到工作的人基本上都能成为一名 web 开发者,在当时这是种趋势。

那个时候 Perl 语言非常难,但是既然我已经准备教 Perl 了,那就是说明…

我非常非常聪明,是吧?

但是,真相永远是残酷的:其实我一点儿都不聪明。

当我尝试在数据库中更新数据集时,因为我不知道如何实现才算合理,所以一开始我的做法是先删除然后再插入。

图片 5

那么问题来了:就我这种水平,我又怎么会认为我自己还能教学呢?答案就是:达克效应。

简单来说,达克效应就是:因为你无知,所以你不知道你自己有多无知。

图片 6

那条绿线是你认为你知道的东西,那条黑线才是你真正知道的。那个时候,我认为自己无所不知,直到我完成了大学学业–应该是在 2011 年–我才知道 “好吧,其实我知道的也就那点儿东西”。

然后,你就开始变得稍微谦虚一些了,因为你开始学习那些你不知道的东西,接着你就开始有点儿绝望了。现在,我认为我在那个绿点的位置。

iOS 6、iOS 7、iOS 8: 必挂

译者:CSS魔法

苹果之所以能够成为最大、最富有的科技公司,多半是因为 iPhone和它的操作系统iOS。谷歌也有与之相匹敌的操作系统——安卓,微软也曾试图通过 Windows Phone分得一杯羹,但没能成功。

我们去了银行…

但是不管怎么着,我设法找到了一家公司,然后买了一台服务器。这台服务器还是我们去银行贷了 15,000 欧元买的。

和之前相比,现如今变化真的很大:我们有 serverless 架构,你可以一台服务器都不用就把整个公司创建起来。

那个时候,我们不得不把服务器放在维也纳的一个数据中心的机架上。

每当服务器宕机的时候,我就得开着车到维也纳去重启服务器。

图片 7

那次我学到的东西就是:你要努力理解什么是全栈。我说的就是上面的这个全栈。

全栈,意味着你至少应该知道一点儿 web 协议、知道路由的工作原理、知道 HTTP 基本的工作机理、知道 SMTP 的工作机制。

当出现问题的时候,知道这些包是如何打包进浏览器的,知道这些东西是如何协调的是很有必要的。

iOS 9:不会挂

CSS一姐Lea Verou作品,CSS魔法执笔翻译

Eric Meyer、Jeremy Keith等前端大佬推荐

图片 8

然后夜幕降临,迎来 2002 年

现在我们是在 2002 年,我创建了一家公司。那个时候,除了澳大利亚,互联网在全球爆炸式疯长。

我们静静地等待着互联网的繁荣有朝一日能够降临到我们身上,然后一切都结束了。

图片 9

我认为这一切都是从 boo.com 开始的,这是一家运营时尚服饰的初创公司。

在那时,每个人都花大把大把的时间去投资和新经济、新媒体相关的项目,所以整个行业开始繁荣增长。

在两个月内,公司从 10 个人涨到了 100 个人。然后,boo.com 破产了。

我认为那年的互联网危机和他们有关。所有的投资者差不多都退出了,因为他们意识到新经济公司终将会失败。

图片 10

这是纳斯达克的数据。我们当时在这个繁荣阶段,紧接着一切都奔溃了。这里是 9/11,一切都随风而逝…

我在 Google 上搜索了一下,这是那个时候硅谷人的想法,你们感受下。

图片 11

我找到了一个哥们儿这样写到:

“噢,我的天呐,这简直是致命的打击。作为一个年轻的初创公司,我知道的每个人都受到了影响。我知道的大多数人都失去了工作。不久之后,我知道的大部分人都搬走了。”

在这里他写到:

“泡沫时代的对比是史诗级的。开放式的酒吧活动和神话般的发布会都已经一去不复返了。工作和公司也都没有了。不久之后,绝大多数企业家没有了安全保障–很多人回到家里重新组团。”

听着有些熟悉,是吧?

如果今天你去硅谷,看到的也是这个样子。一切都是新兴的。工作在那里的人都是这样的:

“什么?他们公司没有自助早餐?

他们没有这种桌式足球?

噢,我不想在那儿工作了–我想买架飞机。”

图片 12

这种事情随时都会重现。不过那个时候,我们看到的更多一些。

尽管如果现在我说就算这种事情发生了也不会有什么问题,但是真的当这种事情发生了的时候,就真有问题了。

真机测试。

《CSS揭秘》是一本注重实践的教程,作者为我们揭示了47个鲜为人知的CSS技巧,主要内容包括背景与边框、形状、视觉效果、字体排印、用户体验、结构与布局、过渡与动画等。本书将带领读者循序渐进地探寻更优雅的解决方案,攻克每天都会遇到的各种网页样式难题。

2008年发布的 iPhone 3GS和 2017年发布的 iPhone X

趁热打铁,抓紧机会!

我从中学到的一件事是:一定要趁热打铁,抓紧机会!我现在并没有高谈阔论地去谈钱。

我正在谈论的是通过投资于你的技能和知识来随时应对不好的时代。

拒绝平庸,对吧?!

编程语言太多了,我认为编程并不是说一定要成为一名 JavaScript 开发者或者 Node 开发者。编程是一种概念、一种思想。就比如,当你在用 JavaScript 写实例的时候,可以尝试一下 Scala 函数式编程的一些东西。

最开始我在 Lynda 和 Coursera 工作,这让我真正的理解了 JavaScript,理解了我使用 underscorejs 的原因,理解了怎样才能让需要的东西更好的融合起来。

所以我想鼓励你们的是:不要把你自己当成一个 JavaScript 开发者或者 Node 开发者,要把你自己当成一个工程师。

要学习思想、学习如何使用不同的语言去解决问题。你的视野决定你的世界,掌握知识面越广我们对问题的思考就会越灵活。

图片 13

这是我这次学习的课程。这真的很难,但是这是发明 Scala 的 Martin Odersky 做的,所以他知道他在做什么,这真的很有趣。

所有的这些资源在互联网上都是免费的,所以如果你有时间的话,可以投入一些时间和精力培养一下你的技能。

iOS 9.0 Documentation, 最新文档:

“如果你想深入探寻CSS的美妙之处、创意之处与智慧之处,那就别犹豫了——赶快翻开这本书吧。它让我爱不释手!”

我们开始管程序叫App,有些网站称自己为Web App。2008年,谷歌发布了Chrome浏览器。9年之后,Chrome成为最流行的浏览器之一。

为未来的你写代码

然后,在 2002 年到 2012 年之间我做了许多项目,大部分都是 web 项目,许多是基于 PHP 的,不管你相不相信,其中的一些项目到现在仍然在线上运行着,比如下面这个:

图片 14

它们今天还在困扰着我。因为这些应用是我在 2002 年或 2004 年或其他的什么年份完成的,我从来没有想过,在 2015年、2016年、2017年,我还能再次看到他们。

但是之后一通电话打过来了:”这个网站挂了,你能不能帮我们搞搞?”–尽管我早已经不是这个公司的员工了。

然后一万只草泥马在奔腾:

“哎呦,我去,这代码是哪个傻逼写的,写得太烂了。”

…恩,我知道这个傻逼就是我。

在我看来,写出未来的你能够理解并引以为豪的代码是很重要的!当你做一件事情的时候,要么不做,要做就把它做好。

- addObserver:selector:name:object: 是说要添加remove observer的。

——Eric A. Meyer,《CSS权威指南》作者

Chrome团队花了很多精力在JavaScript上,Web App使用了大量的 JavaScript代码。

代码的破窗效应

我最喜欢的一个理论是破窗效应–这个理论也可以应用到代码上。

想象一下,你身处一座城市,站在一座高楼面前,周围的一切都很美好。然后突然一个哥们儿跑过来打破了一扇窗户。

如果你等上几个星期再回去看,你会发现整座高楼开始腐烂,摇摇欲坠,到处都是乱七八糟的涂鸦,人们也不再 care 它了。

同样这也适用于代码,那些临时的解决方案就是高楼上的破窗,是吧?

“恩,是的,我们改天再改吧。”

然后那些临时的代码片段还保留在那里,然后等到下一个开发人员(有可能还是你噢)过来看了看这代码,然后说:

“好吧,这个已经很糟糕了,我们快速修复下,然后代码又变得糟糕了。”

所有这些丑陋的代码片段都充斥在你的代码里。就算十年过去了,你还是得处理这些代码,所以你为什么不提前和你的小伙伴商量一下?你应该这样想:

“这是一个旧项目了,让我们把这个项目重写一遍吧。”–因为这就是我们喜欢的做事的方式,对吧?

图片 15

我经常听到开发者这样说 “看,这个项目是我们两年前写的,整个技术栈都已经落伍了,我们把所有的东西都重写一遍吧,很简单的,两周就能搞定!我们已经开搞了是吧?”

图片 16

我们知道软件都有一个饱和曲线。有时候给代码添加新的特性确实很困难,所以这时候重写代码更换技术栈是完全没有问题的,但是你得注意这里的这个缺口。

当你切到一个新的技术栈时,项目就变得复杂了,从一开始就不会有相同的功能特性。

因为在整个系统中整合了很多固有的东西,所以你不能轻易重做。所以你必须意识到,如果你从头开始做某事,那么至少会有一个特性差距。

“Lea Verou那渊博的学识是无法复制的,但她在这本书中倾囊相授,令我们都有机会一窥CSS的强大威力与神奇魔力。即使你认为自己对CSS已经了如指掌,我保证这本书仍然会让你大开眼界。”

其他很多公司也在 JavaScript上投入了大量精力,现在它可以支持类和模块。一些语言可以被编译成 JavaScript,如 TypeScript(来自微软)或 Flow。

网站真的需要 React、需要同构 JavaScript 吗?

好吧,那我们就重构代码,但是网站真的需要 React、需要同构 JavaScript 吗?我知道,这些技术都很酷,我们也想用。但是,我们真的愿意每六个星期就重写整个前后端代码吗?

新技术日新月异,尤其是 JavaScript 方面的。新技术每月都会出现,而且也有公司在推动着这些新技术。

如果某项技术是 Google 出品或 Facebook 出品,那么它一定很酷是吧?因为 Google、Facebook 的这帮家伙们知道他们自己在做什么。

图片 17

所以当时就去了解了下 React,还看了看他们介绍 React 和 Flux 的那次演讲,会上他们基本上就说了这些:

“我们在 Facebook 上遇到了消息通知方面的问题,当消息被阅读了以后,状态并没有更新。”

“我们的这个 MVC 项目很糟糕,因为 MVC 本身就很糟糕,所以这个项目并没有很好地运行,所以我们发明了 Flux。”

当时,我的反应是这样的:“我勒个去,这都可以!?”

图片 18

从什么时候箭头可以从 View 层画到 Model 层了?我认为这是错误的。

之后有一个问答环节,但是并没有人提问。在座的每个人可能都是这样想的,“恩恩,MVC 太逊了,我们确实需要 Flux。”

也许她是要表述一个观点,但是这个观点她并没有表述清楚。

然后我往下滚动页面,评论区有大量这样的评论,“这不对啊,这有问题啊,这根本就不是 MVC 啊!”

图片 19

真搞不明白发布会上他们都在说什么。演讲完了,每个人都感觉 “恩,MVC 是挺逊的,我们确实需要 Flux,因为 Flux 解决了我们所有的问题…”

不过,说实话,我也没有资格谴责他们。我在会上的问答环节也没有站起来说“这个不对”,因为我向来就比较谦虚,我总是认为别人说的都是对的。~^.^~

——Jeremy Keith,《JavaScript DOM编程艺术》作者

现如今,我们更多地使用 JavaScript,因为很少人用 Flash了。我们甚至在服务器端使用JavaScript替代了 Perl,这个东西叫 Node。

保持冷静,勿信炒作

提出质疑,勿信炒作–我们早就该这样做了。

毕竟,不管是 Facebook 还是 Google,它们也只是公司。如果 Facebook 将 React 交给社区,他们就会有这样的议程。Angular 和 React 正在交付给新的开发者,或许并不是因为他们想给社区一些东西。

我们应该时刻保持清醒,在大多数的时代都不会平白无故地天上掉馅饼,所有的东西都是期望能够赚钱的。

所以如果有这种炒作的话,你确实应该提出质疑。

图片 20

毕竟,所有的这些东西都仅仅是框架,是别人的代码!

在 JavaScript 的世界里,我们喜欢谈论不必要的依赖,因为那些由互联网上的某个陌生人撸出来的代码总是完美的,对吧?

使用第三方组件真的有点儿 low,使用整个框架同样也很 low。

问题是这样的,你依赖别人的代码,当你想修改一些东西的时候,你就必须去修改他们的源码。

所以此时此刻,你并没有学习使用编程语言本身来处理问题–你学习的是别人的代码,你调试的也是别人的代码。

过去有太多这样的案例,比如 PHP 的 Symphony 框架。你有一个生成器,然后直接运行就可以了,框架已经为你生成了你所需要的一切。但是,如果在某个时刻框架底层报错了,那你就真的不知道到底是哪里出问题了。

那么问题来了:

相比于快速完成项目,不依赖其他框架自己来做不是更好吗?

在这种情况下,当出现了问题时,你就得查看代码,学习如何让它们相互配合。

举个栗子,在 JavaScript 编程语言中有模块化这一概念–这个概念在 React 中体现的尤为突出–代码被分成一个一个的模块,然后以某种方式将它们组合起来。

我尝试着搞了一个 React 项目,但是我之后就执行 npm uninstall 卸载了所有的依赖,因为仅仅为了构建一个同构 React 应用竟然被安装了这么多的依赖。

图片 21

上图中显示有 13 个依赖!13 个依赖打包出来的代码都上兆了。这种情况一定要谨慎处理啊。

2、React Native入门与实战

图片 22

不要轻信别人的代码!

对于 npm 同样有这样的问题。

图片 23

从上图中可以看到,编程世界里有 40 万个难题,是吧?所以就对应着出现了 40 万个解决方案。

上周我需要转换一些 UTF-8 HTML 字符实体–来给大家看一下我搜索出来的结果:

图片 24

针对于同一个问题,有许多模块给出了解决方案,所以选择正确的解决方案真的有点困难。

你必须查看并做决定:

  • 这个包还有人在维护么?
  • 这个包有多少个 bug?

在你用 npm 或者 yarn 来安装包的时候应该三思而后行。

同样,在你从 StackOverflow 上复制粘贴的时候也要三思而后行。

图片 25

这里是一个转换 HTML 字符实体的包。

在文档中有一处明显的错误:首先定义了 var Entities ,然后执行了 entities = new Entities(),他们在无意中生成了一个漏洞。

在 StackOverflow 上有一个问题,回答该问题的一个同学直接从文档里面复制粘贴到了 StackOverflow。

我确信下一个同学会直接将这段代码复制粘贴到他的代码里。仅仅是因为:StackOverflow 出品,必属精品。

没有人站出来说这段代码有问题。所以不管你是从 Stackoverflow 还是其他的什么地方复制粘贴代码都要三思而后行。

毕竟是别人的代码,所以你应该理解整个代码,并逐行确认代码确实如你所想的那样运行。

图片 26

响应式设计

Daniel Khan 的终极 web 开发建议

恩,最后我再说几句。对于我来说,有几条原则至关重要。

第一条关键原则(注:Don’t repeat yourself):DRY!

这条原则表示-在 Node 中代码复用很容易-不要因为某些逻辑相同就随处复制粘贴代码。

你应该将 config 文件 require 到应用中,而不是在用到 config 的地方都复制粘贴。require 以后,修改 config 文件,所有用到的地方就都同步修改了。

尝试一次加载,减轻代码,然后在需要的地方将它传递过去。因为回调函数的存在,所以在 Node 里事情就显得有些复杂。

然后,我们说说回调函数。创建能够处理函数返回值的函数是个好的选择,回调函数就是这样的存在。

是不是有点说不通?你创建了一个函数来读取数据库中的某些数据,然后调用回调函数,处理返回的数据库结果,这里最好创建一个能够处理不同返回值的回调,而不要一次一次的创建。

Yagni 原则(注:You ain’t gonna need it):“你不会需要它”

所以当你做事情的时候,问自己几个问题:

  • 这个项目有 Facebook 那么大吗?
  • 我真的需要像那样设置吗?
  • 我真的需要像那样创建吗,还是说我仅仅是预见它以后会出现?

请一定要务实!

KISS 原则(注:Keep it simple stupid)

最后一条原则:尽量简单

考虑到未来的自己,你的代码应该写的尽量简单、易理解。如果你喜欢我讲的这些编程思想,可以读读这本书:

图片 27

如果你要读书的话,请一定要读读这本–《程序员修炼之道》。书中讲到的许多规则在我讲的这些编程思想中都有所提及。

谢谢!

1 赞 1 收藏 评论

图片 28

国内第一本React Native原创图书,携程框架团队倾力打造

详尽基础 大量案例,帮助零基础读者实现跨终端App开发

移动首选解决方案,前端终极开发利器,一本书玩转React Native

还记得 Swing、SWT以及 wxWidget这些东西吗?我们在浏览器上重新发明了它们,于是出现了一些新的 UI编程模型,它们主要集中在组件化上。

《React Native入门与实战》内容分为4部分,首先简要介绍了React Native的开发基础知识,然后介绍了React Native的API、组件以及Native扩展和组件的封装,接着介绍了App的动态更新和上架过程,最后通过3个案例介绍了如何使用React Native开发原生App。

我们必须想办法设计、构建和测试响应式 App,同时还要保持它们不会太臃肿,虽然人们人手一部手机,但流量并不宽裕。

3、React Native开发指南

于是组件框架出现了,谷歌的 Angular、Facebook的 React和来自开源社区的 Vue。

图片 29

2007年,Facebook开始在美国雄起,到现在已经成为一个巨头公司。除了拥有大量的用户,Facebook也是世界上拥有最多代码的公司之一。

译者:黄为伟

Facebook的开发团队开发了很多代码,并将它们开源。他们也有自己的开发者大会,叫作 F8。大部分巨头公司都有自己的开发者大会。

React Native核心贡献者Brent Vatne强烈推荐

Twitter公司软件工程师Bonnie Eisenmen撰写

应用开发、调试、部署一网打尽

图文并茂、讲解详尽,学习起来更轻松

一本不容错过的跨平台应用开发实践指南

新的 App需要越来越复杂的 UI布局,所以CSS也需要有所变化。我们不再使用 table元素来布局图像,frame元素也差不多销声匿迹了。我们建立了新的标准,比如 CSS Floats、Flexbox和 CSS Grid。

《React Native开发指南》介绍了React Native这款JavaScript框架。在React Native中利用现有的JavaScript和React知识,就可以开发和部署功能完备的、真正原生的移动应用,同时支持iOS与Android平台。除了框架本身的概念讲解之外,本书还讨论了如何使用第三方库,以及如何编写自己的Java或Objective-C的React Native扩展。

人们不断地对这些标准进行迭代,开发出了各种框架,比如 Bootstrap、Foundation等。我们还发明了一些语言,可以将它们编译成 CSS。它们弥补了CSS的一些不足,如变量和模块化,但还不够完美。

4、JavaScript程序设计

迷茫是正常的

图片 30

如果你们感到疑惑,这是正常的,事实上,我们都会感到疑惑。现在的开发者越来越多,科技公司也越来越成功。我们曾经使用“初创公司”来描述那些增长迅速同时有点无所适从的公司,不过即使是这个词到了现在也有点过时了。

译者:贾洪峰 李松峰

数据

逐步介绍JavaScript编程所需的全部知识

提供大量精心选择的练习,让读者可以即刻测试和运用所学知识

程序员、程序和设备越来越多,数据也越来越多。我们必须不断提升计算机的处理能力来处理它们,我们也开发了一些技术从数据中挖掘有用的价值。

《JavaScript程序设计》是专门为计算机编程入门课程设计的,旨在通过从零开始介绍JavaScript编程让读者理解计算机科学的基本思想和原理。书中内容丰富全面,阐述由浅入深。主要内容有:计算的相关知识、编程的基本概念、数据、语句、函数、事件、软件架构、分布式计算、图形与动画,此外还探讨了正则表达式、递归、缓存等高级主题。

首先,出现了数据科学,旨在从数据中抽取信息。

5、精通JavaScript开发

例如,有个叫作 Waze的初创公司,他们让用户在手机上安装 App,在用户开车的时候跟踪他们的移动轨迹。因为有很多人都安装了这个 App,所以 Waze就积累了很多汽车的移动数据。他们基于这些数据开发出了可以告知用户交通拥堵情况的程序。现在,用户在手机上打开 Waze的App,就可以实时地看到哪里发生了交通堵塞,然后选择其他路线。

图片 31

后来 Waze被谷歌收购了,大部分初创公司都会经历被收购的命运。

译者:邝健威,厉海洋

图片 32

本书可以助你学习如何使用最新的浏览器API、语言特性和工具,来构建大型、结构良好、高质量、移动优化的网站和应用程序。通过本书示例,开发人员更易上手。**

一个用户在使用 Waze,屏幕上同时显示其他用户的头像

《精通JavaScript开发》是JavaScript实战指南,主要内容包括:JavaScript性能、可靠性、稳定性和代码管理分析,面向对象代码的使用,测试和错误处理机制的构建,用AMD和RequireJS管理代码依赖,移动端、游戏和实时通信的JavaScript开发,等等。

数据科学主要面临三大挑战——数据存储、数据学习和数据应用。

6、学习JavaScript数据结构与算法

数据存储

图片 33

我们现在需要把大量的信息保存下来,并从中找出哪些是有用的。我们需要新的数据库,MySQL、PostgreSQL这类数据库已经无法用于存储 TB级别的数据了(于是就有了大数据)。

译者:孙晓博,邓刚,吴双,陈迪,袁源

互联网巨头公司时常面临这样的挑战,所以他们就成为这类技术的先驱。大多数技术都是在这些公司内部先发展起来,然后再开源。

你将从本书中学到:

在数组、栈和队列中声明、初始化、添加和删除元素;

创建和使用最复杂的数据结构——图,以及DFS和BFS算法;

链表、双向链表和循环链表的作用;

用散列表、字典和集合存储不重复的元素;

二叉树和二叉搜索树的应用;

使用冒泡排序、选择排序、插入排序、归并排序和快速排序算法,对数据结构排序;

使用顺序搜索和二分搜索,搜索数据结构中的元素;

理解大O表示法、动态规划和贪婪算法的重要性。

后来出现了 NoSQL,这类数据库对传统关系型数据库的某些部分进行了改造,成为新型数据库。

《学习JavaScript数据结构与算法》首先介绍了JavaScript语言的基础知识,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、顺序搜索、二分搜索,最后还介绍了动态规划和贪心算法等常用的高级算法及相关知识。

Hadoop可以将数据保存在很多离散的计算机节点上,并定义了 MapReduce的数据处理方式。

7、JavaScript网页动画设计

接着 Cassandra出现了,它通过键和列的方式(而不是表)将数据保存在不同的节点上,还可以保证在部分节点离线时不丢失数据。

图片 34

还有 MongoDB,一个十分方便用于构建原型的数据库。在 2017年,我们对待技术的心态就像在 10年前对待明星一样——有追捧也有痛斥。而 MongoDB就相当于 10年前的五分钱乐队(Nickelback)。

译者:王沛

数据学习

业界最先进的动画库Velocity.js作者作品

揭秘开发人员如何用动画轻松提升用户体验

图片 35

《JavaScript网页动画设计》内容共分为8章,以作者开发的动画库Velocity.js为工具,简明扼要地探讨了JavaScript动画的特点和工作流方面的优势,涵盖开发者们最关心的文本动画、SVG、动画性能等问题。掌握书中内容,即可自信实现视觉上效果震撼、技术上易于维护的动画效果。

使用机器学习技术将一张普通的小狗图片变成具有艺术风格的作品

8、JavaScript Web应用开发

在数据学习阵营,人们最为关注的是机器学习。数据科学家的技术工具箱里有各种各样的工具,从分类到深度学习。他们一般使用 Python,并与开发人员一起将机器学习应用到各个领域。

图片 36

在数据科学家的帮助下,Web App可以使用 A/B测试技术。该技术使用了两个不同版本的服务器为相似的用户提供服务,看看哪个版本能够更快地达成预期目标。

译者:安道

Airbnb、Uber和Netflix等大公司同时运行着成千上万个 A/B测试,确保能够为他们的用户带来最好的体验。

构建先行,设计干净、可测试、结构良好的JavaScript应用

微服务和云

《JavaScript Web应用开发》介绍了用于提升应用质量和改进开发流程的技术。首先会教你如何制定能优化产品质量的过程,制定好过程后,每次修改代码后都会执行一些任务,每次提交后都会运行测试,还能自动部署。本书还会集中介绍如何设计模块化的组件,以及如何使用这些组件构建健壮的应用。本书主要分两大块,首先是以构建为目标实现JavaScript 驱动开发,其次介绍如何管理应用设计过程中的复杂度,包括模块化、MVC、异步代码流、测试以及API 设计原则。

像 Netflix这样的公司拥有大量的用户,他们需要确保他们的服务无时不刻在运行。所以必须管理好服务器,必要的时候甚至需要新增数百台新服务器。

9、全端Web开发:使用JavaScript与Java

这在传统的数据中心是很难实现的,Netflix的工程师使用的是虚拟机。亚马逊于 2006年推出了 AWS,提供弹性云计算,也就是 EC2,这样人们就可以使用亚马逊数据中心里的虚拟机。

图片 37

亚马逊已经推出了 80余种服务,帮助其他公司快速增长。我们称之为“云”,但其实这个名字很难有准确的定义。

译者:王群锋,杜欢

图片 38

前后端程序员必备指南,全面讲解最新的C/S应用开发范式

亚马逊提供的云服务

《全端Web开发:使用JavaScript与Java》以Java和JavaScript这两种最流行的服务器与客户端开发环境为例,全面讲解了最新的C/S应用开发范式。作者不仅讲解了很多实用的C/S开发架构,还通过各种实例进一步强化了读者的认知。

谷歌和微软也推出了他们各自的云服务,抢夺云服务市场。这些聪明人之间展开竞争,各种疯狂的创新举动开始涌现。

10、MEAN Web开发

首先,我们开始考虑如何让基础设施看起来更像代码。以前,我们必须先购买新服务器,接进键盘,然后安装各种依赖项。

图片 39

而现在,我们使用管理配置工具(如 Puppet、Chef和 Ansible)来实现自动化服务器配置。我们使用编程语言(如 Ruby)编写代码,根据配置来分配服务器。如果需要做出变更,只需要修改配置并更新服务器,最多就使用一下 SSH。

译者:陈世帝

然后容器出现了。EC2为我们提供了机器分配服务,所以我们的开发环境应该尽量与生产环境保持一致。

利用MEAN实现JavaScript全栈开发。全栈工程师的必读之书

刚开始,我们使用 Vagrant启动虚拟机,后来有了Linux容器,最后,Docker出现了。我们找到了一种可以在MacBook上运行Linux的方式,而且不需要安装完整的虚拟机。

《MEAN Web开发》从MEAN 的核心框架开始,详细阐述了每一种框架的关键概念,如何正确地设置它们,以及如何用流行的模块把它们连接在一起。通过本书的实例练习,你能搭建自己的MEAN 应用架构,通过添加认证层,开发

通过使用 Docker,我们可以创建与生产环境相似的开发环境。开发人员使用 Docker镜像,将应用部署到容器里。

MVC 架构支持自己的项目开发。最后,你将学会使用不同的工具和框架加快你的日常开发进程。

图片 40

11、学习响应式设计

Windows 10发布会上有很多人在使用MacBook

图片 41

云厂商也紧追不舍,直接在他们的云上运行容器,并提供了 Marathon和 Kubernetes这样的编配框架。有了这些框架,开发人员就不需要担心应用的伸缩、容错、监控和发现等方面的问题。服务器是可以被收回的,不过这一次我们不再给它们起什么好听的名字了。

译者:文巍

开发人员可以创建小型的应用,叫作微服务,这些微服务独立运行。又因为微服务对外部依赖较少,我们开始尝试使用更多新的编程语言来实现微服务,比如 Go语言和Java。

了解最新最全面的响应式设计原理、技术、策略与流程

我们也可以使用基于JVM的 Scala和 Clojure,以及相关的类库。Airbnb就使用了多种不同的语言和数据库实现数百个微服务。

《学习响应式设计》分为四部分,全面介绍响应式Web设计策略与技术,引领大家掌握从项目立项到网站上线的响应式设计工作流程。第一部分介绍响应式设计及其与其他网页设计方法的区别。第二部分概述构建响应式站点的基础知识、必备的HTML和CSS知识、图像处理,以及响应式设计的核心:媒体查询。第三部分带大家全面了解响应式设计的工作流程,从用户体验的角度探讨响应式设计,确保网站在各种设备上的适应性和功能完备性。第四部分深入探讨需特别考虑的设计元素,包括文字排版、响应式导航和页头,以及响应式设计的一大问题:性能。

因为微服务的出现,我们不得不重新思考编程模型。因为现在我们需要协调更多、更小型的应用。于是,ApacheKafka、Google PubSub和 RabbitMQ出现了,它们旨在帮助服务器之间进行更好的交互。Kafka最初由 LinkedIn开发,后来开源出来。

12、HTML5与WebGL编程

越来越多的开发者、软件和创意在涌现,我希望大家仍然对计算机保持兴趣。事实上,我们完全有理由这么做。

图片 42

对于初学者来说,要怎样学习才能达到企业的招聘要求呢?

译者:潘征

发展期的小伙伴,如何提升自己来增强自身实力呢?

Web 3D标准先驱作品;循序渐进上手产品级3D应用开发

学习之路:http://www.zparkedu.com/

《HTML5与WebGL编程》主要讲解如何运用HTML5及CSS3、WebGL等相关技术,开发出具有极强视觉冲击力的、高性能的3D Web应用。在这本书中,你将学习如何使用工具、框架和库,在桌面和移动浏览器中创建3D模型和动画、令人惊叹的视觉效果以及出色的用户交互。

13、SVG精髓

图片 43

译者:易郑超,何鹏飞

Web开发和设计人员必备手册,透彻讲解SVG的技术细节

《SVG精髓》将带你详细了解SVG的功能,首先学习简单的SVG应用,如绘制线条,然后逐步探索复杂的特性,比如滤镜、变换、渐变和图案等。

本书第2版扩展了动画、交互式图形以及SVG编程等内容。交互式的在线示例让你很容易在Web浏览器中实验SVG的特性。本书还为经验丰富的设计师准备了6个附录,解释了XML标记和CSS样式等基本概念,因此即使你没有网页设计的经验,也可以开始学习SVG。

版权声明:本文由19463331韦德国际发布于韦德国际1946官网,转载请注明出处:Web开垦