首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么 Go 是我最喜欢的编程语言(2017)翻译

前言:Go 语言大热的今天,来看看 Michael Stapelberg 在 2017 年提到自己为什么喜欢 Go 语言吧。本文是一篇翻译文章,原文点此处。...为什么 Go 语言是我最喜欢的编程语言 2017-08-19 发表,上次修改 2020-11-21 我努力尊重每个人的个人喜好,所以我通常会避开关于哪种是最好的编程语言、文本编辑器或操作系统的辩论。...我了解一点 Lua、PHP、Erlang 和 Haskell。 在更之前的生活中,我使用 Delphi 开发过许多程序。 在 2009 年 Go 刚发布的时候,我对它有过短暂的了解。...在 Go 中,我们认为它们是理所当然的。 入门 希望我能够表达我为什么喜欢用 Go 工作。 如果你有兴趣开始使用 Go,请查看人们加入Gophers slack 频道时指出的初学者资源。...注意事项 当然,没有哪个编程工具是完全没有问题的。鉴于这篇文章解释了为什么 Go 是我最喜欢的编程语言,它的重点是积极的一面。不过,我还是要顺便提一下几个问题。

98130

为什么String在Java中是不可变的

String 在 Java 中是不可变的。 不可变类只是一个无法修改其实例的类。 创建实例时,将初始化实例中的所有信息,并且无法修改信息。 不可变类有许多优点。...本文总结了为什么 String 设计为不可变的。 这篇文章从内存,同步和数据结构的角度说明了不变性概念。 1. 字符串池 字符串池(String intern pool)是方法区域中的特殊存储区域。...如果字符串是可变的,则使用一个引用更改字符串将导致其他引用的错误。 2. 缓存的哈希码 字符串的哈希码经常在 Java 中使用。 例如,在 HashMap 或 HashSet 中。...(new String("b")); set.add(new String("c")); for(String a: set) a.value = "a"; 在此示例中,如果 String 是可变的...字符串不是不可变的,连接或文件将被更改,这可能会导致严重的安全威胁。 该方法认为它连接到一台机器,但事实并非如此。 可变字符串也可能在 Reflection 中引起安全问题,因为参数是字符串。

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java 为什么 String 在 java 中是不可变的?

    为什么 String 在 java 中是不可变的?String 在 java 中是不可变的,一个不可变类意味着它的实例在创建之后就不可修改,实例的所有属性在创建时初始化,之后无法对这些属性进行修改。...(译者:另一个引用并未对字符串做修改,当他再次取值时字符串的值却与上次取的不同!)。2 用作缓存时的 hashcode字符串的哈希值在 java 中是被频繁使用到的。...如果 String 是可变的,那么它的 value 可以被改变,但这违反了 Set 的设计原则(Set 中的元素是不能重复的),当然,上面的例子仅仅为了表明意图,String 类中并不存在 value...方法调用的预期结果是成功连接到设备,事实可能是并没有连接。可变的字符串在反射中也会导致安全问题,因为参数是字符串。...总结,String 被设计为 final 的原因是 效率 和 安全,通常情况下这也是为什么不可变对象在许多设计中会成为首选的原因。

    8510

    高级语言中的语句在汇编中是如何实现的

    我们都知道对于c语言来说,它是需要先转换成汇编语言,然后再生成机器语言的。那么在c语言中,各种条件语句,各种表达式的计算,在汇编中是何如实现的呢?今天我们就来讲解一下。...因为汇编语言和机器语言是绑定的,而不同机器语言是不同的,因此,汇编语言是不可移植的,而高级语言是可移植的,这也是为什么人们更多地用高级语言来开发应用的一个原因。...在汇编语言中,我们可以通过设置标号来实现语句的跳转,例如高级语言的if判断,在汇编语言中,就可以这样实现。 对于循环语句,其实也是一样的,也是通过跳转指令来实现。...在循环内部,EAX 是 val1 的代理(替代品),对 val1 的引用必须要通过 EAX。JNL 的使用意味着 val1 和 val2 是有符号整数。...逻辑判断的实现也是通过跳转指令来实现的,具体如下。 通过上面的例子我们可以看出,无论是怎样复杂的逻辑,无论是循环还是条件判断,在底层汇编层,其实都是通过跳转指令来实现的。

    64920

    Yii2 framework学习笔记(三) — 语言与国际化

    Yii2默认用的是英语(en-US),现在添加中文支持(zh-CN) 在component下添加如下块 'components' => [ ......,解析翻译文件用的是默认的类yii\i18n\PhpMessageSource,翻译文件放置在common/messages下,翻译文件是common.php。...遗憾的是,并不能生效。。。。。 究其原因,是因为网站的根语言还是en-US,需要配置为zh-CN。 在common/config/main-local.php里,添加如下配置: 的主要原因是要实现多语言,如果只是显示一种语言,还不如做hardcode(yii2框架实际做的也是hardcode的语言显示) yii2没有提供现成的切换语言的控件,需要我们自己开发一个...实现的主要思路是把用户选择的语言保存到cookie中,每次用户访问页面前,将语言设置为cookie中的值。

    70520

    在没有DOM操作的日子里,我是怎么熬过来的(中)

    有时候写文章,不一定仅仅是为了分享自己的工作经验,而是还想看看网友是怎么看待这个话题的,从而衍生出一系列的对话,以及思想碰撞。...假如你果真碰到这个类似的问题,可以考虑先将项目中的node_modules删除掉,然后重新cnpm install安装项目所需的依赖。通常这个情况,就会迎刃而解(不要问为什么,这可能是个偏方)。...然后对应的代码在自己的标签里面各司其职,所有需要的html、css、javascript都在里面。...接下来我想谈谈vue的生命周期和钩子函数。 每个 Vue 实例在被创建之前都要经过一系列的初始化过程。例如需要设置数据监听、编译模板、挂载实例到 DOM、在数据变化时更新 DOM 等。...开发的时候,写好data 剩下的事情就是 通过异步请求来交互data,UI层绑定事件改变data,在组件间传递data。 后记 在这个MVVM横行的时代,我已经渐渐的忘却了jQuery的存在。

    1.6K110

    C语言在ARM中函数调用时,栈是如何变化的?

    为什么会写篇栈变化的文章?做系统分析的话你肯定遇到过一些crash, oops等棘手问题,一般大家都会用 gdb, objdump 或者 addr2line等工具分析 pc 位置来定位出错的地方。...被调用函数在返回之前不必恢复 r12。 4. 寄存器 r13 是栈指针 sp。它不能用于任何其它用途。sp 中存放的值在退出被调用函数时必须与进入时的值相同。 5....如何能让读者接受吸收的更快,我一直觉得按照学习效率来讲的话顺序应该是视频,图文,文字。...反正我是比较喜欢视频类的教学。这里给大家画下栈变化的过程是什么样子的。这里的图是结合上面的代码来画的,希望有助于读者的理解。...fun代码 13.c入栈 14.可以看到函数fun的数据 形参a,b 在上一层函数的栈中.

    14.2K84

    为什么在深度学习中,AlphaGo Zero是一个巨大的飞跃?

    AlphaGo Zero是DeepMind的自动操作系统的最新化身。有人可能会认为,在围棋中击败人类世界冠军是很难的。...此外,它最初学习的策略的顺序有时是出乎意料的。就好像这个系统已经学会理解围棋的一种新的业内语言。同样有趣的是对单个集成神经网络与两个分离神经网络的效果进行推测。也许有一些策略是脱节的网络无法学习的。...人类通过隐喻和故事来学习语言。由于无法表达更复杂的复合概念,围棋中的人类语言可能是低效的。AlphaGo Zero似乎能够做到的是,以一种同时满足多个目标的方式来执行它的动作。...有趣的是,人们可能会认为这个系统实际上不使用可能存在于语言中的隐式偏见。...我发现,在使用较少的训练数据的同时,开发利用的搜索机制能够创造性地发现新策略。这是很奇怪的,就好像是自我对弈在回馈自己,并让自己更好地学习。

    96180

    用发展的眼光追技术

    本文从 PHP 语言的 YII2 框架说起,简单谈一些技术的演变和发展脉络。 YII2 这个框架是 PHP 语言生态下的一款 Web 应用框架。...YII2 初来乍到 在 2013 年,2014 年 YII2 刚刚发布的年份,YII2 被大家追逐的原因大概是面向对象数据,包加载的扩展属性,自带 Gii 自动化生成工具,清爽的 View 界面和工具包...我们返回头再整体回顾下 YII2 框架,你会发现在 YII2 官方的默认模版中,View 层还是占有很大的比重。...在 YII2 社区中安装 YII2 版本的讨论中,经常有一个 View asset 扩展安装的难题,核心就是前端页面元素与后端服务的耦合的问题,以及版本依赖的冲突。...总结 看看程序语言的发展脉络,以及前后端发展的变革,可以总结出两个词:演变和趋势。在应用程序开发中,前端这个职位是从后端细化和演变而来的,前后端分离和独立就是技术的趋势。

    1.4K20

    在c语言中要用到,类似java中的ArrayList的功能,一般是怎么做的?

    计科专业从事嵌入式开发已经多年了,对于C语言用的比较多,java相关的项目也做过几个,在具体的项目中如果采用C语言的编写,在实现具体的应用功能的时候消耗的代码量相对比较多,而且很多像java中的集合或者队列的概念...相对来讲如果是java层面的代码,开源的类库和标准的库非常多,所以在编写业务模块代码上还快于底层的编程语言,所以从语言的性质考虑底层的编程语言还是适合在底层做支架类的事情,高级语言去做应用级别的开发,因为应用开发来讲变化比较多...,涉及到的范围也比较广泛,但是高级语言本身自带的或者开源的类库多如牛毛,所以在应对用户需求的时候更加灵活自如,任何一种编程语言都有其优势点,编程语言虽然种类繁多,但是每种编程语言只是在自己适合的场景出现...目前市场的状态是C/C++底层编程语言在市场绝对工作数量并不低,但是相对比例在下降,毕竟大部分的企业还是应用级别的开发为主,能够大规模的搞底层开发的企业毕竟属于有实力的企业,现在国内编程应用级别的开发主要是互联网企业...编程语言在全球已经有将近500多种,到目前为止可能很多编程语言很多人已经被淘汰了,但是很多企业还是一直在用,不是所有的企业都必须要最时髦的编程语言,合适的才是最好的,只要是留存的编程语言证明其在市场上还是有存在价值

    1.1K30

    这周撸了两款小程序,总结下经验。

    ##默认入口转发问题 当一个小程序Page的js文件中存在 onShareAppMessage 方法时,可以触发转发功能,但是通过小程序开发者工具生成的模板中,入口文件的js中并没有此方法,为了发布后方便对小程序进行分享...当服务器端进行了存储后要生成一个key,将其返给小程序,以后小程序凡是发起需要用户认证的请求,都带这个key用来判断用户身份,在yii2中,这个key就是我们restful中的access_token。...客服消息 在小程序开发中,客服消息的重要性不言而喻,它除了作为客服服务外,还作为小程序到微信浏览器的一个渠道,比如本次在「宝宝爱识图」的开发中,我用它来实现将收款微信号到用户的推送工作,这主要是解决在ios...服务器端 接下来总结下服务器端,我使用yii2的restful组件作为接口支持,关于restful的基本功能请参考yii2官方文档或我之前录制的课程《Yii2的RESTful讲解》,在这里分享我认为关键的点...让yii2能解析json的请求内容 默认情况下yii2并不能识别请求中的json格式,而我们小程序在发起请求时喜欢用它,因此我们要对yii2进行一下配置。

    1.4K50

    yii2开发中19条推荐实践

    中文化 默认安装yii2时,程序的相关信息是英文的,第一步我们需要改成中文的,很简单。...bug,这需要你在一个yii2生命周期内持续的观察某些变量的值及赋值路径,具体配置可以参考我之前的课程, 用xdebug支持yii2调试之 - PhpStorm配置篇 当然,yii2自己的debug扩展也极其有用...开发中 本段为你介绍我在yii2开发中一些习惯和小技巧,希望对你有用。...模型的重要性 很多yii2的初学者喜欢将大量逻辑写到控制器的动作(action)中,这是不对的,我们的重点应该在模型中,而控制器仅仅是做输入输出。 我们拿关联举个例子,下面的这段代码是不好的。...当然从理念上说也有点不同 行为 一些类附加的属性 父类 一些类共同的属性 我的用法(不一定就是对的),尤其在模块中我喜欢为控制器增加一层父类。

    3.3K70

    那些优秀的网络爬虫工具介绍,最后亮了!| 码云周刊第 16 期

    语言 5、软件的复杂性: 命名的艺术 技术分享 1、SpringMVC 执行流程及源码解析 在SpringMVC中主要是围绕着DispatcherServlet来设计,可以把它当做指挥中心。...这里先说明一下SpringMVC文档给出的执行流程,然后是我们稍微具体的执行流程,最后是流程大致的源码跟踪。...2、使用 Vue2 和 Yii2 进行前后端分离开发 本文介绍使用Vue2单页面程序作为前台,以Yii2搭建后台提供API,进行前后端分离开发的入门知识。本文适合Vue2,Yii2爱好者观看。...独家译文 4、五大理由从 Python 转到 Go 语言 Python 是非常强大的,特别是 Python3 有了异步功能,但是 GO 将完全取代它在大企业中的存在… 5、软件的复杂性: 命名的艺术...为什么呢?因为只要写好了,才会有很好的阅读体验。我们往往关注了前者而忽略了后者。我们忘记了代码只写一次,但要读很多次。

    2.3K100

    Yii2的MVC新特性

    这篇文章主要来看看在Yii2之中的MVC,当然,最核心的思想还是跟Yii1.1一样的,但是我今天是想来看看在Yii2里的MVC跟Yii1.1有什么不同,或者应该直接说,Yii2的改进在哪里,以至于使得官方敢向着最好的...在每一个Model当中,attributes和attributes label其实跟Yii1.1差不多,但让我特别值得拍手称快的是在Yii2中,除了rules()函数之外,还有scenarios()函数来增强...password field只分配给Model中的signup 场景(scenario),所以有关password的验证只在signup这个scenario起作用,个人觉得这个是Yii2的Model中一个很牛逼的升级...不过,你在Yii2的Controller中只需认识这些新特性基本就足矣,因为一些更基本的东西跟Yii1.1是一样的,完全不用怕,(我是说如果你上手过Yii1.1的话)。...写在最后 正如你在这篇文章看到的一样,在Yii2中几乎所有的MVC组件变化都使得Yii2更好用了,我相信这会带给开发者更好的的开发体验,毕竟Yii2 中看到了一丝丝优雅的样子!

    2.7K20

    从配置文件的角度去了解Yii2

    用法是将所有路径在index.php中全部注册到全局容器Yii中.方法就是Yii::setAlias();方法....在common级别中,设置的是站点的root.在site中设置的是module的root. 1. config/main.php main里面有比较多的设置项. 0....'modules' 对应的modules(例如backend)目录下的Module对象的命名空间.方便Yii2进入你所定义的module. module在Yii2中是一组MVC的封装,这个概念可能在其他框架中不同...'component' 其实这个东西,在ZendFramework3.0中叫做module,是一个功能的实现,比如权限管理,路由管理,过滤器等等....这个有点特殊,但是非常好用,你可以为Application(注意,其他事件,例如MVC,由于实例不同,这里的绑定对其无效)的默认事件绑定callable,让其在对应的时期触发.Yii2的事件管理会单独开文说明

    1.5K21

    YII2通过composer优化vendor

    本文讨论通过composer工具安装Yii2框架并优化Vendor过程中遇到的问题,约定读者对composer基本原理有一定了解,并且有安装Yii2框架的实际经验。...框架安装问题 在Yii2社区里经常会遇到一类问题,那就是 安装完官方推荐的版本后 1 为什么没有vendor文件夹?...在Yii2 中,vendor是composer下载的依赖库文件,官方的项目模板代码里只有其自己的项目文件,而其依赖的yii框架等类库,都记录在composer.json里面,只要安装好composer,...2 自己安装的Yii2的项目中,vendor中的包在composer.json 中找不到对应,而这些包大多是暂时不需要用到的,该如何remove,保持vendor最小化?...这个命令是优化composer包的关键一环。 3 多个项目在一个工程下时,会不会因为首次加载composer包太多而引起加载的性能问题, 自带的延迟加载是否能够解决这个问题?

    1.5K40

    Yii2 起步 之创建项目

    yii2目前还处于beta版本,相关文档也一直在变化,如有疏漏,还请及时反馈 Yii2安装 两种安装方式,composer或者下载zip包 使用composer安装初始化yii2项目(推荐)...windows下,如果本机还没有安装composer,我的做法是是直接下载composer.phar包 假定你的工作目录是 workspace,将下载的composer.phar放在workspace...下 命令行进入workspace 执行如下命令,初始化一个基于yii2的应用 php composer.phar create-project --prefer-dist --stability=dev...官方地址 源码安装 源码包地址 yii2-beta 下载源码包解压后即yii2的框架源文件,然后根据自己的实际情况构建目录结构,进行开发 项目初始化完成以后,配置yii2的配置文件,配置文件一般放在...app/config目录下,当然这个路径会根据个人习惯而不同] 我个人推荐的yii2框架目录结构(使用composer 创建项目的默认目录结构和此不同) composer.json 定义项目中的

    96120

    盘点7款顶级 PHP Web 框架

    1、Laravel Laravel 框架是在Web开发人员中非常受欢迎的框架。它是一个免费的开源 PHP 框架,适用于移动应用程序场景。...Laravel的优势:易于学习;无缝数据迁移;在 PHP 社区中很受欢迎;MVC 架构支持;大量培训材料(文档、图像和视频教程);模板引擎;简单的单元测试等。...2、Yii2 Yii2是一个基于组件的高性能 PHP 框架,基本能提供PHP 框架中的所有特性,因其安全功能而受到网站开发人员的欢迎,并且具有极好的可扩展性,当程序员需要确保可扩展性并开发高效、易于维护的...这个功能强大且易于使用的框架适用于各种 Web 应用。 Yii2 的优势:AJAX 支持;处理错误的有效工具;自定义默认设置;简单的第三方组件集成;强大的社区支持等。...PHP Phalcon 框架创建符合企业开发指南的网站和 Web 应用程序。与其他框架相比,Phalcon(在最流行的 PHP 框架中)使用的资源非常少,从而可以快速处理 HTTP 请求。

    4.7K00
    领券