• 关于

    编码方案问题怎么解决

    的搜索结果

问题

DeleteMultipleObjects中ContentMD5字段内容怎么计算

正在用OSS的api开发一个sdk,现在做到Delete Multiple Objects这里了。 第一次开发sdk,好多问题。之前遇到的问题我都自己解决了,现在Content-MD5这个字段为...
一折 2019-12-01 21:25:28 19509 浏览量 回答数 10

回答

骚年啊,资源文件名不要有中文啊,这可是常识啊 而且文件名不要有空格,不然容易悲剧 ######回复 @汪兴 : 有一个办法规避,就是上传的文件名更名为hash,实际上很多网站都这么做的,最终在页面上的url可以看到就是一个hash文件名,实际的文件名通过别的方式保存,下载的时候将文件改名即可。######没办法啊,资源文件是用户上传的,word文档这种肯定是有中文的呀###### 非要解决这些中文乱码问题的话,需要考虑一下服务器编码问题了。 检测一下服务器的编码,我怎么感觉不像是utf-8,而是posix(locale显示为C),否则应该显示为乱码,而不是问号。使用这个命令看一下: locale,检测一下变量,是不是UTF-8的字符编码。如果是的话,把你的终端字符集也改成utf-8编码,再ls列一下 其次,各大linux/unix发行版默认编码UTF-8,文件名和文本编码尽量全用UTF-8编码,不是的话转一下。 最后,如果访问的HTTP URI中有中文编码的话,应该在tomcat的server.xml配置文件中的connector配置段加上URIEncoding="UTF-8",来防止传递的URL中中文字符出现乱码。 差不多解决方案就是这样。由于中文编码遇到的问题会比较多,所以不建议文件名出现中文,更不要有路径中出现空格,不然会带来很多处理上的麻烦。 ######回复 @汪兴 : 是在没搞明白你说的是哪里乱码了,你又说程序运行没乱码,又说程序显示不对,有乱码。到底有没有乱码?有没有截图?有没有运行过程?提问信息要完整,要有相关的截图或日志,要有你的猜想以及做出的尝试。######我把locale改了,本来是C,改成了UTF-8,但这种情况只是ssh显示正常了,但是程序里还是不对,TOMCAT里UFT-8也加上了,Dfile也加上了,都没没用,但是java程序运行就 没乱码,很郁闷啊######不作死就不会死######FreeNAS可以安装Tomcat么?######可以的
kun坤 2020-06-08 11:17:23 0 浏览量 回答数 0

问题

10+年程序员总结的20+条经验教训

开发 1.从小事做起,然后再扩展 无论是创建一个新的系统,还是添加功能到现有的系统中,我总是从一个简单到几乎没有任何所需功能的版本启动,然后再一步一步地解决问题,直到...
雅蕾 2019-12-01 21:56:26 7714 浏览量 回答数 0

回答

最好能统一把问题理好,再发邮件过去。否则,还是私下沟通更好。毕竟连续的几封邮件,人家老板以为出了什么大事呢。影响不好。######我的工作就是帮助他们完善接口,即使他们的接口烂得一塌糊涂也无所谓+1。###### 要是提供的接口服务里有BUG,还这种语气,的确有些不对了。 可对方说“方案无异议”,你说“对方提供的数据有缺少项目” ,这个感觉里面有内容啊 ######要通过统一的正式的流程走吧,你这今天提一个,明天提一个,确实不太好。你汇总一下,一起发过去,最好通过公司接口人######我的工作就是帮助他们完善接口,即使他们的接口烂得一塌糊涂也无所谓。######当对方接口正确来编码,后续出问题,你只要提供正确的调用参数日志,出啥问题都没你事######嘛蛋这是变相给他们测试接口吗,一次两次就算了,如果问题太多,打得他妈妈都不认识######沟通方法错了。应该是先非正式沟通(电话),以求达成一致意见,再正式沟通(邮件)记录问题,走下一步流程。######大仙来了。###### 你是有没用过中国淫联的sdk吧,那个才叫恶心 ######有问题一次性说完,陆陆续续发三个邮件这不是存心让别人过不去?######回复 @庄煌炜 : 总好过你什么建议都没给上来就SB######回复 @喜爱糖葫芦 : 这个SB @不日小鸡 确实说话,让人反感~######回复 @喜爱糖葫芦 : 请看我楼下两层给出的答案######怎么没关系,他改完代码,结果改完代码又出问题了,难道我不应该提么。######回复 @喜爱糖葫芦 : 这跟代码没有关系,这是做事方式的问题######码农何必为难码农,你这是一直为难对方的码农啊,你发现一个提交一个,为啥不一次性整理完? 一次性处理? 难道是你反映的他们没能处理好?######按常理,应该一并提交,有些代码质量实在太差的,一个bug过不去,后面没法玩了,这种就必须严厉的指出问题,耽误进度######如果第一个bug没解决不能往下进行怎么办?如果他们修改完一个bug后又出现了新的bug怎么办?您是怎么把引起的新bug和之前的bug一起提交的?######我觉得还是整理一下一起提出,最好先qq私聊沟通一下。
kun坤 2020-06-08 18:00:53 0 浏览量 回答数 0

回答

1 密码键盘:新国都的 G101银联密码键盘还挺好用。 2 系统对接:密码键盘是和POS机配合使用的,所以间接通过POS机和Web对接。######直接调用银联支付接口就行了,关心密码键盘干什么,从你开始调用支付接口,到支付完成,这中间的所有东西都是银联的接口去负责,不需要你去参与,银联也不会让你参与,支付完成后,银联会给你的服务器发通知,接到通知后处理订单数据就可以了######他应该是要硬件,像银行窗口那个小的密码输入键盘######直接找对应的厂商就可以######居然想接,中国山东找蓝翔.....######我们公司用的是王府井的解决方案,目前还不错。###### 引用来自“泡在妞里的feel”的评论 1 密码键盘:新国都的 G101银联密码键盘还挺好用。 2 系统对接:密码键盘是和POS机配合使用的,所以间接通过POS机和Web对接。 密码键盘我们已经找了几个厂商。 其实我们要的是支持刷卡的POS机。 现在问题是怎么让POS机和Web系统进行对接,应用场景我在问题后面补充说明了,请问有什么解决方案吗?  ######你的意思是:把POS读到的卡号信息和密码键盘读到的密码(密文形式)显示到PC的web上。如果是这样,那也很简单啊,一般POS都会有RS232接口或者USB接口,这个接口就可以将账号和密码(密文形式)传送到PC,继而在web显示。 但是,这其中有个安全问题,一般符合银联规范的POS机,是不会把持卡人的账号和密码等敏感信息,让外界轻易获取到的(如上RS232和USB),除非你的POS机是定制的。###### 引用来自“夜苍狼”的评论直接调用银联支付接口就行了,关心密码键盘干什么,从你开始调用支付接口,到支付完成,这中间的所有东西都是银联的接口去负责,不需要你去参与,银联也不会让你参与,支付完成后,银联会给你的服务器发通知,接到通知后处理订单数据就可以了 不只是银行卡,还有可能是会员卡。 然后希望用户的卡号信息和密码【密文方式】能够在WEB系统的浏览器界面体现出来。######  现在是这样的情况: 我们的应用场景为: 我们自己的WEB系统运行在PC机上,涉及到交易过程,在窗口有一个类似表单的窗口,有账号和密码框。 我们希望这个交易过程通过用户在POS机上刷卡(不仅仅是银行卡,也可能是会员卡),用户刷卡之后,在POS上输入密码,用户的卡号和密码信息会显示在WEB界面的窗口上,其中密码是密文处理的。###### 引用来自“泡在妞里的feel”的评论 1 密码键盘:新国都的 G101银联密码键盘还挺好用。 2 系统对接:密码键盘是和POS机配合使用的,所以间接通过POS机和Web对接。 引用来自“我是林海风”的评论 密码键盘我们已经找了几个厂商。 其实我们要的是支持刷卡的POS机。 现在问题是怎么让POS机和Web系统进行对接,应用场景我在问题后面补充说明了,请问有什么解决方案吗?   嗯嗯,是的,是计划定制POS机。 数据传输会加密处理,我们自己会管理密钥。 这两天也在跟厂商沟通,他们的确要做一些编码工作。 另外,还想跟你请教一下,在浏览器这一块,有没有比较常规的控件支持这类场景?OCX控件?###### 引用来自“夜苍狼”的评论直接调用银联支付接口就行了,关心密码键盘干什么,从你开始调用支付接口,到支付完成,这中间的所有东西都是银联的接口去负责,不需要你去参与,银联也不会让你参与,支付完成后,银联会给你的服务器发通知,接到通知后处理订单数据就可以了 需要带刷卡功能,和银行办业务外设的那种密码键盘还是有区别的。
kun坤 2020-06-04 18:07:20 0 浏览量 回答数 0

