タグ

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

  • 伸ばすのが難しい能力: 柴田 芳樹 (Yoshiki Shibata)

    2018年6月1日に株式会社メルペイに入社して、4年が過ぎました。入社当時は、定年が60歳と聞いていたので、1年半の勤務だと思っていましたが、実際の定年は65歳であり定年まであと2年半です。 ソフトウェアエンジニアにとって重要な能力と(私は考えるが)、身に付けるのが難しいのが現実だと、この4年間で再認識したのは次の三つです。 開発の最初にAPI仕様をきちんと書けるソフトウェアエンジニアは少ない テストファースト開発を行っているソフトウェアエンジニアは少ないか、いない Tech Blogなどの執筆で、読み手を意識して、分かりやすい文章を書く、ソフトウェアエンジニアは少ない API仕様については、このブログでも何度か書いています(「API仕様を書く」)。テストファースト開発についても、「テストファースト開発」を書いています。分かりやすい文章については何も書いていないですが、「伝わる技術文書の書

    伸ばすのが難しい能力: 柴田 芳樹 (Yoshiki Shibata)
    lugecy
    lugecy 2022/09/09
  • ソフトウェア開発の「現場」はソースコード: 柴田 芳樹 (Yoshiki Shibata)

    マルチスレッドプログラミングを格的に行ったのは、1993年夏以降にSolaris 2.3を利用してソフトウェアを開発した時でした。Solarisとしては、初めてOSレベルでマルチスレッドをサポートしたばかりでした。当時は、マルチスレッドに関する書籍はほとんどなく、Solarisに付属するドキュメントを読んで学習したと記憶しています。 マルチスレッド関連の書籍が出始めたのが、1995年頃ではないかと思います。すでにかなりのマルチスレッドプログラミングをしていたので、復習および理解を深めるために、3冊ほど読んだと記憶しています。 Solaris 2.3を用いた開発では、開発言語はC++でした。C++格的に開発を始める前に、書籍でC++を学習したのですが、どのを読んでも、公開API(公開クラス)から実装の詳細(protectedやprivateのフィールドやメンバー関数)を隠蔽する方法が

    ソフトウェア開発の「現場」はソースコード: 柴田 芳樹 (Yoshiki Shibata)
    lugecy
    lugecy 2021/01/15
  • ネーミングは設計の中心: 柴田 芳樹 (Yoshiki Shibata)

    書に次のように述べられています。 ネーミングは設計の中心である。優れたネーミングはシステムの理解を助け、作業を容易にする。しかし、貧弱なネーミングはシステムの理解を妨げ、後でシステムを扱うプログラマに辛い日々を送らせる。ネーミング、つまり、名前付けがいい加減なものは、理解するのに多くの時間を要します。そして、理解したとしても、次に見た時にはまた理解できなくて格闘することになったりします。 残念ながら、名前付けというのは意識して行う必要がある一種の訓練です。そして、数年、あるいは、十数年以上意識し続けても、やはり、名前付けは容易ではありません。コードレビューを行う時は、不適切なクラス名やメソッド名に対しては、不適切であることを指摘します。それと同時に、どのように変更すべきかも考えるのでが、なかなか良い名前が思いつかない場合もあります。 長年、クラス設計やコードレビューを行って思うことは、ク

    ネーミングは設計の中心: 柴田 芳樹 (Yoshiki Shibata)
    lugecy
    lugecy 2021/01/15
  • マルチスレッドプログラミングにおける重要な4要件: 柴田 芳樹 (Yoshiki Shibata)

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

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