teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

推敲

2020/04/22 19:02

投稿

退会済みユーザー
answer CHANGED
@@ -45,6 +45,6 @@
45
45
 
46
46
  これから設計をするなら、AvroやProtobufのように多言語で使えて、スキーマを定義したら各言語でバインディング(タイプクラス、シリアライザー、デシリアライザー)の生成ができるライブラリを使うのが良いでしょう。
47
47
 
48
- 例えはstructに新たにフィールドを追加したかったらどうしますか?レコード長が変わってしまいますが、全システムを同時に更新できますか?多分無理でしょう。後方互換性を確保したままペイロードを変更する方法を考えないといけないですね。固定長で良いとのことですが、フィールドが増える度にサイズが増えますね。全てのフィールドを使っても使っていなくてもスペースを消費してしまいます。
48
+ 例えはstructに新たにフィールドを追加したかったらどうしますか?レコード長が変わってしまいますが、全システムを同時に更新できますか?多分無理でしょう。後方互換性を確保しつつ変更する方法を考えないといけないですね。固定長で良いとのことですが、フィールドが増える度にサイズが増えますね。全てのフィールドを使っても使っていなくてもスペースを消費してしまいます。
49
49
 
50
- このあたりの問題を解決してくれるのが先に挙げたようなRPCフォーマットです。ご参考まで。
50
+ このあたりの問題を解決してくれるのが先に挙げたようなライブラリで提供されるRPCフォーマットです。ご参考まで。

3

誤字修正

2020/04/22 19:02

投稿

退会済みユーザー
answer CHANGED
@@ -43,7 +43,7 @@
43
43
  Actual data [3, 2, 1, 0, 1, 2, 3]
44
44
  ```
45
45
 
46
- もしこれから設計をするなら、AvroやProtobufのように多言語で使えて、スキーマを定義したら各言語でバインディング(タイプクラス、シリアライザー、デシリアライザー)生成が生成できるようなライブラリを使うのが良いでしょう。
46
+ これから設計をするなら、AvroやProtobufのように多言語で使えて、スキーマを定義したら各言語でバインディング(タイプクラス、シリアライザー、デシリアライザー)生成ができるライブラリを使うのが良いでしょう。
47
47
 
48
48
  例えはstructに新たにフィールドを追加したかったらどうしますか?レコード長が変わってしまいますが、全システムを同時に更新できますか?多分無理でしょう。後方互換性を確保したままペイロードを変更する方法を考えないといけないですね。固定長で良いとのことですが、フィールドが増える度にサイズが増えますね。全てのフィールドを使っても使っていなくてもスペースを消費してしまいます。
49
49
 

2

コード修正。意図を明確化

2020/04/22 16:46

投稿

退会済みユーザー
answer CHANGED
@@ -27,7 +27,7 @@
27
27
 
28
28
  head = iniHead()
29
29
  print("Struct size", sizeof(head))
30
- print("Buffer data len", DATA_SIZE)
30
+ print("Buffer data len", len(head.data))
31
31
  print("Buffer data", head.data[:])
32
32
  print("Actual data len", head.data_len)
33
33
  print("Actual data", head.data[:head.data_len])

1

誤字修正

2020/04/22 16:42

投稿

退会済みユーザー
answer CHANGED
@@ -45,6 +45,6 @@
45
45
 
46
46
  もしこれから設計をするなら、AvroやProtobufのように多言語で使えて、スキーマを定義したら各言語でバインディング(タイプクラス、シリアライザー、デシリアライザー)を生成が生成できるようなライブラリを使うのが良いでしょう。
47
47
 
48
- 例えはstructに新たにフィールドを追加したかったらどうしますか?レコード長が変わってしまいますが、全システムを同時に更新できますか?多分無理でしょう。後方互換性を確保したままペイロードを変更する方法を考えないといけないですね。固定長で良いとのことですが、フィールドが増える度にサイズが増えますね。フィールドを使っても使っていなくてもスペースを消費してしまいます。
48
+ 例えはstructに新たにフィールドを追加したかったらどうしますか?レコード長が変わってしまいますが、全システムを同時に更新できますか?多分無理でしょう。後方互換性を確保したままペイロードを変更する方法を考えないといけないですね。固定長で良いとのことですが、フィールドが増える度にサイズが増えますね。全てのフィールドを使っても使っていなくてもスペースを消費してしまいます。
49
49
 
50
50
  このあたりの問題を解決してくれるのが先に挙げたようなRPCフォーマットです。ご参考まで。