问题

程序员报错行为大赏-配置报错

Maven本地仓库配置报错:配置报错  GO语言配置什么的都没问题,但就是LiteIDE配置不好。。。:配置报错  Maven 配置nexus仓库 POM文件报错:配置报错  10个你可能从未用过的PHP函数:配置报错  QT...
问问小秘 2020-06-11 13:18:25 6 浏览量 回答数 1

问题

求大神们帮忙看看一个关于监控设备的BS架构的解决方案

目前有个项目需要实现把海康的摄像头集中起来在网页中,去在网页中去实现海康自己的程序所能实现的功能,对摄像头录像的实时播放,回话,有云台的控制,这些都移植到网页上ÿ...
因为相信,所以看见。 2020-05-24 22:06:34 2 浏览量 回答数 0

回答

怎么没人讨论啊?  阿里云客服解答一下也可以啊.. ------------------------- 引用第2楼ace_php_faq于2014-11-18 15:56发表的  : 海量数据处理,odps 吗? 你是针对第一种情况吗? 不过我压根没怎么看懂阿里云这个产品. 你已经用过了? 能否说说第一种情况使用时的该产品架构运作过程? ------------------------- 回 6楼(千鸟) 的帖子 以陌陌的附近的留言功能为例. 海量留言. 我用数据库来存放,然后再通过坐标获取附近XX公里内的所有用户留言内容. 内存即使用KEY_VALUE存取, 还得按条件获取(如附近XX公里内的所有留言), 还得按时间排序出来. KEY VALUE直接搞不定. 即使用了RDS数据库, 搜索起来方便了, 但是海量动态数据, 筛选和排序并返回给用户.(当然还有增加), 肯定非常吃力吧. 所以我觉得你说的太简单了点了吧...这两个东西压根就不适合当针对那个需求的架构. ------------------------- Re:回 7楼(huangjinshe) 的帖子 引用第8楼啊里新人于2014-11-20 15:24发表的 回 7楼(huangjinshe) 的帖子 : 你的业务场景之前没考虑过,想这种高大上的产品不应该有一个人来做, 而且关于数据存储,阿里只是一个服务空间,你怎么存储是作为一个技术应该考虑的。 另外视频转码的事儿,你说的什么cpu就不清楚了,不是搞那一块的。 谁说一个人做? 也是一个团队做呀. 阿里只是服务空间?  现在的阿里远远已经不但是服务空间, 而是一个综合平台. 通过提供强大的技术和服务让用户使用更好的解决方案. 所以我才想和大家一起讨论在阿里云如何集成阿里云的产品来实现这些. ------------------------- 回 10楼(啊里新人) 的帖子 确实, 必须调用支持Intel Quicksync的CPU才能发挥好的性能. ------------------------- 回 12楼(啊里新人) 的帖子 这话说的好像别的服务器不是透明的一样? ------------------------- 引用第13楼千鸟于2014-11-21 20:51发表的  : 阿里云只负责提供基础服务,具体的核心业务应该是应用层考虑的 阿里云马上就推出编码业务了. 你不想不意味着阿里云不整. 况且我说的也不是非基础服务. 只剩下另一个问题了. ------------------------- Re:回 14楼(huangjinshe) 的帖子 引用第16楼啊里新人于2014-11-24 10:10发表的 回 14楼(huangjinshe) 的帖子 : 。。。。这里貌似只有阿里,我也就说ecs咋回事儿了。再说了别家的也不叫ecs吧。。。 你太敏感了 我说的是哪家服务器不是透明的? 跟ECS没啥关系啊.... 你也真是的....答非所问啊...
huangjinshe 2019-12-02 01:00:21 0 浏览量 回答数 0

问题

基于大数据的全球电商系统架构性能优化【精品问答集锦】

本期请来了阿里巴巴速卖通技术总监郭东白(阿白)直播分享基于大数据的全球电商系统架构性能优化 阿里巴巴速卖通技术总监。主要从事云计算和互联网电商领域的研究。有十六年大型软件系统研发和架构经验,对跨大洲、高可用、高流量服务端软件架构和研发有深...
管理贝贝 2019-12-01 20:28:14 29317 浏览量 回答数 13

问题

【javascript学习全家桶】934道javascript热门问题,阿里百位技术专家答疑解惑

阿里极客公益活动:或许你挑灯夜战只为一道难题或许你百思不解只求一个答案或许你绞尽脑汁只因一种未知那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了他们用户自己手中的技术来帮助用户成长本次活动特邀百位阿里技术专家对javascript常...
管理贝贝 2019-12-01 20:07:22 6202 浏览量 回答数 1

问题

从一道面试题谈谈一线大厂码农应该具备的基本能力 7月16日 【今日算法】

##关于一线码农的面试,我想说 求职面试在绝大部分人来说都是必不可少的,自己作为求职者也参与了不少面试(无论成功或者失败),作为技术面试官参与面试也有四五年的经验&#x...
游客ih62co2qqq5ww 2020-07-22 13:45:47 118 浏览量 回答数 1

回答

1、Dependencyannotations:<arel="nofollow">{@org.springframework.beans.factory.annotation.Autowired(required=true)}at 2、org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)at, 根据上面的异常信息提示:<arel="nofollow">1、Autowired默认是true,对于不存在的bean,你去引用会报错;2、BeanDefinitionValueResolver异常说明你这个dao的定义有问题,要么没配置,要么引用错误。 我的想法是:1、你这个loginDao如果没配置的话,需要进行配置,id不要重复了。2:、loginDao如果已经配置,建议使用@Qualifier("loginDao")进行标注说明你到底要使用哪个dao。3、建议对dao层进行自动注入配置:<loxia:dao-configbase-package="com.manage.dao"/>,希望对你有所帮助,不对的地方请见谅 我解决了。。。但是具体原因我自己也不是很清楚...不知道怎么的就好了。。。差了很久也无果。。。不管了,现在spring+mvc正常了,我加了jpa又有问题了。求教啊大婶http://www.oschina.net/question/1435284_143221配置文件呢? <imgsrc="http://www.oschina.net/js/ke/plugins/emoticons/images/3.gif"alt=""/>回复<aclass='referer'target='_blank'>@无尽的编码:无效...这个在配置文件里面加bean,和在loginDao中加@Repository应该是一个效果吧,还是一样报错回复<aclass='referer'target='_blank'>@M_and_7:<beanid="userDao"class="..."/><beanid="userService"class="..."><propertyname="userDao"><refbean="userDao"/></property></bean>我附上去配置文件没有什么特别的,<spanstyle="font-family:Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">LoginDao需要加@Responsitory注解 回复<aclass="referer"target="_blank">@程序员Joe:1111@Repository已经加了http://java-true.iteye.com/blog/796357到这里看看,你试一下@required设为false。我公司不能上网,那pad没法帮你测试设为false以后。。启动倒是不报错了,问题是程序走到loginDao.login(user)时调用不到loginDao里面的方法。<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">异常中有这个描述NoSuchBeanDefinitionException:Noqualifyingbeanoftype[com.simple.dao.LoginDao]foundfordependency:expectedatleast1beanwhichqualifiesasautowirecandidateforthisdependency.你加@Qualifier试试行不行 <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;line-height:normal;background-color:#FFFFFF;"><context:component-scanbase-package="com.simple.dao,com.simple.mvc.service"/> <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">LoginDao不在这个包里吧,所以找不到。 Cannotresolvereferencetobean'securityManager'whilesettingbeanproperty'securityManager'; 其他地方没有问题,是这里出现问题了,你的shiro配置问题。上面给出的方案都是脚痛医脚,头痛医头。shiro才是你的病痛根源。在Dao上加注解 @Repository
爱吃鱼的程序员 2020-06-22 13:05:46 0 浏览量 回答数 0

