PHP与Node.js Smackdown:回复权

The gloves are off: an arm wrestle of the editors

In SitePoint's recent PHP vs Node.js Smackdown, Craig Buckler pitted these development disciplines against each other over a series of ten challenges, to determine which is the overall winner.

在SitePoint最近的PHP vs Node.js Smackdown中 ,Craig Buckler通过一系列十项挑战使这些开发原则相互对立,以确定哪个是总冠军。

As Craig notes in the article, these comparisons are always somewhat controversial. As a fun followup, we asked Bruno Škvorc (SitePoint's PHP editor) and James Hibbard (one of SitePoint's JavaScript editors) to provide a commentary on each of the rounds.

正如克雷格(Craig)在文章中指出的那样,这些比较总是有些争议。 作为有趣的跟进,我们请BrunoŠkvorc(SitePointPHP编辑器)和James Hibbard(SitePointJavaScript编辑器之一)对每个回合进行评论。

Here's their blow-by-blow assessment …

这是他们的逐项评估…



第一轮:入门 (Round 1: Getting Started)

Round 1's challenge was to see how quickly you can build a “Hello World” web page in each language. This included the time taken to set up a server environment.

第一轮的挑战是看您能以多快的速度构建每种语言的“ Hello World”网页。 这包括设置服务器环境所花费的时间。

In Craig's estimation, PHP won the round, partly because it's "conceptually simpler" and "less daunting to new developers".

根据Craig的估计,PHP赢得了这一回合,部分原因是它“从概念上讲更简单”并且“对新开发人员而言没有那么艰巨”。

布鲁诺: (Bruno:)

PHP wins in "getting started" purely because more hosts have made it so easy to get started. It's a matter of adoption rather than anything else. If more hosts bypassed the need to use the command line with Node and went straight to file uploads and a simple "reload app" button in a control panel, they would be equal. The actual syntax of getting something to display on screen, however, is much simpler in PHP — especially to those new to programming.

PHP之所以能赢得“入门”纯粹是因为更多的主机使入门变得如此容易。 这是采用的问题,而不是其他任何问题。 如果更多的主机绕过了使用Node命令行的需要,而直接通过控制面板中的文件上传和一个简单的“ reload app”按钮,则它们将是相等的。 但是,使内容显示在屏幕上的实际语法在PHP中要简单得多,尤其是对于那些刚接触编程的人。

詹姆士: (James:)

When developing locally, I don't see a huge difference between the two. To run a PHP script in your browser, you need to have some kind of server stack installed; to run a Node script, you need to have installed Node, and preferably a web framework such as express. However, as Craig says, PHP is conceptually simpler. Node's barrier to entry is higher. No debate there.

在本地开发时,我看不到两者之间的巨大差异。 要在浏览器中运行PHP脚本,您需要安装某种服务器堆栈。 要运行Node脚本,您需要先安装Node,最好安装一个诸如express的Web框架。 但是,正如Craig所说,PHP从概念上讲更简单。 节点的进入壁垒更高。 那里没有辩论。

第二轮:帮助与支持 (Round 2: Help and Support)

Round 2 looked at how easy it is to get help and support with each language. PHP wins this round, mainly because of its longevity.

第二轮考察了获得每种语言的帮助和支持有多么容易。 PHP在本轮比赛中获胜,主要是因为它的寿命长。

布鲁诺: (Bruno:)

Bruno kept silent on this one.

布鲁诺对此保持沉默。

詹姆士: (James:)

I agree with this. Node.js is a younger technology, so currently, there is less help available. This will, however, become less and less of a consideration as Node matures.

我同意这一点。 Node.js是一种较年轻的技术,因此,目前可用的帮助较少。 但是,随着节点的成熟,这将变得越来越少。

第三轮:语言语法 (Round 3: Language Syntax)

Round 3 compared how easy it is to understand and use the syntax of PHP and JavaScript. Craig awarded this round to JavaScript.

第三轮比较了理解和使用PHP和JavaScript语法的难易程度。 Craig在这一回合中将JavaScript授予了。

布鲁诺: (Bruno:)

I strongly disagree on this point. While PHP does have its quirks, many of them have been corrected in recent times and many oddities will be removed in the newest release. On the other hand, there's this and this in the JS world.

