从熟练工的状态下提升到架构师的基本功和技巧

3年经验程序员患上了「大厂通病」,十年阿里架构大佬教你这样做 3 年经验的大厂程序员,是 HR 眼中的香饽饽,本应在招聘市场上受到追捧,然而,最近我发现一名履历不错的程序员,跳槽时未能通过技术面,此反常结果令我感到疑惑。 在与他交谈后,我又与多名相似履历的程序员进行沟通,发现不少 3 年工作经验的大厂程序员,会因技术瓶颈陷入职业困境中。 观察数名程序员所陈述的焦虑表现无非是:失去了主动学习的热情,不再刻苦钻研技术,长时间消息闭塞,对新技术、新领... 阅读详情

6-2-3.jpg

点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!

眼尖的朋友可能还看见了此博客页面左上角还有惊喜哟

本人自认为已经是高级开发,自认为还算勤恳,用了不少时间看了架构师方面的资料,也有机会从事了1年左右架构相关的活。本人尚有自知之明,还谈不到技术架构的水准,但在本人目前工作环境里,能得到牛人亲历指导,本人也不断通过拜师学艺,自认为走在正确升级的途径上,即只要继续努力,在不久的将来能拿到架构师的工资。

回想我当年处于高级开发阶段,也算是个熟练工,每天干的都是体力活,说白了就是不断复制熟悉的工作模式。由于在工作中没法实践到高并发组件等架构师所必需的知识点,当时只也只能靠看资料来积累,靠面试来感受对公司架构师的实际要求,自己感觉也走了不少弯路。

为了更好地继续后面的升级之路,我写下这篇阶段性总结文章,也一方面通过总结,让我更加明确后继的计划和目标,另一方面,也希望能尽个人的微薄之力让各位同路人少走弯路。这篇文章也算是我之前两篇博文架构师更多的是和人打交道,说说我见到和听说到的架构师升级步骤和平时的工作内容,以及看下资深架构师平时需要解决的问题,对比你离资深架构师还有多少距离——再论技术架构的升级之路的后继系列文。

一、熟练工有退步的风险,所以首先主观上得不断上进

每个公司做的活其实都有局限性,如果就停留在本公司熟练工的阶段,那么一定无法紧跟技术进步的步伐,长而久之就会落后了。

话说回来,不是每个熟练工都能经得起舒适区诱惑的,我就拿我经历过的舒适区和目前的挑战区状况对比一下。

上班前,在外企的时候,由于每天干的活都能应付,所以没丝毫压力,而且由于是弹性工作制,所以10点到算常态,一周总有1次10点半前到,上班路上,还能用悠闲的心情看风景。在目前互联网公司,上班前就得规划一天的工作,有时候想想今天要干的活技术上我不大熟,或者得催别的组要接口,所以经常有忐忑不安的感觉,一路上有时还得小跑,虽然也是弹性工作制,但总是9点前到,早到就能早开始做事情。

上班时,在外企的时候,对进度的压力不大,而且干的活都会,所以可以优哉地干,平时有空可以逛个网站,而且出去逛一圈是常事,加班到8点就会埋怨,到了周五下午,大多数人都没心思干活了,基本都是坐等下班。而在互联网公司,每天都有干不完的活,干好活,就得不断反思,看如何才能干更好,否则就压力很大。晚上加班到9点是常事,而且最头痛的是,不少事情不是能用时间都能解决,比如出个技术方案,里面涉及到的技术不熟,就得拼命学。

周末以及下班后,在外企的时候,由于无需积累,所以很轻松,也能享受生活,像我当时写书写博客,还出了两本书,Java Web轻量级开发面试教程和Java核心技术及面试指南,还算比较勤奋的,而在互联网公司,对不起了,平时一定得看资料,而且绝对不能装模作样地看,如果一个阶段里不进步,那么就坐等被说。

由奢入俭难,而且舒适区用的技术要比挑战区落后很多,而高级开发到架构师的升级任务未必是容易达成的,所以在舒适区的时候,只能平时多上进,要怎么上进?其实拿出当年高考四分之一的努力程度即可。