问题

困境:我应该学习Seaside还是Python框架?

我知道这有点主观,但是,如果您愿意穿上鞋子,您会在学习上投入时间吗? 我想编写一个Web应用程序,该应用程序可以安全地处理相对少量的人们的私人数据,几千条...
祖安文状元 2020-02-21 17:28:56 2 浏览量 回答数 1

问题

备战大厂每日挑战算法,坚持打卡更有社区定制周边奖品等你赢!

算法工程师,一个听起来非常高大上的职业~ 不但轻轻松松月入过万,更是进入大厂必考的题目。如何通过大厂算法岗面试?如何轻轻松松拿到高薪?如何成为算法技术大牛? 今天开发者...
被纵养的懒猫 2020-04-07 11:41:45 5309 浏览量 回答数 5

回答

方法里写的是啥内容回复<aclass='referer'target='_blank'>@快速开发师:可能我接触的场景基本没有太多重复编码工作吧,感觉理解不到这个技巧要解决什么问题;-P。每个项目里自己根据特定的项目预先定义各自的代码,我只不过提出了一种批量替换的可行方案;回复<aclass='referer'target='_blank'>@快速开发师:不是很明白,每个项目代码都不同,我这里怎么统一写内容呢?你自己写的什么就是什么 http://www.eova.cn/ 别人做的系统,可能这样举例就比较容易明白。 我一般遇到大量重复工作都做成可配置的组建,自动生产出功能,至今没遇到需要生产代码的场景。回复<aclass='referer'target='_blank'>@快速开发师:我说的自定义组件范围很广,刚才就用你的做了一个自定义组建<divsidxxx><p>helloworld</p></div>回复<aclass='referer'target='_blank'>@乌龟壳:麻烦,拜托,我不需要自定义组件,也不要把我写的跟跟那什么非要集成他的类似于这种1:publicclassMyControl:Control2:{...7:}相比,我只是拖拽容器,容器里放的是什么是什么,我最讨厌的就是这种强迫行为。回复<aclass='referer'target='_blank'>@快速开发师:我并非否认你的工作成果,只是觉得这个世界是守恒的,快速开发的前提是有人帮你做了铺垫,如果从整体上来看,其实无论那种方式工作量都必须存在的。所以要快速开发除了不要制造负面障碍,如很多java框架特别是ORM徒增开发复杂度,就是帮别人多写点代码,写得越多(越对)别人开发越快。至于生成代码还是做成组件还是不讨论了吧。回复<aclass='referer'target='_blank'>@快速开发师:不知道你用过VisualStudio没有,你做的是它的子集,包括你强调的自定义控件。另外拖拽和生成代码还是生成配置,完全是不相干的事情,拖拽是拖拽,生成什么是后面转化的事。由于你只写了几百行不到的代码,所以功能有限,只是在某一方面可以做到快速制作界面(因为你预先做好了那些代码),其它方面比如设计一个门户网站,拖拽并不能降低工作量。感觉我们偏题了~~~回复<aclass='referer'target='_blank'>@乌龟壳:跟你解析一下,我这个拖拽,只是拖,任何代码放进去就可以了,拖拽跟你何种组件没多大关系。面向接口编程非也,是面向人脑编程,就是”copy改“省了很多copy步骤,把需要copy的代码预先定义到代码里等待被替换,替换就是改,改个名字而已。
爱吃鱼的程序员 2020-06-09 13:53:15 0 浏览量 回答数 0

回答