在这一点上,我非常不同意。 尽管PHP确实有其古怪之处,但其中许多问题最近已得到纠正,最新版本中将消除许多怪异之处。 在另一方面,有这个这个在世界JS。

Regarding bullet 3 (that your brain doesn’t need to switch modes because you can use JS on the client and server), I disagree. The server environment is completely different from the client one, and a switching of brain modes is required. There's also new syntax that you can't use in the browser, and vice versa, so it's kind of like switching languages.

关于第3点 ( 我的大脑不需要切换模式,因为您可以在客户端和服务器上使用JS ),我不同意。 服务器环境是从客户端一个完全不同的,并且需要的脑模式的切换。 还有新的语法,您不能在浏览器中使用,反之亦然,因此有点像切换语言。

Bullet 4 (that understanding JS makes you want to use it more) is also something I disagree with. Having worked with both JS and PHP for years, the more I work with JS, the less I like it — though that's purely personal preference.

Bullet 4 ( 理解JS使您想更多地使用它 )也是我不同意的。 使用JS和PHP已有多年,我越喜欢JS,就越不喜欢它-尽管这纯粹是个人喜好。

詹姆士: (James:)

I love JavaScript. I know it has its quirks, and I know it has some gotchas, but ECMAScript 2015 will straighten a lot of this out, as well as bringing some exciting new features to the language. JavaScript is both powerful and flexible, and can accommodate many different styles of programming. In contrast to PHP, I enjoy writing JavaScript. Node deserved this one.

我喜欢JavaScript。 我知道它有它的怪癖 ,也有一些陷阱 ,但是ECMAScript 2015将解决很多问题,并为该语言带来一些令人兴奋的新功能 。 JavaScript既强大又灵活,可以容纳许多不同风格的编程。 与PHP相反,我喜欢编写JavaScript。 节点应得的这一点。

第四轮:开发工具 (Round 4: Development Tools)

Round 4 considered the tools available to each technology, with Node winning by a nose thanks to npm.

第4轮考虑了每种技术可用的工具,由于npm,Node获得了巨大的成功。

布鲁诺: (Bruno:)

While Composer was originally inspired by npm, it's now leaps and bounds better than it and won't break your system if you have to install two versions of the same library, unlike npm. Also unlike npm, Composer can install recursive dependencies, something npm simply cannot do — yet something that is absolutely essential, and should be the very first thought in the head of someone setting out to build a package manager.

虽然Composer最初受到npm的启发,但现在它比以前有了更大的进步,并且如果您必须安装同一库的两个版本,则不会破坏系统,这与npm不同。 同样与npm不同,Composer可以安装递归依赖项,而npm根本无法做到这一点-但这绝对是必不可少的,应该成为着手构建软件包管理器的人的第一个想法。

npm also has downright awful error messages that are what I like to call "core-developer friendly" — in that only those who wrote them can understand them. Finally, npm doesn't play well with Vagrant, and effectively hinders you in getting started properly — not to mention that they don't pay attention to their users' desires. Here is a bug that's been open for years, making it basically unusable on Windows — hardly a trivial user base. PHP has its share of stupid bugs too, but those don't alienate an entire OS for years.

npm也有非常糟糕的错误消息,这些错误消息我称之为“对核心开发人员友好的”,因为只有写这些错误的人才能理解它们。 最后, npm在Vagrant中的表现不佳 ,并且有效地阻碍了您正确入门 -更不用说他们没有关注用户的需求。 是一个已经开放了多年的错误,使该错误在Windows上基本上不可用-几乎没有什么用户基础。 PHP也有一些愚蠢的错误 ,但是多年来它们并没有疏远整个操作系统。

True, Composer isn't bundled with PHP, but I don't think it should be. Such favor shouldn't be given to a package manager which is, literally, a separate app. If someone, some day, actually makes a good package manager for Node, it'll be bureaucratic hell to switch it out for the current one, let alone get people to transition. Besides, installing it is literally one line in a terminal, or downloading an installer.

的确,Composer并未与PHP捆绑在一起,但我认为不应该。 从字面上看,不应将这种偏爱提供给一个单独的应用程序的程序包管理器。 如果某人某天确实为Node造就了一个好的软件包管理器,那么将其切换到当前版本将是官僚的地狱,更不用说让人们过渡了。 此外,在终端上安装它实际上是一行,或者下载安装程序。

