阅读更多

2顶
1踩

非技术

原创新闻 改变开发者工作方式的15种技术

2014-08-25 14:43 by 资深记者 rnifeasy 评论(6) 有7582人浏览

以前,开发人员写的汇编代码轻巧而且运行速度快。运气好的话,如果预算充足,他们可以雇佣一些人来帮助完成这些代码的输入。运气不好的话,只能靠自己完成复杂的输入工作。

现在,开发人员要和分布在不同大洲的团队成员一起工作,这些成员使用不同字符集的语言,更坏的情况是有的团队成员可能会使用不同版本的编译器。一些代码是新编的,一些库是从很多年前创建的,代码已经无法获得。所以,要想成为一个程序员,必须要拥有团队精神和吃苦耐劳的信念。

下面我们就来梳理一下正在改变基本开发工作的15种科技技术。这些技术改变着我们与其他团队成员的合作方式,与客户的沟通方式以及我们的编程方式。

1、持续集成(Continuous integration

当把代码提交到库中以后,你就有足够的时间休息一下,喝杯咖啡,甚至可以去吃个午饭。这个时候,代码库已经与一个持续运行的编译系统绑定,开始重新编译你提交的代码,仔细检查你的代码结构,初始化多个测试程序,标记你代码中可能的问题。在离你办公桌5英尺的范围内,编译系统就通过邮件或短信将需要修复的问题发到你的手机上。重新回到工作岗位,持续运行的编译系统又有新的任务给你了。

2、架构(Frameworks)

通过复制别人的工作进而站在巨人的肩膀上已经不是什么新鲜事了,但是优势却从来没有像现在这么明显。现在只有很少的编程工作是从头做起了。最好也是最有争议的开发方法是:利用一个正确的框架,研究清楚 API,然后自己写代码使用API完成最核心的功能。网页不再是由 HTML 或者 CSS 生成的了;更多的是开始使用 Ext JS,Express JS 或者其它代码库作为编码的基础。

当然,你也可以创新并且从头开始构建所有的东西,但那是相当痛苦的。你没有办法赶上其他人做的所有工作。你不是一个技工,仅仅是一个框架修理工。在你打算自己编码之前,先了解一下已经正在使用的框架。

3、代码库(Libraries)

和框架类似的是代码库,代码库无处不在,程序员已经离不开它了。写关于浏览器的代码可以不用jQuery 吗?是否有人记得有一个内置函数 GetElementByID?像 jQuery 这样的库现在应用在各个层面。人们会谈论他们喜欢的语言,但是确很少谈论他们是怎么编程的。如果你想雇佣一些程序员,你应该多问他们一些关于代码库的知识。JavaScript的开发人员是从 jQuery 或 Dojo 发展来的吗?游戏开发人员可能会使用 C++,但是实际的问题是这些开发人员是否知道 Allegro,Unity,Corona 或者其他更多的选择。代码库的知识和语言本身的来龙去脉一样重要。

4、应用程序编程接口(APIs)

从前,程序员总需要关注数据结构。他们需要将所有的信息打包成字节块,确保将值放在正确的偏移位置。现在,编译程序为我们做了这些。

现在我们通过非常严谨的接口工作,它有一个发烧友一样的名字:应用程序编程接口。它通常在一个完全不同的机器上或是运行在其他公司的,每次调用都需要收费。你想将一个街道地址和一个邮政编码变成经纬度吗?有专门的 API 接口可以调用,并且使用的费用也相当便宜。

很多情况下,数据不需要这么死板的打包。旧的字节打包方式已经被轻量级的数据交换格式例如JSON 或 XML 取代。你需要确保你的数据格式完全正确,幸运的是有现成代码库可以用。

5、平台即服务(Platform as a service)

谁建立了自己的网站?相反的,如何在别人的网站上创建一个用户账户,并做一些定制呢?所有的这些仅仅需要的是一个网站,这样,你的站点就可以做你想做的所有事情了,比如往 Youtube 上传一个猫的视频或者在 eBay 上竞标一个佩斯饮水机。

当然,这个例子有点夸张。许多 PaaS 选项目前都要求程序员清楚的知道每个 Web 表单上放什么东西。以微软的云服务为例,你可以将用 Java 脚本语言写的用于描述网站如何响应的函数放到上面。然后,这个云服务会将这些函数打包成一个库然后放在js节点上运行。

6、浏览器(Browsers)

曾经有一段时间人们分别写桌面软件,服务器软件和设备上运行的软件,这些软件都是不一样的,软件之间相互传递信息的方式也互不相同。现在,所有的这些都使用浏览器了。当我在家里建立一个本地文件服务器来存放音乐,就可以通过一个网站登录到这个网址上。苹果的桌面窗口程序是用JavaScript 和超文本标记语言写的,已经用了很多年。很多用超文本标记语言和JavaScript 写的移动客户端的跨平台应用都和 Apache Cordova 绑定了。

当然,很多应用还在继续使用 C/S 结构。最好的游戏仍然使用客户端模式,没有使用浏览器,但是随着越来越多的JavaScript 开发者研究在画布上绘图这种情况正在改变。例如,愤怒的小鸟,就即将运行在浏览器窗口上。

7、应用程序容器(Application containers)

专门建立一个服务器来做比较困难的工作。程序员可以从服务器上获取代码然后运行,并且将运行日志发送到服务端。有时候可以得到正确的库,有时候得到的库是错误的,但最终,都会找到可用的代码库。

现在,类似 Docker 这样的应用程序容器允许我们按一个按钮就找到正确的库。如果 这个代码库可以运行在我们的测试机上,它也可以运行在服务器上。所有的东西都捆绑在一起了,那些夹在我们桌面和服务之间不兼容的东西都不存在了。

8、基础设施即服务(Infrastructure as a Service)

我提到过服务器策展人团队吗?这些人喜欢在午餐时间或下班后出去玩,但是现在他们都被聚集到了云上,像是在一个全球的数据中心那样为那些自认为是云世界中的领导者的公司工作。少数开发人员会需要服务团队为他们的新工程搭建一个新的服务。他们只需要登录一个站点,按一个按钮,就可以得到一个为他们服务的机器。特别简单,但是这些 IaaS 管理网页不会在工作结束后为你买一杯咖啡。当然,它能为你节省很多工作。

9、Node.js 和 JavaScript(Node.js and JavaScript)

在你们中的一些人出生以前,网络服务器送出静态的 HTML。后来,有人就开始研究如何构建动态的,可以和数据库交互的服务器。每个团队都需要一个人用 SQL 语言编写数据库程序,一个人用PHP 或 Java 编写服务程序,一个人设计 HTML 模板。一旦每个人都开始喜欢上运行在客户端的AJAX 和JavaScript ,这个网站就需要一个会这种语言的人。

现在JavaScript 做了所有的事情。当然,浏览器用JavaScript ,服务端(Node.js)和数据库(MongoDB 和 CouchDB)也一样。即使是 HTML 也通常是用 Ext JS 或者 jQueryMobile 这样的框架,使用JavaScript 在客户端生成的。

10、二级市场(Secondary marketplaces)

如果你想构建一个游戏,你可以自己雇佣一些设计人员,创建一个非常棒的模型集。你甚至可以雇佣一些开发人员为你的游戏增加一些视觉效果,让游戏看起来更酷。或者你可以去类似统一资源市场的二级市场购买你需要的所有部分。当我写这些的时候,构建下水道的场景的工具箱正降价30%,可以用来构建小型的或大型的游戏场景。这个销售活动在你看见这则新闻的时候可能已经结束了,价钱可能已经升到45美元了。开发人员和设计人员怎么会有这么低的价钱!

现在有越来越多的提供插件,库和其它附加软件的市场。有这么多的库和框架,开发人员也越来越多的去购买所需要的部分,编码工作越来越少了。

11、虚拟机(Virtual machines)

编写大段代码的时代已经慢慢远去了。现在大部分写出来的运行在虚拟机上的代码都被翻译成芯片可以识别的指令了。Java 虚拟机,C#/.Net 虚拟机,现在的 JavaScript 引擎都是代码的最终运行载体。

虚拟机的流行,使得这个领域吸引了越来越多的东西。过去,如果你想创造一种新的语言,你需要创建从处理器到寄存器的整个流程。现在,新的语言运行在旧的虚拟机上。Clojure,Scala,Jython,JRuby 都参与了虚拟机开发的工作,现在这个虚拟机业务是属于 Oracle的。

相似的情况也出现在浏览器领域。你可以创建你自己的浏览器和语言,也可以通过在JavaScript进行跨平台编译 。现在很多新创建的脚本语言也是这么做的。谷歌的 Web 工具包也有类似的功能:将Jave 语言转换成JavaScript

12、社交媒体网站(Social media portals)

在互联网的早期,你可以搭建一个自己的网站,然后祈祷人们可以找到它。他们需要记住你的网址。

越来越多的网站被吸引到互联网世界中,涌现出了非常多的社交网站和营销网站。如果你建立自己的网站,很可能门庭冷落,大部分用户都在社交网站和营销网站上浏览、点击。解决这个问题的办法是搭建一个社交网站或销售网站的应用,通过这种方式可以进入并集成到这些网站中。但是最后,你的应用也仅仅是一个附庸,会受到很多限制,还很可能会被轻易停掉。你还有别的选择吗?没有,你要么选择做大型网站的附庸,要门只能接受门庭冷落的现实。

13、开发工具(Devops tools)

很久以前,我们仅仅需要在一个服务器上安装软件就能满足应用需要。但是现在,我们要租用大量的服务器,需要几十,成百,甚至上千台机器,其中很多机器都需要按照需求配置,已经不是一个能用手工完成的工作了。

进入运维模式,就会有一些类似 Chef 和 Puppet 这样的工具帮助你完成这些复杂的工作。将软件推送到云端,在这些工具的控制下,可以保证所有的机器上运行的是相同的代码。这些工具替自动完成了我们以前在一台机器上的工作。

有一些服务,例如谷歌应用程序引擎已经在内部处理了这些,你需要做的仅仅是将你的应用程序告知引擎,并授权它开始工作。你甚至不知道后台到底发上了什么,你能看见的仅仅是 CPU 的占用量。

14、GitHub,SourceForge和代码共享(GitHub, SourceForge, and social code sharing)

代码共享网站可能是开源世界的最大贡献。在 SourceForge 出现之前,软件仅仅是在你的机器上创建并且代码也只属于你。如果另一些人想获得源码,他们需要找你来获得源码,当然必须要得到你的统一。

现在代码共享已经变成了一种共识。类似 SourceForge 和 GitHub 这样的网站发布了所有的代码,供所有人阅读和更新。他们为代码的维护、共享、评论提供了一个易于访问的地方。你可以通过一个入口阅读这些代码,并提出修改意见。很多项目每个星期可能有几十甚至几百万的下载量,这在以前是不可能的。

这种模式非常有优势,很多自营项目都使用这种模式。GitHub and BitBucket 这些网站还在一定程度上支持他们售卖自己开发的代码库。

15、性能监控(Performance monitoring)

早期,跟踪代码性能是一件非常容易的事。在代码执行的初始位置打印一个时间,然后在执行结束的位置打印一个时间。如果你想,你还可以把这两个时间做一个差,然后打印出来。很多问题在一台机器上是无法暴露出来。在代码上附加一个分析器可能无法暴露出真正的瓶颈,导致这种瓶颈的的原因可能是内部的一些复杂问题或者是数据库延迟。现在测试网络性能的工具不仅要测试软件本身,还需要测试软件中的每个模块。这是了解内部运行是否正常的唯一方式。当程序从在一个机器上运行演变成通过网络互相连接运行后,这是一种判断程序运行是否正常的非常重要的方式。

来自: CSDN
2
1
评论 共 6 条 请登录后发表评论
6 楼 clia 2014-08-28 21:34
这么有技术含量的15种技术怎么放到非技术下面呢?
5 楼 houyujiangjun 2014-08-26 22:49
就知道搬东西...  发文章也不知道看看 ,全是错误...贻笑大方
4 楼 sswh 2014-08-26 13:04
“价差编译”??
3 楼 rguess 2014-08-26 08:54
jueyue 写道
java 脚本是啥玩意


估计是javascript,直接外文翻译过来的。。
2 楼 dsjt 2014-08-26 08:17
有道理~~~~~
1 楼 jueyue 2014-08-25 19:50
java 脚本是啥玩意

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 加来道雄 基因编辑 纳米机器人_基因编辑,人工制造超人?科学正在成为新迷信...

    迷信,就是迷之相信,对于某件事物痴迷信任、迷惘地相信。科学,正在代替古代玄学、神学成为新的被迷信的事物。11月26日,来自南方科技大学的中国科学家贺建奎宣布,一对名为露露和娜娜的基因编辑婴儿于 11 月在中国健康诞生。这一对婴儿,因为基因的改变,能天然的免疫艾滋病,成为了免疫艾滋病的超人。或许你会以为这是人类医学史上的一次巨大成功,因为人类将有很多遗传病和因为遗传缺陷而生的病就有了新的治疗方法,也...

  • 苹果开发者技术支持电话方式改变

    目前苹果已经永久暂停4006701855中文开发者电话支持。当你再打这个电话的时候会直接语音提示你,让你到 https://developer.apple.com/contact,进入该地址,点击会员资格与账户: 随便选一个点击,会显示下面页面...

  • 2023 Google 开发者大会:Web平台新动向

    在前不久的 2023 Google 开发者大会中,谷歌提出了更加强大且开放的 Web,并且还可以可以简化开发工作并支持 AI。Google 资深开发技术推广工程师兼 Chrome 开发技术推广部主管在 2023 Google 开发者大会讲解了 ...

  • 区块链开发者如何全身心投入

    链圈是各种公链和联盟链的开发者,联盟链的开发者一般都是基于ToB的场景工作,在应用体验上与其他技术并无本质区别;公链开发者可能会持有所开发相关公链的币,也可能是共识层等基础组件开发者,不一定持有币。 ...

  • 深入了解-微信开发者工具

    深入了解微信开发者工具的运行原理。 主要介绍微信开发者工具如何编译小程序代码,如何实现小程序模拟器以及如何调试小程序。

  • 2017开发者技术和薪酬调查报告

    2017 年 Stack Overflow 的开发者调查,超过 64000 人参与,结果很有意思,我们从下面几点解读一下: 不同类型的开发者占比 开发者的年龄分布 性别 学历分布 推荐的学习方式 编程语言排行 数据库排名 最受欢迎的...

  • 坐标上海,我看见这群开发者用热爱改变世界

    在和扫地僧直播交流的一小时中我也了解到了更多关于GaussDB过往,原来它的开发者是一群对技术精益求精和充满”偏执”的程序员。 在他们身上我看到了一个字:轴,这正是这种“轴”,才能让这群工程师们坚持12年,...

  • “共码未来”——2022Google开发者大会纪行

    由于疫情的影响,中断了2年的谷歌开发者大会再次召开。9月14日到15日,迎来了2022谷歌开发者大会,来自各地的谷歌粉丝们济济一堂,共同分享谷歌的最新成果。

  • 对话CSDN副总裁-邹欣:先行动的才是赢家,践行长期主义的价值创造者终将收获价值 | COC上海城市开发者社区

    这次的活动沾了 "邹欣老师" 的光,借机拉上了 "上海城市开发者社区" 的部分成员参加了邹老师的线下 "圆桌会议" 。在欢乐、轻松、和谐的气氛中,邹老师为我们讲述了 "技术人如何应对35岁中年危机" 以及 "技术人应该...

  • 改变开发者认知的鸿蒙2.0和改变用户认知的EMUI11

    改变开发者认知的鸿蒙2.0 2019年8月9日,华为鸿蒙1.0版发布。作为国内首款真正意义上的自研系统,它一出世就被寄予了为国产信息系统突破重围、实现自主可控的重任。一年过去,鸿蒙进步十分明显。据华为消费者软件部...

  • “多元共进”--2023Google开发者大会纪行

    关于 Web 开发领域比较感兴趣,Chrome 开发者工具的改进,使它能够更好地处理现代框架生成的代码,帮助开发使用者更专注于优化应用体验,比如 Chrome 的控制台改进,打破传统的 JS 异常定位方式,如果代码有异常可以...

  • 一位底层工程师参加谷歌开发者大会后的感想

    android开发者大会,共码未来,Google IO, Android

  • 在软件开发者灵魂深处的三种角色

    我意识到深藏在软件开发者灵魂深处的3种角色-伟大 的艺术家,可以依赖的工作者,还有自私的实用主义者。 伟大 的艺术家 如果有一个声音对你说,“你不能画画。”那么你应当竭尽所能地去画,让那个声音消失。---...

  • OpenHarmony开源开发者成长计划,寻找改变世界的开源新生力

    OpenAtom OpenHarmony(以下简称“OpenHarmony”)开源开发者成长计划,是一项为鼓励开发者积极参与开发维护开源软件共建,助力开发者成长的人才培养计划。 首期开源开发者成长计划完满收官 首期OpenHarmony开源...

  • 5G改变物联网解决方案的6种方式

    为什么5G是最近记忆中最迫切期待的技术之一,为什么它在地缘政治上如此重要?因为5G有改变世界的潜力。 从2018年到2025年,运营商和投资者将在全球范围内押注约1万亿美元,希望5G成为事实上的全球无线通信标准。...

  • 带你实现开发者头条(一) 启动页实现

    对于很多初学者或者刚工作的Android新手来说,我们的项目经验还停留在做demo的阶段,有没有一种很low的感觉,并且当你真正上手做大项目的时候又不知道把自己学到的东西用上去。。有一种自己家里有座金山却不知道可以...

  • 鲲鹏开发者技术峰会·福州圆满落幕!

    ‍2020年12月30日,由福州市工业和信息化局、福州市大数据发展管理委员会、华为技术有限公司主办,福建鲲鹏生态创新中心承办,以“鲲鹏展翅、智临榕城”为主题的鲲鹏开发者技术峰会在福州圆满...

  • 趋势信息整合(01) 谷歌google开发者 那些事儿

    用 这样的方式了解谷歌最新的技术趋势 较为方便。 关于整理: 整理内容包括google开发者大会、android studio、flutter、kotlin、jetpackCompose、Hilt、workManager、TensorFlow、Android版本等的更新信息。 ...

Global site tag (gtag.js) - Google Analytics