Soumettre la recherche
Mettre en ligne
Goのシンプルさについて
•
4 j'aime
•
4,568 vues
pospome
Suivre
Goのシンプルさについて
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 28
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
・データベース的な観点でのソーシャルゲームの特徴 ・データモデル ・ソーシャルゲームに従来型RDBMSを使うべきか、流行りのNoSQLで行くべきか ・負荷対策 (アーキテクチャ面) ・負荷対策 (ツール面) ・インフラエンジニアのキャリアについて
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
devfest tokyo 2017
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
関西DDD.java ドメイン駆動設計の原則、全17章の要点、実践してみて学んだこと
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
GameServerDevelopers Vol.1 https://gsdevelopers.doorkeeper.jp/events/42497
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
現在のマルチスレッドプログラミングの抱える問題点と、代替案をわかりやすく解説いたします。最近登場したConcurrent Revisionsも解説します。
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
アプリ「ニュースパス」をマイクロサービスで開発してみた泥臭い体験談です。
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
2021年にインフィニットループ社内の新卒向け研修で使われた資料です。
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
Recommandé
・データベース的な観点でのソーシャルゲームの特徴 ・データモデル ・ソーシャルゲームに従来型RDBMSを使うべきか、流行りのNoSQLで行くべきか ・負荷対策 (アーキテクチャ面) ・負荷対策 (ツール面) ・インフラエンジニアのキャリアについて
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
devfest tokyo 2017
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
関西DDD.java ドメイン駆動設計の原則、全17章の要点、実践してみて学んだこと
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
GameServerDevelopers Vol.1 https://gsdevelopers.doorkeeper.jp/events/42497
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
現在のマルチスレッドプログラミングの抱える問題点と、代替案をわかりやすく解説いたします。最近登場したConcurrent Revisionsも解説します。
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
アプリ「ニュースパス」をマイクロサービスで開発してみた泥臭い体験談です。
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
2021年にインフィニットループ社内の新卒向け研修で使われた資料です。
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
吉祥寺.pm32で話したスライドです。 邦題: デザインパターンは死んだ(のか)?
Are Design Patterns Dead?
Are Design Patterns Dead?
Yoshitaka Kawashima
受託開発を生業とするものにとって、見積もり根拠を正しく示すことは死活問題だ、という話です。
なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?
Yoshitaka Kawashima
2012年のオープンソースカンファレンス北海道(OSC-do)でセミナー発表した際に使用したスライド資料です。
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
ドメイン駆動設計 Domain-Driven Design ( DDD ) 準備 / スタートアップ / ブラッシュアップ / チャレンジ / 参考書籍 /
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
ドメイン駆動設計の4つの基本活動、Springのプログラミングモデル、ドメイン駆動設計のためのSpringの使い方
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
Java/Spring Boot/MyBatis/Thymeleafを使った、ドメイン駆動設計のサンプルコード。ビジネスルールに焦点を合わせ、計算モデルで複雑さを整理し、型指向のプログラミングで実装する、その具体例。
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
DeNA TechCon 2017の登壇資料です。
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA
質問への回答(35件)を、ブログにまとめているのでこちらご覧ください https://little-hands.hatenablog.com/entry/2019/08/31/genba_de_ddd 「Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス」登壇資料 ブログ:https://little-hands.hatenablog.com/ Twitter:https://twitter.com/little_hand_s 質問箱:https://peing.net/ja/little_hands
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
DevLOVE X Day1 C-5のセッションです。 ITの活用範囲の広がりとともに、費用・品質よりもデリバリを優先するプロジェクトも増えてきました。しかし「しっかり考えるよりも、作ってリリースしちゃおうぜ、正解なんて誰にも分からないんだから」というマントラを唱えながら、返済見込みの立たない大量の技術的負債を抱える。それが最善の選択なのか、もう少しだけ立ち止まって考えてみませんか? YAGNIという言葉を便利に使いすぎてはいませんか? コードを書きなぐるのと、ちょっと考えて設計して作るのとで、そんなに開発スピードに違いがありますか? 考えてみたいと思います。
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
SonicGarden Study #11で放送された資料から一部スライドを抜いたものになります。 http://sonicgarden.doorkeeper.jp/events/13229 ----- 優れたプログラマだけが優れたソースコードを書くことができます。 では優れたプログラマになるにはどうすれば良いでしょうか。 自分の書いたコードを、優れたプログラマに指摘してもらうことが一番の近道です。それがコードレビューです。たった一人でコードレビューも受けずに、ただ書き続けてもクソコードはクソコードのままなのです。 そこで今回は、良いコードが書けるプログラマになるための、コードレビューを上手に実践する秘訣を話します。
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
アドテク×インフラアーキテクチャ -オレシカナイトVol.7- 発表内容 https://cyberagent.connpass.com/event/
マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話
natsumi_ishizaka
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
JaSST Review 2020の発表資料です。
ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣
Yoshitaka Kawashima
LayerX社内の定例でつかった資料です。
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
目grep入門があまりにもKernelVM::入門だという指摘があったため、解説をつけてよりstd::入門に近づけてみました。
目grep入門 +解説
目grep入門 +解説
murachue
第2シーズンに向けて、設計コースの内容と進め方について、説明会の資料
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
「ドメイン駆動設計」の第4部の概要と理解の手がかり。現場での実践経験から。
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
at Open Seminar Hiroshima 2014 (#osh2014) 2014.02.01 (Sat) http://osh-2014.github.io/
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
Takuto Wada
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
PyCon JP 2017 発表資料です。
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
Cloud Next 2018 わいわい報告会の登壇資料
MicroServices & APIs
MicroServices & APIs
pospome
Contenu connexe
Tendances
吉祥寺.pm32で話したスライドです。 邦題: デザインパターンは死んだ(のか)?
Are Design Patterns Dead?
Are Design Patterns Dead?
Yoshitaka Kawashima
受託開発を生業とするものにとって、見積もり根拠を正しく示すことは死活問題だ、という話です。
なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?
Yoshitaka Kawashima
2012年のオープンソースカンファレンス北海道(OSC-do)でセミナー発表した際に使用したスライド資料です。
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
ドメイン駆動設計 Domain-Driven Design ( DDD ) 準備 / スタートアップ / ブラッシュアップ / チャレンジ / 参考書籍 /
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
ドメイン駆動設計の4つの基本活動、Springのプログラミングモデル、ドメイン駆動設計のためのSpringの使い方
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
Java/Spring Boot/MyBatis/Thymeleafを使った、ドメイン駆動設計のサンプルコード。ビジネスルールに焦点を合わせ、計算モデルで複雑さを整理し、型指向のプログラミングで実装する、その具体例。
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
DeNA TechCon 2017の登壇資料です。
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA
質問への回答(35件)を、ブログにまとめているのでこちらご覧ください https://little-hands.hatenablog.com/entry/2019/08/31/genba_de_ddd 「Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス」登壇資料 ブログ:https://little-hands.hatenablog.com/ Twitter:https://twitter.com/little_hand_s 質問箱:https://peing.net/ja/little_hands
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
DevLOVE X Day1 C-5のセッションです。 ITの活用範囲の広がりとともに、費用・品質よりもデリバリを優先するプロジェクトも増えてきました。しかし「しっかり考えるよりも、作ってリリースしちゃおうぜ、正解なんて誰にも分からないんだから」というマントラを唱えながら、返済見込みの立たない大量の技術的負債を抱える。それが最善の選択なのか、もう少しだけ立ち止まって考えてみませんか? YAGNIという言葉を便利に使いすぎてはいませんか? コードを書きなぐるのと、ちょっと考えて設計して作るのとで、そんなに開発スピードに違いがありますか? 考えてみたいと思います。
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
SonicGarden Study #11で放送された資料から一部スライドを抜いたものになります。 http://sonicgarden.doorkeeper.jp/events/13229 ----- 優れたプログラマだけが優れたソースコードを書くことができます。 では優れたプログラマになるにはどうすれば良いでしょうか。 自分の書いたコードを、優れたプログラマに指摘してもらうことが一番の近道です。それがコードレビューです。たった一人でコードレビューも受けずに、ただ書き続けてもクソコードはクソコードのままなのです。 そこで今回は、良いコードが書けるプログラマになるための、コードレビューを上手に実践する秘訣を話します。
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
アドテク×インフラアーキテクチャ -オレシカナイトVol.7- 発表内容 https://cyberagent.connpass.com/event/
マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話
natsumi_ishizaka
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
JaSST Review 2020の発表資料です。
ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣
Yoshitaka Kawashima
LayerX社内の定例でつかった資料です。
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
目grep入門があまりにもKernelVM::入門だという指摘があったため、解説をつけてよりstd::入門に近づけてみました。
目grep入門 +解説
目grep入門 +解説
murachue
第2シーズンに向けて、設計コースの内容と進め方について、説明会の資料
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
「ドメイン駆動設計」の第4部の概要と理解の手がかり。現場での実践経験から。
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
at Open Seminar Hiroshima 2014 (#osh2014) 2014.02.01 (Sat) http://osh-2014.github.io/
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
Takuto Wada
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
PyCon JP 2017 発表資料です。
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
Tendances
(20)
Are Design Patterns Dead?
Are Design Patterns Dead?
なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ソフトウェア設計における 意思決定とそのレビューの秘訣
ソフトウェア設計における 意思決定とそのレビューの秘訣
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
目grep入門 +解説
目grep入門 +解説
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
メタプログラミングって何だろう
メタプログラミングって何だろう
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Plus de pospome
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
Cloud Next 2018 わいわい報告会の登壇資料
MicroServices & APIs
MicroServices & APIs
pospome
コード改善 meetup #3
どこに何を書くのか?
どこに何を書くのか?
pospome
社内勉強会用資料
アプリケーションコードにおける技術的負債について考える
アプリケーションコードにおける技術的負債について考える
pospome
Datastore/Go のデータ設計と struct の振る舞いについて
Datastore/Go のデータ設計と struct の振る舞いについて
Datastore/Go のデータ設計と struct の振る舞いについて
pospome
パッケージの循環参照
パッケージの循環参照
パッケージの循環参照
pospome
Controllerのbefore_actionにおける インスタンス変数セットについて
Controllerのbefore_actionにおける インスタンス変数セットについて
Controllerのbefore_actionにおける インスタンス変数セットについて
pospome
社内勉強会向け資料
REST API のコツ
REST API のコツ
pospome
サーバサイドNodeの使い道
サーバサイドNodeの使い道
サーバサイドNodeの使い道
pospome
Plus de pospome
(9)
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
MicroServices & APIs
MicroServices & APIs
どこに何を書くのか?
どこに何を書くのか?
アプリケーションコードにおける技術的負債について考える
アプリケーションコードにおける技術的負債について考える
Datastore/Go のデータ設計と struct の振る舞いについて
Datastore/Go のデータ設計と struct の振る舞いについて
パッケージの循環参照
パッケージの循環参照
Controllerのbefore_actionにおける インスタンス変数セットについて
Controllerのbefore_actionにおける インスタンス変数セットについて
REST API のコツ
REST API のコツ
サーバサイドNodeの使い道
サーバサイドNodeの使い道
Goのシンプルさについて
1.
Goのシンプルさについて
2.
自己紹介 twitter : pospome blog
:pospomeのプログラミング日記 職種 : サーバサイドエンジニア 興味 : クラス設計全般, DDD アイコン:羊じゃなくてポメラニアンです
3.
Go からシンプルさを感じたことを話そうかと思います 時間限られているので サラッとしか説明できませんが・・・
4.
・package private ・コンストラクタ ・struct に
static な method
5.
・package private ・コンストラクタ ・struct に
static な method
6.
自分が触ったオブジェクト指向言語には アクセス修飾子として以下が用意されていた モジュールレベルの public, private クラスレベルの
public, protected, private
7.
特にクラスレベルのアクセス修飾子は強力 クラスは自分自身のプロパティ、メソッドに対して 公開、非公開をコントロールできる
8.
仮に 1つのモジュールに大量のクラスを突っ込んでも 触られたくないものをクラスレベルで隠すことができるので ある程度の秩序は保たれる 最悪モジュールの依存関係、粒度は気にしなくても なんとかなる
9.
なので、クラスをどう設計するかを重心する印象 普段モジュール同士の依存関係とか粒度とかって 考えて設計してますか?
10.
一方、Goにはパッケージレベルのアクセス修飾子しかない 同じパッケージであれば、 struct, function, value
は触り放題
11.
仮に 1つのパッケージ内に大量の struct を突っ込むと 全てが触り放題になってしまう 触られたくないものが存在する場合、 パッケージを分けて
package private にする必要がある
12.
つまり、Go では パッケージレベルのアクセス修飾子だけ考えればいい パッケージの循環参照が禁止なこともあり、 パッケージレベルで 粒度、公開範囲、依存方向を考えるべき struct ベースで考えてもこれらは解決できない struct
は保持する値と振る舞いの管理だけ考えればいい パッケージと struct で妙な責務の分離ができている
13.
シンプルな点 package private しかない パッケージレベルのアクセス修飾子しか提供しない
14.
・package private ・コンストラクタ ・struct に
static な method
15.
Go にはコンストラクタがない NewXxxx() という
function が コンストラクタのような役割を担っている 実質 static な factory method みたいな実装になる
16.
個人的にはコンストラクタよりも 実装パターンとしての static な factory
method が好き 「どんなオブジェクトを生成するのか」 をメソッド名で表現できるから
17.
シンプルな点 コンストラクタはないので function で実装する
18.
・package private ・コンストラクタ ・struct に
static な method
19.
Go では struct に
static な method を持たせることができない 最初は違和感しかなかったし、 static method 欲しかったので、 無理やりそれっぽい実装したこともあった
20.
ただ、最初に説明したとおり、 Go はパッケージを中心に考えた方がいい気がする 無理やり struct
に static method を持たせることに 違和感があるのも事実
21.
今では大人しく function で実装しています
22.
シンプルな点 struct に static
method は生やせないので function で実装する
23.
まとめ
24.
・package private しかない ・コンストラクタはない ・struct
に static method はない 削ることによってシンプルになっている
25.
個人的には多機能な言語は魅力的だった 自分のやりたいことに対して 何かしらの適切な選択肢が存在する
26.
ただ、Goを触ってみて、 多機能な言語は不適切な選択をしてしまうリスクも あると思った 例 「継承が悪いのではない、お前の使い方が悪いだけだ」
27.
Go から学んだシンプルさは 他の言語を書くときにも役立つと思う いろんな言語を触ってみるって大事ですね (´・ω・`)
28.
おわり
Télécharger maintenant