00-程序员技术练级攻略

 

有人的地方,就有江湖。

程序员技术练级攻略

 

程序员技术练级攻略

读书评论408,051 人阅读    

 

转载自: 酷壳

网址:   http://coolshell.cn/articles/4990.html

月色博客3月12日刊出了《写给新手程序员的一封信》,翻译自《An
open letter to those who want to start
programming
》,我的心上人(他在本站的id是Mailper)告诉自己,他期待在酷壳上观察一篇更具操作性的篇章。因为她也是爱好编程和技艺的玩意,于是,我让她把她的片段读书Python和Web编程的一部分点儿总计一下。于是她给我发来了一部分她的心得和经历,我在把他的感受做了不多的增改,并根据自己的经验扩展了“进阶”一节。那是一篇由新手和我那几个老家伙根据大家的经验成功的篇章

本身的那些朋友把那篇小说取名叫Build Your
Programming Technical Skills,我骨子里不知晓用汉语怎么翻译,但本身在写的经过中,自身认为那很像一个打网游做任务升级的一个进度,所以取名叫“技术练级攻略”,标题有点大,呵呵,这一个标题纯粹是为了好玩此地仅仅是在分享Mailper和自身个人的就学经验。(注:省去了自家作为一个初大家业已学习过的片段技术(昨天总而言之过时了),如:Delphi/Power
builder,也节省了本人学过的一对本身觉得乏味的技艺Lotus
Notes/ActiveX/COM/ADO/ATL/.NET ……)

大家已经在另一个社会风气里并肩应战,感受着一份分化的悲喜。十几年过去了,曾经一起组团的战友一大半恐怕已经afk了很久,你依然一度忘了上四回他的ID亮起是如曾几何时候,毕竟大运已逝,他们究竟不可以永远的留在这一个梦中的伊甸园。总会感概,那些回不去的时节。

前言

您是还是不是认为自己从高校毕业的时候只做过小玩意儿一样的次第?走入职场后即便没有何样经验也可以把以下这一个课外陶冶走一次(朋友的埋怨:高校课程总是从理论出发,作业项目都看不出有怎么样实际职能,不如从工作中的必要出发)

建议:

  • 不要乱买书,不要乱追新技巧新名词,基础的事物经过很长日子积淀而且还会在未来起码10年通用。
  • 想起一下历史,看看历史上时间线上技术的前进,你才能明白前些天会是什么样。
  • 早晚要入手,例子不管多么简单,指出至少自己手敲五回放看是或不是精晓了里头的末节。
  • 一定要学会思考,思考为啥要如此,而不是那么。还要举一反三地思考。

:你恐怕会很意外为啥下边的事物很偏Unix/Linux,那是因为自身以为Windows下的编程可能会在以后很没有前途,原因如下:

 

  • 近期的用户界面大概被多少个东西主宰了,1)Web,2)移动装备iOS或Android。Windows的图形界面不吃香了。
  • 越来越多的小卖部在用费用低质量高的Linux和各类开源技术来构架其系统,Windows的基金太高了。
  • 微软的东西变得太快了,很不持久,他们完全是在调戏程序员。详情参见《Windows编程革命史

因此,我个人觉得今后的取向是前者是Web+移动,后端是Linux+开源。开发这边基本上没Windows什么事。

这是一段充满了挣扎与信心的故事,在全部兽人一步步走向古尔丹设下的牢笼时,身为霜狼氏族首脑的杜隆坦保持了冷清。纵然杜隆坦可以让投机的氏族免受恶魔的腐蚀,但他却不可能改变总体兽人被一步步拖向毁灭的损毁的绝境。在部落崛起的经过中,杜隆坦屡次让古尔丹的阴谋受挫,古尔丹亦对此怀恨在心。但杜隆坦的尊重却让她获得了耐奥祖的信任,没有勇气揭破古尔丹的耐奥祖将一张写有古尔丹阴谋的羊皮纸交给了杜隆坦,提示他堤防古尔丹新的安插。

启蒙入门

1、 学习一门脚本语言,例如Python/Ruby