二、从会用分布式组件开始,而且不能光看资料

架构师的重要工作任务是解决分布式高并发的问题,所以升级可以从会用一些分布式框架开始。

比如nginx怎么配置,dubbo和zookeeper怎么整合,kafka消息中间件怎么配置,redis怎么配置,或者ETL该怎么配置。看了各种教程后,一定得自己找个环境配置一下,比如我通过nginx配置,确实能把请求发送到不同的服务器上,或者通过设置dubbo配置,确实能做到超时重发。

这个步骤的难点是,在自己的机器上未必能模拟出分布式环境,所以如果可以,就找公司测试环境实践,或者自己机器上装个虚拟机。如果实在没有办法,安装个环境,然后自己设置一遍配置,哪怕没法调试,自己设置一遍总比光看教程要好。

三、思考两个问题,从中能归纳出升级所必须的基本功

不少高级开发摸不到升级架构师的方法,其实很多技巧平时工作时就能接触到。可能这里一时无法列全升级到架构师所需要的基本功,但大家可以思考如下两方面的问题。

  1. 当前系统的运维方面,为了让你的系统能平稳地运行平稳地升级版本,你需要掌握哪些技能?当系统在线上表现出有问题时,你该如何通过查日志等方面来排查问题点?

  2. 再进一步,可以考虑系统高并发方面的问题。你的系统当前能应付多少并发量?当前系统的瓶颈在哪?任何系统都有瓶颈,比如SQL压力大,非常容易导致OOM异常。如何通过看日志等方式确认当前系统的瓶颈所在?

为了得到上述两个问题的答案,我们需要掌握各类技能,比如通过jenkins打包发布版本,通过linux日志查看问题,通过MAT查看OOM异常时的Dump文件,诸如此类,这就是升级到架构师所必须的基本功。

所以当我们在一个公司成为熟练工,达到“舒适区”以后,一定不能局限于自己所被分配的活。如果再达到高级开发的水平后,一定有机会接触架构配置调优等方面的活,这时候,有条件的最好能亲身参与,如果没条件,哪怕看配置看流程看代码也行。

四、架构师得从底层代码角度,进一步查看实现细节

java语法谁都会,但从初级开发,高级开发和架构师等不同的视角,关注的点一定不同。

初级开发会专注于“如何调用”和“如何才能保证没有语法和逻辑上的问题”,高级开发会根据当前需求选择一些合适的语法点,比如遇到高并发会选择“线程池”,遇到NIO类需求时则选用netty,而架构师则需要在使用各种组件时,进一步了解各种坑。

比如在使用netty时,则需要了解如何解决半包粘包问题,在使用堆外内存时如何保证能正确回收内存。这就要求高级开发在升级到架构师的路上,更得关注必要的底层代码,比如netty里LengthFieldBasedFrameDecoder解决半包的实现代码,以及DirectBuffer部分的相关代码。

推而广之,除了netty之外,高级开发在“会用分布式组件”的基础上,更得从高可用(一台down了能自动切换)高并发(这不用说了)集群上下功夫,这只能一个个组件自己看了,网上这类资料不少,比如我前几天看到篇阿里架构师面试指南,里面针对各组件提了不少问题,大家可以逐一对比,根据问题查看底层实现细节。

对高级开发而言,组件可能就是一个个jar包,但对架构师而言绝不是这样,比如某个基于netty的系统一直出现OOM异常,那么架构师首先得熟悉netty jar包里的底层代码,而且必要时,得debug进这些底层代码,或者通过dump文件发现现有系统在使用堆外内存时未释放内存的点。

看底层代码,说起来容易做起来很难,要看到什么程度?如何才能不拘泥于细节?我目前的体会是,第一看流程,从流程里看这个组件的关键模块和重要方法,第二还是结合阿里架构师面试题里的问题,比如提到dubbo底层通讯协议,那么就把对应的模块和对应的方法看一下。

