https://www.slideshare.net/KenichiHoshi1/javaruby-go-58399440
シェアしました。
よろしければ、上の絵をクリックして頂き、リンク元の絵の下の右矢印をクリック(スマホですとタップして横にスクロール)してスライドショーをどうぞ御覧下さいませ。
- 1. Java?Ruby? そろそろGoで行ってみませんか? http://qiita.com/hoshi-k 公開版資料
- 2. 2015年12月31日
- 3. 紅白歌合戦が 郷ひろみさんの 「2億4千万の瞳」で開幕
- 4. 某ポータルを慣れ親しんだ Railsで作るのもなーと思いつつ、 素敵な言語を探している自分 ❝この星の片隅2億の瞳が 素敵な事件(こと)を探してるのさ という歌声が流れる中
- 5. そして、ゆく年くる年を見ながら、 やっぱりRailsで作るほうがいいかー と思っているとき
- 6. 除夜の鐘が鳴り響く GoooooN
- 7. そういや、郷ひろみさんも 「Go!Go!(Goで行け)」 って、言ってた!!
- 8. Goで書けというお告げ がキタ━━(゚∀゚)━━!!
- 9. 2015年12月31日 23:50 Go言語採用決定 そして、徹夜する
- 10. Go言語とは 2009年にGoogleにより発表 2012年にv1.0リリース 2015年にv1.5リリース(最新版) CやC++などが使用される領域で, より効率良く実装することを目的に作られた Golangのマスコット Gopher君
- 11. Go言語の特徴(Official) シンプルな言語である。 コンパイル・実行速度が早い。 安全性が高い。 同期処理が容易に行える。 なにより楽しい。 オープンソースである。
- 12. C言語 < Go < Python 動的型付言語のように実装できる静的型付言語 型推論が可能 ガベージコレクタによりメモリ管理は不要 メモリ管理が必要なC言語に近いパフォーマンス 依存性管理を重視したパッケージ機構 マルチコンパイルが可能&1バイナリでデプロイ コンパイル処理時間の短縮を重視 並列処理機構を重視 Go言語の特徴(by hoshi)
- 13. Docker Go言語で実装されたミドルウェアの代表例 Cloud Foundry 性能要件の厳しいPaaSソフトウェアもGo IronWorker(iron.io) Railsから移行して、30台のサーバを2台へ Drone(drone.io) docker利用のCIサーバもGo Gunosy 日本の代表的なキュレーションメディアもGo Ameba Ownd サイバーエージェントもGoでいくつもサービス提供中 Go言語 採用事例
- 14. 1/1より開発中の某ポータルより
- 15. 採用アーキテクチャ、開発環境 開発言語 Go、HTML5/CSS3/JavaScript Webフレームワーク Gin Web Framework ORマッパー GORM データベース sqlite3 全文検索、形態素解析 sqlite3 fts4、kagome 開発環境 SublimeText3、GoSublime、goemon goimports
- 16. エンタープライズ的にいうところの 単票参照画面のビジネスロジックは・・・
- 17. // GET /posts/:id func PostShow(c *gin.Context) { tx := BeginTran() defer tx.Commit() var ( post Post category Category tags []Tag ) tx.First(&post, c.Param("id")) tx.Model(&post).Related(&category, "Category") post.Category = category tx.Model(&post).Related(&tags, "Tags") post.Tags = tags RenderHTML(c, http.StatusOK, "show_post", gin.H{ "post": &post, }) }
- 18. Java Ruby Go 生産性 △ ◎ ⃝ 開発者調達容易性 ◎ △ ✕ コーディングスタイルの 統一容易性 ◎ △ ⃝ WEBフレームワークの 充実度 ◎ ◎ ⃝ 非同期・バッチなど、 分散処理の実装容易性 △ ⃝ ◎ 実行速度 ⃝ △ ◎ コンパイル速度 ✕ ⃝ ◎ サーバリソース消費 △ ✕ ◎ 楽しさ(主観) ✕ △ ⃝ エンタープライズ観点であえて比較してみる
- 19. Java7以前 Java8 Scala Ruby Go Elixir プログラミング言語の移行パターン 分散処理に強く、可用性が高く、 リアルタイム処理が得意な言語がトレンド
- 20. 2016年初頭の結論 基幹系Webシステムの開発言語としては厳しい 経験者調達はRubyよりもさらに困難 Webフレームワークは群雄割拠でスタンダートが存在しない 組み込みのテンプレートエンジンは癖が強く機能不足 いわゆるORマッパーはシンプルなものしか存在しない ミドル、バッチ・APIサーバの開発言語としては優秀 クライアントサイドMVCと組み合わせ、これまでのノウハウを フレームワーク化することで、数億円規模の案件では投入可能性あり 分散処理の実装容易性により、これまでのバッチ処理を 非常に少ないリソースで高負荷でもリアルに処理することができる クラウドにおけるミドルウェアとして、社内共通基盤で採用予定
- 21. というわけで、 2016年は
- 22. Goで行きます!! 目指せ!エキゾチックフューチャー
- 23. fin. No Programming, No Life
0 コメント:
コメントを投稿