or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
議程6 - A Gin user's rethinking: those bad smells - 葉家郡
tags:
GopherDay2024
Agenda
Slido 連結
投影片連結
https://i.xnum.in/go/gd2024
Problems
Why Gin
Testing: use
httptest.Recorder()
+gin.Router.ServeHTTP
Bad things
不確定是否要建立新的 controller,而找一個既有的 controller 塞進去,例如將 permission 掛在 user controller 上。
Validate() error
return
after gin responseSolutions
拒當 framework 的奴隸
HTTPStatusError()
,可以呼叫對應的 function 拿到 status codeHTTPStatusError()