五、架构师的思维:更得让架构切合业务,还得控制风险

记得我在入门架构师的开始阶段,总是很理想话,总是会画出一个解决高并发的框图,里面包含了各种组件,这不算错,但只是第一步。

在大多数场景里,架构师不是从零起点设计,而是需要结合现有系统的各种痛点改造系统。举个例子,当前数据库性能很慢,如果有钱的话,比较直接的办法是升级到oracle,但往往不现实,所以架构师可以搭建多个mysql实例,然后用mycat做分库分表。而且,从单库切换成分库分表时,得考虑到,万一切换失败,我该如何回退,由此可以设计出开关和汇总表等方案。

那么高级开发如何在这方面提升自己的能力呢?只能跟在架构师后面,仔细分析具体的设计方案。俗话说,熟读唐诗三百首,不会作诗也会吟,而各公司多少会有些线上的组件,大家可以通过看配置文件以及架构的工作流程,而且,在上线一个新架构方案时,可以多了解下避规风险和回退的方案。

六、实践才能提升,那如何没实践机会怎么提升?

今年我在加入到一个互联网公司后,由于有机会接触到各种架构,所以感觉有所提升。相比之下,我之前在一家外企,在架构方面更多的是“看视频看组件”,然后在组内分享架构的内部代码(总之就是实践的机会很少),所以在那段时间里,我自己感觉进度速度不快。

要应聘架构师的职位,首先要有相关实践经验, 但对一些没机会实践的朋友来说,该怎么办?之前我的做法是,看资料,然后冒充自己是架构师去面试,但这很难,因为有经验的架构师级别的面试官,一看就能看出是真实做过还是理论经验。下面就说些真实有效的做法。

  1. 可以在现有公司,多申请干些系统上线系统维护方面的工作,在外企,这类职位叫Support,在国内公司叫“系统运维”,具体的工作是负责把系统部署到产线上,以及在产线上搭建各种诸如oracle,mysql, nginx,mq等组件,这些岗位在各公司都有,如果有机会,最好是能在这类岗位上干一段时间,如果没机会,就可以跟相关人员混熟,然后看些配置,了解些架构搭建的方式。

  2. 遇到架构方面的方案评审,尽可能多参加。组内如果有架构方面的活,尽量多做些,刚开始一定是不会,不会的时候千万别怕丢脸,多跟着熟悉架构的同事后面多问,多看看人家是怎么排查和调试架构方面的活,一来二去就熟悉了。

我也见到过一些同学,所在的公司用的技术比较传统,在整个公司里都没有机会用到分布式组件架构,那么没办法了,要么自己看资料自己练习(这其实效果并不好),要么自己找个机会跳到互联网公司。

七、总结

说到底,升级的诀窍只能是多观察多揣摩多实践,而升级路上的艰辛,真的是如人饮水,冷暖自知。

本人尚属勤奋,所以虽然天赋一般,在升级的路上也是一波三折步步艰辛,但在坚持之下,自认为也算有些进步,所以尚敢写些心得供大家参考。

如果大家感觉本文有所帮助,请帮忙推荐此文,如果感觉文章内尚有不足,也请通过评论多多帮助本人,本人不胜感激。

程序员如何提升为架构师 从码农、程序员到高级程序员,再到架构师必经的过程的技术要点 立即下载

相关推荐

《商用密码应用与安全性评估》第四章密码应用安全性评估实施要点4.1密码应用方案设计

密码应用方案设计

qq_40442137的博客 1472

如何成长为优秀的架构师?架构师成长的4大必经之路

作者 陈睿Mike之前谈到架构师核心技能,如果你对架构师这个职位从技能的角度有比较清晰的认识了,本篇文章将为你继续揭示架构师这个职位的成长周期,在国内架构师需要多年的实战经验和个人修炼,一名优秀的架构师,离不开个人的努力和公司的机遇,挑战和机遇并存。首先,大部分架构师的成长都是伴随公司的发展需要从而演变而来,需要大量时间的实践以及不断的经验积累。

