ブックマーク / zenn.dev/satoru_takeuchi (3)

  • プログラマに必要になっているプログラミング以外の技術の一例

    はじめに よくソフトウェア技術者にはプログラミング以外にもたくさんの技術が必要といわれます。では具体的に何が必要なのか…というと、実のところ個々人が置かれた状況によって全然異なるので何とも言えません。ただこれだけだと実務経験が無い人には全然ピンと来ないと思うので、現役職業プログラマである私が今の仕事で必要になっている能力について書きます。 私が現在なにを作っているか 私がやっていることはオンプレのインフラ基盤であるKubernetesクラスタの開発、およびその上で動くストレージ基盤であるRook/Cephクラスタの開発です。簡単に言ってしまえばこれらを作るのが現在所属しているプロジェクトのミッションです。 その中でもわたしのわかりやすい仕事はRookの開発です。上記インフラ基盤に必要な機能の開発、バグ修正が中心です。Rookはメンテナとして開発に参加しているので、それ以外にもコードレビュー

    プログラマに必要になっているプログラミング以外の技術の一例
  • 排他制御の基礎の基礎

    はじめに システムに存在するリソースには同時にアクセスしてはいけないものが多々あります。身近な例を挙げると、Ubuntuのパッケージ管理システムのデータベースがあります。aptコマンドの動作によってこのデータベースは更新されるのですが、同時に2つ以上のaptが動作できたとすると、データベースが破壊されてシステムが危機的状況に陥ります。 このような問題を避けるために、あるリソースに同時に1つの処理しかアクセスできなくする排他制御というしくみがあります。排他制御はOSが提供する重要な機能の一つです。 排他制御が必要なケース 排他制御は直感的ではなく非常に理解が難しいのですが、ここでは比較的理解が簡単なファイルロックというしくみを使って説明します。説明には、あるファイルの中身を読みだして、その中に書いてある数字に1を加えて終了するincというという単純なプログラムを使います。

    排他制御の基礎の基礎
  • ソフトウェア開発者人生に影響を与えてきた本

    はじめに なんとなく書きたくなったので書きます。詳しいレビューなどは書きません。書いても一言程度。実は昔似たようなエントリを書いたことがあるんですが、そちらは初心者+αくらいの人に勧めるについてのもので、こちらはあくまで私に刺さったです。 達人プログラマー ソフトウェア技術者としての考え方のいくつかはこのの影響によって身に着けました。この手のは抽象的でスカスカなことが多いのですが、このは著者の文書作成技術が高いこと、例が具体的なこともあって、ずいぶん納得できることが多かったです。わたしが読んだのは第一版ですが、あえて第二版へのリンクを張っています。 プログラミング作法 よいプログラムをどう組めばいいかということを学べました。いろいろな言語を題材にしていますが、どういうものを使っていても役に立つ実践的なことが書いています。 珠玉のプログラミング アルゴリズムについて、具体的にどう役

    ソフトウェア開発者人生に影響を与えてきた本
    l08084
    l08084 2021/01/10
  • 1