The statement that Composer has had less of an impact is plain wrong. Composer has influenced all of the new PHP devs coming on board the PHP train since it was developed, and most of the good ones who had to add it into their current workflow. Just because there were a lot of PHP users before Composer existed, doesn't mean its impact is smaller. Ever since it was made, it has had a tremendous impact. Absolutist statements like "has made less of an impact within the community" shouldn't be made without a factual backing.

关于Composer影响较小的说法是完全错误的。 自从PHP培训以来,Composer便影响了所有加入PHP培训的新PHP开发人员,以及大多数必须将其添加到当前工作流程中的优秀人员。 仅仅是因为Composer诞生之前有很多PHP用户,并不意味着其影响较小。 自制作以来,就产生了巨大的影响。 如果没有事实的支持,就不应发表诸如“在社区内部产生的影响较小”的专制主义言论。

I can't argue with the fact that most PHP devs will install Node at one point, that's true. Sadly, a lot of the good tools are being developed Node-first, but I remain hopeful for a Node-free development environment due to projects like BowerPHP.

我不能与大多数PHP开发人员将在某一时刻安装Node的事实相抗衡,这是事实。 不幸的是,很多好的工具都是Node-first开发的,但是由于BowerPHP之类的项目,我对无节点开发环境仍然抱有希望。

詹姆士: (James:)

I'm glad this one went to Node.

我很高兴这个去了Node。

I love npm. It's easy to install, easy to use, and there are thousands of packages available for almost any need. I also like the fact that npm lets you choose between the global and local installation of packages (in contrast to languages such as Ruby, where it's standard for your gems to be installed alongside your Ruby version). The tooling is also fantastic. Tools such as Bower and Grunt have a regular place in my workflow, and have increased my productivity many times over.