jjc4261的博客 903

半导体AMHS天车振动控制:从0.5G到超低振动的技术演进与工程实战

在先进晶圆厂中,自动化物料搬运系统(AMHS)的天车如同空中出租车,承担着晶圆盒(FOUP)在洁净室各工艺区间的转运任务。然而,当天车加减速、过弯或抓取时产生的机械振动通过轨道梁和建筑结构传递至光刻机等敏感设备,便可能直接威胁套刻精度与良率。传统被动减振方案依靠橡胶垫和弹簧,在0.5G指标时代曾行之有效,但在EUV光刻和先进制程面前已力不从心。主动振动控制技术通过传感器、控制器与作动器构成的闭环系统,在轨道吊点和机械手端实时输出反向力抵消振动,配合磁悬浮走行、轻量化结构及调度系统的路径优化,将振动从0.5G

weixin_29188043的博客 345

作为一个码农的悲哀:我是架构师,而你不是

一般来说技术团队的金字塔顶尖往往是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大概平均不到 20%。而架构师也可以分为初级、中级、高级,江湖上真正高水平的架构师就更少了。 什么是架构师? 架构师是一个角色,定义角色其实是定义职责,架构师的职责是:识别并定义问题,创建、选择或调整架构,从而找到最优的方案,解决问题。 这其实也是架构师做事的一般套路:定义问题→确定架构→提出方案→落地拿结果。这四步中,越是前面的步骤,越是重要,越是抽象,也越是困难,越能体现架构师的功力。 架构师常说,

Hsuesh的博客 602

实用电路精讲系列---ACDC开关电源

AC/DC开关电源工作原理及应用解析 AC/DC开关电源通过高频开关技术将交流电转换为稳定直流电,核心流程包括整流滤波、高频开关转换、反馈稳压和隔离保护。典型应用涵盖智能断路器、车载充电机、光伏逆变器等多个领域,采用不同拓扑结构和功率器件满足各场景需求。文章详细分析了基于LT1103的实用电路,包含输入整流、开关稳压、多级滤波等关键模块,并阐述了同步整流和多级滤波对提升效率稳定性的作用。这种电源技术通过高频开关切换+变压器耦合+闭环反馈,实现了高效紧凑的电能转换,在各工业领域具有广泛应用价值。

weixin_40590799的博客 2585

论文阅读笔记--Grid Anchor based Image Cropping: A New Benchmark and An Efficient Model

基于网格锚的图片裁剪:一种新的标准和高效的模型摘要1.介绍2.相关工作2.1 图像裁剪数据集和评估指标 摘要 图像裁剪的目的是通过去除图像中无关的内容来改善图像的组成和美学质量。现有的图像裁剪数据库大多只提供一个或多个人工标注的边界框作为基准,难以反映实际中图像裁剪的非唯一性和灵活性。 采用IoU等评价指标也不能可靠地反映裁剪模型的真实性能。本文回顾了图像裁剪的问题,并通过考虑图像裁剪的特殊特性和要求(如局部冗余、内容保存、高宽比),提出了基于网格锚的公式。 我们的公式将候选裁剪窗口的搜索空间从数百万减少到

qq_22565865的博客 2948

【架构师基本功】基础架构设计原则

在实际开发中,可以选择基础的数据结构,如数组、链表、栈、队列等,也可以使用高级的数据结构,如哈希表、红黑树、堆等,根据具体的场景进行选择。通过 C# 反射机制,我们可以在程序运行时动态地加载类和创建类的实例对象,调用类中的方法,访问类中的属性。通过 Python 动态导入模块,我们可以在程序运行时动态地导入模块并创建模块中的实例对象,调用模块中的方法,访问模块中的属性。有了 module 对象之后,我们就可以根据需要创建模块中的实例对象,调用模块中的方法,访问模块中的属性等。

我是Java程序员廖志伟,感谢朋友们的支持! 569

容器化部署指南——Docker/K8s环境下的OpenClaw实践(附Dockerfile)