可以让你摆脱对底层语言的恐惧感,脚本语言可以让您神速开发出能用得上的小程序。实践项目:

  • 处理文件文件,或者csv (关键词 python csv, python open, python sys)
    读一个地点文件,逐行处理(例如 word count,或者处理log)
  • 遍历本地文件系统 (sys, os,
    path),例如写一个程序计算一个索引下所有文件大小并按种种标准排序并保存结果
  • 跟数据库打交道 (python sqlite),写一个小脚本总计数据库里条目数量
  • 学会用各类print之类不难严酷的艺术展开调试
  • 学会用Google (phrase, domain, use reader to follow tech blogs)

为什么要学脚本语言,因为她们实在是太有利了,很多时候我们要求写点小工具或是脚本来帮大家缓解难点,你就会发觉正规的编程语言太难用了。

2、 用熟一种程序员的编辑器(不是IDE) 和一部分着力工具

  • Vim / Emacs / Notepad++,学会怎么安插代码补全,外观,外部命令等。
  • Source Insight (或 ctag)

动用这个事物不是为着Cool,而是这一个编辑器在翻看、修改代码/配置著作/日志会更快更有作用。

3、 熟练Unix/Linux Shell和大面积的命令行

  • 即使你用windows,至少学会用虚拟机里的linux, vmware
    player是免费的,装个Ubuntu吧
  • 一定要少用少用图形界面。
  • 学会运用man来查看扶助
  • 文件系统结构和主导操作
    ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
  • 学会运用部分文书操作命令 sed/awk/grep/tail/less/more …
  • 学会使用部分管理命令 ps/top/lsof/netstat/kill/tcpdump/iptables/dd…
  • 摸底/etc目录下的各样配置文章,学会查看/var/log下的系统日志,以及/proc下的种类运作音讯
  • 打探正则表明式,使用正则表明式来查找文件。

对此程序员来说Unix/Linux比Windows简单多了。(参看我四年前CSDN的博文《其实Unix很简单》)学会运用Unix/Linux你会意识图形界面在少数时候其实是太难用了,极度地万分地降落工作作用。

4、 学习Web基础(HTML/CSS/JS) + 服务器端技术 (LAMP)

