只接受发布货源信息,不可发布违法信息,一旦发现永久封号,欢迎向我们举报!
1064879863
16货源网 > 餐饮行业新闻资讯 > 软件开发 >  在软件开发中,追求新的技术意义大吗?


在软件开发中,追求新的技术意义大吗?

发布时间:2019-05-18 15:12:57  来源:网友自行发布(如侵权请联系本站立刻删除)  浏览:   【】【】【
用最新的主流技术,并尝试理解相比它替换掉技术,改进和原因所在。至于“用 5 到 10 年前的技术”这种说法我不是没听过,只不过首先这样的项目都是在处理 5 到 10 年前就被人解决完成了的问题,往大了
在软件开发中,追求新的技术意义大吗?用最新的主流技术,并尝试理解相比它替换掉技术,改进和原因所在。

至于“用 5 到 10 年前的技术”这种说法我不是没听过,只不过首先这样的项目都是在处理 5 到 10 年前就被人解决完成了的问题,往大了说 10 年前还没有 iOS 开发呢不是(笑)前端是如此活跃的领域,倒退 10 年人们还在烧高香期待 IE 6 解放生产力,跟你现在了解的东西几乎没有什么关系。
其次你在可以试错的时候不去尽可能的犯错,等到你必须维护一坨 PHP 代码并赖以糊口的时候你就只有哭的事了。

所以,做足功课,如果现在在前端 MVC 上的主流前沿是 AngularJS 1.4,就不要浪费时间在 1.2 上。给自己一个时间框架,然后全力以赴去试;如果到时间了还是不能解决问题,那么立刻放弃,用自己熟悉的技术把项目完成,然后再去在没有项目时间压迫的地方试验。

不要停止脚步。生产环境下还是要慎用新技术(虽然我个人很喜欢将新技术用到生产中,但是前提是已经对新技术有较深掌握)。个人学习的话,新技术提供了编程界一些最新的思想,学习了的话不无好处。追求新技术是不是有意义?

你知道所谓新技术shadow dom可以增加效率么? 据说angular2 比 1减少30%渲染所需时间。虽然没有人算过~~

追求新技术的意义肯定是在某一方面有重大进步。 为了以后更方便~更快捷~更强大

————

楼主最后问是不是要用mvc 还是angular 1.2或者1.4。
你要是以后目标后端 后台大牛mvc 足够了。 没需求上angluar.js
如果是以后找前台工作。明显你需要angular。不要过度在乎1.2还是1.4的问题。 反正你总是要升级的。 今天不做你也是明天做。 学学1.2也没坏处。不止一次问过自己这个问题。

快做了十年软件开发,这个问题上,个人是偏向保守的,下面回答几点是做了这些年的感悟,请独立思考,判断取舍。

  1. 我们编程最终是为了用户,不是为了老板,不是为了产品部门,更不是为了自己,如果程序提升了用户使用的效率和体验,程序才有价值,用户不关心她用的东西是怎么实现的,但她确实关心是否能早一点用到某个功能,某个功能稳不稳定,如果不稳定我们能多块修复,还有,这个过程会化掉她多少时间和金钱;我说这一点的目的不是要下结论我们应该总是沿用老技术,也不是要宣扬总是去尝试新技术,知道“什么时候做什么选择”比“做了什么选择“一样重要,心里要有一个标准,知道为什么这个时候我做了这样的选择,要有能说服自己的理由;选不选Angular都应该有”具体“的理由,别人说的Angular如何如何先进永远不成为理由,最多就是个参考因素;只要环境允许,我们做技术选择的落脚点都应该是对用户的实际意义
  2. 有本书叫做Facts and Fallacies of Software Engineering,有几个章节可以比较好得回答这个困然很多程序员的问题,“盲目追求新技术”带来的隐性成本,最终变成沉没成本
  3. 新技术有时候只是用一种不一样的“抽象”去做同样的事情,这时候与其把它们叫新技术,不如叫新“方法”,我还是想提醒自己用户并不关心你的技术“方法”,一个例子就是ECMAScript这些年的进化迭代,许多新的语言功能,但事实是这些是程序员自己关心的东西,用了这些语言新功能会否提升编程的简洁度,稳定性,性能等等还需时间来证明,但程序员社区已经趋之若鹜了,巴不得立刻进入ES6,ES7时代;我想说这些事没有它们看上去那么重要,我知道一定很多人不同意,但我说过了这是我个人对技术的判断;我举一个相反的例子,H264视频编码,AAC音频编码以及MP4格式都是存在很多年的技术,但是网络流媒体的发展给了这些老技术许多新机会,他们已经是如今互联网多媒体的事实标准,所以尽管不是新技术,但非常值得深入了解(如果你从事这一块),格式的统一对媒体的消费者和媒体的创作者当然是有意义的,这不仅意味着用户端的工具会更简单,流程更一致,用户端需要的处理时间成本更低,还意味着她们所接触到的视频网站的实现的简化,而这总是导向更好的用户体验,这背后的技术HTML5 video,HLS等等,都值得一并研究。说回来,这里的观点是新技术不一定新,老技术未必老。
  4. 不要太相信那些看起来能解决你所有问题的所谓新技术(我觉得Angular算一个)。承诺太多要么是因为这个技术还太年轻,没有太多人用,所以该暴露的问题没有暴露出来,该被看到的短板,人们还一无所知;要么是因为背后的团队把过多注意力放到了市场,太顾及切中市场痛点而忽略了这种技术本身设计上应该有的平衡,这就跟做一个讨好市场的RPG游戏去拿游戏里的香艳截图去吸引用户一样;我想一个技术人员并不需要资深的经验才能明白软件开发本身的开放性和复杂性,不是一个两个工具和技术的更新换代所能够彻底解决的;承诺太多的技术,往往作出不切实际的设计,为了疏通逻辑在架构概念上造一堆轮子,牺牲技术使用者的学习时间,增加他们的知识负担。这里的观念是,做项目的时候,强大全面的新首先意味着项目成本的增加。
  5. 大多数语言要学好几年才能到“熟练”的程度,不要说精通了;但大多数人会在一两年内放弃对这种语言纵深的学习,而转而横向拓展(很多人都这样,包括我自己),这并不总是坏事,因为有时候横向生发本身就是纵向的启发;我想说的是这个时候很多人可能意识不到自己其实并不怎么“熟悉”自己认为熟悉的东西;比如用PHP写Web应用,三个月半年换一个框架,但没有试过去理解第一个框架的架构和设计意图,编程技巧,可用性等等,到第二个框架的学习,还是重复那些老的概念,于是天天MVC,也只有MVC,表面上是研究新技术,实质却还是老的思维框架;但如果研究下去,一个普通的Responsibility Chain的设计与应用就可以学到很多。所以这里的观点是,技术的“老”有时候是一种认知偏见,因为你不知道自己不知道的东西。

