タグ

ブックマーク / kyabatalian.hatenablog.com (7)

  • 『プログラミングの心理学』を読んだ - 夜は寝る

    在宅の日々、だいたいラジオをきいて過ごしている。radikoだけでは飽き足らず、この世のすべてのラジオアプリをインストールし、Podcastをダウンロードし、耳から注入している。 shop.nikkeibp.co.jp 先週読んだCode Completeにおいて、複数の章で参考図書として紹介されていた。著者はGerald Weinberg氏で、ソフトウェア界における偉人の一人。著作では『ライト、ついてますか』も有名っぽい。 初版はなんと1971年。磁気テープを用いた開発や、プロジェクト例などは歴史を感じさせる。筋であるプログラマの心理面の問題意識や実験結果、考察は、いま読んでも古さを感じない。そのこと自体が、書のテーマが質的な問題であることを示唆している。一方、プロとアマチュア、マネージャとプログラマ、また(職業人としての)男性と女性を区別した記述がやや軽薄に感じた。これは著者の不

    『プログラミングの心理学』を読んだ - 夜は寝る
    sh19910711
    sh19910711 2024/05/06
    "著者はGerald Weinberg氏で、ソフトウェア界における偉人の一人。著作では『ライト、ついてますか』も有名っぽい / 当時はおそらく「プログラマを人間として扱う」という発想自体が新しかったのかもしれない" 2020
  • 『レガシーコードからの脱却』を読んだ - 夜は寝る

    仕事でレガシー改善っぽいことばかりやっていたら、他部署のエンジニアから「レガシーの人」と呼ばれた。老害の化身みたいな印象を刷り込まれつつある。そんなわけで、レガシーにまつわるを読んだ。 www.oreilly.co.jp インターネットをみているかぎり評判が良さそうで、ネクストバイブル的な扱いを受けていた。読んでいて思ったことなどを雑に書き留める。 感想たち 全体的にとても読みやすく、整理されている。訳も自然。キーワードを挙げるなら、アジャイル、TDDあたり。タイトルからは少しずれる印象かもしれないが、レガシー関係なく良いコードを書く方法にかなりページを割いている。その理由は、最終章の以下文で端的に説明されている。 良いものがどんなものか知らなければ、レガシーコードをリファクタリングしてもより良いものにしようがないのだ。(p.241) 「レガシー改善やるぞ」とそれ自体が目的になってしま

    『レガシーコードからの脱却』を読んだ - 夜は寝る
    sh19910711
    sh19910711 2023/05/26
    "テストでふるまいを書くことが「良い」とされている。その「良い」と感じる根源は、変更のしやすさであり、より根源的には不確実性、わからなさに対する戦略だと思う" / 2019
  • 『Code Complete 第2版』を読んだ - 夜は寝る

    新型コロナウイルスも落ち着きつつあって、よさそう。そろそろ物理出社が怖くなってきた。というわけでぶっといを土日にガッと読んだ。 www.nikkeibp.co.jp めっちゃ有名。「おすすめ技術書」みたいなウェッブ記事でだいたい挙がってくる、バイブル的なやつ。著者はSteve McConnell氏というかたで、Microsoft社やBoeing社に勤務された経歴あり、1993年に書の初版を出版している。2003年にオブジェクト指向をとりいれた第2版が出版された。紙のだと上下で1000ページ超えという鈍器のようなもの。 Amazonの履歴をみると3年前に購入していた。上下巻で出版されているが、自分はそれらがあわさった電子合版をKindle半額セールで買った。そのときにも読んでいる(はずだ)が、当時から3年もたっているので、読みとる情報も違ってきそう。と思って再読した。何より、記憶が

    『Code Complete 第2版』を読んだ - 夜は寝る
    sh19910711
    sh19910711 2022/12/04
    2020 / "知らないことを考えることはできない。知っていることから組み上げて思考を導出するべき。たまに知らない領域で「考えがでてこない」みたいな感覚に陥ることがあるがたいていは前提となる知識が足りていない"
  • ダイアローグ 対話する組織 - 夜は寝る

    気づいたら2ヶ月近くブログを書いておらずやばいと思ったので、今日読んだ以下のについて書く。 ダイアローグ 対話する組織 作者: 中原淳,長岡健出版社/メーカー: ダイヤモンド社発売日: 2012/09/14メディア: Kindle版この商品を含むブログを見る なんで読んだのか 弊社には、新卒入社社員の各々に対して既存社員(=メンター)を1名ずつ組み合わせ、各組で月に1回お昼ごはんを共にし、いろんな話をする、という制度がある。メンターは対象の新入社員と異なる部署から選出され、半年で組チェンジする。 自分は昨年の前半と後半で2名の新卒氏と組になっていて、今期で3人目になる。自分を選出し続けている人事部に重大な欠陥があることは明らかだが、せっかくなので先輩面で話をしつつ、会社の金でお昼ごはんをいただいている。 メンターを対象にした事前ガイダンスで「参考にどうぞ」と配布されたのが、上記の書籍だっ

    ダイアローグ 対話する組織 - 夜は寝る
    sh19910711
    sh19910711 2022/04/30
    "組織に視点を広げると、第3章で言及されている「知識の共有」がたびたび課題になる / そもそもの問題を共有し各位がその解決に向いた結果として必要十分な知識が適切な対象に共有される、という状況が理想っぽい"
  • ポストモーテムにおける根本原因分析 - 夜は寝る

    SRE Advent Calendar 2018、僭越ながら3日目を担当させていただきます、@kabaomeです。 勢いでカレンダーに登録しましたが、私は明示的にSREというポジションではなく、一アプリケーションエンジニアです。 半年くらい前にSRE*1を読み、「こういうのやっていくゾ☆」と思い立って、社内で勝手にいろいろやっています。いまのところ怒られていません。 ポストモーテム、その中でもっとも重要であり難しい(と思っている)根原因分析について、個人的見解を書いてみます。 TL;DR ポストモーテムやその根幹である根原因分析の情報あんまない 根原因分析の結論は「客観的」「単純」「制御可能」であるべき 根原因分析はスキルだと思います、がんばっていきましょう ポストモーテム まずはポストモーテムについて簡単にご紹介します。 SREの皆様におかれましては常識だと思いますので、読み飛

    ポストモーテムにおける根本原因分析 - 夜は寝る
    sh19910711
    sh19910711 2021/11/08
    "ポストモーテムとは、もともとは医学の世界で、「検死」を意味する / 失敗ケースに対して振り返りを実施し、その原因や再発防止策を策定 / インシデントは学びの対象でありサービスの信頼性を向上させるための材料"
  • XIDの巻き戻しによるデータ復旧 - 夜は寝る

    ポスグレカレンダーのノルマは昨日のぶんで達成したが、触発されてポスグレ小ネタを連投してみる。今回は、闇の技術を伝承する。ゆめゆめ使わぬよう。 TL;DR Postgresは追記型のMVCCを実装している XIDを巻き戻すことでデータベースを過去の状態に戻せる Postgresのトランザクション管理 事前知識として、PostgresのトランザクションがXIDという連番で管理されていることについて、説明する。 追記型アーキテクチャとは PostgresのトランザクションID(XID)は、32bit符号なし整数で、トランザクションが開くたびにXIDが発行され、その値は1ずつ増えていく。 RDBMSは何らかの形で同時実行制御としてMVCCを採用しているが、Postgresはその中でも、「追記型」を採用している。これは有名な話。 追記型というのは、データを更新するときに、そのデータの値を書き換えるの

    XIDの巻き戻しによるデータ復旧 - 夜は寝る
    sh19910711
    sh19910711 2021/05/02
    "RDBMSは何らかの形で同時実行制御としてMVCCを採用している / 追記型というのは、データを更新するときに、そのデータの値を書き換えるのではなく、そのデータには無効フラグ的なものを立て、新たなデータを追加"
  • PostgreSQLのクエリプロトコルと起こりうる問題 - 夜は寝る

    Postgres Advent Calendar 2019の11日目。クエリプロトコルについておしごとで調べる機会があったため、にわか知識でさわりを紹介してみる。.NETのコードやライブラリを例に出すが、PostgreSQLの仕様に関するおはなしのはず。 アプリケーションがRDBMSと通信するとき、多くの場合、クライアントライブラリを使って通信を抽象化している。そのため、おそらくほとんどのソフトウェアエンジニアは日常的に通信のプロトコルを意識することはない。ただし、クライアントライブラリを実装する場合や、後に述べる特異なケースにおいて、プロトコルの仕様が重要になる。 簡易クエリと拡張クエリ PostgresSQLフロントエンド(クライアント)とバックエンド(サーバ)の通信に、メッセージベースのプロトコルを使う。このプロトコルには、通信の開始・終了や、データのやりとり(クエリ)、コピー、レ

    PostgreSQLのクエリプロトコルと起こりうる問題 - 夜は寝る
  • 1