以后早晚是Web的世界,学习WEB基础的最佳网站是W3School

  • 上学HTML基本语法
  • 学习CSS怎么样选中HTML元素并行使有的基本样式(关键词:box model)
  • 学会用  Firefox + Firebug 或 chrome
    查看你以为很炫的网页结构,并动态修改。
  • 学学应用Javascript操纵HTML元件。精晓DOM和动态网页(http://oreilly.com/catalog/9780596527402)
    网上有免费的章节,丰盛用了。或参考 DOM 。
  • 学会用  Firefox + Firebug 或 chrome
    调试Javascript代码(设置断点,查看变量,品质,控制台等)
  • 在一台机器上配备Apache 或 Nginx
  • 学习PHP,让后台PHP和前台HTML举办数据交互,对服务器相应浏览器请求形成初始认识。完毕一个表单提交和反显的成效。
  • 把PHP连接本地或者远程数据库 MySQL(MySQL 和 SQL现学现用够了)
  • 跟完一个名校的网络编程课程(例如:http://www.stanford.edu/~ouster/cgi-bin/cs142-fall10/index.php )
    不要以为需求多于一学期时间,博士是全职一学期选3-5门课,你业余时间一定可以跟上
  • 读书一个javascript库(例如jQuery 或 ExtJS)+  Ajax
    (异步读入一个劳务器端图片或者数据库内容)+JSON数据格式。
  • HTTP: The Definitive Guide
    读完前4章你就知晓您天天上网用浏览器的时候爆发的政工了(proxy,
    gateway, browsers)
  • 做个小网站(例如:一个小的留言板,支持用户登录,Cookie/Session,增、删、改、查,上传图片附件,分页展现)
  • 买个域名,租个空中,做个自己的网站。

不算上卡拉波神殿和沙塔斯来说,除了刀锋山,其余的地点都有德莱尼的据点或原先遗留下来的瓦砾。而兽人原住种族,
貌似除了纳格兰跟刀锋山大致任什么地点方都不见有他们生活居住过或现住的建造(补充个鬼世界火的玛格汉台地),记得官方有说过德莱尼仅仅只是生活在德拉诺的一个角落,现在总的来说怎么觉得有点反过来了,感觉都有点地点包围中心了。德拉诺
(Draenor),兽人原来居住的地方,但由于各类原因已经不切合继续居住,兽人开头不停搬迁逃离那里。

进阶加深

1、 C语言和操作系统调用

  • 再一次学C语言,通晓指针和内存模型,用C语言落成一下各个经典的算法和数据结构。推荐《计算机程序设计方法》、《算法导论》和《编程珠玑》。
  • 学习(巴黎高等师范免费课程)总结机科学和编程导论
  • 学习(北大免费课程)C语言内存管理
  • 学学Unix/Linux系统调用(Unix高级环境编程),,精通系统层面的东西。
    • 用那个系统知识操作一下文件系统,用户(已毕一个得以拷贝目录树的小程序)
    • 用fork/wait/waitpid写一个多进度的次第,用pthread写一个多线程带同步或互斥的程序。多进度多进度领票的顺序。
    • 用signal/kill/raise/alarm/pause/sigprocmask落成一个多进程间的信号量通讯的次序。
    • 学会使用gcc和gdb来编程和调试程序(参看我的《用gdb调试程序》)
    • 学会运用makefile来编译程序。(参看我的《跟我联合写makefile》)
    • IPC和Socket的事物可以放置高级中来举行。
  • 学习Windows SDK编程(Windows
    程序设计 
    MFC程序设计

    • 写一个窗口,精通WinMain/WinProcedure,以及Windows的音讯机制。
    • 写一些主次来操作Windows
      SDK中的资源文件或者各类图片控件,以及作图的编程。
    • 学学怎么着行使MSDN查看相关的SDK函数,种种WM_信息以及部分例程。
    • 这本书中有那个例程,在实践中请不要照抄,试着友好写一个协调的例程。
    • 毫无太多于精晓那些东西,因为GUI正在被Web取代,首若是摸底一下Windows
      图形界面的编程。@virushuo 说:“ 我认为GUI确实不那么吃香了,但即便通晓GUI工作原理是很重大的。包涵活动设备支出,假若没有基础知识依旧很费劲。或者说移动设备支出必须精晓GUI工作,或者在win那边学,或者在mac/iOS上学”。

2、学习Java

  • Java 的就学重大是看经典的Core Java 《Java
    大旨技术编程
    》和《Java编程思想》(有两卷,我仅链了第一卷,丰硕了,因为Java的图形界面了然就可以了)
  • 上学JDK,学会查阅Java API
    Doc http://download.oracle.com/javase/6/docs/api/
  • 打探一下Java那种虚拟机语言和C和Python语言在编译和施行上的反差。从C、Java、Python思考一下“跨平台”那种技术。
  • 学会运用IDE Eclipse,使用Eclipse 编译,调试和付出Java程序。
  • 建一个汤姆cat的网站,尝试一下JSP/Servlet/JDBC/MySQL的Web开发。把前面所说的相当PHP的小品种试着用JSP和Servlet已毕一下。

3、Web的安全与架构

  • 上学HTML5,网上有众多过多学科,在此往日酷壳也介绍过众多,我在此地就不列支了。
  • 读书Web开发的安全难题(参考博客园新浪被口诛笔伐的那么些事,以及Ruby的那篇作品
  • 学学HTTP
    Server的rewrite机制,Nginx的反向代理体制,fast-cgi(如:PHP-FPM
  • 读书Web的静态页面缓存技术。
  • 学习Web的异步工作流处理,数据Cache,数据分区,负载均衡,水平伸张的构架。
  • 进行任务:
    • 应用HTML5的canvas 制作一些Web动画。
    • 品味在头里开发过的不胜Web应用中展开SQL注入,JS注入,以及XSS攻击。
    • 把前边开发过的这几个Web应用改成构造在Nginx + PHP-FPM +
      静态页面缓存的网站

4、学习关系型数据库

  • 您可以安装MSSQLServer或MySQL来上学数据库。
  • 学习读本里数据库设计的那些范式,1NF,2NF,3NF,……
  • 学学数据库的存过,触发器,视图,建索引,游标等。
  • 上学SQL语句,了解表连接的各个概念(参看《SQL
     Join的图示
    》)
  • 读书怎么优化数据库查询(参看《MySQL的优化》)
  • 实践职务:设计一个论坛的数据库,至少满意3NF,使用SQL语句询问本周,本月的新颖篇章,评论最多的稿子,最活跃用户。

5、一些开发工具

  • 学会使用SVN或Git来管理程序版本。
  • 学会运用JUnit来对Java进行单元测试。
  • 上学C语言和Java语言的coding standard 或 coding
    guideline。(我N年前写过一篇关C语言相当简单的篇章——《编程修养》,那样的东西你可以上网查一下,一大堆)。
  • 推介阅读《代码大全》《重构》《代码整洁之道

而影片《魔兽》的剧情将以率先次大战为主线,洛萨爵士后续的故事也许不会获取展现。在沙暴王国失陷后洛萨爵士指导着年幼的瓦里安与沙沙暴城难民逃往洛丹伦,觐见了泰瑞纳斯·米奈Hill君主,促成了人类七国的结盟。洛萨本人则充当了那个联盟的军旅总指挥,教导着人类、矮人与机智联军与群体作战。后来的新兴,在黑石塔前与毁灭之锤的征战中洛萨不幸阵亡,但奥格瑞姆也败在了洛萨的副官图拉杨手下,为协作赢得了世界二战的狂胜。

尖端深远

1、C++ / Java 和面向对象

本身个人觉得学好C++,Java也就是不费吹灰之力。可是C++的上学曲线万分的陡。不过,我觉着C++是最急需学好的语言了。参看两篇趣文“C++学习信心图
和“21天学好C++

  • 学习(新罕布什尔里士满分校免费课程)C++面向对象编程
  • 读我的
    怎么样学好C++”中所推荐的那么些书至少三遍以上(如果您对C++的驾驭可以深刻到像本人所写的《C++虚函数表解析》或是《C++对象内存存局)()》,或是《C/C++重临内部静态成员的圈套》那就越发科学了)
  • 下一场反思为啥C++要干成那样,Java则不是?你一定要学会相比C++和Java的不比。比如,Java中的起先化,垃圾回收,接口,十分,虚函数,等等。
  • 举行任务:
    • 用C++完毕一个BigInt,辅助128位的整形的加减乘除的操作。
    • 用C++封装一个数据结构的容量,比如hash table。
    • 用C++封装并完毕一个智能指针(一定要利用模板)。
  • 设计格局》必需一读,五遍以上,思考一下,那23个格局的选取场景。首若是两点:1)钟爱组合而不是继承,2)钟爱接口而不是完结。(也援引《浅显设计格局》)
  • 推行任务:
    • 使用工厂形式达成一个内存池。
    • 选择政策形式制做一个类其可以把文件文件举行左对齐,右对齐和中对齐。
    • 拔取命令情势达成一个命令行计算器,并援救undo和redo。
    • 选取修饰格局达成一个酒店的房间价格订价策略——旺季,服务,VIP、旅行团、等影响价格的因素。
  • 读书STL的用法和其布置概念  –
    容器,算法,迭代器,函数子。若是可能,请读一下其源码。
  • 施行职责:品味使用面向对象、STL,设计格局、和WindowsSDK图形编程的各类技能
    • 做一个贪吃蛇或是俄国四方的游艺。帮助不相同的级别和难度。
    • 做一个文件浏览器,可以浏览目录下的文书,并得以对分化的文本有例外的操作,文本文件可以打开编辑,执行文书则进行之,VCD或avi文件可以播放,图片文件可以显得图片。
  • 读书C++的有些类库的统筹,如:
    MFC(看看候捷先生的《浅显MFC》)
    ,Boost, ACE,  CPPUnit,STL
    (STL可能会太难了,可是如若您能了然其中的设计形式和布置这就太好了,如果您能长远到自家写的《STL
    string类的写时拷贝技术
    》那就更加不利了,ACE须要很强在的系统知识,参见后边的“抓实对系统的垂询”)
  • Java是实在的面向对象的言语,Java的设计情势多得无法再多,也是用来学习面向对象的设计情势的极品语言了(参看Java中的设计情势)。
  • 推荐阅读《Effective Java
    and 《Java解惑
  • 学学Java的框架,Java的框架也是多,如Spring, Hibernate,Struts
    等等,紧假诺上学Java的陈设性,如IoC等。
  • Java的技术也是烂多,重点学习J2EE架构以及JMS, RMI,
    等消息传递和长途调用的技巧。
  • 学习使用Java做Web Service(官方教程在此间
  • 执行任务: 品尝在Spring或Hibernate框架下营造一个有网络的Web
    Service的长距离调用程序,并可以在七个Service中经过JMS传递音讯。

C++和Java都不是能在短期内能学好的,C++玩是的深,Java玩的是广,我指出双方选一个。我个人的读书经验是:

  • 追究C++(我深究C/C++了十来年了)
  • 学习Java的各个设计形式。

2、狠抓系统通晓

紧要阅读下边的几本书:

  • Unix编程艺术》了然Unix系统领域中的设计和支出管理学、思想文化系统、原则与经验。你早晚会有一种听君一席话胜读十年书的痛感。
  • Unix网络编程卷1,套接字》那是一本看完你就领会互联网编程的书。紧要注意TCP、UDP,以及多路复用的系统调用select/poll/epoll的异样。
  • TCP/IP详解 卷1:协议》-
    那是一本看完后您就足以当网络黑客的书。明白以太网的的周转规律,精通TCP/IP的情商,运作规律以及怎么样TCP的调优。
  • 推行职务:
    • 清楚什么是阻塞(同步IO),非阻塞(异步IO),多路复用(select,
      poll, epoll)的IO技术。
    • 写一个网络聊天程序,有聊天服务器和五个聊天客户端(服务端用UDP对有的或享有的的闲话客户端进Multicast或Broadcast)。
    • 写一个简单的HTTP服务器。
  • Unix网络编程卷2,进度间通讯》信号量,管道,共享内存,新闻等各类IPC……
    这一个技能好像有些老掉牙了,然而仍然值得询问。
  • 执行职责:
    • 最紧要实施各个IPC进度序通讯的法子。
    • 品味写一个管道程序,父子进程经过管道调换数据。
    • 品尝写一个共享内存的次第,四个进度经过共享内存沟通一个C的布局体数组。
  • 学习《Windows宗旨编程》一书。把CreateProcess,Windows线程、线程调度、线程同步(伊芙nt,
     信号量,互斥量)、异步I/O,内存管理,DLL,这几大块搞了解。
  • 实施职责:运用CreateProcess启动一个记事本或IE,并监控该程序的运作。把后面写过的要命不难的HTTP服务用线程池完毕一下。写一个DLL的钩程序监控指定窗口的倒闭事件,或是记录某个窗口的按键。
  • 有了十二线程、多进程通讯,TCP/IP,套接字,C++和设计方式的主干,你可以琢磨一下ACE了。使用ACE重写上述的聊天程序和HTTP服务器(带线程池)
  • 履行任务:通过以上的有着知识,尝试
    • 写一个服务端给客户端传大文件,须求把100M的带宽用到80%上述。(注意,磁盘I/O和互联网I/O可能会很有难点,想一想怎么解决,此外,请小心网络传输最大单元MTU)
    • 打听BT下载的行事规律,用多进程的不二法门模拟BT下载的法则。

3、系统架构

  • 负载均衡。HASH式的,纯动态式的。(能够到谷歌学术里搜一些至于负载均衡的稿子读读)
  • 多层分布式系统 –
    客户端服务结点层、计算结点层、数据cache层,数据层。J2EE是经典的多层构造。
  • CDN系统 –
    就近访问,内容边缘化。
  • P2P式系统,切磋一下BT和电驴的算法。比如:DHT算法
  • 服务器备份,双机备份系统(Live-Standby和Live-Live系统),两台机械怎么样通过心跳监测对方?集群主结点备份。
  • 虚拟化技术,使用那一个技术,可以把操作系统当应用程序一下切换或重新配置和布局。
  • 学习Thrift,二进制的高质量的报道中间件,帮衬数据(对象)体系化和各类类型的RPC服务。
  • 学习Hadoop。Hadoop框架中最主题的设计就是:MapReduce和HDFS。MapReduce的考虑是由谷歌(Google)的一篇随想所提及而被盛传的,简单的一句话解释MapReduce就是“义务的演讲与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop
    Distributed File System)的缩写,为分布式总结存储提供了底层协理。
  • 了解NoSQL数据库(有人说或者是一个连通炒作的技能),但是因为超大规模以及高并发的纯动态型网站日渐变成主流,而SNS类网站在数量存取进程中有所实时性等刚性须求,那使得近期NoSQL数据库逐步成了众人所关怀的点子,并大有成为取代关系型数据库而变成未来主流数据存储形式的自由化。当前NoSQL数据库很多,一大半都是开源的,其中相比盛名的有:MemcacheDB、Redis、Tokyo
    Cabinet(升级版为Kyoto
    Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。

写了那么多,回想一下,觉得温馨一定的有成就感。希望大家不用吓着,我要好这十来年也在持续地学习,前几日本人也在求学中,人生本来就是一个连发学习和练级的长河。但是,一定有漏的,也有畸形的,还愿意大家补充和矫正。(我会依据大家的报告随时更新此文)欢迎大家经过自身的新浪(@左耳朵耗子)和twitter(@haoel)和本人沟通。

—– 更新  2011/07/19 —–

1)有对象奇怪为啥我在那篇小说发轫说了web+移动,却从没在背后提到iOS/Android的前端开发。因为自身心里有一种感觉,移动设备上的UI最后也会被Javascript取代。大家可以用One plus或Android看看google+,你就会了解了。

2)有意中人说我那边的东西太多了,不可能为了学习而学习,我分外同意。我在篇章的前头也说了要考虑。此外,千万不要觉得我说的这个东西是局地新的技巧,那份攻略里95%之上的全是基础。而且都是练习的根基技术。即是可以让您一通百通的技能,也是足以让你找到一份不错工作的技艺。

3)有对象说学那些事物学完都40了,还不如考虑怎么去挣钱。我想告诉大家,一是自我当年还并未40岁,二是学无止境啊,三是本人不觉得赚钱有多难,难的是怎么让您值那么多钱?无论是打工依旧创业,是什么东西让您自己的市值,让你公司的价值更高昂?其余地点我不敢说,对于网络或IT公司来说,技术实力相对是中间之一。