话题可以展开去说很多,但我想就此打住,千言万语也最终依赖于你自己的研究和判断,真正的回答我相信也在这里,“你自己的研究和判断”。

上面的观点仅作参考。angular的话,你要用路由干什么?我觉得angular本身的路由功能应该很强了呀?如果你设不对的话,很可能是因为你的web service接口定义没有完全符合HTTP 1.1标准吧?或者有可能如果你看看编译原理就能找到一些可以绕过bug的方式了?

至于语言学习本身,我觉得语言可以说是贪多嚼不烂的典型,尤其python这种传统的OO语言和Javascript这种功能型语言可以说是风马牛不相及的(对于初学者而言)。所以我觉得先把其中一门大体吃透再去学下一门比较好。

不过不论如何,大四能做到这些东西还是很厉害的。坚持下去的话你一定会做的比大多数人好的多。妾以为,你这是单纯追求新技术,而不是按实际需求出发选择技术。
不过,对于楼主这类项目,本身也是学习的过程,你学到东西比实际快速完成项目重要多了。
从lz的描述来看,我觉得,lz实在不算浮躁的。

PS,有些"新"技术并不一定好,有些是在不合适的领域用更冗余的方法实现其他领域很简单的功能。我觉得作为技术人员,更应该focus在为什么会出现这种新技术上。
比如javascript大家不是用的好好的么,为什么会有coffeescript、typescript出现?
比如jquery操作dom不是挺好的么,为什么会有knockout、angularjs出现?
比如memcached不是挺好的么,为什么会有redis出现?
而且上面所说的,看似关系不大,但其实又有关系,如果你不知道你为什么要去用angularjs,你也一定会觉得MV(Whatever)是MV(What the fu*k),单纯为了发明一种技术而推出的技术不是技术,那是商品,而你是他们的产品。因为某种需求“自然而然”产生的技术是技术,你是他们的用户。
你们的项目越来越大,越来越慢,你难道不应该去想为什么慢,怎么能不慢么?

说到这儿,我想到一个故事,说MIT有几个人闲的无聊去监听俄罗斯卫星,后来尝试定位俄罗斯卫星,他们也确实做到了。有一天将军说,你们能不能用卫星定位自己?这在军事中会非常有用。于是有了GPS。对个人当然有意义了,学习新东西总是好事,对公司就不好说了。真是够了。

angular1.x并不算什么新技术。刚离开一家写react、vue的公司,加入一家写angular的。

离开的公司用的不少轮子在github上已经用ES6重写了,有的demo也用ES6写了。现在回去写angular1.4是因为它是基于ES5的,这样不必看ES6却维护ES5。当然离开最主要的是别的原因不合适。