我爱npm 。 它易于安装,易于使用,并且几乎可以满足任何需求的数千种软件包。 我还喜欢npm允许您在软件包的全局安装和本地安装之间进行选择的事实(与Ruby之类的语言(例如Ruby,与Ruby版本一起安装gem的语言不同)相反。 该工具也很棒。 Bower和Grunt之类的工具在我的工作流程中占有固定位置,并且使我的工作效率提高了很多倍。

It's also worth mentioning that npm v3 is out in beta. This addresses many of the points that Bruno raises, such as the nested node_modules approach bug.

还值得一提的是npm v3已发布beta版 。 这解决了Bruno提出的许多问题,例如嵌套的node_modules方法错误。

Quote of the entire smackdown:

整个打击的报价:

PHP developers will probably want/need to install Node.js at some point. The reverse isn’t true.

PHP开发人员可能会希望/需要在某个时候安装Node.js。 反之则不正确。

第五回合:环境 (Round 5: Environments)

Round 5 touched on where the technologies can be used and deployed, and which platforms and ecosystems are supported. Craig wasn't explicit about his call on this one, but it looks like a wet sail for Node.

第5轮探讨了可在何处使用和部署技术以及支持哪些平台和生态系统。 克雷格(Craig)并未明确表示他对此事的呼吁,但对于Node而言,这似乎像是一帆风顺。

布鲁诺: (Bruno:)

Craig said he would compare PHP's and Node's web strengths (general web development challenge) and then says JS is everywhere. Firstly, we're comparing Node.js, not JS itself. Secondly, we're comparing the languages and environments where they can run. Saying a monkey is better than a fish because the fish has failed to climb the tree is just silly. But both the monkey and the fish can swim, so let's compare how well they do that.

Craig说他将比较PHP和Node的Web优势(一般的Web开发挑战),然后说JS无处不在。 首先,我们要比较Node.js而不是JS本身。 其次,我们正在比较它们可以运行的语言和环境。 说猴子胜于鱼,因为鱼没能爬到树上真是愚蠢。 但是猴子和鱼都可以游泳,所以让我们比较一下它们的游泳效果。

In a web development environment, PHP wins hands down. There are tools for desktop development in PHP — and yes, true, you probably won't use them. But you definitely will use the command line aspect of PHP.

在Web开发环境中,PHP胜出。 有一些PHP 桌面开发工具 -是的,的确,您可能不会使用它们。 但是您肯定会使用PHP的命令行方面

詹姆士: (James:)

Again, I agree with Craig. Several of the features that are making Node.js so popular (speed, scalability, affinity with JSON, low resource usage) also make it well-suited for many other kinds of applications, for example powering IoT devices. I mean, who doesn't love robots?

再次,我同意克雷格的观点。 使Node.js如此流行的若干功能(速度,可伸缩性,与JSON的关联性,低资源使用率)也使其非常适合许多其他类型的应用程序,例如为IoT设备供电。 我的意思是, 谁不喜欢机器人

Node has also given rise to projects such as NW.js (an app runtime based on Chromium and Node.js) which allows you to write native apps in HTML and JavaScript. Exciting times!

Node还引发了诸如NW.js (基于Chromium和Node.js的应用运行时)之类的项目,这些项目使您可以用HTML和JavaScript编写本机应用。 激动人心的时代!

第六轮:整合 (Round 6: Integration)

Round 6 looked at integration with databases and drivers, and PHP wins mainly because of its age.

第6轮着眼于与数据库和驱动程序的集成,PHP之所以成功,主要是因为它的年代久远。

布鲁诺: (Bruno:)

Integration is a draw. PHP has an age advantage in this, giving it more options, but this also means it suffers from some severely outdated integrations like the mysql extension — which we've only managed to get rid of in PHP7, but which has been unusable for years.

整合是吸引人的。 PHP在此方面具有年龄优势,可以提供更多选择,但这也意味着它遭受了一些严重过时的集成,例如mysql扩展—我们仅在PHP7中设法摆脱了它,但多年来一直无法使用

詹姆士: (James:)

Not sure I agree with this. The whole round seems fuzzily worded, and I would have hoped for an example of "older, less-popular technologies". This would also be a good opportunity to underline one of Node's big pluses — that it speaks JSON. JSON is probably the most important data exchange format on the web, and is also the lingua franca for interacting with many of the latest NoSQL databases. JSON is ideally suited for consumption by a JavaScript program, meaning that when you're working with Node, data can flow neatly between layers without the need for reformatting. You can have one syntax from browser to server to database.

不确定我是否同意这一点。 整个回合的措辞似乎含糊不清,我希望有一个“较旧的,不那么受欢迎的技术”的例子。 这也将是一个很好的机会来强调Node的一大优点-它讲JSON。 JSON可能是网络上最重要的数据交换格式,并且也是与许多最新的NoSQL数据库进行交互的通用语言。 JSON非常适合JavaScript程序使用,这意味着当您使用Node时,数据可以在层之间整齐地流动,而无需重新格式化。 从浏览器到服务器再到数据库,您可以使用一种语法。

第七回合:托管和部署 (Round 7: Hosting and Deployment)

Round 7 looked at how easy it is to deploy new apps to a live web server, and in Craig's view, PHP is the clear winner on this count.

第7轮考察了将新应用程序部署到实时Web服务器有多么容易,在Craig看来,PHP显然是赢家。

布鲁诺: (Bruno:)

Again, Bruno keeps quiet, having nothing to add.

同样,布鲁诺保持安静,没有任何补充。

詹姆士: (James:)

This is one area where Node has got a lot of catching up to do. Every budget web hosting company offers a PHP packet with MySQL thrown in. To see some kind of output, all you've got to do is create a file with a .php extension, shove some valid statements between <? and ?>, upload the file and point your browser at it. The same cannot be said for Node. There are, of course, many options for Node hosting, but they invariably require more set up and command line access, which is potentially off-putting for beginners. PHP wins this round hands down, no question.

这是Node有很多工作要做的领域。 每个预算虚拟主机公司都提供一个包含MySQLPHP​​数据包。要查看某种输出,您要做的就是创建一个扩展名为.php的文件,并在<?之间插入一些有效的语句。 和?>,上传文件,然后将浏览器指向该文件。 不能说相同的节点。 当然,Node托管有很多选择,但是它们总是需要更多的设置和命令行访问权限,这对于初学者来说可能是令人讨厌的。 毫无疑问,PHP赢得了这一回合。

第八回合:表现 (Round 8: Performance)

Round 8 focused on speed; and, although this can often come down to the experience and care taken by the development team, Craig noted the advantages of Node on a number of fronts.

第八回合专注于速度; 并且,尽管这通常取决于开发团队的经验和谨慎,但Craig指出了Node在许多方面的优势。

布鲁诺: (Bruno:)

Misconceptions abound. First, there is this post which renders all performance discussions moot. Any and all performance gains/losses depend exclusively on the experience of the devs and the type of app. But even if that post isn't convincing you that performance discussions are stupid out of context, here are some of my own arguments:

误解比比皆是。 首先, 这篇文章使所有性能讨论都没有意义。 任何或所有的性能增益/损耗都完全取决于开发人员的经验和应用程序的类型。 但是,即使那篇文章不能说服您性能讨论是愚蠢的,但以下是我自己的一些论点:

  • PHP is getting a multi-threaded built-in server. This would make it possible to bypass an external server completely, but not recommended (yet). There are also super fast servers like Nginx which make the whole process of launching PHP and delegating requests to it unnoticeable.

    PHP正在获得一个多线程内置服务器。 这样可以完全绕过外部服务器,但不建议(目前)。 也有像Nginx这样的超快速服务器,它们使启动PHP和将请求委托给PHP的整个过程变得不明显。
  • Projects like HHVM and Appserver add powerful async and multithreading aspects to PHP, and PHP7 itself is getting some powerful upgrades in that department, too.

    HHVM和Appserver等项目为PHP添加了强大的异步和多线程方面,而PHP7本身也在该部门获得了一些强大的升级。
  • PHP's single-request app lifetime is the biggest ankle-weight, yes, if you're looking for raw speed; but this, too, can be easily circumvented, not only with Memcached and similar solutions as Craig states, but with methods like Ajax. By the way — server-side JS apps are single-request by default, too. What's more — this single-request lifetime is also an advantage, in that it rebuilds the app every time it's used, thereby avoiding memory problems, cleaning up garbage, and staying lean and clean. When was the last time you used a stable, long-running, memory-leak-free JavaScript application either on the back end or the front end?

    PHP的单请求应用程序生命周期是最大的难题,是的,如果您正在寻找原始速度; 但是,不仅可以使用Memcached和与Craig所述的类似解决方案,而且可以使用诸如Ajax之类的方法来轻松地规避这一问题。 顺便说一下,默认情况下,服务器端JS应用程序也是单请求。 而且,此单请求生存期也是一个优势,因为它每次使用时都会重新构建应用程序,从而避免了内存问题,清理垃圾并保持精简。 上一次在后端或前端使用稳定,可长时间运行且无内存泄漏JavaScript应用程序是什么时候?

Performance discussions are, and always will be, a draw. (Unless you're dealing with Java — then Java always loses! ;) )

绩效讨论是而且永远是吸引人的。 (除非您要使用Java,否则Java总是会失败!;))

詹姆士: (James:)

Node is touted as the runtime of choice for high-performance, low latency applications, and has already found its way into the code stacks of several Fortune 500 companies. Thanks to its non-blocking I/O mechanism and Google Chrome V8 engine technology, it has become synonymous with the words "fast" and "scalable". There are numerous stories online about how Node brought serious performance gains to companies and lead to greater developer productivity. I'm happy to see this one go to Node, but understand that it's a contentious point.

Node被吹捧为高性能,低延迟应用程序的首选运行时,并且已经在多家财富500强公司的代码堆栈中找到了使用它的方法。 得益于其无阻塞的I / O机制和Google Chrome V8引擎技术,它已成为“快速”和“可扩展”的同义词。 在线上有许多关于Node如何为公司带来可观的性能提升并提高开发人员生产力的故事。 我很高兴看到这一点进入Node,但了解这是一个有争议的观点。

第9回合:程序员的激情 (Round 9: Programmer Passion)

Round 9 looked at Craig's perception of how much passion developers are currently showing for PHP and Node, and in his estimation, Node wins hands down.

第9轮考察了Craig对开发人员当前对PHP和Node表现出的热情的看法,据他估计,Node胜出。

布鲁诺: (Bruno:)

You are definitely looking in the wrong places, Craig. The PHP community is incredibly passionate and very active. There are over 20 big conferences per year, and some amazing topics get discussed. The treading of water has finished with the advent of HHVM and PHP7.

克雷格,您肯定在找错地方了。 PHP社区非常热情而且非常活跃。 每年有20多个大型会议,并且讨论了一些惊人的话题。 HHVM和PHP7的问世已经使水的开发工作告一段落。

Additionally, I would say that it's curious that Node's developers still haven't learned how version numbers work (version v0.12.5 at the time of writing), even after 6 years in development. That kind of immaturity and desperate "playing it safe" (whoops, you used something that's unstable, your fault it broke your company lol), coupled with the critical but ignored ancient bugs that alienate userbases of entire operating systems, is something that will turn any serious developer away from a programming language's ecosystem.

