<p>I'm soon to finish my undergraduate degree in CS and for the most part I've already decided I'd like to work as a web developer focusing on the back-end side of things. That said I do enjoy occasionally working in the browser on some front-end projects.</p>
<p>My current experience language-wise is:</p>
<ul>
<li><p>Python - uni projects.</p></li>
<li><p>HTML, CSS, JavaScript - uni and personal website projects.</p></li>
<li><p>PHP - which was the only language we used in uni to do server-side projects like authentication, login, registration etc.</p></li>
<li><p>I dabbled with things like C (Arduino), Java, C++ but nothing too extensive.</p></li>
</ul>
<p>Currently I'm faced with a choice as to which back-end language I'd like to specialize in. </p>
<p>I'm interested in working in small teams on small projects most likely with clients that want things like eCommerce websites, sites with user logins, websites with small databases for client info etc.</p>
<p>I seem to have narrowed my choices down to Go and Python, and my worry concerning Go is whether It'll be an overkill for the kind of projects I'll be working on. With my limited knowledge of Go it seems like the target audience for the language is a software engineer with 5+ years of experience that works with large server clusters and large scale applications. On the other hand, having to do a little bit more work and learn some useful stuff in the process seems like a good thing. </p>
<p>So, what do you think, is Go, a wrong tool for the job in my situation?</p>
<hr/>**评论:**<br/><br/>tsdtsdtsd: <pre><blockquote>
<p>Is Go overkill for stuff like websites, eCommerce, forums and mostly smaller projects?</p>
</blockquote>
<p>I wouldn't use the word "overkill", but probably yes. It all depends on the scale of your projects, your customers requests, and your own fun.
If you work in a small agency where your customers want small websites to present themselves or just a small out-of-the-box online shop with some styling, you usually don't have a large budget to work with (or in other words: a tight schedule with deadlines in a not-so-far future). So you tend to find fast solutions for your problems and end up being in a hurry all of the time. Now you start looking for pre-build solutions instead of doing most of your work in-house.</p>
<p>Also from the customers point of view: they also have a small budget. If you ask a customer to decide between: A) a awesome custom made product which fits all of your need just perfect, is flexible and future-proof and costs a lot or B) a well-known shop-solution/CMS/whatever, which only fits 50% of your needs, but is cheap and has a ton of free plugins (yeah..), they will most likely tend to decide for B. It's sad, but it's reality.</p>
<p>And if we talk about pre-built solutions with free plugins, Go is not the right choice. Not yet.</p>
<p>On the other hand: You work somewhere on large scale products. Your customers are large companies who throw money at you wherever they can (or at least have to), and want a great product. They tend to have far higher requirements on the product, like performance while being far more complex and data/traffic-heavy. All those pre-build apps won't do the job. You will have to think on a bigger scale too, and this is where Go shines. You can get very very far with PHP, but it has it's limits nonetheless. </p></pre>xiegeo: <pre><p>What do you mean by overkill? I don't see what the cost is for using Go. Go is a simple language to learn compared to any other object oriented language. </p>
<p>You don't have to specialize. Most of the ideas cross language and tools, especially for web and databases.</p></pre>sacado: <pre><p>The cost ? Lack of libraries ? Lack of expressiveness ? I mean, Go is cool for building large-scale apps with a lot of users (that's even its <em>raison d'être</em>), but OP seems to be targetting small apps for small companies and small groups of developpers. I really love go, but I don't see it as a clear winner in OP's situation.</p></pre>xiegeo: <pre><p>I just don't see those things as lacking in Go. Compared to C, Go lacks some libraries that work with older stuff, but that hasn't being a blocker for me between porting the code, import "C", and os/exec.</p>
<p>Lack of expressiveness even less so. Some code might be more verbose, but also much more readable.</p>
<p>Go is not bad for the small. Most of the time I am writing Go as a single developer that is deployed to a single server. There are more languages you can choose for this situation, but Go is just as good for my needs. </p></pre>DanChm: <pre><p>By overkill I meant that I don't have all the frameworks and tools that older languages have. (e.g. no CMS like Wordpress, and no frameworks like Django). And also if I can't take advantage of Go's concurrency then it might seem like trying to hammer in a nail with a sniper rifle.</p>
<p>Also, I don't see how you'd get anything done without picking a language and sticking with it. I can't learn everything at the same time.</p></pre>xiegeo: <pre><p>If you want to use Wordpress, than by all means use that. No one will be writing a Wordpress replacement in Go because Wordpress already exist. If you need a CMS, you shouldn't be asking want language should I choose, but what CMS should I choose. Then learn that CMS. By the way, Go is popular for static site generators, which you can think of as a CMS where you git push your content instead of posting to the server.</p>
<p>For a framework in Go, you don't have to look farther than the standard HTTP library.</p>
<blockquote>
<p>I don't see how you'd get anything done without picking a language and sticking with it. I can't learn everything at the same time.</p>
</blockquote>
<p>I am not sure how fare you are in your leanings, but you kind of have to learn client side (html, css, js), backside (server hosting, server programming, databases), and networking (dns,http(s),tcp/ip) all at the same time. server programming is just a small part of that.</p></pre>DanChm: <pre><p>I get your point, and for the most part I've done exactly that. At the moment I feel pretty confident with HTML CSS and JS, and I've been using Apache, Linux, PHP servers for most of my programming projects. So I can use more than one language. What I was referring to, was that I'd like to pick a single back-end language and stick to it. Rather than do one project in Python and another in Go because I'd be spreading myself too thin. Although I do see the point of having more than one language at your disposal depending on the project.</p></pre>dilap: <pre><p>Not at all! I've written lots of stuff in Python, but nowadays for anything big enough to be saved in a file, I'll reach for Go. Still love python repl mode for exploration though.</p></pre>_dirtyburger: <pre><p>I used go to build a small web application in school. Ended up gaining traction and had a few hundred paid users. Go was originally chosen due to my requirements for concurrency. Go made it easy for me to build something basic quickly while learning the language, and continue to expand its functionality as time went on. </p></pre>DanChm: <pre><p>Did you ever find yourself doing a lot more work in Go than you would've if you used a language like Python or PHP with all their frameworks? </p></pre>weberc2: <pre><p>I can't speak for the OP, but I have lots of experience in Python and Go (I'm a professional Python developer). I've never found myself missing a Go library that was available in Python. I've never found myself wanting a "framework" in either language--I've never had a good experience with a "framework" in any language (they tend to lock you into their ecosystem, and they make it hard to use other libraries or mix and match components).</p>
<p>Python beats Go in expressivity--Python makes it easy to write declarative list comprehensions and generator expressions and iterators of all kinds. In Go, you have to write for loops and build your own iterator structures. This is a bit tedious, but it's such an insignificant problem on the scale of all the things that factor into a project.</p>
<p>On the other hand, Go beats Python handily in performance, deployment, packaging, distribution, documentation, static analysis, editor support, testing, profiling, etc.</p></pre>jonpchin: <pre><blockquote>
<p>On the other hand, Go beats Python handily in performance, deployment, packaging, distribution, documentation, static analysis, editor support, testing, profiling, etc.</p>
</blockquote>
<p>Agreed. I especially like that Golang can produces one standalone executable with a simple go build command. In other languages it takes a lot more work to produce a standalone executable. Trying to get Python to produce a standalone executable was a nightmare with all the dependencies and version incompatibilities. </p></pre>tucnak: <pre><blockquote>
<p>performance, deployment, packaging, distribution, documentation, static analysis, editor support, testing, profiling</p>
</blockquote>
<p>While none of that actually matters for most ecommerce solutions or forums.</p></pre>weberc2: <pre><p>Deployment and some base level of concurrency matters for those applications.</p></pre>jonpchin: <pre><p>Go is great for small web projects or large web projects. You can run a static hello world web server in like 10 lines of Go code. Golang is faster then Python and has better support for concurrency. There is no reason to choose Python over Go for web development. </p></pre>tucnak: <pre><blockquote>
<p>You can run a static hello world web server in like 10 lines of Go code.</p>
</blockquote>
<p>Three lines in Python.</p>
<blockquote>
<p>Golang is faster then Python and has better support for concurrency.</p>
</blockquote>
<p>Neither speed or concurrency matters for small applications or forums.</p>
<blockquote>
<p>There is no reason to choose Python over Go for web development.</p>
</blockquote>
<p>Cooooome on, mate. I know we're in <a href="/r/golang" rel="nofollow">/r/golang</a>, but coooooome on. It's just not true. Python is an incredible, powerful and expressive dynamic language. It most certainly will be better than Go in short-term. Moreover, I'm afraid most small applications won't reach the scale at which they could benefit from Go whatsoever.</p></pre>goomba_gibbon: <pre><p>This is very true. There are lots of advantages to Python, including an incredible array of libraries. At the scale you are talking about, there aren't huge gains to be had.</p></pre>weberc2: <pre><blockquote>
<p>Three lines in Python.</p>
</blockquote>
<p>Python dev here. Go's webserver is a high quality implementation out of the box. Python's std lib web server is pretty useless beyond 'Hello world', or at least I'm not aware of anyone who uses it. If you want to build a web app in Python, you use a web framework like Flask, which means you need to manage at least one runtime dependency in addition to your interpreter and web server. And speaking of web server, you need one if you want to serve more than one request at a time, which usually means selecting one that is appropriate for your use case and then configuring it to serve your application, and it will <em>still</em> be slower than the equivalent in Go.</p>
<blockquote>
<p>Neither speed or concurrency matters for small applications or forums.</p>
</blockquote>
<p>Being able to serve multiple requests simultaneously is important if you want to have a decent experience for tens of simultaneous users; in particular, performance will be ridiculously slow if you're blocking <em>all</em> requests because one request is waiting on a response from a database or an API. The "scale" at which vanilla Python begins to noticeably suffer is in the single digits of concurrent users; you can prop it up with a web server process at the cost of significant deployment complexity, but (as I mentioned previously) even then you won't get anywhere close to Go's performance and you'll have stuck much more effort into it than into a comparable Go program.</p>
<blockquote>
<p>Moreover, I'm afraid most small applications won't reach the scale at which they could benefit from Go whatsoever.</p>
</blockquote>
<p>Even if you only plan on serving one user, such that you truly don't actually care about performance, the deployment story alone is so much more complex in Python that (in my opinion) it eats any short-term savings Python could boast by being a "powerful and expressive" language.</p></pre>kaeshiwaza: <pre><p>I remember when i began with Python, I used only stdlib to make a web server, and deploy it with one exe with py2exe... I worked like that some years without any problem... For me Go is what should have been Python 2+</p></pre>jonpchin: <pre><blockquote>
<p>Neither speed or concurrency matters for small applications or forums.</p>
</blockquote>
<p>Speed and concurrency matters even in small applications. Small applications may one day end up becoming big applications. Every big application was once a small application. Facebook started as a small application. </p></pre>v0idl0gic: <pre><blockquote>
<p>Moreover, I'm afraid most small applications won't reach the scale at which they could benefit from Go whatsoever.</p>
</blockquote>
<p>This isn't totally true, a Go app could easily scale vertically by a factor of 3-6x more than a Python app before needing to scale horizontally. Even small business appreciate running 2 VMs rather than 6 or 10 rather than 50. Not only for cost but complexity/maintenance. Not to mention the latency characteristics tend to be better.</p>
<p>Of course maybe my small application is a big application to you... :P</p>
<p>Also worth pointing out is that for some developers, they might be more productive in Go than Python, if that is the case, there is not even a trade-off being made.</p></pre>earthboundkid: <pre><blockquote>
<p>Currently I'm faced with a choice as to which back-end language I'd like to specialize in.</p>
</blockquote>
<p>No, that premise is completely false. </p></pre>ChristophBerger: <pre><p>Not entirely. You cannot learn all backend languages at once, so you need to pick one for starting. But in the long run you're probably right, one language is not enough.</p></pre>DanChm: <pre><p>Yep, I understand. I've done projects in PHP and Python on the server-side so I can use more than one language. But I can't just hand in my CV that says I'm a PHP, Python, Go, Java, Ruby back-end developer. No one is going to take me seriously.</p></pre>earthboundkid: <pre><p>Of course they won't. You'll need to add JavaScript as well. :-)</p>
<p>I have never once had anyone complain about my knowing "too many" languages, and when I do hiring interviews, it has never been discussed as a concern with a candidate. </p></pre>: <pre><p>[deleted]</p></pre>caseynashvegas: <pre><blockquote>
<p>You can develop anything with Go. The question is, are you willing to develop everything you need starting basically from 0 ? When PHP, Java, Ruby or Python ecosystem comes with 15/20 + years of libraries, CMS , frameworks, books and online tutorials when it comes to "web 1.0" apps ?</p>
</blockquote>
<p>This is a little bit misleading, It is true that the Go community is younger, but it is very rich, and the lack of tons of "frameworks" is largely due to the fact the base libraries have pretty much all you need for most web applications. You are far from starting at 0.</p></pre>jonpchin: <pre><p>Wordpress and Golang are completely two different things. Wordpress comes with a bunch of pre installed PHP code, and then there is a separate web server. With Golang the web server is built into the programming language. Also Golang has great tooling built into the language. I can "go get" any github remote repository and within seconds I'll have all the library files I need. The go get is almost like NPM but better because all the third party libraries actually work out of the box and are stable. No offense to the JS community though, its just I had a bad experience when every week a new JS framework update comes out and things break because its not backwards compatible with a certain version. </p></pre>radialrotate: <pre><blockquote>
<p>Wordpress comes with a bunch of pre installed PHP code, and then there is a separate web server.</p>
</blockquote>
<p>And don't forget that WordPress comes with a huge library of pre-made security vulnerabilities you can install with a few clicks.</p>
<p>With Go you'd have to write all of those yourself.</p></pre>jonpchin: <pre><p>In PHP there are pre made security vulnerabilities because so many people have exploited PHP code. Golang already has a lot of security features built into the language.</p>
<p>I have heard many stories of PHP code being compromised on production sites. I only seen maybe 1-2 stories about vulnerability in Golang but that was from the Golang change log updates patching up potential security bugs, not someone actually exploiting code in the production environment. </p></pre>: <pre><p>[deleted]</p></pre>radialrotate: <pre><blockquote>
<p>Wordpress is mostly secure, stop the FUD.</p>
</blockquote>
<p>I think I made it pretty clear I was talking about plugins.</p>
<p>But if you want to discuss the security of WordPress core, let's talk about how they're using MD5-based password hashes, and how admin users can execute whatever code they like on the server, and how it exposes every user's username and an MD5 hash of their email address to the world. If you want to run a WordPress site securely, there's a lot of defaults you need to change.</p>
<blockquote>
<p>Plugins might not be but that they are not developed by Wordpress team.</p>
</blockquote>
<p>That's true, but one might argue that since these plugins are hosted on wordpress.org, the WordPress team bear some responsibility to protect their users from dangerous plugins.</p>
<blockquote>
<p>Wordpress core is probably more secure than any CMS you have written in your life.</p>
</blockquote>
<p>Is this like when a film critic says something about a movie and the director responds "do you know how hard it is to make movies?"</p></pre>DanChm: <pre><p>I know it would be hard to estimate exactly, but what kind of time investment are we talking about?</p>
<p>A project that would take a week in Python takes a month in Go, or less dramatic than that? Given a project like say, a forum with login, registration and simple posts.</p></pre>xiegeo: <pre><p>If you already know Python but not Go, then two weeks. One week to learn Go, one week to write the code. Unless there is a particular frame work you want to use.</p>
<p>Although personally, if I want a forum, I would choose a forum software or hosted service, and not a programing language. </p></pre>kaeshiwaza: <pre><p>Small project is relative. If you are a alone or a small team to write, test, deploy, maintain and scale a web app for years, a small project can become very big for you !</p>
<p>Then, it's not the time to write the first code that's important but the time to test, deploy, maintain and scale. For this Go is a serial killer ! It'll help you not only when you write the code, but for everything around.</p>
<p>When you use a big framework and tons of libs, the first shot is faster, but when you have to maintain, deploy and scale all of this for years, it can become a nightmare !</p></pre>DanChm: <pre><p>I do find the simplicity of Go attractive. Knowing that my web app uses only a small Go program with a http server from stdlib, is a great thing compared having say a PHP script that uses some framework which does some magic and on top of that uses Apache, which adds a lot of complexity overall. </p>
<p>I think it said in the Go book by B.W. Kernighan, that "Complexity is multiplicative not additive".</p></pre>jechols: <pre><p>I think you need to reconsider whether you should be specializing in the first place. PHP is a horrid language IMO, but I still use it for very quick projects, sometimes with no framework of any kind and even inline HTML. It makes me cry a little, but it's the right choice for a one-day project that's easily deployed to the vast majority of *nix servers. Drupal is overkill for 90% of the things it's used for, but it's a great choice if you need to give somebody who isn't a programmer a LOT of power, and it has a lot of problems already solved, such as user login and granular permissions.</p>
<p>Go is absolutely wonderful for code you have to maintain, thanks to its very simple syntax and very fast compiler. You can quickly jump back into your own projects pretty fast even months later, which is sometimes a major pain point with other technologies. The fast compiler and static typing means refactoring is almost a joy compared to trying to refactor PHP or even Python. Or Ruby on Rails, oh dear lord, so painful....</p>
<p>I've used Go for medium-sized projects and been pretty happy with it. I've used it for command-line "scripts" and I usually prefer it over Python (though Python still has some major benefits in certain situations, such as walking directories with symlink-following, deleting entire directory trees in a single command, etc.). I've even used Go for very tiny web pages, but only in situations where it was truly the best fit - running a Go service at all times is not nearly as easy as just dropping a PHP file onto a server that's already got Apache set up for PHP.</p>
<p>For a website, Python can be very painful, because you still have all the same issues getting a server running and staying on, but you also don't have a single binary to just copy up to production. You end up needing something like virtualenv to really deal with dependency management, and setup is often a bit of a pain. Go's static compilation is a huge benefit for deployment. That said, there will be times when a framework like Django, heavy though it is, just makes way more sense for a particular project.</p>
<p>My philosophy has been to know a good amount about about many technologies. Start with whatever you find most exciting, because you'll learn more if you like it. But don't hope to have a career by specializing in one technology. I think only people working in very nice fields doing very low-level work (such as for AAA game engines) can choose one tech and live there forever - and that tech will probably never be Python, PHP, or Go.</p></pre>jechols: <pre><p>ARGH - that last sentence should have the phrase "people working in very <em>niche</em> fields". Not "nice" fields.</p></pre>DanChm: <pre><p>Why not edit it :-) ?</p></pre>jechols: <pre><p>I dunno, I feel like that's cheating :) I don't like "edit" functionality that can cause the original context to get lost.</p>
<p>Chalk it up to my work in a library for the past ~5 years. Makes me appreciate holding onto all the history of all the things :)</p></pre>DanChm: <pre><p>Good point, I think instead of abandoning my PHP skills and focusing on Go, I'd be better off using both. Learn Go when I have the opportunity to work with Go, and if needed I can still use PHP for simple sites. Although I do worry that I'll just end up being bad at both, for now I'm having a blast reading the "Go programming language" book.</p></pre>jechols: <pre><p>Yeah, it's hard to be good at multiple languages. It definitely helps to start with one and then slowly work your way into others. It can be handy to choose one to just play with in your free time while using the crappy ones at your job. I find every language has tons of annoyances, but Go annoys me the least.... However, my Go work is far more often done on my own since it's "too much" to expect new devs here to learn it. (Which I find odd given how simple it is)</p></pre>twisted1919: <pre><blockquote>
<p>PHP is a horrid language IMO </p>
</blockquote>
<p>Oh boy, another one that hasn't used PHP in a decade...</p></pre>jechols: <pre><p>Haha, so true. Well, except for the 75% of projects I work on in any given month which are pure PHP.</p></pre>twisted1919: <pre><p>then why bashing? I get php was horrid a while back, but nowadays it isn't the case anymore.</p></pre>sethammons: <pre><p>Go is my go-to language for any small project. Spinning up a quick webserver is so easy. Example: two days ago, I needed a public endpoint to receive http event posts. Quick, simple, efficient. And to deploy it? <code>GOOS=linux go build</code> and scp that to my digital ocean box and start it. </p></pre>ascotan: <pre><p>Python is the choice of most new(er) backend web programmers these days. It used to be Java, and that is still true in some areas, but Python has dominated the market with Django/Flask for bootstrap projects. Partially, it's because it's so easy to bootstrap a Django website.</p>
<p>Go suffers from a lack of solid curated web frameworks. I would say that the gap of maturity is closing on Python, however.</p>
<p>Python suffers from being a 20+ year old language and carries around a lot of baggage from years ago. For example the GIL, multiprocessing, WSGI all create headaches and workarounds. They're all artifacts from 'days gone by' when people didn't have multicore processors and all web requests were synchronous. </p>
<p>Good python programmers have embraced the warts and learned to code around the problem (reverse proxies, multiple processes). Go brings with it promises of better performance and easier deployment, however, it still lacks maturity.</p>
<p>Give it another 5/10 years and golang will be a dominate backend language for web. Right now it dominates backend cloud deployment architecture, because it's fast, small, and single binary. This makes it perfect for docker, and deployable network services. </p>
<p>For now learn both. You'll likely get a job doing Django, but write Echo/Martini/Gin/Revel in your free time. </p>
<p>The other market driver in this, is that most people can program python (sysadmins do it), but no everyone can program in go. This makes manager adoption slow because you need a pool of talent to pick from. In silicon valley that's not a problem. Elsewhere it is.</p></pre>drvd: <pre><p>Do you have any idea how complex modern eCommerce solutions are? Big systems consist of clearly more than 100 microservices with several services being not really "micro". But such solutions are not managed by small teams.</p></pre>: <pre><p>[deleted]</p></pre>gazarsgo: <pre><p>Guess you don't do multivariate testing or integrate with ERP systems, among other things.</p>
<p>You can run ~$50M/year ecommerce businesses like you describe but you're gonna have a bad time if you have any special use cases like private sales or internationalization.</p></pre>drvd: <pre><p>Of course there are shops which sell 50 basically fixed items (unconfigurable) in one country doing 200 transactions a day. You do this by a ecommerce SaaS or some tiny PHP.</p>
<p>I clearly asked about "modern eCommerce solution", not your aunt's tiny homemade socks shop.</p>
<p>And there are large retail stores doing >200 orders per second, selling in 5 languages into 10 countries with 20 different VATs, large personalisation, couponing, customized products, ship, drop shipping, click&collect, click and reserve, credit screening, fraud detection and lot's of stuff you haven't heard of.</p>
<p>But of course: Most ecommerce sites are tiny.</p></pre>: <pre><p>[deleted]</p></pre>drvd: <pre><blockquote>
<p>Whatever, large shops that have millions of items in inventory and do tens of millions of transactions per day still use CMS like Magento. You have no idea what you are talking about.</p>
</blockquote>
<p>If you say so it must be true.</p>
<blockquote>
<p>Again you really have no idea what you are talking about.</p>
</blockquote>
<p>Obviously. The fact that we develop and operate such solutions ranging from single server Magento 1 installation to 30 server SAP Hybris (2 datacenters) for around 15 customers in 5 countries has nothing to do with my ignorance.</p>
<blockquote>
<p>The web didn't wait for the micro-servicing mess to do business and sell stuffs online.</p>
</blockquote>
<p>Yes, this part of your answer is true! Splitting this into components is a major pain in the a... . Unfortunately it seem as this is the only way to manage and change these system fast enough. But what do I know.</p>
<blockquote>
<p>You never used Magento did you ?</p>
</blockquote>
<p>I did (and do). It's nice. Still lacking some B2B functionality but nice. Going beyond a (pretty low) orders/second threshold with the CE is hard, but doable. But then you are again leaving the simple regime of simple, monolithic, one-component-does-it-all systems.</p>
<p>We're probably thinking about different types of projects so let's agree to disagree.</p></pre>xiegeo: <pre><p>I don't think OP is doing an eCommerce start up. Anyway, I have see small businesses using dirt cheap php hosts selling online without a single full time technical employ.</p></pre>Irythros: <pre><p>Admittedly I don't know as many tricks and methods to Go as others, but I think Go wouldn't be a good fit for a CMS/eCommerce package that isn't maintained by a developer in the language. </p>
<p>To my knowledge there is no way to include other files as modules/plugins except in 1.8 . The code is also compiled so there's more issues IMO than there would be with an interpreted language like PHP or JS. The modules that could be supplied would either be precompiled and have unknown code in it, or it could come uncompiled but then the user needs to do it themselves. Making it as easy and open as possible would IMO be the best choice for either but right now it's not easy unless you're the developer.</p></pre>
Is Go overkill for stuff like websites, eCommerce, forums and mostly smaller projects?
blov · · 675 次点击这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传