选择angular1.x做web app难道不是因为技术成熟稳健吗?angular1.x已经有无数前人趟过坑给你填平了,ui-router文档也是非常详细,就这样了你还说的好像你是第一批趟坑的一样。

不要轻易就觉得自己已经很努力了,不然成长会很慢的。

真要玩新技术,去弄angular2啊。一般最新的技术是没有中文文档的,除非是中国人写的。angularjs我就看了3天就上手写项目了…实在不懂…你在说什么…

新技术旧技术,说白了都是一种设计模式或者开发理念,这个搞明白之后,做项目,搞开发,永远靠的都是基本功。

切勿本末倒置。我觉得好像是步子迈得太大了,所以有点儿不适应而已。
angularjs不是直接学的东西,先从js和dom开始,然后是ajax、json,再是jq之类的库,最后才是angular这些框架级别的东西。另外angular这类比较新的东西,就别指望中文资料了。

没啥好办法,要不就硬着头皮用现在的办法做完,要不就退回去用最熟悉的办法解决问题。自己决定。

但我想说的是,尽量利用年轻的时间学习英语和计算机类的基础知识吧。编程小有名气,但是挂科无数,意味着有些软件工程经验,但基础薄弱。

别像我一样,三十多了才想起来学计算机导论……(苦笑)一定要更新知识结构
否则很快成为古董!!!

学习新的技术
不会让过去的知识显得过时
而是为你点亮了又一盏路灯

相信我
身后的路灯,
虽然离你渐远
其光芒一直在助你前行

迟早有一天
你会发现
你已经点亮了地图上的所有路灯
这让你自由驰骋
一往无前

少年,冲吧!别问别人爽不爽,要问自己疼不疼

你不觉得疼你用新技术来做什么?先就自己想做的定义问题,然后看看根据自己现有的知识要怎么解决,如果能解决就开始动手,如果动手觉得工作量大/繁琐/心塞,这就是疼了,这时候看看别人怎么解决这个,过渡就很平滑,学习成本就很低。如果一直不疼,那你没事找什么事?偏个题,楼主好好学下英文吧恕我愚钝,不懂你用Python 跟你学AngularJS有什么冲突。你不会js,你就算用jquery还是会遇到很多问题。另外,能在你爱的事上提交issue ,对大多数程序员来说应该是一件美好的事吧。自己学习时要激进,要主动去了解最新的技术进展,以把握技术发展的脉博。
开发正式项目时,特别是商业项目则要保守,用最多人用的,坑己经被填得差不多的技术。少年,你这么喜欢华丽的东西,不如跟我学装逼吧。技术应该服务于项目,千万别反过来。基本功稀松
看什么都是新技术
基本功扎实
看什么都像是新瓶装旧酒新的技术本质是伴随着"重构"的,你要做一个新东西,当然用最熟练和稳定的技术,实现的差不多了,再考虑重构,web里面的前后端分离,mvc也只是新瓶装旧酒罢了,正如《modern operating system》里面所说的那样,计算机科学中各个技术发展是个迂回的过程,一些没有意义的旧技术可能会在某个时间点重新发光,现在的新技术也会很快过时。
我很久以前也很喜欢追新的技术,xx框架来了,赶紧学,而且只要官方有了v xx.xx.xx,就算不是stable version,也不想使用v xx,xx,xx-1,后来发现没什么卵用,v00.00.01里面的feature都够用了。
框架是"你为框架服务",这虽然对养成所谓的"best practise"有点用,但是你这样写出来的代码是死的,一旦出bug很痛苦(更何况现实情况是bug层出不穷呢,那就一直非常痛苦了),即使框架开源,你在漫无边际的源码中找到自己的bug原因也是非常困难的。在找这些bug的过程中,虽然可以一定程度上学到一些东西,但这些东西系统性很差 ,花费很多时间来接框架的锅是真的事倍功半。
我现在一般不会用别人的框架,而是每次重构都为自己的框架增添东西,可能自己的框架并没有那么flexiable,也不能应付所有的应用情景,但我每次都尽量完善它。
你还会发现,一些语言的feature,你自己不写框架的话,可能永远都不会用到,这对于喜欢这门语言的人是个多么大的损失啊!
所以,我最后想说的是,自己慢慢写一个小的框架吧,然后培育他,让他长大。
实际项目过程对于大多数人来说真的只是一步步google,这个过程只能让你达到你能到的最低点,但你能到的最高点,取决于你的基本功。
多看书,多写代码,少写那些所谓的实际项目(特别是那些两三个人,一个月就能做完的那种),外包更是有多远离多远,全栈工程师不需要追求,一层层的都弄懂,随时完成C++->全栈的进化。
还有,那些说("自以为了解底层越多,程序越好")的前端工作者,我忍你们很久了。
手机快没电了,知乎码字都这么费电-.-
责任编辑:
热门阅读排行
© 16货源网 1064879863