通过本文的详细指导,你已经掌握了OpenClaw在Docker和Kubernetes环境中的容器化部署方法。从基础镜像构建到高级部署策略,从开发环境到生产环境,你现在已经具备了完整的容器化部署能力。 容器化技术为OpenClaw提供了灵活、可扩展、可移植的部署方案,能够满足不同规模和需求的应用场景。通过合理使用Docker和Kubernetes,你可以实现高效的部署管理和运维自动化。 在实际应用中,建议根据具体的业务需求选择合适的部署策略,并结合监控、日志、安全等最佳实践,确保系统的稳定性和可靠性。同时

博客 495

架构师需要直面的几个问题

、、、        以前收集过很多有关架构师能力模型的文章,感觉自己离架构师不远,但近一两个月真正把这个title戴我头上时才发现自己离一个合格的架构师还有很远,架构师决不仅仅停留在设计系统和写设计文档的层面,现在感觉到压力和捉襟见肘是因为没有真正回答过以下几个问题: 1)是否真正具备扎实的开发功底?而不是停留在满足项目需求 2)是否能推动他人去改进系统或提升技术?而不是停留在DIY

Jason的专栏 538

科研绘图系列:基因突变瀑布图统计以及可视化

科研绘图系列:基因突变瀑布图统计以及可视化

专注生信领域 1653

【Bug已解决】Claude Desktop Cowork 报错 Workspace unavailable 解决方案

方案适用场景推荐指数确认虚拟机镜像下载完整性排查的第一步,最基础的前提检查⭐⭐⭐⭐⭐确认虚拟机平台功能已启用Windows 系统功能层面的必要条件⭐⭐⭐⭐⭐重启 CoworkVMService快速尝试恢复服务正常状态⭐⭐⭐⭐完全重启客户端排除临时性状态错乱⭐⭐⭐⭐降级使用文件工具临时替代方案,不阻塞当前工作⭐⭐⭐报错的本质是Cowork 功能依赖的虚拟机管理服务,在 Windows 应用包隔离机制下未能正确定位虚拟机文件的实际存放路径。

博客 6231

勾魂版!年薪50W的架构师每天有多累:JVM+Redis+Nginx+Spring全家桶+多线程,都不能落下!

写在前面 2020年的开始是特殊的,但是大家有没有趁这个时间来提升自己的知识和能力,相信好多程序员都想在金三银四的时候找到或者跳槽到自己心仪的大厂,但是今年的错过了,可是学习的脚步是不能停下的,这样才会抓住每一次机会,希望大家都可以找到自己心仪的公司就业。 当然,除了做项目来提高自身的技术和知识,还有一种就是多看书!!!毕竟书是知识的海洋,趁现在来充实自己的知识和技能也是一种不错的选择,今天双手奉上Java程序员必读的热门书单:JVM+Redis+Nginx+并发编程+Tomact+Spring全家

+W❤:bjmsb2019 392

泛微OA与泛微OA之间打通实现统一待办配置

问题:学校OA与集团OA均为泛微Ecology8.0 ,由于流程审批互通的需要,要将两套OA系统打通,实现跨系统的流程流转。

symstandsun的博客 2269

从CRUD到系统架构师:构建技术内功的四大心法与实战路径

在软件开发领域,深入理解计算机系统原理是构建高性能、高可靠系统的基石。从进程线程调度、内存管理到I/O模型与网络协议栈,这些底层知识构成了复杂分布式系统的支撑框架。掌握这些原理不仅能帮助开发者快速定位线上问题的根本原因,更能从架构层面设计出优雅的解决方案。在微服务和云原生架构日益普及的当下,对JVM运行时机制、TCP拥塞控制等核心概念的深刻理解,成为应对高并发场景、保障系统稳定性的关键技术能力。本文通过系统化的思维模型构建、可调试的实践方法,结合具体案例,展示了如何将理论知识转化为解决实际工程问题的直觉,特

weixin_34416649的博客 334

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