Go 的优势在于能够将简单的和经过验证的想法结合起来,同时避免了其他语言中出现的许多问题。本文概述了 Go 背后的一些设计原则和工程智慧,作者认为,Go 语言具备的所有这些优点,将共同推动其成为接替 Java 并主导下一代大型软件开发平台的最有力的编程语言候选。很多优秀的编程语言只是在个别领域比较强大,如果将所有因素都纳入考虑,没有其他语言能够像 Go 语言一样“全面开花”,在大型软件工程方面,尤为如此。 基于现实经验 Go 是由经验丰富的软件行业老手一手创建的,长期以来,他们对现有语言的各种缺点有过切身体会的痛苦经历。几十年前,Rob Pike 和 Ken Thompson 在 Unix、C 和 Unicode 的发明中起到了重要作用。Robert Griensemer 在为 JavaScript 和 Java 开发 V8 和 HotSpot 虚拟机之后,在编译器和垃圾收集方面拥有数十年的经验。有太多次,他们不得不等待 Google 规模的 C++/Java 代码库进行编译。于是,他们开始着手创建新的编程语言,将他们半个世纪以来的编写代码所学到的一切经验包含进去。 专注于大型工程 小型工程项目几乎可以用任何编程语言来成功构建。当成千上万的开发人员在数十年的持续时间压力下,在包含数千万行代码的大型代码库上进行协作时,就会发生真正令人痛苦的问题。这样会导致一些问题,如下: 较长的编译时间导致中断开发。代码库由几个人 / 团队 / 部门 / 公司所拥有,混合了不同的编程风格。公司雇佣了数千名工程师、架构师、测试人员、运营专家、审计员、实习生等,他们需要了解代码库,但也具备广泛的编码经验。依赖于许多外部库或运行时,其中一些不再以原始形式存在。在代码库的生命周期中,每行代码平均被重写 10 次,被弄得千疮百痍,而且还会发生技术偏差。文档不完整。 Go 注重减轻这些大型工程的难题,有时会以使小型工程变得更麻烦为代价,例如,代码中到处都需要几行额外的代码行。 注重可维护性 Go 强调尽可能多地将工作转给自动化的代码维护工具中。Go 工具链提供了最常用的功能,如格式化代码和导入、查找符号的定义和用法、简单的重构以及代码异味的识别。由于标准化的代码格式和单一的惯用方式,机器生成的代码更改看起来非常接近 Go 中人为生成的更改并使用类似的模式,从而允许人机之间更加无缝地协作。 保持简单明了 初级程序员为简单的问题创建简单的解决方案。高级程序员为复杂的问题创建复杂的解决方案。伟大的程序员找到复杂问题的简单解决方案。 ——Charles Connell 让很多人惊讶的一点是,Go 居然不包含他们喜欢的其他语言的概念。Go 确实是一种非常小巧而简单的语言,只包含正交和经过验证的概念的最小选择。这鼓励开发人员用最少的认知开销来编写尽可能简单的代码,以便许多其他人可以理解并使用它。 使事情清晰明了 良好的代码总是显而易见的,避免了那些小聪明、难以理解的语言特性、诡异的控制流和兜圈子。 许多语言都致力提高编写代码的效率。然而,在其生命周期中,人们阅读代码的时间却远远超过最初编写代码所需的时间(100 倍)。例如,审查、理解、调试、更改、重构或重用代码。在查看代码时,往往只能看到并理解其中的一小部分,通常不会有完整的代码库概述。为了解释这一点,Go 将所有内容都明确出来。 错误处理就是一个例子。让异常在各个点中断代码并在调用链上冒泡会更容易。Go 需要手动处理和返回每个错误。这使得它可以准确地显示代码可以被中断的位置以及如何处理或包装错误。总的来说,这使得错误处理编写起来更加繁琐,但是也更容易理解。 简单易学 Go 是如此的小巧而简单,以至于人们可以在短短几天内就能研究通整个语言及其基本概念。根据我们的经验,培训用不了一个星期(相比于掌握其他语言需要几个月),初学者就能够理解 Go 专家编写的代码,并为之做出贡献。为了方便吸引更多的用户,Go 网站提供了所有必要的教程和深入研究的文章。这些教程在浏览器中运行,允许人们在将 Go 安装到本地计算机上之前就能够学习和使用 Go。 解决之道 Go 强调的是团队之间的合作,而不是个人的自我表达。 在 Go(和 Python)中,所有的语言特性都是相互正交和互补的,通常有一种方法可以做一些事情。如果你想让 10 个 Python 或 Go 程序员来解决同一个问题,你将会得到 10 个相对类似的解决方案。不同的程序员在彼此的代码库中感觉更自在。在查看其他人的代码时,国骂会更少,而且人们的工作可以更好地融合在一起,从而形成了一致的整体,人人都为之感到自豪,并乐于工作。这还避免了大型工程的问题,如: 开发人员认为良好的工作代码很“混乱”,并要求在开始工作之前进行重写,因为他们的思维方式与原作者不同。 不同的团队成员使用不同的语言子集来编写相同代码库的部分内容。 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/e64418f1455d46aaacfdd03fa949f16d.png) 简单、内置的并发性 Go 专为现代多核硬件设计。 目前使用的大多数编程语言(Java、JavaScript、Python、Ruby、C、C++)都是 20 世纪 80 年代到 21 世纪初设计的,当时大多数 CPU 只有一个计算内核。这就是为什么它们本质上是单线程的,并将并行化视为边缘情况的马后炮。通过现成和同步点之类的附加组件来实现,而这些附加组件既麻烦又难以正确使用。第三方库虽然提供了更简单的并发形式,如 Actor 模型,但是总有多个可用选项,结果导致了语言生态系统的碎片化。今天的硬件拥有越来越多的计算内核,软件必须并行化才能高效运行。Go 是在多核处理器时代编写的,并且在语言中内置了简单、高级的 CSP 风格并发性。 面向计算的语言原语 就深层而言,计算机系统接收数据,对其进行处理(通常要经过几个步骤),然后输出结果数据。例如,Web 服务器从客户端接收 HTTP 请求,并将其转换为一系列数据库或后端调用。一旦这些调用返回,它就将接收到的数据转换成 HTML 或 JSON 并将其输出给调用者。Go 的内置语言原语直接支持这种范例: 结构表示数据 读和写代表流式 IO 函数过程数据 goroutines 提供(几乎无限的)并发性 在并行处理步骤之间传输管道数据 因为所有的计算原语都是由语言以直接形式提供的,因此 Go 源代码更直接地表达了服务器执行的操作。 OO — 好的部分 更改基类中的某些内容的副作用 面向对象非常有用。过去几十年来,面向对象的使用富有成效,并让我们了解了它的哪些部分比其他部分能够更好地扩展。Go 在面向对象方面采用了一种全新的方法,并记住了这些知识。它保留了好的部分,如封装、消息传递等。Go 还避免了继承,因为它现在被认为是有害的,并为组合提供了一流的支持。 现代标准库 目前使用的许多编程语言(Java、JavaScript、Python、Ruby)都是在互联网成为当今无处不在的计算平台之前设计的。因此,这些语言的标准库只提供了相对通用的网络支持,而这些网络并没有针对现代互联网进行优化。Go 是十年前创建的,当时互联网已全面发展。Go 的标准库允许在没有第三方库的情况下创建更复杂的网络服务。这就避免了第三方库的常见问题: 碎片化:总是有多个选项实现相同的功能。 膨胀:库常常实现的不仅仅是它们的用途。 依赖地狱:库通常依赖于特定版本的其他库。 未知质量:第三方代码的质量和安全性可能存在问题。 未知支持:第三方库的开发可能随时停止支持。 意外更改:第三方库通常不像标准库那样严格地进行版本控制。 关于这方面更多的信息请参考 Russ Cox 提供的资料 标准化格式 Gofmt 的风格没有人会去喜欢,但人人都会喜欢 gofmt。 ——Rob Pike Gofmt 是一种以标准化方式来格式化 Go 代码的程序。它不是最漂亮的格式化方式,但却是最简单、最不令人生厌的格式化方式。标准化的源代码格式具有惊人的积极影响: 集中讨论重要主题: 它消除了围绕制表符和空格、缩进深度、行长、空行、花括号的位置等一系列争论。 开发人员在彼此的代码库中感觉很自在, 因为其他代码看起来很像他们编写的代码。每个人都喜欢自由地按照自己喜欢的方式进行格式化代码,但如果其他人按照自己喜欢的方式格式化了代码,这么做很招人烦。 自动代码更改并不会打乱手写代码的格式,例如引入了意外的空白更改。 许多其他语言社区现在正在开发类似 gofmt 的东西。当作为第三方解决方案构建时,通常会有几个相互竞争的格式标准。例如,JavaScript 提供了 Prettier 和 StandardJS。这两者都可以用,也可以只使用其中的一个。但许多 JS 项目并没有采用它们,因为这是一个额外的决策。Go 的格式化程序内置于该语言的标准工具链中,因此只有一个标准,每个人都在使用它。 快速编译 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/8a76f3f07f484266af42781d9e7b8692.png) 对于大型代码库来说,它们长时间的编译是促使 Go 诞生的原因。Google 主要使用的是 C++ 和 Java,与 Haskell、Scala 或 Rust 等更复杂的语言相比,它们的编译速度相对较快。尽管如此,当编译大型代码库时,即使是少量的缓慢也会加剧编译的延迟,从而激怒开发人员,并干扰流程。Go 的设计初衷是为了提高编译效率,因此它的编译器速度非常快,几乎没有编译延迟的现象。这给 Go 开发人员提供了与脚本类语言类似的即时反馈,还有静态类型检查的额外好处。 交叉编译 由于语言运行时非常简单,因此它被移植到许多平台,如 macOS、Linux、Windows、BSD、ARM 等。Go 可以开箱即用地为所有这些平台编译二进制文件。这使得从一台机器进行部署变得很容易。 快速执行 Go 的运行速度接近于 C。与 JITed 语言(Java、JavaScript、Python 等)不同,Go 二进制文件不需要启动或预热的时间,因为它们是作为编译和完全优化的本地代码的形式发布的。Go 的垃圾收集器仅引入微秒量级的可忽略的停顿。除了快速的单核性能外,Go 还可以轻松利用所有的 CPU 内核。 内存占用小 像 JVM、Python 或 Node 这样的运行时不仅仅在运行时加载程序代码,每次运行程序时,它们还会加载大型且高度复杂的基础架构,以进行编译和优化程序。如此一来,它们的启动时间就变慢了,并且还占用了大量内存(数百兆字节)。而 Go 进程的开销更小,因为它们已经完全编译和优化,只需运行即可。Go 还以非常节省内存的方式来存储数据。在内存有限且昂贵的云环境中,以及在开发过程中,这一点非常重要。我们希望在一台机器上能够快速启动整个堆栈,同时将内存留给其他软件。 部署规模小 Go 的二进制文件大小非常简洁。Go 应用程序的 Docker 镜像通常比用 Java 或 Node 编写的等效镜像要小 10 倍,这是因为它无需包含编译器、JIT,以及更少的运行时基础架构的原因。这些特点,在部署大型应用程序时很重要。想象一下,如果要将一个简单的应用程序部署到 100 个生产服务器上会怎么样?如果使用 Node/JVM 时,我们的 Docker 注册表就必须提供 100 个 docker 镜像,每个镜像 200MB,那么一共就需要 20GB。要完成这些部署就需要一些时间。想象一下,如果我们想每天部署 100 次的话,如果使用 Go 服务,那么 Docker 注册表只需提供 10 个 docker 镜像,每个镜像只有 20MB,共只需 2GB 即可。大型 Go 应用程序可以更快、更频繁地部署,从而使得重要更新能够更快地部署到生产环境中。 独立部署 Go 应用程序部署为一个包含所有依赖项的单个可执行文件,并无需安装特定版本的 JVM、Node 或 Python 运行时;也不必将库下载到生产服务器上,更无须对运行 Go 二进制文件的机器进行任何更改。甚至也不需要讲 Go 二进制文件包装到 Docker 来共享他们。你需要做的是,只是将 Go 二进制文件放到服务器上,它就会在那里运行,而不用关心服务器运行的是什么。前面所提到的那些,唯一的例外是使用net和os/user包时针对对glibc的动态链接。 供应依赖关系 Go 有意识避免使用第三方库的中央存储库。Go 应用程序直接链接到相应的 Git 存储库,并将所有相关代码下载(供应)到自己的代码库中。这样做有很多好处: 在使用第三方代码之前,我们可以对其进行审查、分析和测试。该代码就和我们自己的代码一样,是我们应用程序的一部分,应该遵循相同的质量、安全性和可靠性标准。 无需永久访问存储依赖项的各个位置。从任何地方(包括私有 Git repos)获取第三方库,你就能永久拥有它们。 经过验收后,编译代码库无需进一步下载依赖项。 若互联网某处的代码存储库突然提供不同的代码,这也并不足为奇。 即使软件包存储库速度变慢,或托管包不复存在,部署也不会因此中断。 兼容性保证 Go 团队承诺现有的程序将会继续适用于新一代语言。这使得将大型项目升级到最新版本的编译器会非常容易,并且可从它们带来的许多性能和安全性改进中获益。同时,由于 Go 二进制文件包含了它们需要的所有依赖项,因此可以在同一服务器上并行运行使用不同版本的 Go 编译器编译的二进制文件,而无需进行复杂的多个版本的运行时设置或虚拟化。 文档 在大型工程中,文档对于使软件可访问性和可维护性非常重要。与其他特性类似,Go 中的文档简单实用: 由于它是嵌入到源代码中的,因此两者可以同时维护。 它不需要特殊的语法,文档只是普通的源代码注释。 可运行单元测试通常是最好的文档形式。因此 Go 要求将它们嵌入到文档中。 所有的文档实用程序都内置在工具链中,因此每个人都使用它们。 Go linter 需要导出元素的文档,以防止“文档债务”的积累。 商业支持的开源 当商业实体在开放式环境下开发时,那么一些最流行的、经过彻底设计的软件就会出现。这种设置结合了商业软件开发的优势——一致性和精细化,使系统更为健壮、可靠、高效,并具有开放式开发的优势,如来自许多行业的广泛支持,多个大型实体和许多用户的支持,以及即使商业支持停止的长期支持。Go 就是这样发展起来的。 缺点 当然,Go 也并非完美无缺,每种技术选择都是有利有弊。在决定选择 Go 之前,有几个方面需要进行考虑考虑。 未成熟 虽然 Go 的标准库在支持许多新概念(如 HTTP 2 Server push 等)方面处于行业领先地位,但与 JVM 生态系统中的第三方库相比,用于外部 API 的第三方 Go 库可能不那么成熟。 即将到来的改进 由于清楚几乎不可能改变现有的语言元素,Go 团队非常谨慎,只在新特性完全开发出来后才添加新特性。在经历了 10 年的有意稳定阶段之后,Go 团队正在谋划对语言进行一系列更大的改进,作为 Go 2.0 之旅的一部分。 无硬实时 虽然 Go 的垃圾收集器只引入了非常短暂的停顿,但支持硬实时需要没有垃圾收集的技术,例如 Rust。 结语 本文详细介绍了 Go 语言的一些优秀的设计准则,虽然有的准则的好处平常看起来没有那么明显。但当代码库和团队规模增长几个数量级时,这些准则可能会使大型工程项目免于许多痛苦。总的来说,正是这些设计准则让 Go 语言成为了除 Java 之外的编程语言里,用于大型软件开发项目的绝佳选择。
有只黑白猫 2020-01-07 14:11:38 0 浏览量 回答数 0

