タグ

ブックマーク / yshibata.blog.ss-blog.jp (5)

  • 株式会社メルペイを退職します: 柴田 芳樹 (Yoshiki Shibata)

    2018年6月1日から働き始めた株式会社メルペイを9月30日付けで退職します。4年4か月勤務したことになります。1984年4月1日に社会人として富士ゼロックスで働き始めてから、7社目の会社でした。10月1日からは、新たな会社でソフトウェアエンジニアとして働き始めます。 週4日勤務「ソラミツ株式会社を退職します」でも書きましたが、リコーを退職してからは、基的に週4日勤務をしてきました。メルペイでも、金曜日は欠勤するか有給休暇を使うなどして、週4日勤務をしてきました(週4日勤務で働くことに関して、入社前に合意してもらっていました)。10月からの会社では、週4日勤務の雇用契約で働きます。 初めてのウェブサービス開発富士ゼロックス、富士ゼロックス情報システム、リコーの3社で合計31年7か月を過ごし、富士ゼロックスでのワークショテーション開発を除くと、その多くは、デジタル複合機のソフトウェア開発に

    株式会社メルペイを退職します: 柴田 芳樹 (Yoshiki Shibata)
    komlow
    komlow 2022/09/10
  • API仕様を書く(まとめ): 柴田 芳樹 (Yoshiki Shibata)

    API仕様を書く」として私自身の過去の経験を書いたものを読みやすく並べてみました。 API仕様を書く(1) API仕様を書く(2) API仕様を書く(3) API仕様を書く(4) API仕様を書く(5)ー gRPC protoファイル ー API仕様を書く(6)ー gRPC protoファイル(2) ー API仕様を書く(7) ちょうど同じような内容が『A Philosophy of Software Design』に書かれていました。 関連する章は、第12章「Why Write Comments? The Four Execuses」と第15章「Write The Comments First」です。第12章では、コメントを書かない理由として多くのソフトウェアエンジニアが挙げる理由について反証しています。第15章ではコメントを最初に書くことの有用性を説いています。ここでのコメントは、私

    API仕様を書く(まとめ): 柴田 芳樹 (Yoshiki Shibata)
    komlow
    komlow 2019/04/22
  • ロック(ミューテックス)の再入可能性:柴田 芳樹 (Yoshiki Shibata):So-netブログ

    Go言語で提供されているsync.Mutexは、再入可能(re-entrant)ではありません。それについては、『プログラミング言語Go』(p,306)には次のように書かれています。 Go のミューテックスが再入可能ではないことには正当な理由があります。ミューテックスの目的は、共有された変数のある種の不変式がプログラム実行中の重要な時点で維持されているのを保証することです。不変式の一つは、「共有された変数へアクセスするゴルーチンが存在しない」*2ですが、ミューテックスが保護しているデータ構造に特有の追加の不変式が存在するかもしれません。一つのゴルーチンがミューテックスロックを獲得したときには、そのゴルーチンは不変式が維持されていると想定するでしょう。ロックを保持している間に共有された変数が更新され、一時的に不変式が破られるかもしれません。しかし、ロックを解放するときには、秩序が回復されて不

    ロック(ミューテックス)の再入可能性:柴田 芳樹 (Yoshiki Shibata):So-netブログ
  • 言語仕様とメモリモデル: 柴田 芳樹 (Yoshiki Shibata)

    『Effective Java 第3版』の第11章「並行性」(あるいは、第2版の第10章「並行性」)を内容を理解するためには、Javaのメモリモデル(memory model)を理解する必要があります。『Effective Java 第3版』の翻訳原稿による補講でも「メモリモデルとは何か」という質問がありました。 マルチコアやマルチプロセッサを前提としてマルチスレッドプログラミングを言語仕様として提供する言語では、メモリモデルは言語仕様の一部とも言えます。Javaであれば、『The Java Language Specification』の17.4節の「Memory Model」、あるいは、『プログラミング言語Java第4版』の14.10節 「メモリモデル:同期とvolatile」に書かれています。それぞれ、22ページと5ページを費やして解説しています。 今日、マルチコアやマルチプロセッサ

    言語仕様とメモリモデル: 柴田 芳樹 (Yoshiki Shibata)
    komlow
    komlow 2018/09/03
  • マルチスレッドプログラミングにおける重要な4要件: 柴田 芳樹 (Yoshiki Shibata)

    JaSST Tokyo 2018の招待講演で話した資料(こちら)に書いてあることですが、今までの人生で私自身は、デジタル複合機コントローラソフトウェア開発を4回もアーキテクチャを変えて行いました。デジタル複合機の難しさは、ハードウェアからの非同期なさまざまなイベントとユーザからの様々なイベントを両方を上手く処理しなければならず、かなり複雑なソフトウェアとなります。 ソフトウェアエンジニアとして合計すると10年以上をデジタル複合機コントローラソフトウェアの開発に従事し、マルチスレッドプログラミングを行ったことになります。公開資料に詳細情報は含まれていませんが、資料にある「Take 3」と「Take 4」は、デジタル複合機コントローラソフトウェアを完全にテスト駆動開発で行うというものでした。 4回ともマルチスレッドプログラミング(厳密には、Take 4はマルチゴルーチン(goroutine)プ

    マルチスレッドプログラミングにおける重要な4要件: 柴田 芳樹 (Yoshiki Shibata)
    komlow
    komlow 2018/06/11
  • 1