{"id":105258,"date":"2020-12-16T11:28:22","date_gmt":"2020-12-16T10:28:22","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=blog&#038;p=105258"},"modified":"2022-09-05T13:18:05","modified_gmt":"2022-09-05T12:18:05","slug":"jetbrains-2020-3","status":"publish","type":"blog","link":"https:\/\/blog.jetbrains.com\/zh-hans\/blog\/2020\/12\/16\/jetbrains-2020-3\/","title":{"rendered":"JetBrains \u5f00\u53d1\u5de5\u5177 2020.3 \u73b0\u5df2\u53d1\u5e03\uff01"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/12\/DSGN-10210-Banners-for-JetBrains-Toolbox-2020.3-Release_Blog_1280x800_temporary.png\" alt=\"JetBrains Toolbox 2020.3 Released\"><\/p>\n<p>JetBrains Toolbox 2020.3 \u5168\u90e8\u7248\u672c\u5747\u5df2\u53d1\u5e03\u3002 \u6211\u4eec\u4ecd\u7136\u5efa\u8bae\u60a8\u4f7f\u7528\u6211\u4eec\u7684\u514d\u8d39  <a href=\"https:\/\/www.jetbrains.com\/toolbox-app\/\" target=\"_blank\" rel=\"noopener\"><strong>Toolbox App<\/strong><\/a> \u66f4\u65b0\u60a8\u7684\u5de5\u5177\u3002<\/p>\n<p>\u5728\u65b0\u7248\u672c\u4e2d\uff0c\u57fa\u4e8e IntelliJ \u7684\u4ea7\u54c1\u4e2d\u5c06\u4e3a\u60a8\u5e26\u6765\u4ee5\u4e0b\u5168\u65b0\u7cbe\u5f69\u529f\u80fd\uff1a<\/p>\n<ul>\n<li>Git \u6682\u5b58\u652f\u6301<\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/blog\/2020\/09\/28\/code-with-me-eap\/\"><strong>Code With Me \u63d2\u4ef6<\/strong><\/a> \u52a9\u529b\u60a8\u7684\u534f\u4f5c\u5f00\u53d1 (\u652f\u6301 Rider \u548c DataGrip \u7684\u7248\u672c\u5c06\u4e8e\u660e\u5e74\u53d1\u5e03)<\/li>\n<li>\u91cd\u65b0\u8bbe\u8ba1\u7684\u6b22\u8fce\u5c4f\u5e55<\/li>\n<li>\u8c03\u8bd5\u5668\u4e2d\u7684\u4ea4\u4e92\u5f0f\u63d0\u793a\u548c\u5185\u8054\u76d1\u89c6<\/li>\n<li>\u66f4\u597d\u7684\u7f16\u8f91\u5668\u9009\u9879\u5361\u7ba1\u7406<\/li>\n<li>\u6539\u8fdb\u7684 Markdown \u7f16\u8f91\u548c\u9884\u89c8<\/li>\n<\/ul>\n<p>\u9605\u8bfb\u4ee5\u4e0b\u603b\u7ed3\uff0c\u8be6\u7ec6\u4e86\u89e3\u60a8\u6700\u559c\u7231\u7684\u5de5\u5177\u6dfb\u52a0\u4e86\u54ea\u4e9b\u65b0\u529f\u80fd\uff1a<\/p>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/idea\/\" rel=\"attachment wp-att-9633 noopener\" style=\"   min-width: 64px;margin-right: 24px;\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9633\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/logo.png\" alt=\"IntelliJ IDEA\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/idea\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>IntelliJ IDEA 2020.3<\/strong><\/a> \u5728\u8c03\u8bd5\u5668\u4e2d\u52a0\u5165\u4ea4\u4e92\u5f0f\u63d0\u793a\uff0c\u6539\u8fdb\u4e86\u5bf9 Java 15\u3001Spring \u7b49\u6846\u67b6\u7684\u652f\u6301\uff0c\u73b0\u5728\u6b63\u5f0f\u652f\u6301 Lombok \u63d2\u4ef6\u3002 \u6b64\u5916\uff0c\u5b83\u8fd8\u5f15\u5165\u4e86\u591a\u9879\u7528\u6237\u4f53\u9a8c\u6539\u8fdb\uff0c\u4f8b\u5982\u9009\u9879\u5361\u62d6\u653e\u7b49\u4e00\u4e9b\u65b0\u529f\u80fd\u3002<\/div>\n<\/div>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/webstorm\/\" rel=\"attachment wp-att-9638 noopener\" style=\" min-width: 64px;margin-right: 24px;\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9638\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/logo-3.png\" alt=\"WebStorm\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/webstorm\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>WebStorm 2020.3<\/strong><\/a>\u5e26\u6765\u4e86\u5bf9 Tailwind CSS \u7684\u652f\u6301\u3001\u66f4\u5feb\u5bfc\u822a\u7684\u65b0\u529f\u80fd\u3001\u5bf9 JavaScript \u548c TypeScript \u7684\u6539\u8fdb\u4ee5\u53ca\u8bb8\u591a\u5176\u4ed6\u6539\u8fdb\u3002<\/div>\n<\/div>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"https:\/\/www.jetbrains.com\/rider\/\" rel=\"attachment wp-att-9643 noopener\" style=\"   min-width: 64px;margin-right: 24px;\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9643\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/logo-7.png\" alt=\"Rider\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/rider\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>Rider 2020.3<\/strong><\/a> \u63d0\u4f9b\u4e86\u671f\u5f85\u5df2\u4e45\u7684 .NET 5\u3001C# 9 \u548c F# 5 \u7684\u652f\u6301\u3002 \u6211\u4eec\u8fd8\u5f15\u5165\u4e86\u65b0\u529f\u80fd\uff0c\u5982\u8c03\u8bd5\u5668\u4e2d\u7684\u5373\u65f6\u7a97\u53e3\u3001\u9879\u76ee\u4f9d\u8d56\u5173\u7cfb\u56fe\u3001Push-to-Hint\uff0c\u4ee5\u53ca\u5bf9 Avalonia UI \u6846\u67b6\u7684\u8bed\u8a00\u652f\u6301\u3002 Burst \u5206\u6790\u548c\u7740\u8272\u5668\u652f\u6301\u4e5f\u5df2\u9488\u5bf9 Unity \u5f00\u53d1\u8005\u66f4\u65b0\u3002<\/div>\n<\/div>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"https:\/\/www.jetbrains.com\/pycharm\/\" rel=\"attachment wp-att-9637 noopener\" style=\" min-width: 64px;margin-right: 24px;\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9637\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/logo-2.png\" alt=\"PyCharm\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/pycharm\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>PyCharm 2020.3<\/strong><\/a> \u63d0\u4f9b\u5927\u91cf\u6539\u8fdb\uff0c\u80fd\u591f\u5e2e\u52a9\u60a8\u63d0\u9ad8\u751f\u4ea7\u529b\u548c\u4ee3\u7801\u8d28\u91cf\u3002 \u514b\u9686\u6216\u5bfc\u5165\u7684\u9879\u76ee\u73b0\u5728\u53ef\u4ee5\u5728 PyCharm 2020.3 \u4e2d\u4e00\u952e\u914d\u7f6e\u3002 \u5982\u679c\u9879\u76ee\u4e2d\u5305\u542b requirements.txt\u3001setup.py\u3001environment.yml \u6216 pipfile\uff0cPyCharm \u5c06\u4e3a\u60a8\u8bbe\u7f6e\u5408\u9002\u7684\u73af\u5883\u3002 \u60a8\u7684\u4ee3\u7801\u4e2d\u6709\u672a\u89e3\u6790\u7684 React \u7ec4\u4ef6\u5417\uff1f PyCharm \u73b0\u5728\u4f1a\u4e3a\u60a8\u521b\u5efa\u76f8\u5173\u4ee3\u7801\u7ed3\u6784\u3002<\/div>\n<\/div>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/ruby\/\" rel=\"attachment wp-att-9644 noopener\" style=\" min-width: 64px;margin-right: 24px;\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9644\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/logo-8.png\" alt=\"RubyMine\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/ruby\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>RubyMine 2020.3<\/strong><\/a> \u5177\u6709\u7f16\u8f91\u5668\u4e2d\u6539\u8fdb\u7684\u9009\u9879\u5361\u7ba1\u7406\uff0c\u4ee5\u53ca\u9002\u7528\u4e8e\u6700\u65b0\u7248\u672c Ruby \u548c Rails \u7684\u5927\u91cf\u5168\u65b0\u529f\u80fd\u3002 \u6b64\u5916\uff0c\u8c03\u8bd5\u5668\u3001\u7ec8\u7aef\u548c\u6570\u636e\u5e93\u5de5\u5177\u4e5f\u6709\u65b0\u7684\u529f\u80fd\u548c\u6539\u8fdb\u3002<\/div>\n<\/div>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/resharper\/\" rel=\"attachment wp-att-9640 noopener\" style=\" min-width: 64px;margin-right: 24px;\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9640\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/logo-4.png\" alt=\"ReSharper\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/resharper\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>ReSharper 2020.3<\/strong><\/a> \u652f\u6301\u6700\u65b0\u7684 .NET 5 \u548c C# 9 \u8bed\u8a00\u66f4\u65b0\u3001Dynamic Program Analysis\u3001\u65b0\u7684\u201cPush-to-Hint\u201d\u53ef\u89c1\u6027\u6a21\u5f0f\uff0c\u4ee5\u53ca Avalonia UI \u6846\u67b6\u652f\u6301\u3002 **ReSharper C++** \u73b0\u5728\u63d0\u4f9b\u4e86\u4e0e UnrealHeaderTool \u7684\u65e0\u7f1d\u96c6\u6210\uff0c\u5e76\u4e3a HLSL Shader \u6587\u4ef6\u5e26\u6765\u63a7\u5236\u6d41\u5206\u6790\u68c0\u67e5\u3002<\/div>\n<\/div>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/objc\/\" rel=\"attachment wp-att-9627 noopener\" style=\" min-width: 64px;margin-right: 24px;\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9627\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/icon_AppCode.png\" alt=\"icon_AppCode\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/objc\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>AppCode 2020.3<\/strong><\/a>  \u73b0\u63a8\u51fa\u4ee5\u4e0b\u529f\u80fd\uff1aSwift \u672c\u5730\u5316\u652f\u6301\u3001\u65b0\u7684\u68c0\u67e5\u548c\u610f\u56fe\u64cd\u4f5c\u3001\u57fa\u4e8e SourceKit \u7684 **Go to Declaration**\u3001XCFrameworks \u652f\u6301\u3001\u6539\u8fdb\u7684\u91cd\u6784\u3001\u65b0\u7684\u8c03\u8bd5\u5668\u529f\u80fd\u7b49\u7b49\uff01<\/div>\n<\/div>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/phpstorm\/\" rel=\"attachment wp-att-9639 noopener\" style=\" min-width: 64px;margin-right: 24px;\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9639\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/phpstorm.png\" alt=\"PhpStorm\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/phpstorm\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>PhpStorm 2020.3<\/strong><\/a> \u5f00\u59cb\u652f\u6301 PHP 8\u3001PHPStan\u3001Psalm\u3001Tailwind CSS \u548c Xdebug 3\u3002 WebStorm 2020.3 \u7684\u6240\u6709\u65b0\u529f\u80fd\u548c\u6539\u8fdb\u4e5f\u90fd\u53ef\u4ee5\u5728 PhpStorm 2020.3 \u4e2d\u4f7f\u7528\u3002<\/div>\n<\/div>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"www.jetbrains.com\/zh-cn\/go\/\" rel=\"attachment wp-att-9636\" style=\" min-width: 64px;margin-right: 24px;\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9636\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/logo-1.png\" alt=\"GoLand\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/go\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>GoLand 2020.3<\/strong><\/a>: \u4e2d\uff0c\u60a8\u53ef\u4ee5\u6d4f\u89c8 goroutines \u8f6c\u50a8\u3001\u4f7f\u7528 Go Remote \u914d\u7f6e\u505c\u6b62\u8c03\u8bd5\u4f1a\u8bdd\u3001\u8fd0\u884c\u5e76\u5bfc\u822a\u5230\u5355\u72ec\u8868\u6d4b\u8bd5\uff0c\u4ee5\u53ca\u4ece Testify \u6d4b\u8bd5\u6846\u67b6\u7684\u6269\u5c55\u652f\u6301\u4e2d\u53d7\u76ca\u3002 \u60a8\u8fd8\u53ef\u4ee5\u627e\u5230\u8bb8\u591a\u65b0\u7684\u4ee3\u7801\u7f16\u8f91\u529f\u80fd\u3001UI \u6539\u8fdb\uff0c\u4ee5\u53ca\u8bb8\u591a\u4e3a Web \u5f00\u53d1\u548c\u6570\u636e\u5e93\u5904\u7406\u6240\u51c6\u5907\u7684\u65b0\u529f\u80fd\u3002<\/div>\n<\/div>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/clion\/\" rel=\"attachment wp-att-9635 noopener\" style=\"   min-width: 64px;margin-right: 24px;\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9635\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/icon_CLion.png\" alt=\"CLion\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/clion\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>CLion 2020.3<\/strong><\/a> \u5bf9\u5f00\u53d1\u8fc7\u7a0b\u7684\u5173\u952e\u90e8\u5206\u8fdb\u884c\u4e86\u91cd\u5927\u6539\u8fdb\uff0c\u4f8b\u5982\u4ee5\u6839\u8fd0\u884c\u548c\u8c03\u8bd5\u5e94\u7528\u7a0b\u5e8f\u7684\u80fd\u529b\u548c\u8c03\u8bd5\u6838\u5fc3\u8f6c\u50a8\u7684\u80fd\u529b\uff0c\u5e76\u5f15\u5165\u4e86\u5355\u5143\u6d4b\u8bd5\uff08\u63d0\u4f9b\u65b0\u7684 CTest \u652f\u6301\uff09\u3002 \u5bf9\u4e8e\u5d4c\u5165\u5f0f\u9879\u76ee\uff0cCLion \u73b0\u5728\u521d\u6b65\u652f\u6301 MISRA C \u548c C++ \u3002 Qt \u7528\u6237\u4f1a\u53d1\u73b0\u4e13\u4e3a Qt \u4ee3\u7801\u64cd\u4f5c\u800c\u8c03\u6574\u7684\u65b0 IDE \u529f\u80fd\u3002<\/div>\n<\/div>\n<div style=\"display: flex; margin-bottom: 24px;\"><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/datagrip\/\" rel=\"attachment wp-att-9642 noopener\" style=\" min-width: 64px;margin-right: 24px;\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-full wp-image-9642\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2019\/08\/logo-6.png\" alt=\"DataGrip\" width=\"64\" height=\"64\"><\/a><\/p>\n<div><a href=\"https:\/\/www.jetbrains.com\/zh-cn\/datagrip\/whatsnew\/\" target=\"_blank\" rel=\"noopener\"><strong>DataGrip 2020.3<\/strong><\/a> \u5305\u62ec\u9002\u7528\u4e8e MongoDB \u7684 SQL\u3001Couchbase \u652f\u6301\u3001\u503c\u7684\u72ec\u7acb\u7f16\u8f91\u5668\u589e\u5f3a\uff0c\u4ee5\u53ca\u65b0\u7684\u6570\u636e\u63d0\u53d6\u5668\u3002<\/div>\n<\/div>\n<p>\u82e5\u60a8\u8981\u4fdd\u6301 JetBrains \u5de5\u5177\u53ca\u65f6\u66f4\u65b0\uff0c\u53ea\u9700\u4e0b\u8f7d Toolbox App\uff0c\u5373\u53ef\u4e0e\u6346\u7ed1\u7684\u63d2\u4ef6\u4e00\u540c\u81ea\u52a8\u66f4\u65b0\u60a8\u7684\u5de5\u5177\uff01<\/p>\n<p align=\"center\"><a class=\"jb-download-button\" title=\"Download now!\" href=\"https:\/\/www.jetbrains.com\/zh-cn\/toolbox-app\/\" target=\"_blank\" rel=\"noopener\">Download now<\/a><\/p>\n<p>\u6211\u4eec\u5e0c\u671b\u4e3a\u60a8\u7684 2020 \u3002 \u6211\u4eec\u5373\u5c06\u7740\u624b\u51c6\u5907\u65b0\u7684\u66f4\u65b0\uff0c\u5728 2021 \u5e74\u4e3a\u60a8\u5e26\u6765\u66f4\u9ad8\u7684\u6548\u7387\u548c\u66f4\u591a\u7684\u6b22\u4e50\uff01<\/p>\n<p>\u591a\u591a\u4fdd\u91cd!<\/p>\n<p>\u60a8\u7684 JetBrains \u56e2\u961f<\/p>\n","protected":false},"author":814,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","categories":[],"tags":[514],"cross-post-tag":[7099],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/blog\/105258"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/users\/814"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=105258"}],"version-history":[{"count":2,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/blog\/105258\/revisions"}],"predecessor-version":[{"id":277170,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/blog\/105258\/revisions\/277170"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=105258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=105258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=105258"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=105258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}