回答

【丁宁-清华大学-阿里达摩院自然语言技术实习体验】 作者简介:丁宁,清华大学计算机科学与技术系2年级博士生,研究方向为自然语言处理、信息抽取、语言表示学习等,在ACL、EMNLP、AAAI、IJCAI等发表多篇文章,作为研究型实习生在阿里达摩院实习半年+。 实习体会 很幸运能来到阿里巴巴进行实习!组里的氛围特别好,同事和师兄师姐都非常专业、友善、亲切。无论是科研上还是工作生活上的任 何问题,都能得到慷慨的帮助。在这里,我认识了一批学术和生活上的榜样(我的主管每天都吃健康餐,而我牛肉汤泡饼),结交了志同道合的朋友(排队喝牛肉汤回来写论文的日子),见识到了IT同学的认真负责(远程帮我调试打印机,周末修电脑),见过了马云老师,也亲身经历了一次双十一奋战。阿里的科研积淀和文化氛围都让我感到收获颇丰,感谢阿里巴巴提供研究型实习生这一高水平项目,也期待更多的同学可以加入研究型实习生的大家庭。 科研心得& 工作宣传 今年在阿里巴巴所做的跨领域分词工作被ACL 2020高分接收,其中meta review说“well-written, well-motivated with strong results, sure accept”。其实这句话可以很好地总结评判科研论文好坏的标准,实际上或许现阶段的科研也并没有什么秘密,动机明确、方法得当、实验充分,就可以形成一篇不错的科研论文。当然了,如果想做出让领域内眼前一亮的工作,可能就需要一些灵光一闪了。 具体到我们的工作上来,跨领域任务往往面临目标领域精标注数据缺失的问题,具体到分词任务上来说,这种数据缺失往往会导致OOV和词的分布差异问题。本文通过弱监督启发式算法来进行远程标注,并引入对抗学习来进行降噪。本文的实验中以newswire (新闻语料)作为源领域,在5个不同的目标领域数据上都取得了较好的效果。 这个工作或许有助于我们真正的往跨领域的两个通用问题上去设计了相关的解决办法。论文名字:《Coupling Distant Annotation and Adversarial Training for Cross-Domain Chinese Word Segmentation》,具体可以查看达摩院的官方宣传~:ACL 2020有哪些值得关注的论文? - 阿里巴巴达摩院的回答 - 知乎https://www.zhihu.com/question/385259014/answer/1190808208 另外,也宣传一下作为co-author的另一篇ACL 2020论文,是实习生同事周洁(上海交大研究生)的工作,瞄准多层级文本分类任务,设计层级敏感编码器将多层结构作为有向图建模,并且实现了一个串行和并行的版本,论文名字:Hierarchy-Aware Global Model for Hierarchical Text Classification。 还有另一个实习生同事张浩宇(国防科大博士生)在IJCAI 2020的工作,使用noisy learning的方法去进行远程监督entity typing降噪,方法非常优雅,论文名字:Learning with Noise: Improving Distantly-Supervised Fine-grained Entity Typing via Automatic Relabeling。 【杜志浩-哈尔滨工业大学-我在达摩院作实习研究僧的那些事儿】 经韩老师介绍,2019年7月,有幸进入阿里巴巴达摩院成为一名实习研究僧。如今也已半年有余,期间发生的事情仍然历历在目。从初出茅庐的不安,到积极融入的快乐,再到宠辱不惊的泰然,一路走来收获良多! 初出茅庐 其实,刚到达摩院语音算法组时,我的内心充满了不安。这种不安来自于初出茅庐的不自信,不知自己能否胜任这份工作,为公司带来效益。同时,也来自于环境转变的不适应,换了一个全新的环境,对公司内的工作方式、待人接物都不甚了解。 但是,在算法组师兄师姐的帮助下,我的这些不安很快就烟消云散了。为了能够使我尽快熟悉工作内容、了解工作方式,雷鸣师兄坚持每周四晚上为实习生开组会,拉着仕良哥、智颖等很多小伙伴一起讨论算法思路和实验中遇到的问题。我想他们应该都挺忙的吧,但还是牺牲自己休息的时间来参加组会。 刚来的那段时间,除了“雷老师,xxx麻烦审批通过一下”以外,我说的最多的恐怕就是“xx姐/哥,xxx在哪”。由于对很多事情都不了解,比如服务器怎么申请啊,oss怎么弄啊,我总是要麻烦逍北姐、遥仙哥等目之所及的小伙伴。他们一边在忙自己的工作一边还不厌其烦的告诉我,为我提供了莫大的帮助。 积极融入 在算法组这段时间,让我印象最为深刻的一句话就是“我们做事情都很直接,有什么问题,就带着方案提出来”。以前,总是被教育和鼓励发现问题,在阿里,找到问题只是完成了第一步,还需要再提出一个切实可行的解决方案。期间发生的一段小插曲让我现在依然记忆犹新。  为了准备910,语音测试组的小伙伴每天都在紧张的进行测试。其中一项是对语音实时转录及翻译软件的稳定性测试。由于已经进入应用阶段,不能在直接将数据送入到模型中,需要将语音播放出来,再由软件录音进行测试。播放的内容是马老师的演讲,对于坐在旁边的小伙伴来说既是一件好事,也是一件坏事。由于马老师的演讲实在太引人入胜了,每次他们进行测试时,我们都无法专心工作,最终只能……。 咳咳,我心想,这么下去也不是事儿啊,梦想要有,生活也得继续啊,得想想办法解决一下这个问题。我尝试了各种办法,但似乎都无法绕过功放这个问题。最终功夫不负有心人,找到了一款虚拟声卡的软件,能够将一个应用程序的音频输出直接作为另一个应用程序的输入。在熟悉过这个软件的使用方式后,我找到测试组的组长,向他提出了我现在的处境和解决方案。他告诉我,他也知道这样会打扰到周边的人,但是之前也没有太好的办法,感谢我提出的解决方案。 虽然这只是实习期间的一段小插曲,但是我依然印象深刻。通过这件事,我践行了带着方案提问题,这一阿里人所特有的工作方式,让我感觉自己正在逐渐融入到这个集体当中。 宠辱不惊 经过几个月“死去”又“活来”的做实验、写论文,我跟雷鸣师兄合作的语音增强相关工作投稿到了ICASSP 2020。这是语音信号处理领域的顶级会议,在来阿里之前,我也投稿过一次,但不幸被拒。为了准备这篇文章,雷鸣师兄跟我保持着很高互动,了解实验进度,适时的进行指导。此外,还有仕良哥帮助我进行语音畸变的评估。 2020年1月25日这一天,是我国的传统节日,春节,同时也是ICASSP出结果的日子。在得知结果前,我的内心非常忐忑。但当得知接收的喜讯时,我反而没有想象中那么兴奋,没有想象中那么高兴。我的第一反应是看看审稿人的意见,看看我专家们对我文章的看法,还有哪些不足和需要改进的地方。 我想宠辱不惊的心态应该是我在阿里的一个重要收获吧,不以物喜不以己悲。尽力做好自己该做的事儿,结果自然水到渠成。 再说两句 在阿里的这段实习使我受益匪浅。这里有乐于助人、善解人意的师兄师姐,也有认真负责、要求严格的主管Leader;有弹性自由的工作时间,也有肝到深夜的满腔热情;有最新最热的研究成果,也有成熟稳定的应用软件。这里不像实验室的象牙塔,关注技术的同时,也更关注技术如何落地、如何应用到生活中去,最终如何造福亿万用户。 韩鹏-KAUST-青春没有我之阿里巴巴天猫精灵争夺赛被迫写的研究心得 竞选宣言: 在阿里实习摸了几个月的鱼,最开心的就是又吃到了祖国的美食,虽然杭州的食物实在是太清淡了,但总比我在沙特每天吃水煮青菜不放盐要好很多。在阿里的这几个月,让我看淡了很多,发现生命里比较重要的就是长在自己脑袋上的头发,不能太年轻就失去他们。女网红我是感觉自己这辈子没机会了,毕竟流量明星也不是靠推荐算法能捧红的,也就希望能够得到这次500块钱的天猫精灵,请大家pick我。 研究心得: 多抱大腿 为了凑足300字的内心情感白描: 这个世界实在是太无聊了,尤其疫情导致的只能居家办公,我已经憋得快精神失常了,虽然平时也不是那么正常。希望这个世界早日恢复原来的美好,我还打算去越南胡志明市的日式KTV感受一下女仆装呢,希望疫情不会让这些服务业倒闭呢吧。 居然还不够300字,感觉生命浪费在写文字上要比大保健上还是好一些的,希望这些文字能够启发你,虽然我感觉也并没有什么意义,而人活着的意义又是什么呢? 【韩镕罄-南加州大学- 阿里研究型实习生体验】 简介: 经过两年研究时间,找到了学校的教职,也找到了老婆,感谢阿里~ 2018年八月来阿里做研究型实习生,本人在南加州大学商学院读Operations Management 的Ph.D. 块两年时间做了几篇 field experiment paper, 感觉阿里有太多好玩有趣的商业问题可以讨论直接研究。 通过和阿里的合作顺利找到UIUC 伊利诺伊大学香槟分校的常任轨教职。 更神奇的是,在实习期间,随便刷个阿里妹儿的相亲帖, 加个微信 聊一聊 发现和自己一天生日。 就是你了!现在已经结婚快半年! 三十而立,一切静好,感谢阿里! 【马腾-清华大学- 阿里巴巴RI项目心得】 我与阿里之缘 在2019年的夏天,后来成为我主管的文侑来到清华进行交流,当时的我刚刚完成了一个学术项目的研究,正在寻求于之后的研究方向。恰好在交流会上碰见了文侑,经过一番交流之后吗,了解到操作系统团队是阿里 RDMA 技术的先行者和推广者,这正是我计划之后想要研究的方向,于是便一拍即合。由于我之前所研究的领域刚好符合是阿里目前正在做的一些项目,所以文侑提供了一个可以在阿里实习的机会。 在通过了多轮面试之后,我终于成功的入职了操作系统内核组作为学术型实习生。从2018年九月初入职至今,将近两年的时间,我也逐渐地适应了在阿里的生活,松弛有度而又充满欢乐。在这里我也结识了许多要好的朋友,并且,通过公司组织的各种聚会和团建的活动,让我解释了许多有着共同语言爱好的伙伴,大家给与了我这个新人很多的帮助和照顾,使我也渐渐地融入了这个有爱的团队。 在阿里的学术成果 在阿里实习期间,在同事们的帮助下,我顺利地完成了两个与我所在实验室合作的学术项目,并且这两个项目也幸运的产出了两篇高质量的论文,分别发表在了不同领域的高水平会议当中。 其中,第一篇论文发表在第21届Cluster会议,与2019年在美国阿尔伯克基召开。Cluster 是高性能计算方向计算机系统领域的主要会议,这个工作提出并实现了统一高效的 RDMA 消息中间件,解决了 RDMA 在实际生产过程中的一些关键可靠性和可用性问题,例如:极简的接口抽象,必要的上层消息确认机制,中间件辅助流控配合 DCQCN,结合生产系统的诊断机制等等,目前该技术已经被广泛应用在阿里巴巴基础云产品中(包括:数据库,分布式存储等)。另外一个工作则发表在了第25届 ASPLOS会议。ASPLOS 是操作系统,体系结构和编程语言三个方向综合的计算机系统领域顶级会议。这篇论文是和我所在的清华高性能所合作完成的,文章中第一次提出了利用RDMA将数据中心的NVM做disaggregation, 实现了高效的框架,同时证明了这种新架构的可行性。 在阿里的感想 阿里巴巴操作系统团队是一直致力于建立和完善系统领域工业界和学术界的纽带,并且在持续实践工业界和学术界之间的问题分享和工作互动,他们希望通过这些分析和互动能够更好地促进中国在世界计算机系统领域的整体发展和创新。作为操作系统团队中的一员,我深切了解到了先进技术对于企业发展的重要性,在实习的过程中,同我所在的实验室进行合作,我更是深深感受到只有通过学术与工业相辅相成,才能够真正让企业发展先进技术。另外一方面,经过一段时间的实习,我对所在的操作系统团队和阿里技术部门的工作有了更深入的了解,我对自己也有了进一步的规划,计划在毕业之后能够入职阿里,通过我的努力,继续在追逐技术之路上奋斗着。 【亓家鑫-新加坡南洋理工大学- 阿里云实习心得】 非常荣幸我们的研究工作*《Two causal principles for improving visual dialog》*获得了同行的认可,并收录在CVPR 2020会议中。在此要特别感谢我的教授,MReaL实验室成员以及阿里城市大脑实验室师兄师姐一直以来的支持和帮助。比起论文本身的内容,我更希望跟大家分享一年来做研究的心得和感悟,虽然目前我仍然是一个萌新,不过我希望通过萌新的角度能带给大家一些研究上的启发。 开始一个研究之前,选择方向很重要。当然,每一个方向都有自己的优缺点,比如新的方向“容易”发文章,可能将其他领域原有的方法引入加一些调整就可以达到比较高的结果。不过如果没有坚实的创新,在同行评议时,可能会受到质疑。一旦没有通过,再转投时可能发现已经落后于其他人。“老“的方向可能会感觉灌水困难,不过因为我没有真正做过经典的方向,所以不太好发表评论。根据观察,在一堆全面而又坚实的研究中找到创新点,对萌新来说确实困难,不过一旦有所突破,肯定会对这个社区产生广泛的影响。作为一个萌新,可能不会自己选择方向或者领域,所以接受导师或者主管的安排成了唯一的选择,不过要相信自己的导师和主管,因为大家都是在帮助你,而且他们经验丰富。只有当自己走完一套研究的流程,并且真正找到自己感兴趣或者觉得可以有所突破的方向,那可能才是真正属于自己的研究的开始。 当选定了方向,开始做研究的时候,清楚的了解所有有关的方法是非常重要的,因为这样可以防止你的idea被存在的方法“抄袭“。其实对一个比较成熟的研究方向来说,简单思考得到的idea一般都会被提出过。不过研究完所有存在方法后,要跳出这些方法,因为阅读他们的方法可能不是来借鉴,更多的是防止撞车,想要真正有创新,在别人的方法上改动往往是不够的,这就要求我们重新审视这个任务甚至数据集的每一个样本。当然目前即使是学术界toy的数据集也有动辄几十万的数据量,看完是不可能的,不过根据自己的思路统计一些数据特征,有时候对研究会产生很大的帮助。当觉得自己已经掌握了这个数据集或者这个任务的时候,应该是跑一些baseline来练习了。 我作为萌新,没有从零开始写,而是找了一个现成的模型开始修改,这样难度会减少很多,不过毕竟是别人的代码,还是有很多不舒服的地方,所以等自己成熟了的时候,有空的时候,一定要从头写一遍。当然我也不知道什么时候有空。当我开始修改baseline的时候,此次的研究旅行就算是上路了,在接受导师的指引的同时也可以自己不断的尝试自己的想法,因为不知道什么是有用的。我作为萌新刚开始的感受是我觉得可能我想的都有用,那一定要去试一下,所以我也建议大家多试一下,说不定真的有用呢,反正电费不花自己的。当一个东西有用的时候,就可以来思考他为什么有用了,当你想好它为什么有用并且通过了广泛的测试,就到了跟大家分享成果的时候。 当然,一个有用的idea背后可能有无数个没用的idea,至于他们为什么没用,我觉得如果实在是有兴趣,可以研究一下,但是有时候会花大量的时间。举一个实际的例子,我在去年做visual dialog比赛,大概四月份就发现了一个有用的方法,之后也顺利的拿到了第一并且在此基础上进行探究和扩展发表了自己的成果。不过同时,当时有一个效果降低的操作一直困扰着我,直到六个月以后,当然这六个月中还做了其他的事情,我才发现了它真正的原因,并且最终变成了我文章中的一句话。举这个例子的目的是,研究没有效果的idea会对研究有所帮助,不过可能会收益较低。 研究成果的发表是一个很重要的过程,它可以给领域内的同行以启发,甚至可以影响本领域之外的人,所以有时候高度总结自己的思想是一件有用的事情。比如我所做的工作我认为进行高度总结之后可以得到一个启发是:对多模态任务来说不一定所有模态都是平等的,对模型来说所存在模态也不一定是影响结果的全部。除了对自己motivation的总结,应用细节以及结果展示也是非常重要的,因为我是萌新,怎样写出一篇文章的经验肯定是不足的,所以在此不再赘述。在发表完文章之后,“售后服务“也是非常重要的一点,这也是我的教授教我的很重要的理念。因为发表的内容不是刊登出来就结束了,而是你对社区贡献的开始,之后做研究可能会发现更好的实现,或者当时的理论没有讲清楚完善,这些都可以补充到自己的代码中,让大家更好的了解你的思路和工作,或许以后还能收获好评。 此外,实验室的成员就是自己研究道路上的引导者和伙伴,会对自己的研究产生各种各样至关重要的影响,大多时候大家都不会吝惜跟你讨论分享自己的观点,有时还会亲自帮助你解决问题,所以要记得经常参加团建和小集体聚会。不过也不能太依赖别人,每当遇到问题的时候,特别是技术性的问题,还是依靠自己解决的好,毕竟未来总会离开实验室,离开乐于帮助你的人。最后,保护好自己的头发,还是要早睡早起,调不出来的bug熬夜也调不出来,不work的idea可能真的不work,没有人保证炼出来的一定是金子,不要过分影响正常的作息,毕竟这不是百米赛跑,也不能算是马拉松,而是长久的起码好几年以上要坚持的事业。不过我作为萌新才刚刚起步,依然没有体会到最艰难的时刻,不过做好心理准备还是应该的,该来的总是会来的。最后的最后希望这些浅显的经验总结能够给大家带来一点儿帮助,谢谢大家的阅读。 【田冰川-南京大学- 在阿里网络团队实习两年是一种怎样的体验?】 简介: 大家好!我是田冰川,南京大学2016级直博生,导师为田臣老师,研究方向为计算机网络。2018年6月,我以研究型实习生的身份入职阿里巴巴基础设施事业部网络研究团队,实习期间主要从事网络验证相关的研究工作,即通过形式化方法与灰度测试,来降低网络变更中的潜在风险。 2018年既是网络研究团队刚刚组建的一年,也是研究型实习生在阿里刚刚起步的一年。这年春天,经我导师田臣老师介绍,我参加了研究型实习生面试,加入了网络研究团队。 来到团队后,我参加的第一个研究项目是“金睛”,用以保障复杂ACL变更的正确性。ACL即访问控制列表,网络中的ACL决定着流量的连通性。网络架构演化有时会伴随着对ACL的迁移,如何保证迁移前后网络连通性是等价的,是困扰架构与运营部门的一大难题,而金睛项目则是为该问题而生。项目落地以来,金睛系统多次在骨干网ACL迁移中对变更方案进行了验证,并逐渐扩展至对边缘网络的验证。相关论文发表于SIGCOMM 2019主会,我在会场进行了20余分钟的演讲,与我们团队的另一篇文章HPCC共同成为阿里集团在网络领域top1学术会议主会中的首次亮相。 时间总是过的很快。转眼间,我来阿里已经两年了,自金睛之后,又陆续参与了多个研究课题。在阿里的时间越久,就越能切身体会到学术界研究与工业界研究的不同。在阿里实习以来,我接触到的所有研究课题,都不是凭空“想”出来的空中楼阁,更不是靠别人论文“启发”出来的二手课题,而是源自于真实业务的现阶段瓶颈与下一阶段发展趋势——这一点是高校科研很难做到的。 这两年间,我对科研这件事的心态也发生了进一步的变化。2017年,来到阿里之前,我的论文达到了学校博士毕业的最低要求,相当于没有了毕业之忧,对科研的心态从“先拿到博士学位再说”,变成了“想要做出点什么,不想让自己的博士5年就这么水过去”;在来到阿里,接触到工业界的前沿课题之后,我对科研的心态再一次发生了转变,变成“因为认可一件事的价值,所以想要去做好”——这已经成为一种内在的驱动力,让我在认真工作的同时,享受研究带来的乐趣。 如果一切顺利的话,我将于2021年6月博士毕业。能在阿里巴巴度过专属实习生的“三年醇”,想必也是人生中的一大成就了! 【吴秉哲-北京大学- 吴师傅的博士研究课题:大数据时代的数据隐私研究方向初探】 加上本科的时间,不知不觉已经在燕园里面呆了八年了,明年不出意外应该就会离开学校去业界工作。准备最近以文章的形式梳理一下博士几年的研究以及生活的心路历程。由于内容比较分散,所以决定分为几个不同的部分。这次推送封面图片是16年骑行到加乌拉山口遥看喜马拉雅山脉的图片,而我在阿里的花名是风远,意为远处的风。希望多年之后,还有一颗少年的心,投入每天永不变。这次借着阿里内部一个活动的机会,写了今天的这篇稿子,为大家介绍一下我的thesis topic。 已经在蚂蚁实习了一年了,一年时光匆匆而过,而在蚂蚁金服度过的这段时光带给了我很多研究以及生活中的体验,这一年里学到的经验也将伴随着我之后的研究之路。 我本科四年是在数院度过,在研究生阶段决定转换方向到计算机系。博士的前两年一直在跌跌撞撞地寻找自己的研究方向,尝试过很多方向均以失败告终。终于在第三年的时候,误打误撞开始研究起机器学习的隐私保护问题并找到了很多灵感,开始沉淀了一些基本的研究工作。有一天我从一个朋友那里听到了她关于金服这边隐私保护机器学习的团队介绍,当时我就决定要到业界的前沿去看一看隐私保护的真实业界需求。在此之前,我已经在谷歌,IBM等公司有过多段实习的经历,但是在蚂蚁这一次实习经历,是与我自己研究方向最接近,也是时间最长的一次。借着这次约稿的机会,以此文简单总结一下自己过去两年在这一方向的研究。 隐私保护与共享学习 目前随着各种机器学习算法在集团的业务落地,许多隐私泄露与数据滥用的风险相继而来。 尤其是在蚂蚁金服这样一个拥有很多支付数据的企业,数据安全以及隐私保护的重要性更是不言而喻。站在商业合作的角度,如何实现不同公司或者部门之间的数据共享学习也是我所在的团队现在攻坚的一个问题。在这样一个研究背景下,我来到了蚂蚁金服的共享智能团队,开始和师兄师姐们从不同的维度对上述问题展开了深入的研究。 共享学习这样一个概念听起来很美好,但是实际落地起来却困难重重,需要考虑到上层软件算法的设计以及底层系统和硬件的优化,才有可能真正在实际的业务中兼顾效率和隐私保护强度。共享智能团队在这一方向上有着得天独厚的优势。一是领先的业务场景,在国际同行好多还停留在学术研究阶段时,我们团队已经和国内多家银行有了合作。另一个则是技术沉淀的领先。因为金服自身业务的特殊性,我们团队很早就开始了隐私保护机器学习和共享学习的布局,包括很多原始的技术沉淀,强大的工程团队以及学术预研团队。这些积累也使得我们能够很快地摸清最新的一些研究成果并能将其吸入到我们自己的系统当中。 我自己关于隐私保护机器学习的研究主要是围绕着三个层面展开,分别是理论,算法设计,以及系统和硬件优化。在理论层面,我主要针对现有的各种机器学习算法,建立相应的隐私泄露分析框架,比如我们在之前的工作中,针对一种常用的贝叶斯学习的算法根据雷尼差分隐私建立了隐私泄露的定量分析框架,我们进一步使用我们的框架和已有的一些泛化误差上界做了联系,从而能从多个角度去解释该算法的隐私泄露原因。在算法设计层面,我们针对各种已有的新兴算法以及场景,比如图神经网络,推荐系统建立了相应的共享学习算法,并利用我们的理论框架,对这些算法的隐私保护强度做了定量的评估。除开上层的理论和算法设计,底层的系统和硬件的优化同样是非常重要的一环。 在我们团队,我们主打基于硬件可信执行环境 (TEE)的机器学习serving系统,我针对我们当前这套服务系统,结合神经网络计算的一些特点,定制了该系统的一系列优化措施大大提升了整个系统的吞吐量。我也将其中一些措施注册了专利,并在前几天得到了内部的专利授权。除开上述介绍的学术研究方面的成果,我也参与了IEEE共享学习标准的制定会议,这也使得我从标准制定者的角度去更深地思考如何使用技术在未来社会中实现隐私与效率的兼顾。 总之,我自己很感谢能成为共享智能团队的一员,我在这里学到的最宝贵的经验就是详细地从上到下了解了这样一个大团队的合作与分工,学习他们是如何一步步从最初的需求分析,算法设计,到最后真正的业务落地。也很高兴和各位共享智能的同事度过自己博士生涯中很重要的一年。也非常感谢我的博士导师对我研究的无条件支持。回看博士这一路的艰辛,也是感慨万千。有点像自己之前高原骑行的经历,经历了爬到坡顶的缺氧与无力,终在转角处遇见了骑行途中最美的雪山风光。
游客bnlxddh3fwntw 2020-05-19 16:05:51 0 浏览量 回答数 0

问题

OSS存储利用内网CDN叠加多台5MECS网宽

阿里云超过5M的带宽太贵了,大家如果是做下载站的,如采用ECS或ECS+OSS方案的,可以采用这个方式CDN。OSS经内网反代理至多台ECS来CDN,然后提供附件下载和以下教程...
betterhomechina 2019-12-01 21:04:17 14039 浏览量 回答数 5

问题

Nginx性能为什么如此吊

Nginx性能为什么如此吊,Nginx性能为什么如此吊,Nginx性能为什么如此吊 (重要的事情说三遍)的性能为什么如此吊!!!         最近几年,web架构拥抱解耦的...
小柒2012 2019-12-01 21:20:47 15038 浏览量 回答数 3
阿里云企业服务平台 陈四清的老板信息查询 上海奇点人才服务相关的云产品 爱迪商标注册信息 安徽华轩堂药业的公司信息查询 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 天籁阁商标注册信息 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 北京芙蓉天下的公司信息查询