4)有意中人说技术都是工具,不该这么着迷这句话没有错,有时候我们必要越来越多的是抬早先来看看技术以外的事务,或者是说咱俩在作技术的时候不去想想为啥会有其一技能,为啥不是其余,难题不在于技术,难题在于大家死读书,读死书,成了技术的书呆子。

5)
对于NoSQL,近期比较火,但自身对其有些保守,所以,我只是说了然就足以。对于Hadoop,我认为其在分布式系统上有巨大的潜力,所以要求学习。 对于关系型数据库,的确是很重大的事物,那点是本身的大意,在原文里补充。

(全文完,转发时请注脚作者和出处)

事实上自己很看好这篇文章,不仅仅是因为它的始末对自我相比较适合,更关键的是最少是个样子。

感谢,陈皓。

有人的地点,就有江湖。

某女说,《魔兽》是讲超人打怪兽的故事吧?

某君竟无言语对。。。。。。

广大一下,《魔兽》的主要剧情讲的是何等?

主线是泰坦创世,其中一个泰坦:萨格拉斯的逐年的腐败,然后建立了焚烧军团企图掠夺和损毁一切文明。他在阿古斯世界引诱了污染者阿尔Mond和欺诈者基尔加丹,艾瑞达人由此堕落而成为了焚烧军团的一员。可是艾瑞达人的另一位首脑:先知维纶获得了一个名为纳鲁的种族的点化,带领没有堕落的族人逃离了阿古斯
并在艾泽拉斯世界安家。得知维纶的背叛后,基尔加丹愤怒的宣誓,即使追到宇宙与时间的限度也要除掉维纶。后来燃烧军团成功侵袭艾泽拉斯,但被古卡姆利多大陆的原著民所制服。半神塞纳留斯的阿爸
一头巨大的雄鹿,以及任何神灵统统战死。而萨格萨斯想要借助暗夜天使们守护的原则性之井来到达那一个世界的陈设也发表破产。

而从主线衍生的其它分支分外的高大,毕竟这是一个用了数十年的年月营造的一多级的故事。当然,那照旧一个未曾充值玩家的时代。这是一个玩网游的最好的时日了。君不见,现在的某某联盟网游,各处可知的买装备升级。

致最好的年青,最牵记的网游。

—致陪伴了自我总体青春的《魔兽》

小说配图

发表评论

电子邮件地址不会被公开。 必填项已用*标注