另外,我想说,奇怪的是,即使在开发了6年之后,Node的开发人员仍然没有学会版本号的工作方式(在撰写本文时为v0.12.5版)。 那种不成熟和绝望的“安全使用”(糟糕的是,您使用了不稳定的东西,您的错使您的公司破产了),再加上严重但被忽略的古老错误,这些错误疏远了整个操作系统的用户群。任何远离编程语言生态系统的认真开发人员。

I dislike Node. My dislike is based on negative experiences mainly revolving around npm. That might change in the future, but for now, I'm filled with dread and despair every time I have to use Node in any capacity. We all have our preferences, but it's important to remain objective and pick the right tool for the job. But it's also important to admit that sometimes picking the right tool entails picking the wrong one first because you just don't know yet. So don't listen to Craig. Don't listen to Jim. Don't listen to me. Try it out — see what works, find out what feels good and use that. Ultimately, the environment that makes you feel productive and awesome is the best one, not the one that gives you a millisecond shorter loading times.

我不喜欢Node。 我不喜欢基于主要围绕npm的负面经验。 将来可能会有所改变,但是就目前而言,每次必须以任何身份使用Node时,我都充满了恐惧和绝望。 我们都有自己的偏好,但保持客观性并为工作选择正确的工具很重要。 但是也必须承认,有时候选择正确的工具需要首先选择错误的工具,因为您还不知道 。 所以不要听克雷格的话。 不要听吉姆。 不要听我说 尝试一下-看看有什么用,找出感觉好的并使用它。 归根结底,让您感到高效和令人敬畏的环境是最好的环境,而不是使您的加载时间缩短一毫秒的环境。