OpenClaw智能体架构:从ChatGPT执行者到Agentic RAG架构师

智能体(Agent)是大模型落地的核心范式演进,其本质是将AI从单次响应的‘对话框’升级为具备目标分解、工具调度与异常处理能力的自主决策系统。Agentic RAG并非传统知识检索的简单增强,而是作为Agent的动态认知中枢,融合短期任务上下文与长期结构化知识,支撑可验证、可路由、可演化的语义查询。OpenClaw作为面向生产的智能体操作系统内核,强制暴露进程模型、资源隔离、状态持久化等系统级挑战,推动开发者从‘调用API’转向‘定义Skill契约’‘建模故障模式’‘治理RAG元数据’。这一转变直指当前工程

weixin_34289454的博客 313

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

从事软件开发行业一年来的总结,献给能静下来的自己

自毕业后从事软件开发,从实习到全职,整个过程学到很多东西,同时也一直关注Java程序员的未来,对自己的职业发展也逐渐清晰。 一直以来感觉自己在这个行业里,凭已有的项目经验和工作经历怎么着也应该算得上是一个熟悉业务的人士了,时常想着跳槽涨薪,换工作,但看着身边朋友这一年在换工作的过程中遭到的各类挫折,在此,只想再次告诫自己:静下心沉淀、学习,提升自身实力才是王道。 对软件行业的思考 IT行业不需要熟...

好记性不如烂笔头 1644

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Unity主程成长路线:从脚本到架构的5个关键跃迁点

在游戏开发领域,架构设计是构建可维护、高性能项目的核心能力。其原理在于通过合理的模块划分与解耦,提升代码复用性和团队协作效率。掌握面向对象、组件化、事件驱动等设计模式,能够有效解决代码耦合与重复开发问题,具有极高的技术价值。这些架构思想在Unity游戏开发中尤为重要,广泛应用于技能系统、UI框架、资源管理等模块设计。本文基于Unity开发者的成长路径,深入探讨了从脚本编写到系统架构的五个关键跃迁阶段,特别聚焦于性能优化和AssetBundle打包策略等实践难点,为开发者提供清晰的进阶路线图。

weixin_34056162的博客 428

嵌入式工程师职业发展路径:从功能实现到领域专家的价值跃迁

嵌入式系统作为连接物理世界与数字世界的核心技术,其核心在于通过微控制器或微处理器实现对硬件设备的精准控制与智能处理。从计算机体系结构到实时操作系统,其工作原理涉及软硬件的深度协同。这项技术的价值在于为物联网、智能汽车、工业控制等关键领域提供可靠、高效的底层支持。在应用场景上,嵌入式技术正从单一设备控制向端云协同、边缘智能演进,对工程师的能力要求也从单一技能向系统架构与领域知识结合转变。本文通过一位工程师的三年复盘,探讨了嵌入式行业的价值分层与能力矩阵构建,为处于职业瓶颈期的开发者提供了清晰的突围路径,其中低

weixin_33691817的博客 342

外包程序员的技术成长瓶颈与破局路径

程序员职业发展本质上是技术纵深、系统视野和决策权重三重能力的持续构建。外包模式虽提供入行入口,但其人头租赁契约、双重汇报机制与知识资产归属规则,系统性削弱了开发者对‘为什么’的追问能力、对全局架构的理解深度以及对技术方案的定义权。这种结构性限制导致技术成长易陷入‘横向广度有余、纵向深度不足’的困境。然而,在金融、政务等高合规要求场景中,具备甲方协作经验与问题翻译能力的外包背景工程师,正成为数字化转型中稀缺的‘桥梁型技术人才’。本文基于真实项目交付实践,解析外包环境下的能力陷阱,并提供可落地的3年技术主权构建

ciyinzhi8788的博客 443
上一篇: 互联网寒冬下,30岁的程序员,你慌了吗?
下一篇: 在首席架构师眼里,架构的本质到底是什么?
Java_No01
博客等级 码龄7年 17粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值