Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
phamtai97 committed Sep 25, 2019
2 parents f1817d1 + c13335c commit 418ec6d
Show file tree
Hide file tree
Showing 590 changed files with 346 additions and 365,302 deletions.
2 changes: 1 addition & 1 deletion SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
* [3.3 Làm quen với gRPC](ch3-rpc/ch3-03-grpc.md)
* [3.4 Một số vấn đề khác của gRPC](ch3-rpc/ch3-04-grpc-expand.md)
* [3.5 gRPC và Protobuf extensions](ch3-rpc/ch3-05-grpc-ext.md)
* [3.6 Công cụ grpcurl](ch3-rpc/ch3-06-grpc-curl.mdd)
* [3.6 Công cụ grpcurl](ch3-rpc/ch3-06-grpc-curl.md)
* [3.7 Lời nói thêm](ch3-rpc/ch3-07-supplementary-notes.md)
* [Chương 4: Go và Web](ch4-web/README.md)
* [4.1 Giới thiệu chương trình Web](ch4-web/ch4-01-intro.md)
Expand Down
2 changes: 0 additions & 2 deletions ch3-rpc/ch3-03-grpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
<img src="../images/grpc.png" width="800">
<br/>
</div>
<br/>

[gRPC](https://grpc.io/) là một framework RPC Open source đa ngôn ngữ được Google phát triển dựa trên [Protobuf](https://developers.google.com/protocol-buffers/) và giao thức HTTP/2. Phần này sẽ giới thiệu một số cách sử dụng gRPC để xây dựng service đơn giản.

Expand All @@ -19,7 +18,6 @@ Kiến trúc gRPC trong Go:
<i>gRPC technology stack</i>
</span>
</div>
<br/>

Lớp dưới cùng là giao thức TCP hoặc [Unix Socket](https://en.wikipedia.org/wiki/Unix_domain_socket). Ngay trên đấy là phần hiện thực của giao thức [HTTP/2](https://en.wikipedia.org/wiki/HTTP/2). Thư viện gRPC core cho Go được xây dựng ở lớp kế. Stub code được tạo ra bởi chương trình thông qua plug-in gRPC giao tiếp với thư viện gRPC core.

Expand Down
2 changes: 1 addition & 1 deletion docs/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
.vscode
.txt
_book
**/DS_Store
**/.DS_Store
gen.sh
6 changes: 3 additions & 3 deletions docs/ch1-basic/ch1-01-genesis.html
Original file line number Diff line number Diff line change
Expand Up @@ -414,9 +414,9 @@

</li>

<li class="chapter " data-level="1.4.6" data-path="../ch3-rpc/ch3-06-grpc-curl.mdd">
<li class="chapter " data-level="1.4.6" data-path="../ch3-rpc/ch3-06-grpc-curl.html">

<span>
<a href="../ch3-rpc/ch3-06-grpc-curl.html">


3.6 Công cụ grpcurl
Expand Down Expand Up @@ -860,7 +860,7 @@ <h1 class="search-results-title">No results matching "<span class='search-query'
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"1.1 Nguồn gốc của ngôn ngữ Go","level":"1.2.1","depth":2,"next":{"title":"1.2 Sự tiến hóa của chương trình \"Hello World\"","level":"1.2.2","depth":2,"path":"ch1-basic/ch1-02-hello-revolution.md","ref":"ch1-basic/ch1-02-hello-revolution.md","articles":[]},"previous":{"title":"Chương 1: Nền tảng ngôn ngữ Go","level":"1.2","depth":1,"path":"ch1-basic/README.md","ref":"ch1-basic/README.md","articles":[{"title":"1.1 Nguồn gốc của ngôn ngữ Go","level":"1.2.1","depth":2,"path":"ch1-basic/ch1-01-genesis.md","ref":"ch1-basic/ch1-01-genesis.md","articles":[]},{"title":"1.2 Sự tiến hóa của chương trình \"Hello World\"","level":"1.2.2","depth":2,"path":"ch1-basic/ch1-02-hello-revolution.md","ref":"ch1-basic/ch1-02-hello-revolution.md","articles":[]},{"title":"1.3 Array, strings và slices","level":"1.2.3","depth":2,"path":"ch1-basic/ch1-03-array-string-and-slice.md","ref":"ch1-basic/ch1-03-array-string-and-slice.md","articles":[]},{"title":"1.4 Functions, Methods và Interfaces","level":"1.2.4","depth":2,"path":"ch1-basic/ch1-04-func-method-interface.md","ref":"ch1-basic/ch1-04-func-method-interface.md","articles":[]},{"title":"1.5 Khái niệm xử lý đồng thời và song song","level":"1.2.5","depth":2,"path":"ch1-basic/ch1-05-concurrency-parallelism.md","ref":"ch1-basic/ch1-05-concurrency-parallelism.md","articles":[]},{"title":"1.6 Mô hình thực thi đồng thời","level":"1.2.6","depth":2,"path":"ch1-basic/ch1-06-common-concurrency-mode.md","ref":"ch1-basic/ch1-06-common-concurrency-mode.md","articles":[]},{"title":"1.7 Error và Exceptions","level":"1.2.7","depth":2,"path":"ch1-basic/ch1-07-error-and-panic.md","ref":"ch1-basic/ch1-07-error-and-panic.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"ch1-basic/ch1-01-genesis.md","mtime":"2019-09-22T16:25:50.428Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-23T01:54:22.813Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"1.1 Nguồn gốc của ngôn ngữ Go","level":"1.2.1","depth":2,"next":{"title":"1.2 Sự tiến hóa của chương trình \"Hello World\"","level":"1.2.2","depth":2,"path":"ch1-basic/ch1-02-hello-revolution.md","ref":"ch1-basic/ch1-02-hello-revolution.md","articles":[]},"previous":{"title":"Chương 1: Nền tảng ngôn ngữ Go","level":"1.2","depth":1,"path":"ch1-basic/README.md","ref":"ch1-basic/README.md","articles":[{"title":"1.1 Nguồn gốc của ngôn ngữ Go","level":"1.2.1","depth":2,"path":"ch1-basic/ch1-01-genesis.md","ref":"ch1-basic/ch1-01-genesis.md","articles":[]},{"title":"1.2 Sự tiến hóa của chương trình \"Hello World\"","level":"1.2.2","depth":2,"path":"ch1-basic/ch1-02-hello-revolution.md","ref":"ch1-basic/ch1-02-hello-revolution.md","articles":[]},{"title":"1.3 Array, strings và slices","level":"1.2.3","depth":2,"path":"ch1-basic/ch1-03-array-string-and-slice.md","ref":"ch1-basic/ch1-03-array-string-and-slice.md","articles":[]},{"title":"1.4 Functions, Methods và Interfaces","level":"1.2.4","depth":2,"path":"ch1-basic/ch1-04-func-method-interface.md","ref":"ch1-basic/ch1-04-func-method-interface.md","articles":[]},{"title":"1.5 Khái niệm xử lý đồng thời và song song","level":"1.2.5","depth":2,"path":"ch1-basic/ch1-05-concurrency-parallelism.md","ref":"ch1-basic/ch1-05-concurrency-parallelism.md","articles":[]},{"title":"1.6 Mô hình thực thi đồng thời","level":"1.2.6","depth":2,"path":"ch1-basic/ch1-06-common-concurrency-mode.md","ref":"ch1-basic/ch1-06-common-concurrency-mode.md","articles":[]},{"title":"1.7 Error và Exceptions","level":"1.2.7","depth":2,"path":"ch1-basic/ch1-07-error-and-panic.md","ref":"ch1-basic/ch1-07-error-and-panic.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"ch1-basic/ch1-01-genesis.md","mtime":"2019-09-22T16:25:50.428Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-25T10:59:08.649Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>
Expand Down
6 changes: 3 additions & 3 deletions docs/ch1-basic/ch1-02-hello-revolution.html
Original file line number Diff line number Diff line change
Expand Up @@ -414,9 +414,9 @@

</li>

<li class="chapter " data-level="1.4.6" data-path="../ch3-rpc/ch3-06-grpc-curl.mdd">
<li class="chapter " data-level="1.4.6" data-path="../ch3-rpc/ch3-06-grpc-curl.html">

<span>
<a href="../ch3-rpc/ch3-06-grpc-curl.html">


3.6 Công cụ grpcurl
Expand Down Expand Up @@ -1078,7 +1078,7 @@ <h1 class="search-results-title">No results matching "<span class='search-query'
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"1.2 Sự tiến hóa của chương trình \"Hello World\"","level":"1.2.2","depth":2,"next":{"title":"1.3 Array, strings và slices","level":"1.2.3","depth":2,"path":"ch1-basic/ch1-03-array-string-and-slice.md","ref":"ch1-basic/ch1-03-array-string-and-slice.md","articles":[]},"previous":{"title":"1.1 Nguồn gốc của ngôn ngữ Go","level":"1.2.1","depth":2,"path":"ch1-basic/ch1-01-genesis.md","ref":"ch1-basic/ch1-01-genesis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"ch1-basic/ch1-02-hello-revolution.md","mtime":"2019-09-22T16:25:50.429Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-23T01:54:22.813Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"1.2 Sự tiến hóa của chương trình \"Hello World\"","level":"1.2.2","depth":2,"next":{"title":"1.3 Array, strings và slices","level":"1.2.3","depth":2,"path":"ch1-basic/ch1-03-array-string-and-slice.md","ref":"ch1-basic/ch1-03-array-string-and-slice.md","articles":[]},"previous":{"title":"1.1 Nguồn gốc của ngôn ngữ Go","level":"1.2.1","depth":2,"path":"ch1-basic/ch1-01-genesis.md","ref":"ch1-basic/ch1-01-genesis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"ch1-basic/ch1-02-hello-revolution.md","mtime":"2019-09-22T16:25:50.429Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-25T10:59:08.649Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>
Expand Down
6 changes: 3 additions & 3 deletions docs/ch1-basic/ch1-03-array-string-and-slice.html
Original file line number Diff line number Diff line change
Expand Up @@ -414,9 +414,9 @@

</li>

<li class="chapter " data-level="1.4.6" data-path="../ch3-rpc/ch3-06-grpc-curl.mdd">
<li class="chapter " data-level="1.4.6" data-path="../ch3-rpc/ch3-06-grpc-curl.html">

<span>
<a href="../ch3-rpc/ch3-06-grpc-curl.html">


3.6 Công cụ grpcurl
Expand Down Expand Up @@ -1215,7 +1215,7 @@ <h1 class="search-results-title">No results matching "<span class='search-query'
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"1.3 Array, strings và slices","level":"1.2.3","depth":2,"next":{"title":"1.4 Functions, Methods và Interfaces","level":"1.2.4","depth":2,"path":"ch1-basic/ch1-04-func-method-interface.md","ref":"ch1-basic/ch1-04-func-method-interface.md","articles":[]},"previous":{"title":"1.2 Sự tiến hóa của chương trình \"Hello World\"","level":"1.2.2","depth":2,"path":"ch1-basic/ch1-02-hello-revolution.md","ref":"ch1-basic/ch1-02-hello-revolution.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"ch1-basic/ch1-03-array-string-and-slice.md","mtime":"2019-09-23T01:51:59.979Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-23T01:54:22.813Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"1.3 Array, strings và slices","level":"1.2.3","depth":2,"next":{"title":"1.4 Functions, Methods và Interfaces","level":"1.2.4","depth":2,"path":"ch1-basic/ch1-04-func-method-interface.md","ref":"ch1-basic/ch1-04-func-method-interface.md","articles":[]},"previous":{"title":"1.2 Sự tiến hóa của chương trình \"Hello World\"","level":"1.2.2","depth":2,"path":"ch1-basic/ch1-02-hello-revolution.md","ref":"ch1-basic/ch1-02-hello-revolution.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"ch1-basic/ch1-03-array-string-and-slice.md","mtime":"2019-09-23T01:51:59.979Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-25T10:59:08.649Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>
Expand Down
Loading

0 comments on commit 418ec6d

Please sign in to comment.