詹姆士: (James:)

Node is hot. There is a whole lot of innovation going on right now in Nodeland. Whilst passion is subjective, I'm glad Node won this round.

节点很热。 Nodeland目前正在进行大量创新。 尽管激情是主观的,但我很高兴Node赢得了本轮比赛。

第十回合:未来 (Round 10: The Future)

Round 10 looked at the future of both languages, and Craig declared this one a draw, as both languages look to have a strong future at this stage.

第10轮考察了这两种语言的未来,克雷格(Craig)宣布了这两种语言的吸引力,因为这两种语言在现阶段都拥有强大的未来。

布鲁诺: (Bruno:)

Bruno had to rush off to write some more PHP and edit incredible PHP articles for SitePoint.

Bruno必须赶紧写更多PHP,并为SitePoint编辑令人难以置信的PHP文章

詹姆士: (James:)

James was itching to get back to his beloved JavaScript channel, too, but offered these parting words:

詹姆斯也很想回到他钟爱的JavaScript频道 ,但是他提供了以下分词:

A draw was a fair result for this round. Node is the rising star, but it's going to take something massive to unseat PHP.

对于本轮比赛,平局是公平的结果。 Node是后起之秀,但是要取代PHP还要花很多钱。

To wrap up, if your only tool is a hammer, then every problem looks like a nail. Node isn't the perfect fit for every scenario, and indeed there are many times when it makes sense not to use it. However, what Node does well, it does very well. It's up to you to make an informed choice and choose the best tool for the job.

总结一下,如果您唯一的工具是锤子,那么每个问题都像钉子。 Node并非适用于所有情况,并且确实有很多时候不使用它是有意义的。 但是,Node做得很好,它做得很好。 取决于您做出明智的选择,并为工作选择最佳工具。



So, now that Bruno and James have had their say, what do you have to say?

那么,既然布鲁诺和詹姆士都有发言权,那么要说什么呢?

翻译自: https://www.sitepoint.com/php-vs-node-js-smackdown-right-of-reply/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值