> For the complete documentation index, see [llms.txt](https://minilabmemo.gitbook.io/golang-memo/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://minilabmemo.gitbook.io/golang-memo/why-go/ge-ren-guan-dian.md).

# 個人觀點

### 優點

#### 開發效率快

後端工作上有維護同樣都是web服務的ＡＰＩ，一個由sprint建置的java與由Ｇin建置的go，光啟動速度，一個幾十秒，一個十秒內就差很多了！！ 而java建置的服務記憶體會有200Mb以上，go建置的才在20Mb以上，節省了90%!

#### 併發（輕量線程）操作

雖然一開始併發操作對初學者來講很難看懂，但比起其他語言，要完成不同併發之間的溝通互動，<mark style="background-color:red;">go天生的設計還是看起來比較簡易，</mark>（不知道為什麼，有些併發功能我還是不懂怎麼用其他語言去完成ˊˋ 查半天還是不會），但是用go去寫，簡簡單單快快速速就完成了！？＠＠

#### 任何平台都可以運行

編譯上簡單，也可以用exe執行，簡單快速就可以demo，不須在平台上再安裝什麼，也不用管執行指令還要多設定main class等等，就點運行就對了！

### 缺點

#### 某些支援庫不足

在某些特定的協定或應用上，go往往出的比其他語言來的晚，所以隱含踩到的bug/issue都比較多....，所以在選用上要先比較支援庫是否夠成熟，星星數多不多，好不好用，不然真的會很悲劇...

###

### 結論

如果是常見的基本程式處理，用go去處理真的沒什麼不可，而且用過就回不去了！只是不太懂為什麼普遍企業用的並不多，java還是普遍大宗，（但自己就是看不懂java那複雜又難debug的結構？或許是個人問題ＸＤ沒有紮實地學好ˊˋ），但就如上述缺點所說，某些功能可能就無法用go去實現，這時又很麻煩，所以建議還是有在採用微服務的架構會比較好，就**可以根據不同服務的功能，去選用適合的語言去運行**！


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://minilabmemo.gitbook.io/golang-memo/why-go/ge-ren-guan-dian.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
